export interface Cors {
    /** Specifies whether credentials are included in the CORS request. Supported only for HTTP APIs. */
    AllowCredentials?: boolean;
    /** Represents a collection of allowed headers. Supported only for HTTP APIs. */
    AllowHeaders?: string[];
    /** Represents a collection of allowed HTTP methods. Supported only for HTTP APIs. */
    AllowMethods?: string[];
    /** Represents a collection of allowed origins. Supported only for HTTP APIs. */
    AllowOrigins?: string[];
    /** Represents a collection of exposed headers. Supported only for HTTP APIs. */
    ExposeHeaders?: string[];
    /** The number of seconds that the browser should cache preflight request results. Supported only for HTTP APIs. */
    MaxAge?: number;
}
export interface JWTConfiguration {
    /** A list of the intended recipients of the JWT. A valid JWT must provide an aud that matches at least one entry in this list. See RFC 7519. Supported only for HTTP APIs. */
    Audience?: string[];
    /** The base domain of the identity provider that issues JSON Web Tokens. For example, an Amazon Cognito user pool has the following format: https://cognito-idp.{region}.amazonaws.com/{userPoolId} . Requi */
    Issuer?: string;
}
export interface DomainNameConfiguration {
    /** A domain name for the API. */
    ApiGatewayDomainName?: string;
    /** An AWS-managed certificate that will be used by the edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source. */
    CertificateArn?: string;
    /** The user-friendly name of the certificate that will be used by the edge-optimized endpoint for this domain name. */
    CertificateName?: string;
    /** The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded. */
    CertificateUploadDate?: string;
    /** The status of the domain name migration. The valid values are AVAILABLE, UPDATING, PENDING_CERTIFICATE_REIMPORT, and PENDING_OWNERSHIP_VERIFICATION. If the status is UPDATING, the domain cannot be mod */
    DomainNameStatus?: 'AVAILABLE' | 'UPDATING' | 'PENDING_CERTIFICATE_REIMPORT' | 'PENDING_OWNERSHIP_VERIFICATION';
    /** An optional text message containing detailed information about status of the domain name migration. */
    DomainNameStatusMessage?: string;
    /** The endpoint type. */
    EndpointType?: 'REGIONAL' | 'EDGE';
    /** The Amazon Route 53 Hosted Zone ID of the endpoint. */
    HostedZoneId?: string;
    /** The IP address types that can invoke the domain name. Use ipv4 to allow only IPv4 addresses to invoke your domain name, or use dualstack to allow both IPv4 and IPv6 addresses to invoke your domain nam */
    IpAddressType?: 'ipv4' | 'dualstack';
    /** The Transport Layer Security (TLS) version of the security policy for this domain name. The valid values are TLS_1_0 and TLS_1_2. */
    SecurityPolicy?: 'TLS_1_0' | 'TLS_1_2';
    /** The ARN of the public certificate issued by ACM to validate ownership of your custom domain. Only required when configuring mutual TLS and using an ACM imported or private CA certificate ARN as the re */
    OwnershipVerificationCertificateArn?: string;
}
export interface MutualTlsAuthenticationInput {
    /** An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, s3://bucket-name/key-name. The truststore can contain certificates from public or private certificate authori */
    TruststoreUri?: string;
    /** The version of the S3 object that contains your truststore. To specify a version, you must have versioning enabled for the S3 bucket. */
    TruststoreVersion?: string;
}
export interface TlsConfigInput {
    /** If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) */
    ServerNameToVerify?: string;
}
export interface CognitoConfig {
    /** The app client ID. */
    AppClientId: string;
    /** The user pool ARN. */
    UserPoolArn: string;
    /** The user pool domain. */
    UserPoolDomain: string;
}
export interface Authorization {
    /** The Amazon Cognito configuration. */
    CognitoConfig?: CognitoConfig;
    /** Provide no authorization for your portal. This makes your portal publicly accesible on the web. */
    None?: Record<string, any>;
}
export interface ACMManaged {
    /** The certificate ARN. */
    CertificateArn: string;
    /** The domain name. */
    DomainName: string;
}
export interface EndpointConfigurationRequest {
    /** Represents a domain name and certificate for a portal. */
    AcmManaged?: ACMManaged;
    /** Use the default portal domain name that is generated and managed by API Gateway. */
    None?: Record<string, any>;
}
export interface PortalTheme {
    /** Defines custom color values. */
    CustomColors: any;
    /** The timestamp when the logo was last uploaded. */
    LogoLastUploaded?: string;
}
export interface PortalContent {
    /** A description of the portal. */
    Description?: string;
    /** The display name for the portal. */
    DisplayName: string;
    /** The theme for the portal. */
    Theme: PortalTheme;
}
export interface DisplayContent {
    /** The body. */
    Body: string;
    /** The title. */
    Title: string;
}
export interface DisplayContentOverrides {
    /** By default, this is the documentation of your REST API from API Gateway. You can provide custom documentation to override this value. */
    Body?: string;
    /** The URL for your REST API. By default, API Gateway uses the default execute API endpoint. You can provide a custom domain to override this value. */
    Endpoint?: string;
    /** The operation name of the product REST endpoint. */
    OperationName?: string;
}
export interface EndpointDisplayContent {
    /** If your product REST endpoint contains no overrides, the none object is returned. */
    None?: Record<string, any>;
    /** The overrides for endpoint display content. */
    Overrides?: DisplayContentOverrides;
}
export interface IdentifierParts {
    /** The method of the product REST endpoint. */
    Method: string;
    /** The path of the product REST endpoint. */
    Path: string;
    /** The REST API ID of the product REST endpoint. */
    RestApiId: string;
    /** The stage of the product REST endpoint. */
    Stage: string;
}
export interface RestEndpointIdentifier {
    /** The identifier parts of the REST endpoint identifier. */
    IdentifierParts?: IdentifierParts;
}
export interface ParameterConstraints {
    /** Whether or not the parameter is required. */
    Required?: boolean;
}
export interface RoutingRuleAction {
    InvokeApi: any;
}
export interface RoutingRuleCondition {
    /** The base path to be matched. */
    MatchBasePaths?: any;
    /** The headers to be matched. */
    MatchHeaders?: any;
}
export interface AccessLogSettings {
    /** The ARN of the CloudWatch Logs log group to receive access logs. */
    DestinationArn?: string;
    /** A single line format of the access logs of data, as specified by selected $context variables. The format must include at least $context.requestId. */
    Format?: string;
}
export interface RouteSettings {
    /** Specifies whether (true) or not (false) data trace logging is enabled for this route. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs. */
    DataTraceEnabled?: boolean;
    /** Specifies whether detailed metrics are enabled. */
    DetailedMetricsEnabled?: boolean;
    /** Specifies the logging level for this route: INFO, ERROR, or OFF. This property affects the log entries pushed to Amazon CloudWatch Logs. Supported only for WebSocket APIs. */
    LoggingLevel?: 'ERROR' | 'INFO' | 'OFF';
    /** Specifies the throttling burst limit. */
    ThrottlingBurstLimit?: number;
    /** Specifies the throttling rate limit. */
    ThrottlingRateLimit?: number;
}
export interface DisplayOrder {
    /** Represents a list of sections which include section name and list of product REST endpoints for a product. */
    Contents?: any[];
    /** The ARN of the overview page. */
    OverviewPageArn?: string;
    /** The product page ARNs. */
    ProductPageArns?: string[];
}
/** Creates a new Api resource to represent an API. */
export interface CreateApiInput {
    /** The name of the API. */
    Name: string;
    /** The API protocol. */
    ProtocolType: 'WEBSOCKET' | 'HTTP';
    /** An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. */
    ApiKeySelectionExpression?: string;
    /** A CORS configuration. Supported only for HTTP APIs. See Configuring CORS for more information. */
    CorsConfiguration?: Cors;
    /** This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway  */
    CredentialsArn?: string;
    /** The description of the API. */
    Description?: string;
    /** Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com en */
    DisableExecuteApiEndpoint?: boolean;
    /** Avoid validating models when creating a deployment. Supported only for WebSocket APIs. */
    DisableSchemaValidation?: boolean;
    /** The IP address types that can invoke the API. */
    IpAddressType?: 'ipv4' | 'dualstack';
    /** This property is part of quick create. If you don't specify a routeKey, a default route of $default is created. The $default route acts as a catch-all for any request made to your API, for a particula */
    RouteKey?: string;
    /** The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This propert */
    RouteSelectionExpression?: string;
    /** The collection of tags. Each tag element is associated with a given resource. */
    Tags?: Record<string, string>;
    /** This property is part of quick create. Quick create produces an API with an integration, a default catch-all route, and a default stage which is configured to automatically deploy changes. For HTTP in */
    Target?: string;
    /** A version identifier for the API. */
    Version?: string;
}
/** Creates a new ApiMapping resource to represent an API mapping. */
export interface CreateApiMappingInput {
    /** The API identifier. */
    ApiId: string;
    /** The domain name. */
    DomainName: string;
    /** The API stage. */
    Stage: string;
    /** The API mapping key. */
    ApiMappingKey?: string;
}
/** Creates a new Authorizer resource to represent an authorizer. */
export interface CreateAuthorizerInput {
    /** The API identifier. */
    ApiId: string;
    /** The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). */
    AuthorizerType: 'REQUEST' | 'JWT';
    /** The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The ide */
    IdentitySource: string[];
    /** The name of the authorizer. */
    Name: string;
    /** Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource */
    AuthorizerCredentialsArn?: string;
    /** Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda author */
    AuthorizerPayloadFormatVersion?: string;
    /** The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value */
    AuthorizerResultTtlInSeconds?: number;
    /** The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/ */
    AuthorizerUri?: string;
    /** Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value ins */
    EnableSimpleResponses?: boolean;
    /** This parameter is not used. */
    IdentityValidationExpression?: string;
    /** Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. */
    JwtConfiguration?: JWTConfiguration;
}
/** Creates a new Deployment resource to represent a deployment. */
export interface CreateDeploymentInput {
    /** The API identifier. */
    ApiId: string;
    /** The description for the deployment resource. */
    Description?: string;
    /** The name of the Stage resource for the Deployment resource to create. */
    StageName?: string;
}
/** Creates a new DomainName resource to represent a domain name. */
export interface CreateDomainNameInput {
    /** The domain name. */
    DomainName: string;
    /** The domain name configurations. */
    DomainNameConfigurations?: DomainNameConfiguration[];
    /** The mutual TLS authentication configuration for a custom domain name. */
    MutualTlsAuthentication?: MutualTlsAuthenticationInput;
    /** The routing mode. */
    RoutingMode?: 'API_MAPPING_ONLY' | 'ROUTING_RULE_ONLY' | 'ROUTING_RULE_THEN_API_MAPPING';
    /** The collection of tags associated with a domain name. */
    Tags?: Record<string, string>;
}
/** Creates a new Integration resource to represent an integration. */
export interface CreateIntegrationInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambd */
    IntegrationType: 'AWS' | 'HTTP' | 'MOCK' | 'HTTP_PROXY' | 'AWS_PROXY';
    /** The ID of the VPC link for a private integration. Supported only for HTTP APIs. */
    ConnectionId?: string;
    /** The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resour */
    ConnectionType?: 'INTERNET' | 'VPC_LINK';
    /** Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_ */
    ContentHandlingStrategy?: 'CONVERT_TO_BINARY' | 'CONVERT_TO_TEXT';
    /** Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name */
    CredentialsArn?: string;
    /** The description of the integration. */
    Description?: string;
    /** Specifies the integration's HTTP method type. */
    IntegrationMethod?: string;
    /** Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. */
    IntegrationSubtype?: string;
    /** For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Bala */
    IntegrationUri?: string;
    /** Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integra */
    PassthroughBehavior?: 'WHEN_NO_MATCH' | 'NEVER' | 'WHEN_NO_TEMPLATES';
    /** Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supporte */
    PayloadFormatVersion?: string;
    /** For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a */
    RequestParameters?: Record<string, string>;
    /** Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the  */
    RequestTemplates?: Record<string, string>;
    /** Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection k */
    ResponseParameters?: Record<string, Record<string, string>>;
    /** The template selection expression for the integration. */
    TemplateSelectionExpression?: string;
    /** Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP  */
    TimeoutInMillis?: number;
    /** The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. */
    TlsConfig?: TlsConfigInput;
}
/** Creates a new IntegrationResponse resource to represent an integration response. */
export interface CreateIntegrationResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
    /** The integration response key. */
    IntegrationResponseKey: string;
    /** Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_TO_BINARY: Converts a response payl */
    ContentHandlingStrategy?: 'CONVERT_TO_BINARY' | 'CONVERT_TO_TEXT';
    /** A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration respon */
    ResponseParameters?: Record<string, string>;
    /** The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key an */
    ResponseTemplates?: Record<string, string>;
    /** The template selection expression for the integration response. Supported only for WebSocket APIs. */
    TemplateSelectionExpression?: string;
}
/** Creates a new Model. */
export interface CreateModelInput {
    /** The API identifier. */
    ApiId: string;
    /** The name of the model. Must be alphanumeric. */
    Name: string;
    /** The schema for the model. For application/json models, this should be JSON schema draft 4 model. */
    Schema: string;
    /** The content-type for the model, for example, "application/json". */
    ContentType?: string;
    /** The description of the model. */
    Description?: string;
}
/** The request body for the post operation. */
export interface CreatePortalInput {
    /** The authentication configuration for the portal. */
    Authorization: Authorization;
    /** The domain configuration for the portal. Use a default domain provided by API Gateway or provide a fully-qualified domain name that you own. */
    EndpointConfiguration: EndpointConfigurationRequest;
    /** The content of the portal. */
    PortalContent: PortalContent;
    /** The ARNs of the portal products included in the portal. */
    IncludedPortalProductArns?: string[];
    /** The URI for the portal logo image that is displayed in the portal header. */
    LogoUri?: string;
    /** The name of the Amazon CloudWatch RUM app monitor for the portal. */
    RumAppMonitorName?: string;
    /** The collection of tags. Each tag element is associated with a given resource. */
    Tags?: Record<string, string>;
}
/** The request body for the post operation. */
export interface CreatePortalProductInput {
    /** The name of the portal product as it appears in a published portal. */
    DisplayName: string;
    /** A description of the portal product. */
    Description?: string;
    /** The collection of tags. Each tag element is associated with a given resource. */
    Tags?: Record<string, string>;
}
/** The request body for the post operation. */
export interface CreateProductPageInput {
    /** The content of the product page. */
    DisplayContent: DisplayContent;
    /** The portal product identifier. */
    PortalProductId: string;
}
/** The request body for the post operation. */
export interface CreateProductRestEndpointPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The REST endpoint identifier. */
    RestEndpointIdentifier: RestEndpointIdentifier;
    /** The content of the product REST endpoint page. */
    DisplayContent?: EndpointDisplayContent;
    /** The try it state of the product REST endpoint page. */
    TryItState?: 'ENABLED' | 'DISABLED';
}
/** Creates a new Route resource to represent a route. */
export interface CreateRouteInput {
    /** The API identifier. */
    ApiId: string;
    /** The route key for the route. */
    RouteKey: string;
    /** Specifies whether an API key is required for the route. Supported only for WebSocket APIs. */
    ApiKeyRequired?: boolean;
    /** The authorization scopes supported by this route. */
    AuthorizationScopes?: string[];
    /** The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid va */
    AuthorizationType?: 'NONE' | 'AWS_IAM' | 'CUSTOM' | 'JWT';
    /** The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. */
    AuthorizerId?: string;
    /** The model selection expression for the route. Supported only for WebSocket APIs. */
    ModelSelectionExpression?: string;
    /** The operation name for the route. */
    OperationName?: string;
    /** The request models for the route. Supported only for WebSocket APIs. */
    RequestModels?: Record<string, string>;
    /** The request parameters for the route. Supported only for WebSocket APIs. */
    RequestParameters?: Record<string, ParameterConstraints>;
    /** The route response selection expression for the route. Supported only for WebSocket APIs. */
    RouteResponseSelectionExpression?: string;
    /** The target for the route. */
    Target?: string;
}
/** Creates a new RouteResponse resource to represent a route response. */
export interface CreateRouteResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
    /** The route response key. */
    RouteResponseKey: string;
    /** The model selection expression for the route response. Supported only for WebSocket APIs. */
    ModelSelectionExpression?: string;
    /** The response models for the route response. */
    ResponseModels?: Record<string, string>;
    /** The route response parameters. */
    ResponseParameters?: Record<string, ParameterConstraints>;
}
export interface CreateRoutingRuleInput {
    /** Represents a routing rule action. The only supported action is invokeApi. */
    Actions: RoutingRuleAction[];
    /** Represents a condition. Conditions can contain up to two matchHeaders conditions and one matchBasePaths conditions. API Gateway evaluates header conditions and base path conditions together. You can o */
    Conditions: RoutingRuleCondition[];
    /** The domain name. */
    DomainName: string;
    /** Represents the priority of the routing rule. */
    Priority: number;
    /** The domain name ID. */
    DomainNameId?: string;
}
/** Creates a new Stage resource to represent a stage. */
export interface CreateStageInput {
    /** The API identifier. */
    ApiId: string;
    /** The name of the stage. */
    StageName: string;
    /** Settings for logging access in this stage. */
    AccessLogSettings?: AccessLogSettings;
    /** Specifies whether updates to an API automatically trigger a new deployment. The default value is false. */
    AutoDeploy?: boolean;
    /** The identifier of a client certificate for a Stage. Supported only for WebSocket APIs. */
    ClientCertificateId?: string;
    /** The default route settings for the stage. */
    DefaultRouteSettings?: RouteSettings;
    /** The deployment identifier of the API stage. */
    DeploymentId?: string;
    /** The description for the API stage. */
    Description?: string;
    /** Route settings for the stage, by routeKey. */
    RouteSettings?: Record<string, RouteSettings>;
    /** A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+. */
    StageVariables?: Record<string, string>;
    /** The collection of tags. Each tag element is associated with a given resource. */
    Tags?: Record<string, string>;
}
/** Creates a VPC link */
export interface CreateVpcLinkInput {
    /** The name of the VPC link. */
    Name: string;
    /** A list of subnet IDs to include in the VPC link. */
    SubnetIds: string[];
    /** A list of security group IDs for the VPC link. */
    SecurityGroupIds?: string[];
    /** A list of tags. */
    Tags?: Record<string, string>;
}
export interface DeleteAccessLogSettingsInput {
    /** The API identifier. */
    ApiId: string;
    /** The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. */
    StageName: string;
}
export interface DeleteApiInput {
    /** The API identifier. */
    ApiId: string;
}
export interface DeleteApiMappingInput {
    /** The API mapping identifier. */
    ApiMappingId: string;
    /** The domain name. */
    DomainName: string;
}
export interface DeleteAuthorizerInput {
    /** The API identifier. */
    ApiId: string;
    /** The authorizer identifier. */
    AuthorizerId: string;
}
export interface DeleteCorsConfigurationInput {
    /** The API identifier. */
    ApiId: string;
}
export interface DeleteDeploymentInput {
    /** The API identifier. */
    ApiId: string;
    /** The deployment ID. */
    DeploymentId: string;
}
export interface DeleteDomainNameInput {
    /** The domain name. */
    DomainName: string;
}
export interface DeleteIntegrationInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
}
export interface DeleteIntegrationResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
    /** The integration response ID. */
    IntegrationResponseId: string;
}
export interface DeleteModelInput {
    /** The API identifier. */
    ApiId: string;
    /** The model ID. */
    ModelId: string;
}
export interface DeletePortalInput {
    /** The portal identifier. */
    PortalId: string;
}
export interface DeletePortalProductInput {
    /** The portal product identifier. */
    PortalProductId: string;
}
export interface DeletePortalProductSharingPolicyInput {
    /** The portal product identifier. */
    PortalProductId: string;
}
export interface DeleteProductPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The portal product identifier. */
    ProductPageId: string;
}
export interface DeleteProductRestEndpointPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The product REST endpoint identifier. */
    ProductRestEndpointPageId: string;
}
export interface DeleteRouteInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
}
export interface DeleteRouteRequestParameterInput {
    /** The API identifier. */
    ApiId: string;
    /** The route request parameter key. */
    RequestParameterKey: string;
    /** The route ID. */
    RouteId: string;
}
export interface DeleteRouteResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
    /** The route response ID. */
    RouteResponseId: string;
}
export interface DeleteRouteSettingsInput {
    /** The API identifier. */
    ApiId: string;
    /** The route key. */
    RouteKey: string;
    /** The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. */
    StageName: string;
}
export interface DeleteRoutingRuleInput {
    /** The domain name. */
    DomainName: string;
    /** The routing rule ID. */
    RoutingRuleId: string;
    /** The domain name ID. */
    DomainNameId?: string;
}
export interface DeleteStageInput {
    /** The API identifier. */
    ApiId: string;
    /** The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. */
    StageName: string;
}
export interface DeleteVpcLinkInput {
    /** The ID of the VPC link. */
    VpcLinkId: string;
}
export interface DisablePortalInput {
    /** The portal identifier. */
    PortalId: string;
}
export interface ExportApiInput {
    /** The API identifier. */
    ApiId: string;
    /** The output type of the exported definition file. Valid values are JSON and YAML. */
    OutputType: string;
    /** The version of the API specification to use. OAS30, for OpenAPI 3.0, is the only supported value. */
    Specification: string;
    /** The version of the API Gateway export algorithm. API Gateway uses the latest version by default. Currently, the only supported version is 1.0. */
    ExportVersion?: string;
    /** Specifies whether to include API Gateway extensions in the exported API definition. API Gateway extensions are included by default. */
    IncludeExtensions?: boolean;
    /** The name of the API stage to export. If you don't specify this property, a representation of the latest API configuration is exported. */
    StageName?: string;
}
export interface GetApiInput {
    /** The API identifier. */
    ApiId: string;
}
export interface GetApiMappingInput {
    /** The API mapping identifier. */
    ApiMappingId: string;
    /** The domain name. */
    DomainName: string;
}
export interface GetApiMappingsInput {
    /** The domain name. */
    DomainName: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetApisInput {
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetAuthorizerInput {
    /** The API identifier. */
    ApiId: string;
    /** The authorizer identifier. */
    AuthorizerId: string;
}
export interface GetAuthorizersInput {
    /** The API identifier. */
    ApiId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetDeploymentInput {
    /** The API identifier. */
    ApiId: string;
    /** The deployment ID. */
    DeploymentId: string;
}
export interface GetDeploymentsInput {
    /** The API identifier. */
    ApiId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetDomainNameInput {
    /** The domain name. */
    DomainName: string;
}
export interface GetDomainNamesInput {
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetIntegrationInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
}
export interface GetIntegrationResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
    /** The integration response ID. */
    IntegrationResponseId: string;
}
export interface GetIntegrationResponsesInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetIntegrationsInput {
    /** The API identifier. */
    ApiId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetModelInput {
    /** The API identifier. */
    ApiId: string;
    /** The model ID. */
    ModelId: string;
}
export interface GetModelsInput {
    /** The API identifier. */
    ApiId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetModelTemplateInput {
    /** The API identifier. */
    ApiId: string;
    /** The model ID. */
    ModelId: string;
}
export interface GetPortalInput {
    /** The portal identifier. */
    PortalId: string;
}
export interface GetPortalProductInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The account ID of the resource owner of the portal product. */
    ResourceOwnerAccountId?: string;
}
export interface GetPortalProductSharingPolicyInput {
    /** The portal product identifier. */
    PortalProductId: string;
}
export interface GetProductPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The portal product identifier. */
    ProductPageId: string;
    /** The account ID of the resource owner of the portal product. */
    ResourceOwnerAccountId?: string;
}
export interface GetProductRestEndpointPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The product REST endpoint identifier. */
    ProductRestEndpointPageId: string;
    /** The query parameter to include raw display content. */
    IncludeRawDisplayContent?: string;
    /** The account ID of the resource owner of the portal product. */
    ResourceOwnerAccountId?: string;
}
export interface GetRouteInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
}
export interface GetRouteResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
    /** The route response ID. */
    RouteResponseId: string;
}
export interface GetRouteResponsesInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetRoutesInput {
    /** The API identifier. */
    ApiId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetRoutingRuleInput {
    /** The domain name. */
    DomainName: string;
    /** The routing rule ID. */
    RoutingRuleId: string;
    /** The domain name ID. */
    DomainNameId?: string;
}
export interface GetStageInput {
    /** The API identifier. */
    ApiId: string;
    /** The stage name. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. */
    StageName: string;
}
export interface GetStagesInput {
    /** The API identifier. */
    ApiId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface GetTagsInput {
    /** The resource ARN for the tag. */
    ResourceArn: string;
}
export interface GetVpcLinkInput {
    /** The ID of the VPC link. */
    VpcLinkId: string;
}
export interface GetVpcLinksInput {
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface ImportApiInput {
    /** The OpenAPI definition. Supported only for HTTP APIs. */
    Body: string;
    /** Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see Set the OpenAPI basePath Property. Suppo */
    Basepath?: string;
    /** Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered. */
    FailOnWarnings?: boolean;
}
export interface ListPortalProductsInput {
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
    /** The resource owner of the portal product. */
    ResourceOwner?: string;
}
export interface ListPortalsInput {
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface ListProductPagesInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
    /** The account ID of the resource owner of the portal product. */
    ResourceOwnerAccountId?: string;
}
export interface ListProductRestEndpointPagesInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: string;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
    /** The account ID of the resource owner of the portal product. */
    ResourceOwnerAccountId?: string;
}
export interface ListRoutingRulesInput {
    /** The domain name. */
    DomainName: string;
    /** The domain name ID. */
    DomainNameId?: string;
    /** The maximum number of elements to be returned for this resource. */
    MaxResults?: number;
    /** The next page of elements from this collection. Not valid for the last element of the collection. */
    NextToken?: string;
}
export interface PreviewPortalInput {
    /** The portal identifier. */
    PortalId: string;
}
/** The request body for the post operation. */
export interface PublishPortalInput {
    /** The portal identifier. */
    PortalId: string;
    /** The description of the portal. When the portal is published, this description becomes the last published description. */
    Description?: string;
}
/** The request body for the put operation. */
export interface PutPortalProductSharingPolicyInput {
    /** The product sharing policy. */
    PolicyDocument: string;
    /** The portal product identifier. */
    PortalProductId: string;
}
export interface PutRoutingRuleInput {
    /** The routing rule action. */
    Actions: RoutingRuleAction[];
    /** The routing rule condition. */
    Conditions: RoutingRuleCondition[];
    /** The domain name. */
    DomainName: string;
    /** The routing rule priority. */
    Priority: number;
    /** The routing rule ID. */
    RoutingRuleId: string;
    /** The domain name ID. */
    DomainNameId?: string;
}
export interface ReimportApiInput {
    /** The API identifier. */
    ApiId: string;
    /** The OpenAPI definition. Supported only for HTTP APIs. */
    Body: string;
    /** Specifies how to interpret the base path of the API during import. Valid values are ignore, prepend, and split. The default value is ignore. To learn more, see Set the OpenAPI basePath Property. Suppo */
    Basepath?: string;
    /** Specifies whether to rollback the API creation when a warning is encountered. By default, API creation continues if a warning is encountered. */
    FailOnWarnings?: boolean;
}
export interface ResetAuthorizersCacheInput {
    /** The API identifier. */
    ApiId: string;
    /** The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be $default. Maximum length is 128 characters. */
    StageName: string;
}
/** Creates a new Tag resource to represent a tag. */
export interface TagResourceInput {
    /** The resource ARN for the tag. */
    ResourceArn: string;
    /** The collection of tags. Each tag element is associated with a given resource. */
    Tags?: Record<string, string>;
}
export interface UntagResourceInput {
    /** The resource ARN for the tag. */
    ResourceArn: string;
    /** The Tag keys to delete */
    TagKeys: string[];
}
/** Updates an Api. */
export interface UpdateApiInput {
    /** The API identifier. */
    ApiId: string;
    /** An API key selection expression. Supported only for WebSocket APIs. See API Key Selection Expressions. */
    ApiKeySelectionExpression?: string;
    /** A CORS configuration. Supported only for HTTP APIs. */
    CorsConfiguration?: Cors;
    /** This property is part of quick create. It specifies the credentials required for the integration, if any. For a Lambda integration, three options are available. To specify an IAM Role for API Gateway  */
    CredentialsArn?: string;
    /** The description of the API. */
    Description?: string;
    /** Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com en */
    DisableExecuteApiEndpoint?: boolean;
    /** Avoid validating models when creating a deployment. Supported only for WebSocket APIs. */
    DisableSchemaValidation?: boolean;
    /** The IP address types that can invoke your API or domain name. */
    IpAddressType?: 'ipv4' | 'dualstack';
    /** The name of the API. */
    Name?: string;
    /** This property is part of quick create. If not specified, the route created using quick create is kept. Otherwise, this value replaces the route key of the quick create route. Additional routes may sti */
    RouteKey?: string;
    /** The route selection expression for the API. For HTTP APIs, the routeSelectionExpression must be ${request.method} ${request.path}. If not provided, this will be the default for HTTP APIs. This propert */
    RouteSelectionExpression?: string;
    /** This property is part of quick create. For HTTP integrations, specify a fully qualified URL. For Lambda integrations, specify a function ARN. The type of the integration will be HTTP_PROXY or AWS_PROX */
    Target?: string;
    /** A version identifier for the API. */
    Version?: string;
}
/** Updates an ApiMapping. */
export interface UpdateApiMappingInput {
    /** The API identifier. */
    ApiId: string;
    /** The API mapping identifier. */
    ApiMappingId: string;
    /** The domain name. */
    DomainName: string;
    /** The API mapping key. */
    ApiMappingKey?: string;
    /** The API stage. */
    Stage?: string;
}
/** Updates an Authorizer. */
export interface UpdateAuthorizerInput {
    /** The API identifier. */
    ApiId: string;
    /** The authorizer identifier. */
    AuthorizerId: string;
    /** Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource */
    AuthorizerCredentialsArn?: string;
    /** Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with AWS Lambda author */
    AuthorizerPayloadFormatVersion?: string;
    /** The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value */
    AuthorizerResultTtlInSeconds?: number;
    /** The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use JSON Web Tokens (supported only for HTTP APIs). */
    AuthorizerType?: 'REQUEST' | 'JWT';
    /** The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda function URI, for example, arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/ */
    AuthorizerUri?: string;
    /** Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must return an IAM policy. If enabled, the Lambda authorizer can return a boolean value ins */
    EnableSimpleResponses?: boolean;
    /** The identity source for which authorization is requested. For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the specified request parameters. The ide */
    IdentitySource?: string[];
    /** This parameter is not used. */
    IdentityValidationExpression?: string;
    /** Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP APIs. */
    JwtConfiguration?: JWTConfiguration;
    /** The name of the authorizer. */
    Name?: string;
}
/** Updates a Deployment. */
export interface UpdateDeploymentInput {
    /** The API identifier. */
    ApiId: string;
    /** The deployment ID. */
    DeploymentId: string;
    /** The description for the deployment resource. */
    Description?: string;
}
/** Updates a DomainName. */
export interface UpdateDomainNameInput {
    /** The domain name. */
    DomainName: string;
    /** The domain name configurations. */
    DomainNameConfigurations?: DomainNameConfiguration[];
    /** The mutual TLS authentication configuration for a custom domain name. */
    MutualTlsAuthentication?: MutualTlsAuthenticationInput;
    /** The routing mode. */
    RoutingMode?: 'API_MAPPING_ONLY' | 'ROUTING_RULE_ONLY' | 'ROUTING_RULE_THEN_API_MAPPING';
}
/** Updates an Integration. */
export interface UpdateIntegrationInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
    /** The ID of the VPC link for a private integration. Supported only for HTTP APIs. */
    ConnectionId?: string;
    /** The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resour */
    ConnectionType?: 'INTERNET' | 'VPC_LINK';
    /** Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_ */
    ContentHandlingStrategy?: 'CONVERT_TO_BINARY' | 'CONVERT_TO_TEXT';
    /** Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name */
    CredentialsArn?: string;
    /** The description of the integration */
    Description?: string;
    /** Specifies the integration's HTTP method type. */
    IntegrationMethod?: string;
    /** Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke. To learn more, see Integration subtype reference. */
    IntegrationSubtype?: string;
    /** The integration type of an integration. One of the following: AWS: for integrating the route or method request with an AWS service action, including the Lambda function-invoking action. With the Lambd */
    IntegrationType?: 'AWS' | 'HTTP' | 'MOCK' | 'HTTP_PROXY' | 'AWS_PROXY';
    /** For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Bala */
    IntegrationUri?: string;
    /** Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integra */
    PassthroughBehavior?: 'WHEN_NO_MATCH' | 'NEVER' | 'WHEN_NO_TEMPLATES';
    /** Specifies the format of the payload sent to an integration. Required for HTTP APIs. Supported values for Lambda proxy integrations are 1.0 and 2.0. For all other integrations, 1.0 is the only supporte */
    PayloadFormatVersion?: string;
    /** For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. The key is an integration request parameter name and the associated value is a */
    RequestParameters?: Record<string, string>;
    /** Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the  */
    RequestTemplates?: Record<string, string>;
    /** Supported only for HTTP APIs. You use response parameters to transform the HTTP response from a backend integration before returning the response to clients. Specify a key-value map from a selection k */
    ResponseParameters?: Record<string, Record<string, string>>;
    /** The template selection expression for the integration. */
    TemplateSelectionExpression?: string;
    /** Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP  */
    TimeoutInMillis?: number;
    /** The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs. */
    TlsConfig?: TlsConfigInput;
}
/** Updates an IntegrationResponses. */
export interface UpdateIntegrationResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The integration ID. */
    IntegrationId: string;
    /** The integration response ID. */
    IntegrationResponseId: string;
    /** Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: CONVERT_ */
    ContentHandlingStrategy?: 'CONVERT_TO_BINARY' | 'CONVERT_TO_TEXT';
    /** The integration response key. */
    IntegrationResponseKey?: string;
    /** A key-value map specifying response parameters that are passed to the method response from the backend. The key is a method response header parameter name and the mapped value is an integration respon */
    ResponseParameters?: Record<string, string>;
    /** The collection of response templates for the integration response as a string-to-string map of key-value pairs. Response templates are represented as a key/value map, with a content-type as the key an */
    ResponseTemplates?: Record<string, string>;
    /** The template selection expression for the integration response. Supported only for WebSocket APIs. */
    TemplateSelectionExpression?: string;
}
/** Updates a Model. */
export interface UpdateModelInput {
    /** The API identifier. */
    ApiId: string;
    /** The model ID. */
    ModelId: string;
    /** The content-type for the model, for example, "application/json". */
    ContentType?: string;
    /** The description of the model. */
    Description?: string;
    /** The name of the model. */
    Name?: string;
    /** The schema for the model. For application/json models, this should be JSON schema draft 4 model. */
    Schema?: string;
}
/** The request body for the patch operation. */
export interface UpdatePortalInput {
    /** The portal identifier. */
    PortalId: string;
    /** The authorization of the portal. */
    Authorization?: Authorization;
    /** Represents an endpoint configuration. */
    EndpointConfiguration?: EndpointConfigurationRequest;
    /** The ARNs of the portal products included in the portal. */
    IncludedPortalProductArns?: string[];
    /** The logo URI. */
    LogoUri?: string;
    /** Contains the content that is visible to portal consumers including the themes, display names, and description. */
    PortalContent?: PortalContent;
    /** The CloudWatch RUM app monitor name. */
    RumAppMonitorName?: string;
}
/** The request body for the patch operation. */
export interface UpdatePortalProductInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The description. */
    Description?: string;
    /** The displayName. */
    DisplayName?: string;
    /** The display order. */
    DisplayOrder?: DisplayOrder;
}
/** The request body for the patch operation. */
export interface UpdateProductPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The portal product identifier. */
    ProductPageId: string;
    /** The content of the product page. */
    DisplayContent?: DisplayContent;
}
/** The request body for the patch operation. */
export interface UpdateProductRestEndpointPageInput {
    /** The portal product identifier. */
    PortalProductId: string;
    /** The product REST endpoint identifier. */
    ProductRestEndpointPageId: string;
    /** The display content. */
    DisplayContent?: EndpointDisplayContent;
    /** The try it state of a product REST endpoint page. */
    TryItState?: 'ENABLED' | 'DISABLED';
}
/** Updates a Route. */
export interface UpdateRouteInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
    /** Specifies whether an API key is required for the route. Supported only for WebSocket APIs. */
    ApiKeyRequired?: boolean;
    /** The authorization scopes supported by this route. */
    AuthorizationScopes?: string[];
    /** The authorization type for the route. For WebSocket APIs, valid values are NONE for open access, AWS_IAM for using AWS IAM permissions, and CUSTOM for using a Lambda authorizer For HTTP APIs, valid va */
    AuthorizationType?: 'NONE' | 'AWS_IAM' | 'CUSTOM' | 'JWT';
    /** The identifier of the Authorizer resource to be associated with this route. The authorizer identifier is generated by API Gateway when you created the authorizer. */
    AuthorizerId?: string;
    /** The model selection expression for the route. Supported only for WebSocket APIs. */
    ModelSelectionExpression?: string;
    /** The operation name for the route. */
    OperationName?: string;
    /** The request models for the route. Supported only for WebSocket APIs. */
    RequestModels?: Record<string, string>;
    /** The request parameters for the route. Supported only for WebSocket APIs. */
    RequestParameters?: Record<string, ParameterConstraints>;
    /** The route key for the route. */
    RouteKey?: string;
    /** The route response selection expression for the route. Supported only for WebSocket APIs. */
    RouteResponseSelectionExpression?: string;
    /** The target for the route. */
    Target?: string;
}
/** Updates a RouteResponse. */
export interface UpdateRouteResponseInput {
    /** The API identifier. */
    ApiId: string;
    /** The route ID. */
    RouteId: string;
    /** The route response ID. */
    RouteResponseId: string;
    /** The model selection expression for the route response. Supported only for WebSocket APIs. */
    ModelSelectionExpression?: string;
    /** The response models for the route response. */
    ResponseModels?: Record<string, string>;
    /** The route response parameters. */
    ResponseParameters?: Record<string, ParameterConstraints>;
    /** The route response key. */
    RouteResponseKey?: string;
}
/** Updates a Stage. */
export interface UpdateStageInput {
    /** The API identifier. */
    ApiId: string;
    /** The stage name. Stage names can contain only alphanumeric characters, hyphens, and underscores, or be $default. Maximum length is 128 characters. */
    StageName: string;
    /** Settings for logging access in this stage. */
    AccessLogSettings?: AccessLogSettings;
    /** Specifies whether updates to an API automatically trigger a new deployment. The default value is false. */
    AutoDeploy?: boolean;
    /** The identifier of a client certificate for a Stage. */
    ClientCertificateId?: string;
    /** The default route settings for the stage. */
    DefaultRouteSettings?: RouteSettings;
    /** The deployment identifier for the API stage. Can't be updated if autoDeploy is enabled. */
    DeploymentId?: string;
    /** The description for the API stage. */
    Description?: string;
    /** Route settings for the stage. */
    RouteSettings?: Record<string, RouteSettings>;
    /** A map that defines the stage variables for a Stage. Variable names can have alphanumeric and underscore characters, and the values must match [A-Za-z0-9-._~:/?#&amp;=,]+. */
    StageVariables?: Record<string, string>;
}
/** Updates a VPC link. */
export interface UpdateVpcLinkInput {
    /** The ID of the VPC link. */
    VpcLinkId: string;
    /** The name of the VPC link. */
    Name?: string;
}
/** ApiGatewayV2 service binding for Step Functions SDK integrations. */
export declare class ApiGatewayV2 {
    constructor();
    createApi<T>(params: CreateApiInput): Promise<T>;
    createApiMapping<T>(params: CreateApiMappingInput): Promise<T>;
    createAuthorizer<T>(params: CreateAuthorizerInput): Promise<T>;
    createDeployment<T>(params: CreateDeploymentInput): Promise<T>;
    createDomainName<T>(params: CreateDomainNameInput): Promise<T>;
    createIntegration<T>(params: CreateIntegrationInput): Promise<T>;
    createIntegrationResponse<T>(params: CreateIntegrationResponseInput): Promise<T>;
    createModel<T>(params: CreateModelInput): Promise<T>;
    createPortal<T>(params: CreatePortalInput): Promise<T>;
    createPortalProduct<T>(params: CreatePortalProductInput): Promise<T>;
    createProductPage<T>(params: CreateProductPageInput): Promise<T>;
    createProductRestEndpointPage<T>(params: CreateProductRestEndpointPageInput): Promise<T>;
    createRoute<T>(params: CreateRouteInput): Promise<T>;
    createRouteResponse<T>(params: CreateRouteResponseInput): Promise<T>;
    createRoutingRule<T>(params: CreateRoutingRuleInput): Promise<T>;
    createStage<T>(params: CreateStageInput): Promise<T>;
    createVpcLink<T>(params: CreateVpcLinkInput): Promise<T>;
    deleteAccessLogSettings<T>(params: DeleteAccessLogSettingsInput): Promise<T>;
    deleteApi<T>(params: DeleteApiInput): Promise<T>;
    deleteApiMapping<T>(params: DeleteApiMappingInput): Promise<T>;
    deleteAuthorizer<T>(params: DeleteAuthorizerInput): Promise<T>;
    deleteCorsConfiguration<T>(params: DeleteCorsConfigurationInput): Promise<T>;
    deleteDeployment<T>(params: DeleteDeploymentInput): Promise<T>;
    deleteDomainName<T>(params: DeleteDomainNameInput): Promise<T>;
    deleteIntegration<T>(params: DeleteIntegrationInput): Promise<T>;
    deleteIntegrationResponse<T>(params: DeleteIntegrationResponseInput): Promise<T>;
    deleteModel<T>(params: DeleteModelInput): Promise<T>;
    deletePortal<T>(params: DeletePortalInput): Promise<T>;
    deletePortalProduct<T>(params: DeletePortalProductInput): Promise<T>;
    deletePortalProductSharingPolicy<T>(params: DeletePortalProductSharingPolicyInput): Promise<T>;
    deleteProductPage<T>(params: DeleteProductPageInput): Promise<T>;
    deleteProductRestEndpointPage<T>(params: DeleteProductRestEndpointPageInput): Promise<T>;
    deleteRoute<T>(params: DeleteRouteInput): Promise<T>;
    deleteRouteRequestParameter<T>(params: DeleteRouteRequestParameterInput): Promise<T>;
    deleteRouteResponse<T>(params: DeleteRouteResponseInput): Promise<T>;
    deleteRouteSettings<T>(params: DeleteRouteSettingsInput): Promise<T>;
    deleteRoutingRule<T>(params: DeleteRoutingRuleInput): Promise<T>;
    deleteStage<T>(params: DeleteStageInput): Promise<T>;
    deleteVpcLink<T>(params: DeleteVpcLinkInput): Promise<T>;
    disablePortal<T>(params: DisablePortalInput): Promise<T>;
    exportApi<T>(params: ExportApiInput): Promise<T>;
    getApi<T>(params: GetApiInput): Promise<T>;
    getApiMapping<T>(params: GetApiMappingInput): Promise<T>;
    getApiMappings<T>(params: GetApiMappingsInput): Promise<T>;
    getApis<T>(params: GetApisInput): Promise<T>;
    getAuthorizer<T>(params: GetAuthorizerInput): Promise<T>;
    getAuthorizers<T>(params: GetAuthorizersInput): Promise<T>;
    getDeployment<T>(params: GetDeploymentInput): Promise<T>;
    getDeployments<T>(params: GetDeploymentsInput): Promise<T>;
    getDomainName<T>(params: GetDomainNameInput): Promise<T>;
    getDomainNames<T>(params: GetDomainNamesInput): Promise<T>;
    getIntegration<T>(params: GetIntegrationInput): Promise<T>;
    getIntegrationResponse<T>(params: GetIntegrationResponseInput): Promise<T>;
    getIntegrationResponses<T>(params: GetIntegrationResponsesInput): Promise<T>;
    getIntegrations<T>(params: GetIntegrationsInput): Promise<T>;
    getModel<T>(params: GetModelInput): Promise<T>;
    getModels<T>(params: GetModelsInput): Promise<T>;
    getModelTemplate<T>(params: GetModelTemplateInput): Promise<T>;
    getPortal<T>(params: GetPortalInput): Promise<T>;
    getPortalProduct<T>(params: GetPortalProductInput): Promise<T>;
    getPortalProductSharingPolicy<T>(params: GetPortalProductSharingPolicyInput): Promise<T>;
    getProductPage<T>(params: GetProductPageInput): Promise<T>;
    getProductRestEndpointPage<T>(params: GetProductRestEndpointPageInput): Promise<T>;
    getRoute<T>(params: GetRouteInput): Promise<T>;
    getRouteResponse<T>(params: GetRouteResponseInput): Promise<T>;
    getRouteResponses<T>(params: GetRouteResponsesInput): Promise<T>;
    getRoutes<T>(params: GetRoutesInput): Promise<T>;
    getRoutingRule<T>(params: GetRoutingRuleInput): Promise<T>;
    getStage<T>(params: GetStageInput): Promise<T>;
    getStages<T>(params: GetStagesInput): Promise<T>;
    getTags<T>(params: GetTagsInput): Promise<T>;
    getVpcLink<T>(params: GetVpcLinkInput): Promise<T>;
    getVpcLinks<T>(params: GetVpcLinksInput): Promise<T>;
    importApi<T>(params: ImportApiInput): Promise<T>;
    listPortalProducts<T>(params: ListPortalProductsInput): Promise<T>;
    listPortals<T>(params: ListPortalsInput): Promise<T>;
    listProductPages<T>(params: ListProductPagesInput): Promise<T>;
    listProductRestEndpointPages<T>(params: ListProductRestEndpointPagesInput): Promise<T>;
    listRoutingRules<T>(params: ListRoutingRulesInput): Promise<T>;
    previewPortal<T>(params: PreviewPortalInput): Promise<T>;
    publishPortal<T>(params: PublishPortalInput): Promise<T>;
    putPortalProductSharingPolicy<T>(params: PutPortalProductSharingPolicyInput): Promise<T>;
    putRoutingRule<T>(params: PutRoutingRuleInput): Promise<T>;
    reimportApi<T>(params: ReimportApiInput): Promise<T>;
    resetAuthorizersCache<T>(params: ResetAuthorizersCacheInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateApi<T>(params: UpdateApiInput): Promise<T>;
    updateApiMapping<T>(params: UpdateApiMappingInput): Promise<T>;
    updateAuthorizer<T>(params: UpdateAuthorizerInput): Promise<T>;
    updateDeployment<T>(params: UpdateDeploymentInput): Promise<T>;
    updateDomainName<T>(params: UpdateDomainNameInput): Promise<T>;
    updateIntegration<T>(params: UpdateIntegrationInput): Promise<T>;
    updateIntegrationResponse<T>(params: UpdateIntegrationResponseInput): Promise<T>;
    updateModel<T>(params: UpdateModelInput): Promise<T>;
    updatePortal<T>(params: UpdatePortalInput): Promise<T>;
    updatePortalProduct<T>(params: UpdatePortalProductInput): Promise<T>;
    updateProductPage<T>(params: UpdateProductPageInput): Promise<T>;
    updateProductRestEndpointPage<T>(params: UpdateProductRestEndpointPageInput): Promise<T>;
    updateRoute<T>(params: UpdateRouteInput): Promise<T>;
    updateRouteResponse<T>(params: UpdateRouteResponseInput): Promise<T>;
    updateStage<T>(params: UpdateStageInput): Promise<T>;
    updateVpcLink<T>(params: UpdateVpcLinkInput): Promise<T>;
}
//# sourceMappingURL=ApiGatewayV2.d.ts.map