{
  "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": {
      "http": {
        "requestUri": "/apps"
      },
      "input": {
        "type": "structure",
        "required": [
          "name",
          "repository",
          "platform",
          "oauthToken"
        ],
        "members": {
          "name": {},
          "description": {},
          "repository": {},
          "platform": {},
          "iamServiceRoleArn": {},
          "oauthToken": {},
          "environmentVariables": {
            "shape": "S8"
          },
          "enableBranchAutoBuild": {
            "type": "boolean"
          },
          "enableBasicAuth": {
            "type": "boolean"
          },
          "basicAuthCredentials": {},
          "customRules": {
            "shape": "Se"
          },
          "tags": {
            "shape": "Sk"
          },
          "buildSpec": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "app"
        ],
        "members": {
          "app": {
            "shape": "Sp"
          }
        }
      }
    },
    "CreateBranch": {
      "http": {
        "requestUri": "/apps/{appId}/branches"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {},
          "description": {},
          "stage": {},
          "framework": {},
          "enableNotification": {
            "type": "boolean"
          },
          "enableAutoBuild": {
            "type": "boolean"
          },
          "environmentVariables": {
            "shape": "S8"
          },
          "basicAuthCredentials": {},
          "enableBasicAuth": {
            "type": "boolean"
          },
          "tags": {
            "shape": "Sk"
          },
          "buildSpec": {},
          "ttl": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "branch"
        ],
        "members": {
          "branch": {
            "shape": "S16"
          }
        }
      }
    },
    "CreateDomainAssociation": {
      "http": {
        "requestUri": "/apps/{appId}/domains"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "domainName",
          "subDomainSettings"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "domainName": {},
          "enableAutoSubDomain": {
            "type": "boolean"
          },
          "subDomainSettings": {
            "shape": "S1g"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "domainAssociation"
        ],
        "members": {
          "domainAssociation": {
            "shape": "S1k"
          }
        }
      }
    },
    "DeleteApp": {
      "http": {
        "method": "DELETE",
        "requestUri": "/apps/{appId}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "app"
        ],
        "members": {
          "app": {
            "shape": "Sp"
          }
        }
      }
    },
    "DeleteBranch": {
      "http": {
        "method": "DELETE",
        "requestUri": "/apps/{appId}/branches/{branchName}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "branch"
        ],
        "members": {
          "branch": {
            "shape": "S16"
          }
        }
      }
    },
    "DeleteDomainAssociation": {
      "http": {
        "method": "DELETE",
        "requestUri": "/apps/{appId}/domains/{domainName}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "domainName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "domainName": {
            "location": "uri",
            "locationName": "domainName"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "domainAssociation"
        ],
        "members": {
          "domainAssociation": {
            "shape": "S1k"
          }
        }
      }
    },
    "DeleteJob": {
      "http": {
        "method": "DELETE",
        "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName",
          "jobId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          },
          "jobId": {
            "location": "uri",
            "locationName": "jobId"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobSummary"
        ],
        "members": {
          "jobSummary": {
            "shape": "S22"
          }
        }
      }
    },
    "GetApp": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "app"
        ],
        "members": {
          "app": {
            "shape": "Sp"
          }
        }
      }
    },
    "GetBranch": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}/branches/{branchName}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "branch"
        ],
        "members": {
          "branch": {
            "shape": "S16"
          }
        }
      }
    },
    "GetDomainAssociation": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}/domains/{domainName}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "domainName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "domainName": {
            "location": "uri",
            "locationName": "domainName"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "domainAssociation"
        ],
        "members": {
          "domainAssociation": {
            "shape": "S1k"
          }
        }
      }
    },
    "GetJob": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName",
          "jobId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          },
          "jobId": {
            "location": "uri",
            "locationName": "jobId"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "job"
        ],
        "members": {
          "job": {
            "type": "structure",
            "required": [
              "summary",
              "steps"
            ],
            "members": {
              "summary": {
                "shape": "S22"
              },
              "steps": {
                "type": "list",
                "member": {
                  "type": "structure",
                  "required": [
                    "stepName",
                    "startTime",
                    "status",
                    "endTime"
                  ],
                  "members": {
                    "stepName": {},
                    "startTime": {
                      "type": "timestamp"
                    },
                    "status": {},
                    "endTime": {
                      "type": "timestamp"
                    },
                    "logUrl": {},
                    "artifactsUrl": {},
                    "screenshots": {
                      "type": "map",
                      "key": {},
                      "value": {}
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ListApps": {
      "http": {
        "method": "GET",
        "requestUri": "/apps"
      },
      "input": {
        "type": "structure",
        "members": {
          "nextToken": {
            "location": "querystring",
            "locationName": "nextToken"
          },
          "maxResults": {
            "location": "querystring",
            "locationName": "maxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "apps"
        ],
        "members": {
          "apps": {
            "type": "list",
            "member": {
              "shape": "Sp"
            }
          },
          "nextToken": {}
        }
      }
    },
    "ListBranches": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}/branches"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "nextToken": {
            "location": "querystring",
            "locationName": "nextToken"
          },
          "maxResults": {
            "location": "querystring",
            "locationName": "maxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "branches"
        ],
        "members": {
          "branches": {
            "type": "list",
            "member": {
              "shape": "S16"
            }
          },
          "nextToken": {}
        }
      }
    },
    "ListDomainAssociations": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}/domains"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "nextToken": {
            "location": "querystring",
            "locationName": "nextToken"
          },
          "maxResults": {
            "location": "querystring",
            "locationName": "maxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "domainAssociations"
        ],
        "members": {
          "domainAssociations": {
            "type": "list",
            "member": {
              "shape": "S1k"
            }
          },
          "nextToken": {}
        }
      }
    },
    "ListJobs": {
      "http": {
        "method": "GET",
        "requestUri": "/apps/{appId}/branches/{branchName}/jobs"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          },
          "nextToken": {
            "location": "querystring",
            "locationName": "nextToken"
          },
          "maxResults": {
            "location": "querystring",
            "locationName": "maxResults",
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobSummaries"
        ],
        "members": {
          "jobSummaries": {
            "type": "list",
            "member": {
              "shape": "S22"
            }
          },
          "nextToken": {}
        }
      }
    },
    "StartJob": {
      "http": {
        "requestUri": "/apps/{appId}/branches/{branchName}/jobs"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName",
          "jobType"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          },
          "jobId": {},
          "jobType": {},
          "jobReason": {},
          "commitId": {},
          "commitMessage": {},
          "commitTime": {
            "type": "timestamp"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobSummary"
        ],
        "members": {
          "jobSummary": {
            "shape": "S22"
          }
        }
      }
    },
    "StopJob": {
      "http": {
        "method": "DELETE",
        "requestUri": "/apps/{appId}/branches/{branchName}/jobs/{jobId}/stop"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName",
          "jobId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          },
          "jobId": {
            "location": "uri",
            "locationName": "jobId"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "jobSummary"
        ],
        "members": {
          "jobSummary": {
            "shape": "S22"
          }
        }
      }
    },
    "UpdateApp": {
      "http": {
        "requestUri": "/apps/{appId}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "name": {},
          "description": {},
          "platform": {},
          "iamServiceRoleArn": {},
          "environmentVariables": {
            "shape": "S8"
          },
          "enableBranchAutoBuild": {
            "type": "boolean"
          },
          "enableBasicAuth": {
            "type": "boolean"
          },
          "basicAuthCredentials": {},
          "customRules": {
            "shape": "Se"
          },
          "buildSpec": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "app"
        ],
        "members": {
          "app": {
            "shape": "Sp"
          }
        }
      }
    },
    "UpdateBranch": {
      "http": {
        "requestUri": "/apps/{appId}/branches/{branchName}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "branchName"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "branchName": {
            "location": "uri",
            "locationName": "branchName"
          },
          "description": {},
          "framework": {},
          "stage": {},
          "enableNotification": {
            "type": "boolean"
          },
          "enableAutoBuild": {
            "type": "boolean"
          },
          "environmentVariables": {
            "shape": "S8"
          },
          "basicAuthCredentials": {},
          "enableBasicAuth": {
            "type": "boolean"
          },
          "buildSpec": {},
          "ttl": {}
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "branch"
        ],
        "members": {
          "branch": {
            "shape": "S16"
          }
        }
      }
    },
    "UpdateDomainAssociation": {
      "http": {
        "requestUri": "/apps/{appId}/domains/{domainName}"
      },
      "input": {
        "type": "structure",
        "required": [
          "appId",
          "domainName",
          "subDomainSettings"
        ],
        "members": {
          "appId": {
            "location": "uri",
            "locationName": "appId"
          },
          "domainName": {
            "location": "uri",
            "locationName": "domainName"
          },
          "enableAutoSubDomain": {
            "type": "boolean"
          },
          "subDomainSettings": {
            "shape": "S1g"
          }
        }
      },
      "output": {
        "type": "structure",
        "required": [
          "domainAssociation"
        ],
        "members": {
          "domainAssociation": {
            "shape": "S1k"
          }
        }
      }
    }
  },
  "shapes": {
    "S8": {
      "type": "map",
      "key": {},
      "value": {}
    },
    "Se": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "source",
          "target"
        ],
        "members": {
          "source": {},
          "target": {},
          "status": {},
          "condition": {}
        }
      }
    },
    "Sk": {
      "type": "map",
      "key": {},
      "value": {}
    },
    "Sp": {
      "type": "structure",
      "required": [
        "appId",
        "appArn",
        "name",
        "description",
        "repository",
        "platform",
        "createTime",
        "updateTime",
        "environmentVariables",
        "defaultDomain",
        "enableBranchAutoBuild",
        "enableBasicAuth"
      ],
      "members": {
        "appId": {},
        "appArn": {},
        "name": {},
        "tags": {
          "shape": "Sk"
        },
        "description": {},
        "repository": {},
        "platform": {},
        "createTime": {
          "type": "timestamp"
        },
        "updateTime": {
          "type": "timestamp"
        },
        "iamServiceRoleArn": {},
        "environmentVariables": {
          "shape": "S8"
        },
        "defaultDomain": {},
        "enableBranchAutoBuild": {
          "type": "boolean"
        },
        "enableBasicAuth": {
          "type": "boolean"
        },
        "basicAuthCredentials": {},
        "customRules": {
          "shape": "Se"
        },
        "productionBranch": {
          "type": "structure",
          "members": {
            "lastDeployTime": {
              "type": "timestamp"
            },
            "status": {},
            "thumbnailUrl": {},
            "branchName": {}
          }
        },
        "buildSpec": {}
      }
    },
    "S16": {
      "type": "structure",
      "required": [
        "branchArn",
        "branchName",
        "description",
        "stage",
        "enableNotification",
        "createTime",
        "updateTime",
        "environmentVariables",
        "enableAutoBuild",
        "customDomains",
        "framework",
        "activeJobId",
        "totalNumberOfJobs",
        "enableBasicAuth",
        "ttl"
      ],
      "members": {
        "branchArn": {},
        "branchName": {},
        "description": {},
        "tags": {
          "shape": "Sk"
        },
        "stage": {},
        "displayName": {},
        "enableNotification": {
          "type": "boolean"
        },
        "createTime": {
          "type": "timestamp"
        },
        "updateTime": {
          "type": "timestamp"
        },
        "environmentVariables": {
          "shape": "S8"
        },
        "enableAutoBuild": {
          "type": "boolean"
        },
        "customDomains": {
          "type": "list",
          "member": {}
        },
        "framework": {},
        "activeJobId": {},
        "totalNumberOfJobs": {},
        "enableBasicAuth": {
          "type": "boolean"
        },
        "thumbnailUrl": {},
        "basicAuthCredentials": {},
        "buildSpec": {},
        "ttl": {}
      }
    },
    "S1g": {
      "type": "list",
      "member": {
        "shape": "S1h"
      }
    },
    "S1h": {
      "type": "structure",
      "required": [
        "prefix",
        "branchName"
      ],
      "members": {
        "prefix": {},
        "branchName": {}
      }
    },
    "S1k": {
      "type": "structure",
      "required": [
        "domainAssociationArn",
        "domainName",
        "enableAutoSubDomain",
        "domainStatus",
        "statusReason",
        "certificateVerificationDNSRecord",
        "subDomains"
      ],
      "members": {
        "domainAssociationArn": {},
        "domainName": {},
        "enableAutoSubDomain": {
          "type": "boolean"
        },
        "domainStatus": {},
        "statusReason": {},
        "certificateVerificationDNSRecord": {},
        "subDomains": {
          "type": "list",
          "member": {
            "type": "structure",
            "required": [
              "subDomainSetting",
              "verified",
              "dnsRecord"
            ],
            "members": {
              "subDomainSetting": {
                "shape": "S1h"
              },
              "verified": {
                "type": "boolean"
              },
              "dnsRecord": {}
            }
          }
        }
      }
    },
    "S22": {
      "type": "structure",
      "required": [
        "jobArn",
        "jobId",
        "commitId",
        "commitMessage",
        "commitTime",
        "startTime",
        "status",
        "jobType"
      ],
      "members": {
        "jobArn": {},
        "jobId": {},
        "commitId": {},
        "commitMessage": {},
        "commitTime": {
          "type": "timestamp"
        },
        "startTime": {
          "type": "timestamp"
        },
        "status": {},
        "endTime": {
          "type": "timestamp"
        },
        "jobType": {}
      }
    }
  }
}