com.amazonaws.services.apigateway.AmazonApiGateway Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.apigateway;
import com.amazonaws.*;
import com.amazonaws.regions.*;
import com.amazonaws.services.apigateway.model.*;
/**
 * Interface for accessing Amazon API Gateway.
 * 
 * Amazon API Gateway 
 * 
 * Amazon API Gateway helps developers deliver robust, secure and scalable
 * mobile and web application backends. Amazon API Gateway allows developers to
 * securely connect mobile and web applications to APIs that run on AWS Lambda,
 * Amazon EC2, or other publicly addressable web services that are hosted
 * outside of AWS.
 * 
 */
public interface AmazonApiGateway {
    /**
     * Overrides the default endpoint for this client
     * ("https://apigateway.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:
     * "apigateway.us-east-1.amazonaws.com") or a full URL, including the
     * protocol (ex: "https://apigateway.us-east-1.amazonaws.com"). If the
     * protocol is not specified here, the default protocol from this client's
     * {@link 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.
     *
     * @param endpoint
     *        The endpoint (ex: "apigateway.us-east-1.amazonaws.com") or a full
     *        URL, including the protocol (ex:
     *        "https://apigateway.us-east-1.amazonaws.com") of the region
     *        specific AWS endpoint this client will communicate with.
     */
    void setEndpoint(String endpoint);
    /**
     * An alternative to {@link AmazonApiGateway#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 {@link 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.
     *
     * @param region
     *        The region this client will communicate with. See
     *        {@link 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 Region#getRegion(com.amazonaws.regions.Regions)
     * @see Region#createClient(Class,
     *      com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration)
     * @see Region#isServiceSupported(String)
     */
    void setRegion(Region region);
    /**
     * 
     * Create an ApiKey resource.
     * 
     * 
     * @param createApiKeyRequest
     *        Request to create an ApiKey resource.
     * @return Result of the CreateApiKey operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @sample AmazonApiGateway.CreateApiKey
     */
    CreateApiKeyResult createApiKey(CreateApiKeyRequest createApiKeyRequest);
    /**
     * 
     * Adds a new Authorizer resource to an existing RestApi
     * resource.
     * 
     * 
     * @param createAuthorizerRequest
     *        Request to add a new Authorizer to an existing
     *        RestApi resource.
     * @return Result of the CreateAuthorizer operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws LimitExceededException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateAuthorizer
     */
    CreateAuthorizerResult createAuthorizer(
            CreateAuthorizerRequest createAuthorizerRequest);
    /**
     * 
     * Creates a new BasePathMapping resource.
     * 
     * 
     * @param createBasePathMappingRequest
     *        Requests Amazon API Gateway to create a new BasePathMapping
     *        resource.
     * @return Result of the CreateBasePathMapping operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws ConflictException
     * @throws BadRequestException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateBasePathMapping
     */
    CreateBasePathMappingResult createBasePathMapping(
            CreateBasePathMappingRequest createBasePathMappingRequest);
    /**
     * 
     * Creates a Deployment resource, which makes a specified
     * RestApi callable over the internet.
     * 
     * 
     * @param createDeploymentRequest
     *        Requests Amazon API Gateway to create a Deployment
     *        resource.
     * @return Result of the CreateDeployment operation returned by the service.
     * @throws UnauthorizedException
     * @throws BadRequestException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws TooManyRequestsException
     * @throws ServiceUnavailableException
     * @sample AmazonApiGateway.CreateDeployment
     */
    CreateDeploymentResult createDeployment(
            CreateDeploymentRequest createDeploymentRequest);
    /**
     * 
     * Creates a new domain name.
     * 
     * 
     * @param createDomainNameRequest
     *        A request to create a new domain name.
     * @return Result of the CreateDomainName operation returned by the service.
     * @throws UnauthorizedException
     * @throws BadRequestException
     * @throws ConflictException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateDomainName
     */
    CreateDomainNameResult createDomainName(
            CreateDomainNameRequest createDomainNameRequest);
    /**
     * 
     * Adds a new Model resource to an existing RestApi resource.
     * 
     * 
     * @param createModelRequest
     *        Request to add a new Model to an existing RestApi
     *        resource.
     * @return Result of the CreateModel operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateModel
     */
    CreateModelResult createModel(CreateModelRequest createModelRequest);
    /**
     * 
     * Creates a Resource resource.
     * 
     * 
     * @param createResourceRequest
     *        Requests Amazon API Gateway to create a Resource resource.
     * @return Result of the CreateResource operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateResource
     */
    CreateResourceResult createResource(
            CreateResourceRequest createResourceRequest);
    /**
     * 
     * Creates a new RestApi resource.
     * 
     * 
     * @param createRestApiRequest
     *        The POST Request to add a new RestApi resource to your
     *        collection.
     * @return Result of the CreateRestApi operation returned by the service.
     * @throws UnauthorizedException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateRestApi
     */
    CreateRestApiResult createRestApi(CreateRestApiRequest createRestApiRequest);
    /**
     * 
     * Creates a new Stage resource that references a pre-existing
     * Deployment for the API.
     * 
     * 
     * @param createStageRequest
     *        Requests Amazon API Gateway to create a Stage resource.
     * @return Result of the CreateStage operation returned by the service.
     * @throws UnauthorizedException
     * @throws BadRequestException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.CreateStage
     */
    CreateStageResult createStage(CreateStageRequest createStageRequest);
    /**
     * 
     * Deletes the ApiKey resource.
     * 
     * 
     * @param deleteApiKeyRequest
     *        A request to delete the ApiKey resource.
     * @return Result of the DeleteApiKey operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteApiKey
     */
    DeleteApiKeyResult deleteApiKey(DeleteApiKeyRequest deleteApiKeyRequest);
    /**
     * 
     * Deletes an existing Authorizer resource.
     * 
     * 
     * @param deleteAuthorizerRequest
     *        Request to delete an existing Authorizer resource.
     * @return Result of the DeleteAuthorizer operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @throws BadRequestException
     * @throws ConflictException
     * @sample AmazonApiGateway.DeleteAuthorizer
     */
    DeleteAuthorizerResult deleteAuthorizer(
            DeleteAuthorizerRequest deleteAuthorizerRequest);
    /**
     * 
     * Deletes the BasePathMapping resource.
     * 
     * 
     * @param deleteBasePathMappingRequest
     *        A request to delete the BasePathMapping resource.
     * @return Result of the DeleteBasePathMapping operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteBasePathMapping
     */
    DeleteBasePathMappingResult deleteBasePathMapping(
            DeleteBasePathMappingRequest deleteBasePathMappingRequest);
    /**
     * 
     * Deletes the ClientCertificate resource.
     * 
     * 
     * @param deleteClientCertificateRequest
     *        A request to delete the ClientCertificate resource.
     * @return Result of the DeleteClientCertificate operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @throws BadRequestException
     * @throws NotFoundException
     * @sample AmazonApiGateway.DeleteClientCertificate
     */
    DeleteClientCertificateResult deleteClientCertificate(
            DeleteClientCertificateRequest deleteClientCertificateRequest);
    /**
     * 
     * Deletes a Deployment resource. Deleting a deployment will only
     * succeed if there are no Stage resources associated with it.
     * 
     * 
     * @param deleteDeploymentRequest
     *        Requests Amazon API Gateway to delete a Deployment
     *        resource.
     * @return Result of the DeleteDeployment operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteDeployment
     */
    DeleteDeploymentResult deleteDeployment(
            DeleteDeploymentRequest deleteDeploymentRequest);
    /**
     * 
     * Deletes the DomainName resource.
     * 
     * 
     * @param deleteDomainNameRequest
     *        A request to delete the DomainName resource.
     * @return Result of the DeleteDomainName operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteDomainName
     */
    DeleteDomainNameResult deleteDomainName(
            DeleteDomainNameRequest deleteDomainNameRequest);
    /**
     * 
     * Represents a delete integration.
     * 
     * 
     * @param deleteIntegrationRequest
     *        Represents a delete integration request.
     * @return Result of the DeleteIntegration operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteIntegration
     */
    DeleteIntegrationResult deleteIntegration(
            DeleteIntegrationRequest deleteIntegrationRequest);
    /**
     * 
     * Represents a delete integration response.
     * 
     * 
     * @param deleteIntegrationResponseRequest
     *        Represents a delete integration response request.
     * @return Result of the DeleteIntegrationResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteIntegrationResponse
     */
    DeleteIntegrationResponseResult deleteIntegrationResponse(
            DeleteIntegrationResponseRequest deleteIntegrationResponseRequest);
    /**
     * 
     * Deletes an existing Method resource.
     * 
     * 
     * @param deleteMethodRequest
     *        Request to delete an existing Method resource.
     * @return Result of the DeleteMethod operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteMethod
     */
    DeleteMethodResult deleteMethod(DeleteMethodRequest deleteMethodRequest);
    /**
     * 
     * Deletes an existing MethodResponse resource.
     * 
     * 
     * @param deleteMethodResponseRequest
     *        A request to delete an existing MethodResponse resource.
     * @return Result of the DeleteMethodResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteMethodResponse
     */
    DeleteMethodResponseResult deleteMethodResponse(
            DeleteMethodResponseRequest deleteMethodResponseRequest);
    /**
     * 
     * Deletes a model.
     * 
     * 
     * @param deleteModelRequest
     *        Request to delete an existing model in an existing RestApi
     *        resource.
     * @return Result of the DeleteModel operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @throws BadRequestException
     * @throws ConflictException
     * @sample AmazonApiGateway.DeleteModel
     */
    DeleteModelResult deleteModel(DeleteModelRequest deleteModelRequest);
    /**
     * 
     * Deletes a Resource resource.
     * 
     * 
     * @param deleteResourceRequest
     *        Request to delete a Resource.
     * @return Result of the DeleteResource operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws ConflictException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.DeleteResource
     */
    DeleteResourceResult deleteResource(
            DeleteResourceRequest deleteResourceRequest);
    /**
     * 
     * Deletes the specified API.
     * 
     * 
     * @param deleteRestApiRequest
     *        Request to delete the specified API from your collection.
     * @return Result of the DeleteRestApi operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @throws BadRequestException
     * @sample AmazonApiGateway.DeleteRestApi
     */
    DeleteRestApiResult deleteRestApi(DeleteRestApiRequest deleteRestApiRequest);
    /**
     * 
     * Deletes a Stage resource.
     * 
     * 
     * @param deleteStageRequest
     *        Requests Amazon API Gateway to delete a Stage resource.
     * @return Result of the DeleteStage operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @throws BadRequestException
     * @sample AmazonApiGateway.DeleteStage
     */
    DeleteStageResult deleteStage(DeleteStageRequest deleteStageRequest);
    /**
     * 
     * Flushes all authorizer cache entries on a stage.
     * 
     * 
     * @param flushStageAuthorizersCacheRequest
     *        Request to flush authorizer cache entries on a specified stage.
     * @return Result of the FlushStageAuthorizersCache operation returned by
     *         the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.FlushStageAuthorizersCache
     */
    FlushStageAuthorizersCacheResult flushStageAuthorizersCache(
            FlushStageAuthorizersCacheRequest flushStageAuthorizersCacheRequest);
    /**
     * 
     * Flushes a stage's cache.
     * 
     * 
     * @param flushStageCacheRequest
     *        Requests Amazon API Gateway to flush a stage's cache.
     * @return Result of the FlushStageCache operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.FlushStageCache
     */
    FlushStageCacheResult flushStageCache(
            FlushStageCacheRequest flushStageCacheRequest);
    /**
     * 
     * Generates a ClientCertificate resource.
     * 
     * 
     * @param generateClientCertificateRequest
     *        A request to generate a ClientCertificate resource.
     * @return Result of the GenerateClientCertificate operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @throws LimitExceededException
     * @sample AmazonApiGateway.GenerateClientCertificate
     */
    GenerateClientCertificateResult generateClientCertificate(
            GenerateClientCertificateRequest generateClientCertificateRequest);
    /**
     * 
     * Gets information about the current Account resource.
     * 
     * 
     * @param getAccountRequest
     *        Requests Amazon API Gateway to get information about the current
     *        Account resource.
     * @return Result of the GetAccount operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetAccount
     */
    GetAccountResult getAccount(GetAccountRequest getAccountRequest);
    /**
     * 
     * Gets information about the current ApiKey resource.
     * 
     * 
     * @param getApiKeyRequest
     *        A request to get information about the current ApiKey
     *        resource.
     * @return Result of the GetApiKey operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetApiKey
     */
    GetApiKeyResult getApiKey(GetApiKeyRequest getApiKeyRequest);
    /**
     * 
     * Gets information about the current ApiKeys resource.
     * 
     * 
     * @param getApiKeysRequest
     *        A request to get information about the current ApiKeys
     *        resource.
     * @return Result of the GetApiKeys operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetApiKeys
     */
    GetApiKeysResult getApiKeys(GetApiKeysRequest getApiKeysRequest);
    /**
     * 
     * Describe an existing Authorizer resource.
     * 
     * 
     * @param getAuthorizerRequest
     *        Request to describe an existing Authorizer resource.
     * @return Result of the GetAuthorizer operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetAuthorizer
     */
    GetAuthorizerResult getAuthorizer(GetAuthorizerRequest getAuthorizerRequest);
    /**
     * 
     * Describe an existing Authorizers resource.
     * 
     * 
     * @param getAuthorizersRequest
     *        Request to describe an existing Authorizers resource.
     * @return Result of the GetAuthorizers operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetAuthorizers
     */
    GetAuthorizersResult getAuthorizers(
            GetAuthorizersRequest getAuthorizersRequest);
    /**
     * 
     * Describe a BasePathMapping resource.
     * 
     * 
     * @param getBasePathMappingRequest
     *        Request to describe a BasePathMapping resource.
     * @return Result of the GetBasePathMapping operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetBasePathMapping
     */
    GetBasePathMappingResult getBasePathMapping(
            GetBasePathMappingRequest getBasePathMappingRequest);
    /**
     * 
     * Represents a collection of BasePathMapping resources.
     * 
     * 
     * @param getBasePathMappingsRequest
     *        A request to get information about a collection of
     *        BasePathMapping resources.
     * @return Result of the GetBasePathMappings operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetBasePathMappings
     */
    GetBasePathMappingsResult getBasePathMappings(
            GetBasePathMappingsRequest getBasePathMappingsRequest);
    /**
     * 
     * Gets information about the current ClientCertificate resource.
     * 
     * 
     * @param getClientCertificateRequest
     *        A request to get information about the current
     *        ClientCertificate resource.
     * @return Result of the GetClientCertificate operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetClientCertificate
     */
    GetClientCertificateResult getClientCertificate(
            GetClientCertificateRequest getClientCertificateRequest);
    /**
     * 
     * Gets a collection of ClientCertificate resources.
     * 
     * 
     * @param getClientCertificatesRequest
     *        A request to get information about a collection of
     *        ClientCertificate resources.
     * @return Result of the GetClientCertificates operation returned by the
     *         service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetClientCertificates
     */
    GetClientCertificatesResult getClientCertificates(
            GetClientCertificatesRequest getClientCertificatesRequest);
    /**
     * 
     * Gets information about a Deployment resource.
     * 
     * 
     * @param getDeploymentRequest
     *        Requests Amazon API Gateway to get information about a
     *        Deployment resource.
     * @return Result of the GetDeployment operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @throws ServiceUnavailableException
     * @sample AmazonApiGateway.GetDeployment
     */
    GetDeploymentResult getDeployment(GetDeploymentRequest getDeploymentRequest);
    /**
     * 
     * Gets information about a Deployments collection.
     * 
     * 
     * @param getDeploymentsRequest
     *        Requests Amazon API Gateway to get information about a
     *        Deployments collection.
     * @return Result of the GetDeployments operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @throws ServiceUnavailableException
     * @sample AmazonApiGateway.GetDeployments
     */
    GetDeploymentsResult getDeployments(
            GetDeploymentsRequest getDeploymentsRequest);
    /**
     * 
     * Represents a domain name that is contained in a simpler, more intuitive
     * URL that can be called.
     * 
     * 
     * @param getDomainNameRequest
     *        Request to get the name of a DomainName resource.
     * @return Result of the GetDomainName operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ServiceUnavailableException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetDomainName
     */
    GetDomainNameResult getDomainName(GetDomainNameRequest getDomainNameRequest);
    /**
     * 
     * Represents a collection of DomainName resources.
     * 
     * 
     * @param getDomainNamesRequest
     *        Request to describe a collection of DomainName resources.
     * @return Result of the GetDomainNames operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetDomainNames
     */
    GetDomainNamesResult getDomainNames(
            GetDomainNamesRequest getDomainNamesRequest);
    /**
     * 
     * Exports a deployed version of a RestApi in a specified format.
     * 
     * 
     * @param getExportRequest
     *        Request a new export of a RestApi for a particular
     *        Stage.
     * @return Result of the GetExport operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetExport
     */
    GetExportResult getExport(GetExportRequest getExportRequest);
    /**
     * 
     * Represents a get integration.
     * 
     * 
     * @param getIntegrationRequest
     *        Represents a get integration request.
     * @return Result of the GetIntegration operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetIntegration
     */
    GetIntegrationResult getIntegration(
            GetIntegrationRequest getIntegrationRequest);
    /**
     * 
     * Represents a get integration response.
     * 
     * 
     * @param getIntegrationResponseRequest
     *        Represents a get integration response request.
     * @return Result of the GetIntegrationResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetIntegrationResponse
     */
    GetIntegrationResponseResult getIntegrationResponse(
            GetIntegrationResponseRequest getIntegrationResponseRequest);
    /**
     * 
     * Describe an existing Method resource.
     * 
     * 
     * @param getMethodRequest
     *        Request to describe an existing Method resource.
     * @return Result of the GetMethod operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetMethod
     */
    GetMethodResult getMethod(GetMethodRequest getMethodRequest);
    /**
     * 
     * Describes a MethodResponse resource.
     * 
     * 
     * @param getMethodResponseRequest
     *        Request to describe a MethodResponse resource.
     * @return Result of the GetMethodResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetMethodResponse
     */
    GetMethodResponseResult getMethodResponse(
            GetMethodResponseRequest getMethodResponseRequest);
    /**
     * 
     * Describes an existing model defined for a RestApi resource.
     * 
     * 
     * @param getModelRequest
     *        Request to list information about a model in an existing
     *        RestApi resource.
     * @return Result of the GetModel operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetModel
     */
    GetModelResult getModel(GetModelRequest getModelRequest);
    /**
     * 
     * Generates a sample mapping template that can be used to transform a
     * payload into the structure of a model.
     * 
     * 
     * @param getModelTemplateRequest
     *        Request to generate a sample mapping template used to transform
     *        the payload.
     * @return Result of the GetModelTemplate operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetModelTemplate
     */
    GetModelTemplateResult getModelTemplate(
            GetModelTemplateRequest getModelTemplateRequest);
    /**
     * 
     * Describes existing Models defined for a RestApi resource.
     * 
     * 
     * @param getModelsRequest
     *        Request to list existing Models defined for a
     *        RestApi resource.
     * @return Result of the GetModels operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetModels
     */
    GetModelsResult getModels(GetModelsRequest getModelsRequest);
    /**
     * 
     * Lists information about a resource.
     * 
     * 
     * @param getResourceRequest
     *        Request to list information about a resource.
     * @return Result of the GetResource operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetResource
     */
    GetResourceResult getResource(GetResourceRequest getResourceRequest);
    /**
     * 
     * Lists information about a collection of Resource resources.
     * 
     * 
     * @param getResourcesRequest
     *        Request to list information about a collection of resources.
     * @return Result of the GetResources operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetResources
     */
    GetResourcesResult getResources(GetResourcesRequest getResourcesRequest);
    /**
     * 
     * Lists the RestApi resource in the collection.
     * 
     * 
     * @param getRestApiRequest
     *        The GET request to list an existing RestApi defined for
     *        your collection.
     * @return Result of the GetRestApi operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetRestApi
     */
    GetRestApiResult getRestApi(GetRestApiRequest getRestApiRequest);
    /**
     * 
     * Lists the RestApis resources for your collection.
     * 
     * 
     * @param getRestApisRequest
     *        The GET request to list existing RestApis defined for your
     *        collection.
     * @return Result of the GetRestApis operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetRestApis
     */
    GetRestApisResult getRestApis(GetRestApisRequest getRestApisRequest);
    /**
     * 
     * Generates a client SDK for a RestApi and Stage.
     * 
     * 
     * @param getSdkRequest
     *        Request a new generated client SDK for a RestApi and
     *        Stage.
     * @return Result of the GetSdk operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetSdk
     */
    GetSdkResult getSdk(GetSdkRequest getSdkRequest);
    /**
     * 
     * Gets information about a Stage resource.
     * 
     * 
     * @param getStageRequest
     *        Requests Amazon API Gateway to get information about a
     *        Stage resource.
     * @return Result of the GetStage operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetStage
     */
    GetStageResult getStage(GetStageRequest getStageRequest);
    /**
     * 
     * Gets information about one or more Stage resources.
     * 
     * 
     * @param getStagesRequest
     *        Requests Amazon API Gateway to get information about one or more
     *        Stage resources.
     * @return Result of the GetStages operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.GetStages
     */
    GetStagesResult getStages(GetStagesRequest getStagesRequest);
    /**
     * 
     * A feature of the Amazon API Gateway control service for creating a new
     * API from an external API definition file.
     * 
     * 
     * @param importRestApiRequest
     *        A POST request to import an API to Amazon API Gateway using an
     *        input of an API definition file.
     * @return Result of the ImportRestApi operation returned by the service.
     * @throws UnauthorizedException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.ImportRestApi
     */
    ImportRestApiResult importRestApi(ImportRestApiRequest importRestApiRequest);
    /**
     * 
     * Represents a put integration.
     * 
     * 
     * @param putIntegrationRequest
     *        Represents a put integration request.
     * @return Result of the PutIntegration operation returned by the service.
     * @throws UnauthorizedException
     * @throws BadRequestException
     * @throws ConflictException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.PutIntegration
     */
    PutIntegrationResult putIntegration(
            PutIntegrationRequest putIntegrationRequest);
    /**
     * 
     * Represents a put integration.
     * 
     * 
     * @param putIntegrationResponseRequest
     *        Represents a put integration response request.
     * @return Result of the PutIntegrationResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @throws ConflictException
     * @sample AmazonApiGateway.PutIntegrationResponse
     */
    PutIntegrationResponseResult putIntegrationResponse(
            PutIntegrationResponseRequest putIntegrationResponseRequest);
    /**
     * 
     * Add a method to an existing Resource resource.
     * 
     * 
     * @param putMethodRequest
     *        Request to add a method to an existing Resource resource.
     * @return Result of the PutMethod operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.PutMethod
     */
    PutMethodResult putMethod(PutMethodRequest putMethodRequest);
    /**
     * 
     * Adds a MethodResponse to an existing Method resource.
     * 
     * 
     * @param putMethodResponseRequest
     *        Request to add a MethodResponse to an existing
     *        Method resource.
     * @return Result of the PutMethodResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.PutMethodResponse
     */
    PutMethodResponseResult putMethodResponse(
            PutMethodResponseRequest putMethodResponseRequest);
    /**
     * 
     * A feature of the Amazon API Gateway control service for updating an
     * existing API with an input of external API definitions. The update can
     * take the form of merging the supplied definition into the existing API or
     * overwriting the existing API.
     * 
     * 
     * @param putRestApiRequest
     *        A PUT request to update an existing API, with external API
     *        definitions specified as the request body.
     * @return Result of the PutRestApi operation returned by the service.
     * @throws UnauthorizedException
     * @throws LimitExceededException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.PutRestApi
     */
    PutRestApiResult putRestApi(PutRestApiRequest putRestApiRequest);
    /**
     * 
     * Simulate the execution of an Authorizer in your RestApi
     * with headers, parameters, and an incoming request body.
     * 
     * 
     * @param testInvokeAuthorizerRequest
     *        Make a request to simulate the execution of an Authorizer.
     * @return Result of the TestInvokeAuthorizer operation returned by the
     *         service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.TestInvokeAuthorizer
     */
    TestInvokeAuthorizerResult testInvokeAuthorizer(
            TestInvokeAuthorizerRequest testInvokeAuthorizerRequest);
    /**
     * 
     * Simulate the execution of a Method in your RestApi with
     * headers, parameters, and an incoming request body.
     * 
     * 
     * @param testInvokeMethodRequest
     *        Make a request to simulate the execution of a Method.
     * @return Result of the TestInvokeMethod operation returned by the service.
     * @throws BadRequestException
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.TestInvokeMethod
     */
    TestInvokeMethodResult testInvokeMethod(
            TestInvokeMethodRequest testInvokeMethodRequest);
    /**
     * 
     * Changes information about the current Account resource.
     * 
     * 
     * @param updateAccountRequest
     *        Requests Amazon API Gateway to change information about the
     *        current Account resource.
     * @return Result of the UpdateAccount operation returned by the service.
     * @throws UnauthorizedException
     * @throws BadRequestException
     * @throws NotFoundException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateAccount
     */
    UpdateAccountResult updateAccount(UpdateAccountRequest updateAccountRequest);
    /**
     * 
     * Changes information about an ApiKey resource.
     * 
     * 
     * @param updateApiKeyRequest
     *        A request to change information about an ApiKey resource.
     * @return Result of the UpdateApiKey operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateApiKey
     */
    UpdateApiKeyResult updateApiKey(UpdateApiKeyRequest updateApiKeyRequest);
    /**
     * 
     * Updates an existing Authorizer resource.
     * 
     * 
     * @param updateAuthorizerRequest
     *        Request to update an existing Authorizer resource.
     * @return Result of the UpdateAuthorizer operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateAuthorizer
     */
    UpdateAuthorizerResult updateAuthorizer(
            UpdateAuthorizerRequest updateAuthorizerRequest);
    /**
     * 
     * Changes information about the BasePathMapping resource.
     * 
     * 
     * @param updateBasePathMappingRequest
     *        A request to change information about the BasePathMapping
     *        resource.
     * @return Result of the UpdateBasePathMapping operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateBasePathMapping
     */
    UpdateBasePathMappingResult updateBasePathMapping(
            UpdateBasePathMappingRequest updateBasePathMappingRequest);
    /**
     * 
     * Changes information about an ClientCertificate resource.
     * 
     * 
     * @param updateClientCertificateRequest
     *        A request to change information about an ClientCertificate
     *        resource.
     * @return Result of the UpdateClientCertificate operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws TooManyRequestsException
     * @throws BadRequestException
     * @throws NotFoundException
     * @sample AmazonApiGateway.UpdateClientCertificate
     */
    UpdateClientCertificateResult updateClientCertificate(
            UpdateClientCertificateRequest updateClientCertificateRequest);
    /**
     * 
     * Changes information about a Deployment resource.
     * 
     * 
     * @param updateDeploymentRequest
     *        Requests Amazon API Gateway to change information about a
     *        Deployment resource.
     * @return Result of the UpdateDeployment operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @throws ServiceUnavailableException
     * @sample AmazonApiGateway.UpdateDeployment
     */
    UpdateDeploymentResult updateDeployment(
            UpdateDeploymentRequest updateDeploymentRequest);
    /**
     * 
     * Changes information about the DomainName resource.
     * 
     * 
     * @param updateDomainNameRequest
     *        A request to change information about the DomainName
     *        resource.
     * @return Result of the UpdateDomainName operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws ConflictException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateDomainName
     */
    UpdateDomainNameResult updateDomainName(
            UpdateDomainNameRequest updateDomainNameRequest);
    /**
     * 
     * Represents an update integration.
     * 
     * 
     * @param updateIntegrationRequest
     *        Represents an update integration request.
     * @return Result of the UpdateIntegration operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @throws ConflictException
     * @sample AmazonApiGateway.UpdateIntegration
     */
    UpdateIntegrationResult updateIntegration(
            UpdateIntegrationRequest updateIntegrationRequest);
    /**
     * 
     * Represents an update integration response.
     * 
     * 
     * @param updateIntegrationResponseRequest
     *        Represents an update integration response request.
     * @return Result of the UpdateIntegrationResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateIntegrationResponse
     */
    UpdateIntegrationResponseResult updateIntegrationResponse(
            UpdateIntegrationResponseRequest updateIntegrationResponseRequest);
    /**
     * 
     * Updates an existing Method resource.
     * 
     * 
     * @param updateMethodRequest
     *        Request to update an existing Method resource.
     * @return Result of the UpdateMethod operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws ConflictException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateMethod
     */
    UpdateMethodResult updateMethod(UpdateMethodRequest updateMethodRequest);
    /**
     * 
     * Updates an existing MethodResponse resource.
     * 
     * 
     * @param updateMethodResponseRequest
     *        A request to update an existing MethodResponse resource.
     * @return Result of the UpdateMethodResponse operation returned by the
     *         service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws LimitExceededException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateMethodResponse
     */
    UpdateMethodResponseResult updateMethodResponse(
            UpdateMethodResponseRequest updateMethodResponseRequest);
    /**
     * 
     * Changes information about a model.
     * 
     * 
     * @param updateModelRequest
     *        Request to update an existing model in an existing RestApi
     *        resource.
     * @return Result of the UpdateModel operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws BadRequestException
     * @throws ConflictException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateModel
     */
    UpdateModelResult updateModel(UpdateModelRequest updateModelRequest);
    /**
     * 
     * Changes information about a Resource resource.
     * 
     * 
     * @param updateResourceRequest
     *        Request to change information about a Resource resource.
     * @return Result of the UpdateResource operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateResource
     */
    UpdateResourceResult updateResource(
            UpdateResourceRequest updateResourceRequest);
    /**
     * 
     * Changes information about the specified API.
     * 
     * 
     * @param updateRestApiRequest
     *        Request to update an existing RestApi resource in your
     *        collection.
     * @return Result of the UpdateRestApi operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateRestApi
     */
    UpdateRestApiResult updateRestApi(UpdateRestApiRequest updateRestApiRequest);
    /**
     * 
     * Changes information about a Stage resource.
     * 
     * 
     * @param updateStageRequest
     *        Requests Amazon API Gateway to change information about a
     *        Stage resource.
     * @return Result of the UpdateStage operation returned by the service.
     * @throws UnauthorizedException
     * @throws NotFoundException
     * @throws ConflictException
     * @throws BadRequestException
     * @throws TooManyRequestsException
     * @sample AmazonApiGateway.UpdateStage
     */
    UpdateStageResult updateStage(UpdateStageRequest updateStageRequest);
    /**
     * 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.
     */
    void shutdown();
    /**
     * 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.
     *
     * @param request
     *        The originally executed request.
     *
     * @return The response metadata for the specified request, or null if none
     *         is available.
     */
    ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request);
}