com.amazonaws.services.codebuild

## Interface AWSCodeBuild

All Known Subinterfaces:
  AWSCodeBuildAsync

All Known Implementing Classes:
  AbstractAWSCodeBuild, AbstractAWSCodeBuildAsync, AWSCodeBuildAsyncClient, AWSCodeBuildClient

    public interface AWSCodeBuild

Interface for accessing AWS CodeBuild.

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

<fullname>AWS CodeBuild</fullname>

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 Apach 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:

- `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.

- `DeleteProject`: Deletes a build project.

- `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.

### Field Summary

Fields
`static String` `ENDPOINT_PREFIX` The region metadata service name for computing region endpoints.

### Method Summary

All Methods Instance Methods Abstract Methods
`BatchGetBuildsResult` `batchGetBuilds(BatchGetBuildsRequest batchGetBuildsRequest)` Gets information about one or more builds.
`BatchGetProjectsResult` `batchGetProjects(BatchGetProjectsRequest batchGetProjectsRequest)` Gets information about one or more build projects.
`CreateProjectResult` `createProject(CreateProjectRequest createProjectRequest)` Creates a build project.
`DeleteProjectResult` `deleteProject(DeleteProjectRequest deleteProjectRequest)` Deletes a build project.
`ResponseMetadata` `getCachedResponseMetadata(AmazonWebServiceRequest request)` Returns additional metadata for a previously executed successful request, typically used for debugging issues where a service isn't acting as expected.
`ListBuildsResult` `listBuilds(ListBuildsRequest listBuildsRequest)` Gets a list of build IDs, with each build ID representing a single build.
`ListBuildsForProjectResult` `listBuildsForProject(ListBuildsForProjectRequest listBuildsForProjectRequest)` Gets a list of build IDs for the specified build project, with each build ID representing a single build.
`ListCuratedEnvironmentImagesResult` `listCuratedEnvironmentImages(ListCuratedEnvironmentImagesRequest listCuratedEnvironmentImagesRequest)` Gets information about Docker images that are managed by AWS CodeBuild.
`ListProjectsResult` `listProjects(ListProjectsRequest listProjectsRequest)` Gets a list of build project names, with each build project name representing a single build project.
`void` `setEndpoint(String endpoint)` Overrides the default endpoint for this client ("codebuild.us-east-1.amazonaws.com").
`void` `setRegion(Region region)` An alternative to `setEndpoint(String)`, sets the regional endpoint for this client's service calls.
`void` `shutdown()` Shuts down this client object, releasing any resources that might be held open.
`StartBuildResult` `startBuild(StartBuildRequest startBuildRequest)` Starts running a build.
`StopBuildResult` `stopBuild(StopBuildRequest stopBuildRequest)` Attempts to stop running a build.
`UpdateProjectResult` `updateProject(UpdateProjectRequest updateProjectRequest)` Changes the settings of an existing build project.

### Field Detail

#### ENDPOINT_PREFIX

    static final String ENDPOINT_PREFIX

The region metadata service name for computing region endpoints. You can use this value to retrieve metadata (such as supported regions) of the service.

See Also:
  `RegionUtils.getRegionsForService(String)`, Constant Field Values

### Method Detail

#### setEndpoint

    void setEndpoint(String endpoint)

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.

For more information on using AWS regions with the AWS SDK for Java, and a complete list of all available endpoints for all AWS services, see: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=3912

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

    void setRegion(Region region)

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.

Parameters:
  `region` - The region this client will communicate with. See `Region.getRegion(com.amazonaws.regions.Regions)` for accessing a given region. Must not be null and must be a region where the service is available.
See Also:
  `Region.getRegion(com.amazonaws.regions.Regions)`, `Region.createClient(Class, com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration)`, `Region.isServiceSupported(String)`

#### batchGetBuilds

    BatchGetBuildsResult batchGetBuilds(BatchGetBuildsRequest batchGetBuildsRequest)

Gets information about one or more builds.

Parameters:
  `batchGetBuildsRequest` -
Returns:
  Result of the BatchGetBuilds operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.

#### batchGetProjects

    BatchGetProjectsResult batchGetProjects(BatchGetProjectsRequest batchGetProjectsRequest)

Gets information about one or more build projects.

Parameters:
  `batchGetProjectsRequest` -
Returns:
  Result of the BatchGetProjects operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.

#### createProject

    CreateProjectResult createProject(CreateProjectRequest createProjectRequest)

Creates a build project.

Parameters:
  `createProjectRequest` -
Returns:
  Result of the CreateProject operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.
  `ResourceAlreadyExistsException` - The specified AWS resource cannot be created, because an AWS resource with the same settings already exists.
  `AccountLimitExceededException` - An AWS service limit was exceeded for the calling AWS account.

#### deleteProject

    DeleteProjectResult deleteProject(DeleteProjectRequest deleteProjectRequest)

Deletes a build project.

Parameters:
  `deleteProjectRequest` -
Returns:
  Result of the DeleteProject operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.

#### listBuilds

    ListBuildsResult listBuilds(ListBuildsRequest listBuildsRequest)

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

Parameters:
  `listBuildsRequest` -
Returns:
  Result of the ListBuilds operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.

#### listBuildsForProject

    ListBuildsForProjectResult listBuildsForProject(ListBuildsForProjectRequest listBuildsForProjectRequest)

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

Parameters:
  `listBuildsForProjectRequest` -
Returns:
  Result of the ListBuildsForProject operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.
  `ResourceNotFoundException` - The specified AWS resource cannot be found.

#### listCuratedEnvironmentImages

    ListCuratedEnvironmentImagesResult listCuratedEnvironmentImages(ListCuratedEnvironmentImagesRequest listCuratedEnvironmentImagesRequest)

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

Parameters:
  `listCuratedEnvironmentImagesRequest` -
Returns:
  Result of the ListCuratedEnvironmentImages operation returned by the service.

#### listProjects

    ListProjectsResult listProjects(ListProjectsRequest listProjectsRequest)

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

Parameters:
  `listProjectsRequest` -
Returns:
  Result of the ListProjects operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.

#### startBuild

    StartBuildResult startBuild(StartBuildRequest startBuildRequest)

Starts running a build.

Parameters:
  `startBuildRequest` -
Returns:
  Result of the StartBuild operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.
  `ResourceNotFoundException` - The specified AWS resource cannot be found.
  `AccountLimitExceededException` - An AWS service limit was exceeded for the calling AWS account.

#### stopBuild

    StopBuildResult stopBuild(StopBuildRequest stopBuildRequest)

Attempts to stop running a build.

<note>

Completed builds cannot be stopped.

</note>

Parameters:
  `stopBuildRequest` -
Returns:
  Result of the StopBuild operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.
  `ResourceNotFoundException` - The specified AWS resource cannot be found.

#### updateProject

    UpdateProjectResult updateProject(UpdateProjectRequest updateProjectRequest)

Changes the settings of an existing build project.

Parameters:
  `updateProjectRequest` -
Returns:
  Result of the UpdateProject operation returned by the service.
Throws:
  `InvalidInputException` - The input value that was provided is not valid.
  `ResourceNotFoundException` - The specified AWS resource cannot be found.

#### 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

    ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request)

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.