{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2017-07-25",
    "endpointPrefix":"amplify",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceAbbreviation":"Amplify",
    "serviceFullName":"AWS Amplify",
    "serviceId":"Amplify",
    "signatureVersion":"v4",
    "signingName":"amplify",
    "uid":"amplify-2017-07-25"
  },
  "operations":{
    "CreateApp":{
      "name":"CreateApp",
      "http":{
        "method":"POST",
        "requestUri":"/apps"
      },
      "input":{"shape":"CreateAppRequest"},
      "output":{"shape":"CreateAppResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"LimitExceededException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Creates a new Amplify App. </p>"
    },
    "CreateBranch":{
      "name":"CreateBranch",
      "http":{
        "method":"POST",
        "requestUri":"/apps/{appId}/branches"
      },
      "input":{"shape":"CreateBranchRequest"},
      "output":{"shape":"CreateBranchResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"},
        {"shape":"LimitExceededException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Creates a new Branch for an Amplify App. </p>"
    },
    "CreateDomainAssociation":{
      "name":"CreateDomainAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/apps/{appId}/domains"
      },
      "input":{"shape":"CreateDomainAssociationRequest"},
      "output":{"shape":"CreateDomainAssociationResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"},
        {"shape":"LimitExceededException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Create a new DomainAssociation on an App </p>"
    },
    "DeleteApp":{
      "name":"DeleteApp",
      "http":{
        "method":"DELETE",
        "requestUri":"/apps/{appId}"
      },
      "input":{"shape":"DeleteAppRequest"},
      "output":{"shape":"DeleteAppResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"NotFoundException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Delete an existing Amplify App by appId. </p>"
    },
    "DeleteBranch":{
      "name":"DeleteBranch",
      "http":{
        "method":"DELETE",
        "requestUri":"/apps/{appId}/branches/{branchName}"
      },
      "input":{"shape":"DeleteBranchRequest"},
      "output":{"shape":"DeleteBranchResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Deletes a branch for an Amplify App. </p>"
    },
    "DeleteDomainAssociation":{
      "name":"DeleteDomainAssociation",
      "http":{
        "method":"DELETE",
        "requestUri":"/apps/{appId}/domains/{domainName}"
      },
      "input":{"shape":"DeleteDomainAssociationRequest"},
      "output":{"shape":"DeleteDomainAssociationResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Deletes a DomainAssociation. </p>"
    },
    "DeleteJob":{
      "name":"DeleteJob",
      "http":{
        "method":"DELETE",
        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}"
      },
      "input":{"shape":"DeleteJobRequest"},
      "output":{"shape":"DeleteJobResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"NotFoundException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p> Delete a job, for an Amplify branch, part of Amplify App. </p>"
    },
    "GetApp":{
      "name":"GetApp",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}"
      },
      "input":{"shape":"GetAppRequest"},
      "output":{"shape":"GetAppResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"NotFoundException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> Retrieves an existing Amplify App by appId. </p>"
    },
    "GetBranch":{
      "name":"GetBranch",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}/branches/{branchName}"
      },
      "input":{"shape":"GetBranchRequest"},
      "output":{"shape":"GetBranchResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> Retrieves a branch for an Amplify App. </p>"
    },
    "GetDomainAssociation":{
      "name":"GetDomainAssociation",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}/domains/{domainName}"
      },
      "input":{"shape":"GetDomainAssociationRequest"},
      "output":{"shape":"GetDomainAssociationResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> Retrieves domain info that corresponds to an appId and domainName. </p>"
    },
    "GetJob":{
      "name":"GetJob",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}"
      },
      "input":{"shape":"GetJobRequest"},
      "output":{"shape":"GetJobResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"NotFoundException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p> Get a job for a branch, part of an Amplify App. </p>"
    },
    "ListApps":{
      "name":"ListApps",
      "http":{
        "method":"GET",
        "requestUri":"/apps"
      },
      "input":{"shape":"ListAppsRequest"},
      "output":{"shape":"ListAppsResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> Lists existing Amplify Apps. </p>"
    },
    "ListBranches":{
      "name":"ListBranches",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}/branches"
      },
      "input":{"shape":"ListBranchesRequest"},
      "output":{"shape":"ListBranchesResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> Lists branches for an Amplify App. </p>"
    },
    "ListDomainAssociations":{
      "name":"ListDomainAssociations",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}/domains"
      },
      "input":{"shape":"ListDomainAssociationsRequest"},
      "output":{"shape":"ListDomainAssociationsResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> List domains with an app </p>"
    },
    "ListJobs":{
      "name":"ListJobs",
      "http":{
        "method":"GET",
        "requestUri":"/apps/{appId}/branches/{branchName}/jobs"
      },
      "input":{"shape":"ListJobsRequest"},
      "output":{"shape":"ListJobsResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p> List Jobs for a branch, part of an Amplify App. </p>"
    },
    "StartJob":{
      "name":"StartJob",
      "http":{
        "method":"POST",
        "requestUri":"/apps/{appId}/branches/{branchName}/jobs"
      },
      "input":{"shape":"StartJobRequest"},
      "output":{"shape":"StartJobResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"NotFoundException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p> Starts a new job for a branch, part of an Amplify App. </p>"
    },
    "StopJob":{
      "name":"StopJob",
      "http":{
        "method":"DELETE",
        "requestUri":"/apps/{appId}/branches/{branchName}/jobs/{jobId}/stop"
      },
      "input":{"shape":"StopJobRequest"},
      "output":{"shape":"StopJobResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"},
        {"shape":"NotFoundException"},
        {"shape":"LimitExceededException"}
      ],
      "documentation":"<p> Stop a job that is in progress, for an Amplify branch, part of Amplify App. </p>"
    },
    "UpdateApp":{
      "name":"UpdateApp",
      "http":{
        "method":"POST",
        "requestUri":"/apps/{appId}"
      },
      "input":{"shape":"UpdateAppRequest"},
      "output":{"shape":"UpdateAppResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"NotFoundException"},
        {"shape":"UnauthorizedException"},
        {"shape":"InternalFailureException"}
      ],
      "documentation":"<p> Updates an existing Amplify App. </p>"
    },
    "UpdateBranch":{
      "name":"UpdateBranch",
      "http":{
        "method":"POST",
        "requestUri":"/apps/{appId}/branches/{branchName}"
      },
      "input":{"shape":"UpdateBranchRequest"},
      "output":{"shape":"UpdateBranchResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Updates a branch for an Amplify App. </p>"
    },
    "UpdateDomainAssociation":{
      "name":"UpdateDomainAssociation",
      "http":{
        "method":"POST",
        "requestUri":"/apps/{appId}/domains/{domainName}"
      },
      "input":{"shape":"UpdateDomainAssociationRequest"},
      "output":{"shape":"UpdateDomainAssociationResult"},
      "errors":[
        {"shape":"BadRequestException"},
        {"shape":"UnauthorizedException"},
        {"shape":"NotFoundException"},
        {"shape":"InternalFailureException"},
        {"shape":"DependentServiceFailureException"}
      ],
      "documentation":"<p> Create a new DomainAssociation on an App </p>"
    }
  },
  "shapes":{
    "ActiveJobId":{
      "type":"string",
      "max":1000
    },
    "App":{
      "type":"structure",
      "required":[
        "appId",
        "appArn",
        "name",
        "description",
        "repository",
        "platform",
        "createTime",
        "updateTime",
        "environmentVariables",
        "defaultDomain",
        "enableBranchAutoBuild",
        "enableBasicAuth"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for the Amplify App. </p>"
        },
        "appArn":{
          "shape":"AppArn",
          "documentation":"<p> ARN for the Amplify App. </p>"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p> Name for the Amplify App. </p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p> Tag for Amplify App. </p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> Description for the Amplify App. </p>"
        },
        "repository":{
          "shape":"Repository",
          "documentation":"<p> Repository for the Amplify App. </p>"
        },
        "platform":{
          "shape":"Platform",
          "documentation":"<p> Platform for the Amplify App. </p>"
        },
        "createTime":{
          "shape":"CreateTime",
          "documentation":"<p> Create date / time for the Amplify App. </p>"
        },
        "updateTime":{
          "shape":"UpdateTime",
          "documentation":"<p> Update date / time for the Amplify App. </p>"
        },
        "iamServiceRoleArn":{
          "shape":"ServiceRoleArn",
          "documentation":"<p> IAM service role ARN for the Amplify App. </p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariables",
          "documentation":"<p> Environment Variables for the Amplify App. </p>"
        },
        "defaultDomain":{
          "shape":"DefaultDomain",
          "documentation":"<p> Default domain for the Amplify App. </p>"
        },
        "enableBranchAutoBuild":{
          "shape":"EnableBranchAutoBuild",
          "documentation":"<p> Enables auto-building of branches for the Amplify App. </p>"
        },
        "enableBasicAuth":{
          "shape":"EnableBasicAuth",
          "documentation":"<p> Enables Basic Authorization for branches for the Amplify App. </p>"
        },
        "basicAuthCredentials":{
          "shape":"BasicAuthCredentials",
          "documentation":"<p> Basic Authorization credentials for branches for the Amplify App. </p>"
        },
        "customRules":{
          "shape":"CustomRules",
          "documentation":"<p> Custom redirect / rewrite rules for the Amplify App. </p>"
        },
        "productionBranch":{
          "shape":"ProductionBranch",
          "documentation":"<p> Structure with Production Branch information. </p>"
        },
        "buildSpec":{
          "shape":"BuildSpec",
          "documentation":"<p> BuildSpec content for Amplify App. </p>"
        }
      },
      "documentation":"<p> Amplify App represents different branches of a repository for building, deploying, and hosting. </p>"
    },
    "AppArn":{
      "type":"string",
      "max":1000
    },
    "AppId":{
      "type":"string",
      "max":255,
      "min":1
    },
    "Apps":{
      "type":"list",
      "member":{"shape":"App"}
    },
    "ArtifactsUrl":{
      "type":"string",
      "max":1000
    },
    "BadRequestException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p> Exception thrown when a request contains unexpected data. </p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "BasicAuthCredentials":{
      "type":"string",
      "max":2000
    },
    "Branch":{
      "type":"structure",
      "required":[
        "branchArn",
        "branchName",
        "description",
        "stage",
        "enableNotification",
        "createTime",
        "updateTime",
        "environmentVariables",
        "enableAutoBuild",
        "customDomains",
        "framework",
        "activeJobId",
        "totalNumberOfJobs",
        "enableBasicAuth",
        "ttl"
      ],
      "members":{
        "branchArn":{
          "shape":"BranchArn",
          "documentation":"<p> ARN for a branch, part of an Amplify App. </p>"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for a branch, part of an Amplify App. </p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> Description for a branch, part of an Amplify App. </p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p> Tag for branch for Amplify App. </p>"
        },
        "stage":{
          "shape":"Stage",
          "documentation":"<p> Stage for a branch, part of an Amplify App. </p>"
        },
        "displayName":{
          "shape":"DisplayName",
          "documentation":"<p> Display name for a branch, part of an Amplify App. </p>"
        },
        "enableNotification":{
          "shape":"EnableNotification",
          "documentation":"<p> Enables notifications for a branch, part of an Amplify App. </p>"
        },
        "createTime":{
          "shape":"CreateTime",
          "documentation":"<p> Creation date and time for a branch, part of an Amplify App. </p>"
        },
        "updateTime":{
          "shape":"UpdateTime",
          "documentation":"<p> Last updated date and time for a branch, part of an Amplify App. </p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariables",
          "documentation":"<p> Environment Variables specific to a branch, part of an Amplify App. </p>"
        },
        "enableAutoBuild":{
          "shape":"EnableAutoBuild",
          "documentation":"<p> Enables auto-building on push for a branch, part of an Amplify App. </p>"
        },
        "customDomains":{
          "shape":"CustomDomains",
          "documentation":"<p> Custom domains for a branch, part of an Amplify App. </p>"
        },
        "framework":{
          "shape":"Framework",
          "documentation":"<p> Framework for a branch, part of an Amplify App. </p>"
        },
        "activeJobId":{
          "shape":"ActiveJobId",
          "documentation":"<p> Id of the active job for a branch, part of an Amplify App. </p>"
        },
        "totalNumberOfJobs":{
          "shape":"TotalNumberOfJobs",
          "documentation":"<p> Total number of Jobs part of an Amplify App. </p>"
        },
        "enableBasicAuth":{
          "shape":"EnableBasicAuth",
          "documentation":"<p> Enables Basic Authorization for a branch, part of an Amplify App. </p>"
        },
        "thumbnailUrl":{
          "shape":"ThumbnailUrl",
          "documentation":"<p> Thumbnail Url for the branch. </p>"
        },
        "basicAuthCredentials":{
          "shape":"BasicAuthCredentials",
          "documentation":"<p> Basic Authorization credentials for a branch, part of an Amplify App. </p>"
        },
        "buildSpec":{
          "shape":"BuildSpec",
          "documentation":"<p> BuildSpec content for branch for Amplify App. </p>"
        },
        "ttl":{
          "shape":"TTL",
          "documentation":"<p> The content TTL for the website in seconds. </p>"
        }
      },
      "documentation":"<p> Branch for an Amplify App, which maps to a 3rd party repository branch. </p>"
    },
    "BranchArn":{
      "type":"string",
      "max":1000
    },
    "BranchName":{
      "type":"string",
      "max":255,
      "min":1
    },
    "Branches":{
      "type":"list",
      "member":{"shape":"Branch"},
      "max":255
    },
    "BuildSpec":{
      "type":"string",
      "documentation":"<p> BuildSpec file for Amplify app build. </p>",
      "max":25000,
      "min":1
    },
    "CertificateVerificationDNSRecord":{
      "type":"string",
      "max":1000
    },
    "CommitId":{
      "type":"string",
      "max":255
    },
    "CommitMessage":{
      "type":"string",
      "max":10000
    },
    "CommitTime":{"type":"timestamp"},
    "Condition":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "CreateAppRequest":{
      "type":"structure",
      "required":[
        "name",
        "repository",
        "platform",
        "oauthToken"
      ],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p> Name for the Amplify App </p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> Description for an Amplify App </p>"
        },
        "repository":{
          "shape":"Repository",
          "documentation":"<p> Repository for an Amplify App </p>"
        },
        "platform":{
          "shape":"Platform",
          "documentation":"<p> Platform / framework for an Amplify App </p>"
        },
        "iamServiceRoleArn":{
          "shape":"ServiceRoleArn",
          "documentation":"<p> AWS IAM service role for an Amplify App </p>"
        },
        "oauthToken":{
          "shape":"OauthToken",
          "documentation":"<p> OAuth token for 3rd party source control system for an Amplify App, used to create webhook and read-only deploy key. OAuth token is not stored. </p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariables",
          "documentation":"<p> Environment variables map for an Amplify App. </p>"
        },
        "enableBranchAutoBuild":{
          "shape":"EnableBranchAutoBuild",
          "documentation":"<p> Enable the auto building of branches for an Amplify App. </p>"
        },
        "enableBasicAuth":{
          "shape":"EnableBasicAuth",
          "documentation":"<p> Enable Basic Authorization for an Amplify App, this will apply to all branches part of this App. </p>"
        },
        "basicAuthCredentials":{
          "shape":"BasicAuthCredentials",
          "documentation":"<p> Credentials for Basic Authorization for an Amplify App. </p>"
        },
        "customRules":{
          "shape":"CustomRules",
          "documentation":"<p> Custom rewrite / redirect rules for an Amplify App. </p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p> Tag for an Amplify App </p>"
        },
        "buildSpec":{
          "shape":"BuildSpec",
          "documentation":"<p> BuildSpec for an Amplify App </p>"
        }
      },
      "documentation":"<p> Request structure used to create Apps in Amplify. </p>"
    },
    "CreateAppResult":{
      "type":"structure",
      "required":["app"],
      "members":{
        "app":{"shape":"App"}
      }
    },
    "CreateBranchRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch. </p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> Description for the branch. </p>"
        },
        "stage":{
          "shape":"Stage",
          "documentation":"<p> Stage for the branch. </p>"
        },
        "framework":{
          "shape":"Framework",
          "documentation":"<p> Framework for the branch. </p>"
        },
        "enableNotification":{
          "shape":"EnableNotification",
          "documentation":"<p> Enables notifications for the branch. </p>"
        },
        "enableAutoBuild":{
          "shape":"EnableAutoBuild",
          "documentation":"<p> Enables auto building for the branch. </p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariables",
          "documentation":"<p> Environment Variables for the branch. </p>"
        },
        "basicAuthCredentials":{
          "shape":"BasicAuthCredentials",
          "documentation":"<p> Basic Authorization credentials for the branch. </p>"
        },
        "enableBasicAuth":{
          "shape":"EnableBasicAuth",
          "documentation":"<p> Enables Basic Auth for the branch. </p>"
        },
        "tags":{
          "shape":"Tags",
          "documentation":"<p> Tag for the branch. </p>"
        },
        "buildSpec":{
          "shape":"BuildSpec",
          "documentation":"<p> BuildSpec for the branch. </p>"
        },
        "ttl":{
          "shape":"TTL",
          "documentation":"<p> The content TTL for the website in seconds. </p>"
        }
      },
      "documentation":"<p> Request structure for a branch create request. </p>"
    },
    "CreateBranchResult":{
      "type":"structure",
      "required":["branch"],
      "members":{
        "branch":{
          "shape":"Branch",
          "documentation":"<p> Branch structure for an Amplify App. </p>"
        }
      },
      "documentation":"<p> Result structure for create branch request. </p>"
    },
    "CreateDomainAssociationRequest":{
      "type":"structure",
      "required":[
        "appId",
        "domainName",
        "subDomainSettings"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p> Domain name for the Domain Association. </p>"
        },
        "enableAutoSubDomain":{
          "shape":"EnableAutoSubDomain",
          "documentation":"<p> Enables automated creation of Subdomains for branches. </p>"
        },
        "subDomainSettings":{
          "shape":"SubDomainSettings",
          "documentation":"<p> Setting structure for the Subdomain. </p>"
        }
      },
      "documentation":"<p> Request structure for create Domain Association request. </p>"
    },
    "CreateDomainAssociationResult":{
      "type":"structure",
      "required":["domainAssociation"],
      "members":{
        "domainAssociation":{
          "shape":"DomainAssociation",
          "documentation":"<p> Domain Association structure. </p>"
        }
      },
      "documentation":"<p> Result structure for the create Domain Association request. </p>"
    },
    "CreateTime":{"type":"timestamp"},
    "CustomDomain":{
      "type":"string",
      "max":255
    },
    "CustomDomains":{
      "type":"list",
      "member":{"shape":"CustomDomain"},
      "max":255
    },
    "CustomRule":{
      "type":"structure",
      "required":[
        "source",
        "target"
      ],
      "members":{
        "source":{
          "shape":"Source",
          "documentation":"<p> The source pattern for a URL rewrite or redirect rule. </p>"
        },
        "target":{
          "shape":"Target",
          "documentation":"<p> The target pattern for a URL rewrite or redirect rule. </p>"
        },
        "status":{
          "shape":"Status",
          "documentation":"<p> The status code for a URL rewrite or redirect rule. </p>"
        },
        "condition":{
          "shape":"Condition",
          "documentation":"<p> The condition for a URL rewrite or redirect rule, e.g. country code. </p>"
        }
      },
      "documentation":"<p> Custom rewrite / redirect rule. </p>"
    },
    "CustomRules":{
      "type":"list",
      "member":{"shape":"CustomRule"}
    },
    "DNSRecord":{
      "type":"string",
      "max":1000
    },
    "DefaultDomain":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "DeleteAppRequest":{
      "type":"structure",
      "required":["appId"],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        }
      },
      "documentation":"<p> Request structure for an Amplify App delete request. </p>"
    },
    "DeleteAppResult":{
      "type":"structure",
      "required":["app"],
      "members":{
        "app":{"shape":"App"}
      },
      "documentation":"<p> Result structure for an Amplify App delete request. </p>"
    },
    "DeleteBranchRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch. </p>",
          "location":"uri",
          "locationName":"branchName"
        }
      },
      "documentation":"<p> Request structure for delete branch request. </p>"
    },
    "DeleteBranchResult":{
      "type":"structure",
      "required":["branch"],
      "members":{
        "branch":{
          "shape":"Branch",
          "documentation":"<p> Branch structure for an Amplify App. </p>"
        }
      },
      "documentation":"<p> Result structure for delete branch request. </p>"
    },
    "DeleteDomainAssociationRequest":{
      "type":"structure",
      "required":[
        "appId",
        "domainName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p> Name of the domain. </p>",
          "location":"uri",
          "locationName":"domainName"
        }
      },
      "documentation":"<p> Request structure for the delete Domain Association request. </p>"
    },
    "DeleteDomainAssociationResult":{
      "type":"structure",
      "required":["domainAssociation"],
      "members":{
        "domainAssociation":{"shape":"DomainAssociation"}
      }
    },
    "DeleteJobRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName",
        "jobId"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch, for the Job. </p>",
          "location":"uri",
          "locationName":"branchName"
        },
        "jobId":{
          "shape":"JobId",
          "documentation":"<p> Unique Id for the Job. </p>",
          "location":"uri",
          "locationName":"jobId"
        }
      },
      "documentation":"<p> Request structure for delete job request. </p>"
    },
    "DeleteJobResult":{
      "type":"structure",
      "required":["jobSummary"],
      "members":{
        "jobSummary":{"shape":"JobSummary"}
      },
      "documentation":"<p> Result structure for the delete job request. </p>"
    },
    "DependentServiceFailureException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p> Exception thrown when an operation fails due to a dependent service throwing an exception. </p>",
      "error":{"httpStatusCode":503},
      "exception":true
    },
    "Description":{
      "type":"string",
      "max":1000
    },
    "DisplayName":{
      "type":"string",
      "max":255
    },
    "DomainAssociation":{
      "type":"structure",
      "required":[
        "domainAssociationArn",
        "domainName",
        "enableAutoSubDomain",
        "domainStatus",
        "statusReason",
        "certificateVerificationDNSRecord",
        "subDomains"
      ],
      "members":{
        "domainAssociationArn":{
          "shape":"DomainAssociationArn",
          "documentation":"<p> ARN for the Domain Association. </p>"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p> Name of the domain. </p>"
        },
        "enableAutoSubDomain":{
          "shape":"EnableAutoSubDomain",
          "documentation":"<p> Enables automated creation of Subdomains for branches. </p>"
        },
        "domainStatus":{
          "shape":"DomainStatus",
          "documentation":"<p> Status fo the Domain Association. </p>"
        },
        "statusReason":{
          "shape":"StatusReason",
          "documentation":"<p> Reason for the current status of the Domain Association. </p>"
        },
        "certificateVerificationDNSRecord":{
          "shape":"CertificateVerificationDNSRecord",
          "documentation":"<p> DNS Record for certificate verification. </p>"
        },
        "subDomains":{
          "shape":"SubDomains",
          "documentation":"<p> Subdomains for the Domain Association. </p>"
        }
      },
      "documentation":"<p> Structure for Domain Association, which associates a custom domain with an Amplify App. </p>"
    },
    "DomainAssociationArn":{
      "type":"string",
      "max":1000
    },
    "DomainAssociations":{
      "type":"list",
      "member":{"shape":"DomainAssociation"},
      "max":255
    },
    "DomainName":{
      "type":"string",
      "max":255
    },
    "DomainPrefix":{
      "type":"string",
      "max":255
    },
    "DomainStatus":{
      "type":"string",
      "enum":[
        "PENDING_VERIFICATION",
        "IN_PROGRESS",
        "AVAILABLE",
        "PENDING_DEPLOYMENT",
        "FAILED"
      ]
    },
    "EnableAutoBuild":{"type":"boolean"},
    "EnableAutoSubDomain":{"type":"boolean"},
    "EnableBasicAuth":{"type":"boolean"},
    "EnableBranchAutoBuild":{"type":"boolean"},
    "EnableNotification":{"type":"boolean"},
    "EndTime":{"type":"timestamp"},
    "EnvKey":{
      "type":"string",
      "max":255
    },
    "EnvValue":{
      "type":"string",
      "max":1000
    },
    "EnvironmentVariables":{
      "type":"map",
      "key":{"shape":"EnvKey"},
      "value":{"shape":"EnvValue"}
    },
    "ErrorMessage":{
      "type":"string",
      "max":255
    },
    "Framework":{
      "type":"string",
      "max":255
    },
    "GetAppRequest":{
      "type":"structure",
      "required":["appId"],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        }
      },
      "documentation":"<p> Request structure for get App request. </p>"
    },
    "GetAppResult":{
      "type":"structure",
      "required":["app"],
      "members":{
        "app":{"shape":"App"}
      }
    },
    "GetBranchRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch. </p>",
          "location":"uri",
          "locationName":"branchName"
        }
      },
      "documentation":"<p> Result structure for get branch request. </p>"
    },
    "GetBranchResult":{
      "type":"structure",
      "required":["branch"],
      "members":{
        "branch":{"shape":"Branch"}
      }
    },
    "GetDomainAssociationRequest":{
      "type":"structure",
      "required":[
        "appId",
        "domainName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p> Name of the domain. </p>",
          "location":"uri",
          "locationName":"domainName"
        }
      },
      "documentation":"<p> Request structure for the get Domain Association request. </p>"
    },
    "GetDomainAssociationResult":{
      "type":"structure",
      "required":["domainAssociation"],
      "members":{
        "domainAssociation":{
          "shape":"DomainAssociation",
          "documentation":"<p> Domain Association structure. </p>"
        }
      },
      "documentation":"<p> Result structure for the get Domain Association request. </p>"
    },
    "GetJobRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName",
        "jobId"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch, for the Job. </p>",
          "location":"uri",
          "locationName":"branchName"
        },
        "jobId":{
          "shape":"JobId",
          "documentation":"<p> Unique Id for the Job. </p>",
          "location":"uri",
          "locationName":"jobId"
        }
      },
      "documentation":"<p> Request structure for get job request. </p>"
    },
    "GetJobResult":{
      "type":"structure",
      "required":["job"],
      "members":{
        "job":{"shape":"Job"}
      }
    },
    "InternalFailureException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p> Exception thrown when the service fails to perform an operation due to an internal issue. </p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "Job":{
      "type":"structure",
      "required":[
        "summary",
        "steps"
      ],
      "members":{
        "summary":{
          "shape":"JobSummary",
          "documentation":"<p> Summary for an execution job for an Amplify App. </p>"
        },
        "steps":{
          "shape":"Steps",
          "documentation":"<p> Execution steps for an execution job, for an Amplify App. </p>"
        }
      },
      "documentation":"<p> Structure for an execution job for an Amplify App. </p>"
    },
    "JobArn":{
      "type":"string",
      "max":1000
    },
    "JobId":{
      "type":"string",
      "max":255
    },
    "JobReason":{
      "type":"string",
      "max":255
    },
    "JobStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "PROVISIONING",
        "RUNNING",
        "FAILED",
        "SUCCEED",
        "CANCELLING",
        "CANCELLED"
      ]
    },
    "JobSummaries":{
      "type":"list",
      "member":{"shape":"JobSummary"}
    },
    "JobSummary":{
      "type":"structure",
      "required":[
        "jobArn",
        "jobId",
        "commitId",
        "commitMessage",
        "commitTime",
        "startTime",
        "status",
        "jobType"
      ],
      "members":{
        "jobArn":{
          "shape":"JobArn",
          "documentation":"<p> Arn for the Job. </p>"
        },
        "jobId":{
          "shape":"JobId",
          "documentation":"<p> Unique Id for the Job. </p>"
        },
        "commitId":{
          "shape":"CommitId",
          "documentation":"<p> Commit Id from 3rd party repository provider for the Job. </p>"
        },
        "commitMessage":{
          "shape":"CommitMessage",
          "documentation":"<p> Commit message from 3rd party repository provider for the Job. </p>"
        },
        "commitTime":{
          "shape":"CommitTime",
          "documentation":"<p> Commit date / time for the Job. </p>"
        },
        "startTime":{
          "shape":"StartTime",
          "documentation":"<p> Start date / time for the Job. </p>"
        },
        "status":{
          "shape":"JobStatus",
          "documentation":"<p> Status for the Job. </p>"
        },
        "endTime":{
          "shape":"EndTime",
          "documentation":"<p> End date / time for the Job. </p>"
        },
        "jobType":{
          "shape":"JobType",
          "documentation":"<p> Type for the Job. </p>"
        }
      },
      "documentation":"<p> Structure for the summary of a Job. </p>"
    },
    "JobType":{
      "type":"string",
      "enum":[
        "RELEASE",
        "RETRY",
        "WEB_HOOK"
      ],
      "max":10
    },
    "LastDeployTime":{"type":"timestamp"},
    "LimitExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p> Exception thrown when a resource could not be created because of service limits. </p>",
      "error":{"httpStatusCode":429},
      "exception":true
    },
    "ListAppsRequest":{
      "type":"structure",
      "members":{
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p> Maximum number of records to list in a single response. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p> Request structure for an Amplify App list request. </p>"
    },
    "ListAppsResult":{
      "type":"structure",
      "required":["apps"],
      "members":{
        "apps":{
          "shape":"Apps",
          "documentation":"<p> List of Amplify Apps. </p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. Set to null to start listing Apps from start. If non-null pagination token is returned in a result, then pass its value in here to list more projects. </p>"
        }
      },
      "documentation":"<p> Result structure for an Amplify App list request. </p>"
    },
    "ListBranchesRequest":{
      "type":"structure",
      "required":["appId"],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. Set to null to start listing branches from start. If a non-null pagination token is returned in a result, then pass its value in here to list more branches. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p> Maximum number of records to list in a single response. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p> Request structure for list branches request. </p>"
    },
    "ListBranchesResult":{
      "type":"structure",
      "required":["branches"],
      "members":{
        "branches":{
          "shape":"Branches",
          "documentation":"<p> List of branches for an Amplify App. </p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. </p>"
        }
      },
      "documentation":"<p> Result structure for list branches request. </p>"
    },
    "ListDomainAssociationsRequest":{
      "type":"structure",
      "required":["appId"],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. Set to null to start listing Apps from start. If non-null pagination token is returned in a result, then pass its value in here to list more projects. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p> Maximum number of records to list in a single response. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p> Request structure for the list Domain Associations request. </p>"
    },
    "ListDomainAssociationsResult":{
      "type":"structure",
      "required":["domainAssociations"],
      "members":{
        "domainAssociations":{
          "shape":"DomainAssociations",
          "documentation":"<p> List of Domain Associations. </p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. </p>"
        }
      },
      "documentation":"<p> Result structure for the list Domain Association request. </p>"
    },
    "ListJobsRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for a branch. </p>",
          "location":"uri",
          "locationName":"branchName"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. Set to null to start listing steps from start. If a non-null pagination token is returned in a result, then pass its value in here to list more steps. </p>",
          "location":"querystring",
          "locationName":"nextToken"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p> Maximum number of records to list in a single response. </p>",
          "location":"querystring",
          "locationName":"maxResults"
        }
      },
      "documentation":"<p> Request structure for list job request. </p>"
    },
    "ListJobsResult":{
      "type":"structure",
      "required":["jobSummaries"],
      "members":{
        "jobSummaries":{
          "shape":"JobSummaries",
          "documentation":"<p> Result structure for list job result request. </p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p> Pagination token. If non-null pagination token is returned in a result, then pass its value in another request to fetch more entries. </p>"
        }
      },
      "documentation":"<p> Maximum number of records to list in a single response. </p>"
    },
    "LogUrl":{
      "type":"string",
      "max":1000
    },
    "MaxResults":{
      "type":"integer",
      "max":100,
      "min":1
    },
    "Name":{
      "type":"string",
      "max":255,
      "min":1
    },
    "NextToken":{
      "type":"string",
      "max":2000
    },
    "NotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p> Exception thrown when an entity has not been found during an operation. </p>",
      "error":{"httpStatusCode":404},
      "exception":true
    },
    "OauthToken":{
      "type":"string",
      "max":100
    },
    "Platform":{
      "type":"string",
      "enum":[
        "IOS",
        "ANDROID",
        "WEB",
        "REACT_NATIVE"
      ]
    },
    "ProductionBranch":{
      "type":"structure",
      "members":{
        "lastDeployTime":{
          "shape":"LastDeployTime",
          "documentation":"<p> Last Deploy Time of Production Branch. </p>"
        },
        "status":{
          "shape":"Status",
          "documentation":"<p> Status of Production Branch. </p>"
        },
        "thumbnailUrl":{
          "shape":"ThumbnailUrl",
          "documentation":"<p> Thumbnail Url for Production Branch. </p>"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Branch Name for Production Branch. </p>"
        }
      },
      "documentation":"<p> Structure with Production Branch information. </p>"
    },
    "Repository":{
      "type":"string",
      "max":1000
    },
    "Screenshots":{
      "type":"map",
      "key":{"shape":"ThumbnailName"},
      "value":{"shape":"ThumbnailUrl"}
    },
    "ServiceRoleArn":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "Source":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "Stage":{
      "type":"string",
      "enum":[
        "PRODUCTION",
        "BETA",
        "DEVELOPMENT",
        "EXPERIMENTAL"
      ]
    },
    "StartJobRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName",
        "jobType"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch, for the Job. </p>",
          "location":"uri",
          "locationName":"branchName"
        },
        "jobId":{
          "shape":"JobId",
          "documentation":"<p> Unique Id for the Job. </p>"
        },
        "jobType":{
          "shape":"JobType",
          "documentation":"<p> Type for the Job. </p>"
        },
        "jobReason":{
          "shape":"JobReason",
          "documentation":"<p> Reason for the Job. </p>"
        },
        "commitId":{
          "shape":"CommitId",
          "documentation":"<p> Commit Id from 3rd party repository provider for the Job. </p>"
        },
        "commitMessage":{
          "shape":"CommitMessage",
          "documentation":"<p> Commit message from 3rd party repository provider for the Job. </p>"
        },
        "commitTime":{
          "shape":"CommitTime",
          "documentation":"<p> Commit date / time for the Job. </p>"
        }
      },
      "documentation":"<p> Request structure for Start job request. </p>"
    },
    "StartJobResult":{
      "type":"structure",
      "required":["jobSummary"],
      "members":{
        "jobSummary":{
          "shape":"JobSummary",
          "documentation":"<p> Summary for the Job. </p>"
        }
      },
      "documentation":"<p> Result structure for run job request. </p>"
    },
    "StartTime":{"type":"timestamp"},
    "Status":{
      "type":"string",
      "max":3,
      "min":3
    },
    "StatusReason":{
      "type":"string",
      "max":1000
    },
    "Step":{
      "type":"structure",
      "required":[
        "stepName",
        "startTime",
        "status",
        "endTime"
      ],
      "members":{
        "stepName":{
          "shape":"StepName",
          "documentation":"<p> Name of the execution step. </p>"
        },
        "startTime":{
          "shape":"StartTime",
          "documentation":"<p> Start date/ time of the execution step. </p>"
        },
        "status":{
          "shape":"JobStatus",
          "documentation":"<p> Status of the execution step. </p>"
        },
        "endTime":{
          "shape":"EndTime",
          "documentation":"<p> End date/ time of the execution step. </p>"
        },
        "logUrl":{
          "shape":"LogUrl",
          "documentation":"<p> Url to the logs for the execution step. </p>"
        },
        "artifactsUrl":{
          "shape":"ArtifactsUrl",
          "documentation":"<p> Url to teh artifact for the execution step. </p>"
        },
        "screenshots":{
          "shape":"Screenshots",
          "documentation":"<p> List of screenshot Urls for the execution step, if relevant. </p>"
        }
      },
      "documentation":"<p> Structure for an execution step for an execution job, for an Amplify App. </p>"
    },
    "StepName":{
      "type":"string",
      "max":255
    },
    "Steps":{
      "type":"list",
      "member":{"shape":"Step"}
    },
    "StopJobRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName",
        "jobId"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch, for the Job. </p>",
          "location":"uri",
          "locationName":"branchName"
        },
        "jobId":{
          "shape":"JobId",
          "documentation":"<p> Unique Id for the Job. </p>",
          "location":"uri",
          "locationName":"jobId"
        }
      },
      "documentation":"<p> Request structure for stop job request. </p>"
    },
    "StopJobResult":{
      "type":"structure",
      "required":["jobSummary"],
      "members":{
        "jobSummary":{
          "shape":"JobSummary",
          "documentation":"<p> Summary for the Job. </p>"
        }
      },
      "documentation":"<p> Result structure for the stop job request. </p>"
    },
    "SubDomain":{
      "type":"structure",
      "required":[
        "subDomainSetting",
        "verified",
        "dnsRecord"
      ],
      "members":{
        "subDomainSetting":{
          "shape":"SubDomainSetting",
          "documentation":"<p> Setting structure for the Subdomain. </p>"
        },
        "verified":{
          "shape":"Verified",
          "documentation":"<p> Verified status of the Subdomain </p>"
        },
        "dnsRecord":{
          "shape":"DNSRecord",
          "documentation":"<p> DNS record for the Subdomain. </p>"
        }
      },
      "documentation":"<p> Subdomain for the Domain Association. </p>"
    },
    "SubDomainSetting":{
      "type":"structure",
      "required":[
        "prefix",
        "branchName"
      ],
      "members":{
        "prefix":{
          "shape":"DomainPrefix",
          "documentation":"<p> Prefix setting for the Subdomain. </p>"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Branch name setting for the Subdomain. </p>"
        }
      },
      "documentation":"<p> Setting for the Subdomain. </p>"
    },
    "SubDomainSettings":{
      "type":"list",
      "member":{"shape":"SubDomainSetting"},
      "max":255
    },
    "SubDomains":{
      "type":"list",
      "member":{"shape":"SubDomain"},
      "max":255
    },
    "TTL":{
      "type":"string",
      "documentation":"<p> The content TTL for the website in seconds. </p>"
    },
    "TagKey":{
      "type":"string",
      "max":1000
    },
    "TagValue":{
      "type":"string",
      "max":1000
    },
    "Tags":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"}
    },
    "Target":{
      "type":"string",
      "max":2048,
      "min":1
    },
    "ThumbnailName":{
      "type":"string",
      "max":256
    },
    "ThumbnailUrl":{
      "type":"string",
      "max":2000,
      "min":1
    },
    "TotalNumberOfJobs":{
      "type":"string",
      "max":1000
    },
    "UnauthorizedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ErrorMessage"}
      },
      "documentation":"<p> Exception thrown when an operation fails due to a lack of access. </p>",
      "error":{"httpStatusCode":401},
      "exception":true
    },
    "UpdateAppRequest":{
      "type":"structure",
      "required":["appId"],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "name":{
          "shape":"Name",
          "documentation":"<p> Name for an Amplify App. </p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> Description for an Amplify App. </p>"
        },
        "platform":{
          "shape":"Platform",
          "documentation":"<p> Platform for an Amplify App. </p>"
        },
        "iamServiceRoleArn":{
          "shape":"ServiceRoleArn",
          "documentation":"<p> IAM service role for an Amplify App. </p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariables",
          "documentation":"<p> Environment Variables for an Amplify App. </p>"
        },
        "enableBranchAutoBuild":{
          "shape":"EnableAutoBuild",
          "documentation":"<p> Enables branch auto-building for an Amplify App. </p>"
        },
        "enableBasicAuth":{
          "shape":"EnableBasicAuth",
          "documentation":"<p> Enables Basic Authorization for an Amplify App. </p>"
        },
        "basicAuthCredentials":{
          "shape":"BasicAuthCredentials",
          "documentation":"<p> Basic Authorization credentials for an Amplify App. </p>"
        },
        "customRules":{
          "shape":"CustomRules",
          "documentation":"<p> Custom redirect / rewrite rules for an Amplify App. </p>"
        },
        "buildSpec":{
          "shape":"BuildSpec",
          "documentation":"<p> BuildSpec for an Amplify App. </p>"
        }
      },
      "documentation":"<p> Request structure for update App request. </p>"
    },
    "UpdateAppResult":{
      "type":"structure",
      "required":["app"],
      "members":{
        "app":{
          "shape":"App",
          "documentation":"<p> App structure for the updated App. </p>"
        }
      },
      "documentation":"<p> Result structure for an Amplify App update request. </p>"
    },
    "UpdateBranchRequest":{
      "type":"structure",
      "required":[
        "appId",
        "branchName"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "branchName":{
          "shape":"BranchName",
          "documentation":"<p> Name for the branch. </p>",
          "location":"uri",
          "locationName":"branchName"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p> Description for the branch. </p>"
        },
        "framework":{
          "shape":"Framework",
          "documentation":"<p> Framework for the branch. </p>"
        },
        "stage":{
          "shape":"Stage",
          "documentation":"<p> Stage for the branch. </p>"
        },
        "enableNotification":{
          "shape":"EnableNotification",
          "documentation":"<p> Enables notifications for the branch. </p>"
        },
        "enableAutoBuild":{
          "shape":"EnableAutoBuild",
          "documentation":"<p> Enables auto building for the branch. </p>"
        },
        "environmentVariables":{
          "shape":"EnvironmentVariables",
          "documentation":"<p> Environment Variables for the branch. </p>"
        },
        "basicAuthCredentials":{
          "shape":"BasicAuthCredentials",
          "documentation":"<p> Basic Authorization credentials for the branch. </p>"
        },
        "enableBasicAuth":{
          "shape":"EnableBasicAuth",
          "documentation":"<p> Enables Basic Auth for the branch. </p>"
        },
        "buildSpec":{
          "shape":"BuildSpec",
          "documentation":"<p> BuildSpec for the branch. </p>"
        },
        "ttl":{
          "shape":"TTL",
          "documentation":"<p> The content TTL for the website in seconds. </p>"
        }
      },
      "documentation":"<p> Request structure for update branch request. </p>"
    },
    "UpdateBranchResult":{
      "type":"structure",
      "required":["branch"],
      "members":{
        "branch":{
          "shape":"Branch",
          "documentation":"<p> Branch structure for an Amplify App. </p>"
        }
      },
      "documentation":"<p> Result structure for update branch request. </p>"
    },
    "UpdateDomainAssociationRequest":{
      "type":"structure",
      "required":[
        "appId",
        "domainName",
        "subDomainSettings"
      ],
      "members":{
        "appId":{
          "shape":"AppId",
          "documentation":"<p> Unique Id for an Amplify App. </p>",
          "location":"uri",
          "locationName":"appId"
        },
        "domainName":{
          "shape":"DomainName",
          "documentation":"<p> Name of the domain. </p>",
          "location":"uri",
          "locationName":"domainName"
        },
        "enableAutoSubDomain":{
          "shape":"EnableAutoSubDomain",
          "documentation":"<p> Enables automated creation of Subdomains for branches. </p>"
        },
        "subDomainSettings":{
          "shape":"SubDomainSettings",
          "documentation":"<p> Setting structure for the Subdomain. </p>"
        }
      },
      "documentation":"<p> Request structure for update Domain Association request. </p>"
    },
    "UpdateDomainAssociationResult":{
      "type":"structure",
      "required":["domainAssociation"],
      "members":{
        "domainAssociation":{
          "shape":"DomainAssociation",
          "documentation":"<p> Domain Association structure. </p>"
        }
      },
      "documentation":"<p> Result structure for the update Domain Association request. </p>"
    },
    "UpdateTime":{"type":"timestamp"},
    "Verified":{"type":"boolean"}
  },
  "documentation":"<p> Amplify is a fully managed continuous deployment and hosting service for modern web apps. </p>"
}
