{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2016-10-06",
    "endpointPrefix": "codebuild",
    "jsonVersion": "1.1",
    "protocol": "json",
    "serviceFullName": "AWS CodeBuild",
    "signatureVersion": "v4",
    "targetPrefix": "CodeBuild_20161006",
    "uid": "codebuild-2016-10-06"
  },
  "operations": {
    "BatchGetBuilds": {
      "input": {
        "type": "structure",
        "required": [
          "ids"
        ],
        "members": {
          "ids": {
            "shape": "S2"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "builds": {
            "type": "list",
            "member": {
              "shape": "S6"
            }
          },
          "buildsNotFound": {
            "shape": "S2"
          }
        }
      }
    },
    "BatchGetProjects": {
      "input": {
        "type": "structure",
        "required": [
          "names"
        ],
        "members": {
          "names": {
            "shape": "Sv"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "projects": {
            "type": "list",
            "member": {
              "shape": "Sy"
            }
          },
          "projectsNotFound": {
            "shape": "Sv"
          }
        }
      }
    },
    "CreateProject": {
      "input": {
        "type": "structure",
        "required": [
          "name",
          "source",
          "artifacts",
          "environment"
        ],
        "members": {
          "name": {},
          "description": {},
          "source": {
            "shape": "Sg"
          },
          "artifacts": {
            "shape": "S11"
          },
          "environment": {
            "shape": "Sl"
          },
          "serviceRole": {},
          "timeoutInMinutes": {
            "type": "integer"
          },
          "encryptionKey": {},
          "tags": {
            "shape": "S16"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "project": {
            "shape": "Sy"
          }
        }
      }
    },
    "DeleteProject": {
      "input": {
        "type": "structure",
        "required": [
          "name"
        ],
        "members": {
          "name": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "ListBuilds": {
      "input": {
        "type": "structure",
        "members": {
          "sortOrder": {},
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ids": {
            "shape": "S2"
          },
          "nextToken": {}
        }
      }
    },
    "ListBuildsForProject": {
      "input": {
        "type": "structure",
        "required": [
          "projectName"
        ],
        "members": {
          "projectName": {},
          "sortOrder": {},
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "ids": {
            "shape": "S2"
          },
          "nextToken": {}
        }
      }
    },
    "ListCuratedEnvironmentImages": {
      "input": {
        "type": "structure",
        "members": {}
      },
      "output": {
        "type": "structure",
        "members": {
          "platforms": {
            "type": "list",
            "member": {
              "type": "structure",
              "members": {
                "platform": {},
                "languages": {
                  "type": "list",
                  "member": {
                    "type": "structure",
                    "members": {
                      "language": {},
                      "images": {
                        "type": "list",
                        "member": {
                          "type": "structure",
                          "members": {
                            "name": {},
                            "description": {}
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "ListProjects": {
      "input": {
        "type": "structure",
        "members": {
          "sortBy": {},
          "sortOrder": {},
          "nextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "nextToken": {},
          "projects": {
            "shape": "Sv"
          }
        }
      }
    },
    "StartBuild": {
      "input": {
        "type": "structure",
        "required": [
          "projectName"
        ],
        "members": {
          "projectName": {},
          "sourceVersion": {},
          "artifactsOverride": {
            "shape": "S11"
          },
          "environmentVariablesOverride": {
            "shape": "So"
          },
          "buildspecOverride": {},
          "timeoutInMinutesOverride": {
            "type": "integer"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "build": {
            "shape": "S6"
          }
        }
      }
    },
    "StopBuild": {
      "input": {
        "type": "structure",
        "required": [
          "id"
        ],
        "members": {
          "id": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "build": {
            "shape": "S6"
          }
        }
      }
    },
    "UpdateProject": {
      "input": {
        "type": "structure",
        "required": [
          "name"
        ],
        "members": {
          "name": {},
          "description": {},
          "source": {
            "shape": "Sg"
          },
          "artifacts": {
            "shape": "S11"
          },
          "environment": {
            "shape": "Sl"
          },
          "serviceRole": {},
          "timeoutInMinutes": {
            "type": "integer"
          },
          "encryptionKey": {},
          "tags": {
            "shape": "S16"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "project": {
            "shape": "Sy"
          }
        }
      }
    }
  },
  "shapes": {
    "S2": {
      "type": "list",
      "member": {}
    },
    "S6": {
      "type": "structure",
      "members": {
        "id": {},
        "arn": {},
        "startTime": {
          "type": "timestamp"
        },
        "endTime": {
          "type": "timestamp"
        },
        "currentPhase": {},
        "buildStatus": {},
        "sourceVersion": {},
        "projectName": {},
        "phases": {
          "type": "list",
          "member": {
            "type": "structure",
            "members": {
              "phaseType": {},
              "phaseStatus": {},
              "startTime": {
                "type": "timestamp"
              },
              "endTime": {
                "type": "timestamp"
              },
              "durationInSeconds": {
                "type": "long"
              },
              "contexts": {
                "type": "list",
                "member": {
                  "type": "structure",
                  "members": {
                    "statusCode": {},
                    "message": {}
                  }
                }
              }
            }
          }
        },
        "source": {
          "shape": "Sg"
        },
        "artifacts": {
          "type": "structure",
          "members": {
            "location": {},
            "sha256sum": {},
            "md5sum": {}
          }
        },
        "environment": {
          "shape": "Sl"
        },
        "logs": {
          "type": "structure",
          "members": {
            "groupName": {},
            "streamName": {},
            "deepLink": {}
          }
        },
        "timeoutInMinutes": {
          "type": "integer"
        },
        "buildComplete": {
          "type": "boolean"
        },
        "initiator": {}
      }
    },
    "Sg": {
      "type": "structure",
      "required": [
        "type"
      ],
      "members": {
        "type": {},
        "location": {},
        "buildspec": {},
        "auth": {
          "type": "structure",
          "required": [
            "type"
          ],
          "members": {
            "type": {},
            "resource": {}
          }
        }
      }
    },
    "Sl": {
      "type": "structure",
      "required": [
        "type",
        "image",
        "computeType"
      ],
      "members": {
        "type": {},
        "image": {},
        "computeType": {},
        "environmentVariables": {
          "shape": "So"
        },
        "privilegedMode": {
          "type": "boolean"
        }
      }
    },
    "So": {
      "type": "list",
      "member": {
        "type": "structure",
        "required": [
          "name",
          "value"
        ],
        "members": {
          "name": {},
          "value": {}
        }
      }
    },
    "Sv": {
      "type": "list",
      "member": {}
    },
    "Sy": {
      "type": "structure",
      "members": {
        "name": {},
        "arn": {},
        "description": {},
        "source": {
          "shape": "Sg"
        },
        "artifacts": {
          "shape": "S11"
        },
        "environment": {
          "shape": "Sl"
        },
        "serviceRole": {},
        "timeoutInMinutes": {
          "type": "integer"
        },
        "encryptionKey": {},
        "tags": {
          "shape": "S16"
        },
        "created": {
          "type": "timestamp"
        },
        "lastModified": {
          "type": "timestamp"
        }
      }
    },
    "S11": {
      "type": "structure",
      "required": [
        "type"
      ],
      "members": {
        "type": {},
        "location": {},
        "path": {},
        "namespaceType": {},
        "name": {},
        "packaging": {}
      }
    },
    "S16": {
      "type": "list",
      "member": {
        "type": "structure",
        "members": {
          "key": {},
          "value": {}
        }
      }
    }
  }
}