Note: Do not directly implement this interface, new methods are added to it regularly. Extend from
AbstractAWSCodeBuild instead.

AWS CodeBuild

AWS CodeBuild is a fully managed build service in the cloud. AWS CodeBuild compiles your source code, runs unit
tests, and produces artifacts that are ready to deploy. AWS CodeBuild eliminates the need to provision, manage, and
scale your own build servers. It provides prepackaged build environments for the most popular programming languages
and build tools, such as Apache Maven, Gradle, and more. You can also fully customize build environments in AWS
CodeBuild to use your own build tools. AWS CodeBuild scales automatically to meet peak build requests, and you pay
only for the build time you consume. For more information about AWS CodeBuild, see the AWS CodeBuild User
Guide.

AWS CodeBuild supports these operations:

BatchDeleteBuilds: Deletes one or more builds.

BatchGetProjects: Gets information about one or more build projects. A build project defines how
AWS CodeBuild will run a build. This includes information such as where to get the source code to build, the build
environment to use, the build commands to run, and where to store the build output. A build environment
represents a combination of operating system, programming language runtime, and tools that AWS CodeBuild will use to
run a build. Also, you can add tags to build projects to help manage your resources and costs.

CreateProject: Creates a build project.

CreateWebhook: For an existing AWS CodeBuild build project that has its source code stored in a GitHub
repository, enables AWS CodeBuild to begin automatically rebuilding the source code every time a code change is
pushed to the repository.

DeleteProject: Deletes a build project.

DeleteWebhook: For an existing AWS CodeBuild build project that has its source code stored in a GitHub
repository, stops AWS CodeBuild from automatically rebuilding the source code every time a code change is pushed to
the repository.

ListProjects: Gets a list of build project names, with each build project name representing a single
build project.

UpdateProject: Changes the settings of an existing build project.

BatchGetBuilds: Gets information about one or more builds.

ListBuilds: Gets a list of build IDs, with each build ID representing a single build.

ListBuildsForProject: Gets a list of build IDs for the specified build project, with each build ID
representing a single build.

StartBuild: Starts running a build.

StopBuild: Attempts to stop running a build.

ListCuratedEnvironmentImages: Gets information about Docker images that are managed by AWS CodeBuild.

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS
CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository.

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS
CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository.

Overrides the default endpoint for this client ("codebuild.us-east-1.amazonaws.com"). Callers can use this method
to control which AWS region they want to work with.

Callers can pass in just the endpoint (ex: "codebuild.us-east-1.amazonaws.com") or a full URL, including the
protocol (ex: "codebuild.us-east-1.amazonaws.com"). If the protocol is not specified here, the default protocol
from this client's ClientConfiguration will be used, which by default is HTTPS.

This method is not threadsafe. An endpoint should be configured when the client is created and before any
service requests are made. Changing it afterwards creates inevitable race conditions for any service requests in
transit or retrying.

Parameters:

endpoint - The endpoint (ex: "codebuild.us-east-1.amazonaws.com") or a full URL, including the protocol (ex:
"codebuild.us-east-1.amazonaws.com") of the region specific AWS endpoint this client will communicate
with.

setRegion

An alternative to setEndpoint(String), sets the regional endpoint for this client's service
calls. Callers can use this method to control which AWS region they want to work with.

By default, all service endpoints in all regions use the https protocol. To use http instead, specify it in the
ClientConfiguration supplied at construction.

This method is not threadsafe. A region should be configured when the client is created and before any service
requests are made. Changing it afterwards creates inevitable race conditions for any service requests in transit
or retrying.

createWebhook

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, enables AWS
CodeBuild to begin automatically rebuilding the source code every time a code change is pushed to the repository.

If you enable webhooks for an AWS CodeBuild project, and the project is used as a build step in AWS CodePipeline,
then two identical builds will be created for each commit. One build is triggered through webhooks, and one
through AWS CodePipeline. Because billing is on a per-build basis, you will be billed for both builds. Therefore,
if you are using AWS CodePipeline, we recommend that you disable webhooks in CodeBuild. In the AWS CodeBuild
console, clear the Webhook box. For more information, see step 9 in Change a
Build Project's Settings.

deleteWebhook

For an existing AWS CodeBuild build project that has its source code stored in a GitHub repository, stops AWS
CodeBuild from automatically rebuilding the source code every time a code change is pushed to the repository.

shutdown

void shutdown()

Shuts down this client object, releasing any resources that might be held open. This is an optional method, and
callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client
has been shutdown, it should not be used to make any more requests.

getCachedResponseMetadata

Returns additional metadata for a previously executed successful request, typically used for debugging issues
where a service isn't acting as expected. This data isn't considered part of the result data returned by an
operation, so it's available through this separate, diagnostic interface.

Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
information for an executed request, you should use this method to retrieve it as soon as possible after
executing a request.

Parameters:

request - The originally executed request.

Returns:

The response metadata for the specified request, or null if none is available.