@pulumi/aws-native
Version:
The Pulumi AWS Cloud Control Provider enables you to build, deploy, and manage [any AWS resource that's supported by the AWS Cloud Control API](https://github.com/pulumi/pulumi-aws-native/blob/master/provider/cmd/pulumi-gen-aws-native/supported-types.txt)
491 lines • 18.9 kB
JavaScript
"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.RestApi = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* The ``AWS::ApiGateway::RestApi`` resource creates a REST API. For more information, see [restapi:create](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateRestApi.html) in the *Amazon API Gateway REST API Reference*.
* On January 1, 2016, the Swagger Specification was donated to the [OpenAPI initiative](https://docs.aws.amazon.com/https://www.openapis.org/), becoming the foundation of the OpenAPI Specification.
*
* ## Example Usage
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const description = config.require("description");
* const version = config.require("version");
* const type = config.require("type");
* const property = config.require("property");
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: apiName});
* const documentationPart = new aws_native.apigateway.DocumentationPart("documentationPart", {
* location: {
* type: aws_native.apigateway.DocumentationPartLocationType[type],
* },
* restApiId: restApi.id,
* properties: property,
* });
* const documentationVersion = new aws_native.apigateway.DocumentationVersion("documentationVersion", {
* description: description,
* documentationVersion: version,
* restApiId: restApi.id,
* }, {
* dependsOn: [documentationPart],
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const description = config.require("description");
* const version = config.require("version");
* const type = config.require("type");
* const property = config.require("property");
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: apiName});
* const documentationPart = new aws_native.apigateway.DocumentationPart("documentationPart", {
* location: {
* type: aws_native.apigateway.DocumentationPartLocationType[type],
* },
* restApiId: restApi.id,
* properties: property,
* });
* const documentationVersion = new aws_native.apigateway.DocumentationVersion("documentationVersion", {
* description: description,
* documentationVersion: version,
* restApiId: restApi.id,
* }, {
* dependsOn: [documentationPart],
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: "myRestApi"});
* const gatewayResponse = new aws_native.apigateway.GatewayResponse("gatewayResponse", {
* responseParameters: {
* "gatewayresponse.header.Access-Control-Allow-Origin": "'*'",
* "gatewayresponse.header.Access-Control-Allow-Headers": "'*'",
* },
* responseType: "MISSING_AUTHENTICATION_TOKEN",
* restApiId: restApi.id,
* statusCode: "404",
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: "myRestApi"});
* const gatewayResponse = new aws_native.apigateway.GatewayResponse("gatewayResponse", {
* responseParameters: {
* "gatewayresponse.header.Access-Control-Allow-Origin": "'*'",
* "gatewayresponse.header.Access-Control-Allow-Headers": "'*'",
* },
* responseType: "MISSING_AUTHENTICATION_TOKEN",
* restApiId: restApi.id,
* statusCode: "404",
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const responseParameter1 = config.require("responseParameter1");
* const responseParameter2 = config.require("responseParameter2");
* const responseType = config.require("responseType");
* const statusCode = config.require("statusCode");
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: apiName});
* const gatewayResponse = new aws_native.apigateway.GatewayResponse("gatewayResponse", {
* responseParameters: {
* "gatewayresponse.header.k1": responseParameter1,
* "gatewayresponse.header.k2": responseParameter2,
* },
* responseType: responseType,
* restApiId: restApi.id,
* statusCode: statusCode,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const responseParameter1 = config.require("responseParameter1");
* const responseParameter2 = config.require("responseParameter2");
* const responseType = config.require("responseType");
* const statusCode = config.require("statusCode");
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: apiName});
* const gatewayResponse = new aws_native.apigateway.GatewayResponse("gatewayResponse", {
* responseParameters: {
* "gatewayresponse.header.k1": responseParameter1,
* "gatewayresponse.header.k2": responseParameter2,
* },
* responseType: responseType,
* restApiId: restApi.id,
* statusCode: statusCode,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const contentHandling = config.require("contentHandling");
* const operationName = config.get("operationName") || "testoperationName";
* const restApiName = config.get("restApiName") || "testrestApiName";
* const validatorName = config.get("validatorName") || "testvalidatorName";
* const validateRequestBody = config.get("validateRequestBody") || "testvalidateRequestBody";
* const validateRequestParameters = config.get("validateRequestParameters") || true;
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: restApiName});
* const requestValidator = new aws_native.apigateway.RequestValidator("requestValidator", {
* name: validatorName,
* restApiId: restApi.id,
* validateRequestBody: validateRequestBody,
* validateRequestParameters: validateRequestParameters,
* });
* const method = new aws_native.apigateway.Method("method", {
* httpMethod: "POST",
* resourceId: restApi.rootResourceId,
* restApiId: restApi.id,
* authorizationType: "NONE",
* integration: {
* type: aws_native.apigateway.MethodIntegrationType.Mock,
* contentHandling: aws_native.apigateway.MethodIntegrationContentHandling[contentHandling],
* integrationResponses: [{
* contentHandling: aws_native.apigateway.MethodIntegrationResponseContentHandling[contentHandling],
* statusCode: "400",
* }],
* },
* requestValidatorId: requestValidator.id,
* operationName: operationName,
* });
* export const rootResourceId = restApi.rootResourceId;
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const contentHandling = config.require("contentHandling");
* const operationName = config.get("operationName") || "testoperationName";
* const restApiName = config.get("restApiName") || "testrestApiName";
* const validatorName = config.get("validatorName") || "testvalidatorName";
* const validateRequestBody = config.get("validateRequestBody") || "testvalidateRequestBody";
* const validateRequestParameters = config.get("validateRequestParameters") || true;
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: restApiName});
* const requestValidator = new aws_native.apigateway.RequestValidator("requestValidator", {
* name: validatorName,
* restApiId: restApi.id,
* validateRequestBody: validateRequestBody,
* validateRequestParameters: validateRequestParameters,
* });
* const method = new aws_native.apigateway.Method("method", {
* httpMethod: "POST",
* resourceId: restApi.rootResourceId,
* restApiId: restApi.id,
* authorizationType: "NONE",
* integration: {
* type: aws_native.apigateway.MethodIntegrationType.Mock,
* contentHandling: aws_native.apigateway.MethodIntegrationContentHandling[contentHandling],
* integrationResponses: [{
* contentHandling: aws_native.apigateway.MethodIntegrationResponseContentHandling[contentHandling],
* statusCode: "400",
* }],
* },
* requestValidatorId: requestValidator.id,
* operationName: operationName,
* });
* export const rootResourceId = restApi.rootResourceId;
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const validatorName = config.require("validatorName");
* const validateRequestBody = config.require("validateRequestBody");
* const validateRequestParameters = config.require("validateRequestParameters");
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: apiName});
* const requestValidator = new aws_native.apigateway.RequestValidator("requestValidator", {
* name: validatorName,
* restApiId: restApi.id,
* validateRequestBody: validateRequestBody,
* validateRequestParameters: validateRequestParameters,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const validatorName = config.require("validatorName");
* const validateRequestBody = config.require("validateRequestBody");
* const validateRequestParameters = config.require("validateRequestParameters");
* const restApi = new aws_native.apigateway.RestApi("restApi", {name: apiName});
* const requestValidator = new aws_native.apigateway.RequestValidator("requestValidator", {
* name: validatorName,
* restApiId: restApi.id,
* validateRequestBody: validateRequestBody,
* validateRequestParameters: validateRequestParameters,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const type = config.require("type");
* const myRestApi = new aws_native.apigateway.RestApi("myRestApi", {
* endpointConfiguration: {
* types: [type],
* },
* name: apiName,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiName = config.require("apiName");
* const type = config.require("type");
* const myRestApi = new aws_native.apigateway.RestApi("myRestApi", {
* endpointConfiguration: {
* types: [type],
* },
* name: apiName,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const restApi = new aws_native.apigateway.RestApi("restApi", {
* body: {
* swagger: 2,
* info: {
* version: "0.0.1",
* title: "test",
* },
* basePath: "/pete",
* schemes: ["https"],
* definitions: {
* empty: {
* type: "object",
* },
* },
* },
* name: "myApi",
* parameters: {
* endpointConfigurationTypes: "REGIONAL",
* },
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const restApi = new aws_native.apigateway.RestApi("restApi", {
* body: {
* swagger: 2,
* info: {
* version: "0.0.1",
* title: "test",
* },
* basePath: "/pete",
* schemes: ["https"],
* definitions: {
* empty: {
* type: "object",
* },
* },
* },
* name: "myApi",
* parameters: {
* endpointConfigurationTypes: "REGIONAL",
* },
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiKeySourceType = config.require("apiKeySourceType");
* const apiName = config.require("apiName");
* const binaryMediaType1 = config.require("binaryMediaType1");
* const binaryMediaType2 = config.require("binaryMediaType2");
* const minimumCompressionSize = config.require("minimumCompressionSize");
* const myRestApi = new aws_native.apigateway.RestApi("myRestApi", {
* apiKeySourceType: apiKeySourceType,
* binaryMediaTypes: [
* binaryMediaType1,
* binaryMediaType2,
* ],
* minimumCompressionSize: minimumCompressionSize,
* name: apiName,
* });
*
* ```
* ### Example
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws_native from "@pulumi/aws-native";
*
* const config = new pulumi.Config();
* const apiKeySourceType = config.require("apiKeySourceType");
* const apiName = config.require("apiName");
* const binaryMediaType1 = config.require("binaryMediaType1");
* const binaryMediaType2 = config.require("binaryMediaType2");
* const minimumCompressionSize = config.require("minimumCompressionSize");
* const myRestApi = new aws_native.apigateway.RestApi("myRestApi", {
* apiKeySourceType: apiKeySourceType,
* binaryMediaTypes: [
* binaryMediaType1,
* binaryMediaType2,
* ],
* minimumCompressionSize: minimumCompressionSize,
* name: apiName,
* });
*
* ```
*/
class RestApi extends pulumi.CustomResource {
/**
* Get an existing RestApi resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, opts) {
return new RestApi(name, undefined, { ...opts, id: id });
}
/**
* Returns true if the given object is an instance of RestApi. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === RestApi.__pulumiType;
}
/**
* Create a RestApi resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name, args, opts) {
let resourceInputs = {};
opts = opts || {};
if (!opts.id) {
resourceInputs["apiKeySourceType"] = args?.apiKeySourceType;
resourceInputs["binaryMediaTypes"] = args?.binaryMediaTypes;
resourceInputs["body"] = args?.body;
resourceInputs["bodyS3Location"] = args?.bodyS3Location;
resourceInputs["cloneFrom"] = args?.cloneFrom;
resourceInputs["description"] = args?.description;
resourceInputs["disableExecuteApiEndpoint"] = args?.disableExecuteApiEndpoint;
resourceInputs["endpointAccessMode"] = args?.endpointAccessMode;
resourceInputs["endpointConfiguration"] = args?.endpointConfiguration;
resourceInputs["failOnWarnings"] = args?.failOnWarnings;
resourceInputs["minimumCompressionSize"] = args?.minimumCompressionSize;
resourceInputs["mode"] = args?.mode;
resourceInputs["name"] = args?.name;
resourceInputs["parameters"] = args?.parameters;
resourceInputs["policy"] = args?.policy;
resourceInputs["securityPolicy"] = args?.securityPolicy;
resourceInputs["tags"] = args?.tags;
resourceInputs["restApiId"] = undefined /*out*/;
resourceInputs["rootResourceId"] = undefined /*out*/;
}
else {
resourceInputs["apiKeySourceType"] = undefined /*out*/;
resourceInputs["binaryMediaTypes"] = undefined /*out*/;
resourceInputs["body"] = undefined /*out*/;
resourceInputs["bodyS3Location"] = undefined /*out*/;
resourceInputs["cloneFrom"] = undefined /*out*/;
resourceInputs["description"] = undefined /*out*/;
resourceInputs["disableExecuteApiEndpoint"] = undefined /*out*/;
resourceInputs["endpointAccessMode"] = undefined /*out*/;
resourceInputs["endpointConfiguration"] = undefined /*out*/;
resourceInputs["failOnWarnings"] = undefined /*out*/;
resourceInputs["minimumCompressionSize"] = undefined /*out*/;
resourceInputs["mode"] = undefined /*out*/;
resourceInputs["name"] = undefined /*out*/;
resourceInputs["parameters"] = undefined /*out*/;
resourceInputs["policy"] = undefined /*out*/;
resourceInputs["restApiId"] = undefined /*out*/;
resourceInputs["rootResourceId"] = undefined /*out*/;
resourceInputs["securityPolicy"] = undefined /*out*/;
resourceInputs["tags"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(RestApi.__pulumiType, name, resourceInputs, opts);
}
}
exports.RestApi = RestApi;
/** @internal */
RestApi.__pulumiType = 'aws-native:apigateway:RestApi';
//# sourceMappingURL=restApi.js.map