Goodbye, custom AWS provider code
😥
Preparing to RI the tfbridge branch into master.
This commit is contained in:
parent
10dc68090d
commit
232ed7e248
|
@ -22,7 +22,6 @@ install:
|
|||
- godep restore -v
|
||||
- pushd cmd/lumijs/ && yarn install && popd
|
||||
- pushd lib/lumi/ && yarn install && popd
|
||||
- pushd lib/aws/pack/ && yarn install && popd
|
||||
before_script:
|
||||
- export PATH=$TRAVIS_BUILD_DIR/cmd/lumijs:$PATH
|
||||
- export LUMIROOT=~/.lumi
|
||||
|
|
14
Makefile
14
Makefile
|
@ -13,10 +13,10 @@ GOMETALINTER=${GOMETALINTERBIN} --config=Gometalinter.json
|
|||
default: banner vet test install lint_quiet
|
||||
|
||||
.PHONY: all
|
||||
all: banner_all vet test install lint_quiet lumijs lumirtpkg lumijspkg lumipkg awspkg
|
||||
all: banner_all vet test install lint_quiet lumijs lumirtpkg lumijspkg lumipkg
|
||||
|
||||
.PHONY: nightly
|
||||
nightly: banner_all vet test install lint_quiet lumijs lumirtpkg lumijspkg lumipkg awspkg examples gocover
|
||||
nightly: banner_all vet test install lint_quiet lumijs lumirtpkg lumijspkg lumipkg examples gocover
|
||||
|
||||
.PHONY: banner
|
||||
banner:
|
||||
|
@ -75,21 +75,13 @@ test:
|
|||
lumijs:
|
||||
@cd ./cmd/lumijs && $(MAKE)
|
||||
|
||||
.PHONY: lumirtpkg
|
||||
lumirtpkg:
|
||||
@cd ./lib/lumirt && $(MAKE)
|
||||
|
||||
.PHONY: lumijspkg
|
||||
lumijspkg:
|
||||
@cd ./lib/lumijs && $(MAKE)
|
||||
|
||||
.PHONY: lumipkg
|
||||
lumipkg:
|
||||
@cd ./lib/lumi && $(MAKE)
|
||||
|
||||
.PHONY: awspkg
|
||||
awspkg:
|
||||
@cd ./lib/aws && $(MAKE)
|
||||
.PHONY: lumirtpkg lumijspkg lumipkg
|
||||
|
||||
publish:
|
||||
@$(ECHO) "\033[0;32mPublishing current release:\033[0m"
|
||||
|
|
2
lib/aws/.gitignore
vendored
2
lib/aws/.gitignore
vendored
|
@ -1,2 +0,0 @@
|
|||
/bin/
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"Deadline": "5m",
|
||||
"DisableAll": true,
|
||||
"Enable": [
|
||||
"aligncheck",
|
||||
"deadcode",
|
||||
"errcheck",
|
||||
"gas",
|
||||
"goconst",
|
||||
"gofmt",
|
||||
"golint",
|
||||
"gosimple",
|
||||
"ineffassign",
|
||||
"interfacer",
|
||||
"lll",
|
||||
"misspell",
|
||||
"staticcheck",
|
||||
"structcheck",
|
||||
"unconvert",
|
||||
"varcheck",
|
||||
"vet",
|
||||
"vetshadow"
|
||||
],
|
||||
"LineLength": 120
|
||||
}
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
SHELL=/bin/bash
|
||||
.SHELLFLAGS=-e
|
||||
|
||||
GOPKGS = $(shell go list ./provider/... | grep -v /vendor/)
|
||||
LUMIROOT ?= /usr/local/lumi
|
||||
LUMILIB = ${LUMIROOT}/packs
|
||||
THISLIB = ${LUMILIB}/aws
|
||||
TESTPARALLELISM = 10
|
||||
|
||||
ECHO=echo -e
|
||||
GOMETALINTERBIN=gometalinter
|
||||
GOMETALINTER=${GOMETALINTERBIN} --config=Gometalinter.json
|
||||
|
||||
.PHONY: default
|
||||
default: banner vet build test install lint_quiet
|
||||
|
||||
.PHONY: banner
|
||||
banner:
|
||||
@$(ECHO) "\033[1;37m================\033[0m"
|
||||
@$(ECHO) "\033[1;37mLumi AWS Package\033[0m"
|
||||
@$(ECHO) "\033[1;37m================\033[0m"
|
||||
|
||||
.PHONY: gen
|
||||
gen:
|
||||
@$(ECHO) "\033[0;32mGEN:\033[0m"
|
||||
lumidl \
|
||||
aws idl/ \
|
||||
--recursive \
|
||||
--out-pack=pack/ \
|
||||
--out-rpc=rpc/
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf ./bin
|
||||
rm -rf ${THISLIB}
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
@$(ECHO) "\033[0;32mBUILD:\033[0m"
|
||||
cd pack/ && yarn link @lumi/lumirt @lumi/lumijs @lumi/lumi # ensure we resolve to Lumi's stdlib.
|
||||
cd pack/ && lumijs # compile the LumiPack
|
||||
cd pack/ && lumi pack verify # ensure the pack verifies
|
||||
cp -R pack/.lumi/bin/ bin/ # copy the pack to our bin dir
|
||||
go version
|
||||
cd provider/ && go build -i -o ../bin/lumi-resource-aws # compile the resource provider
|
||||
|
||||
.PHONY: install
|
||||
install: build
|
||||
@$(ECHO) "\033[0;32mINSTALL:\033[0m [${LUMILIB}]"
|
||||
cd pack/ && yarn link # ensure NPM references resolve locally.
|
||||
mkdir -p ${LUMILIB} # ensure the machine-wide library dir exists.
|
||||
cp -R ./bin/ ${THISLIB} # copy to the standard library location.
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
@$(ECHO) "\033[0;32mLINT:\033[0m"
|
||||
./pack/node_modules/.bin/tslint './pack/**/*.ts' --exclude='./pack/node_modules/**'
|
||||
which ${GOMETALINTERBIN} >/dev/null
|
||||
$(GOMETALINTER) ./provider/... | sort ; exit "$${PIPESTATUS[0]}"
|
||||
|
||||
# In quiet mode, suppress some messages.
|
||||
# - "or be unexported": TODO[pulumi/lumi#191]: will fix when we write all of our API docs
|
||||
# - "cyclomatic complexity" (in config): TODO[pulumi/lumi#259]: need to fix a bunch of complex functions.
|
||||
LINT_SUPPRESS="or be unexported"
|
||||
|
||||
.PHONY: lint_quiet
|
||||
lint_quiet:
|
||||
@$(ECHO) "\033[0;32mLINT (quiet):\033[0m"
|
||||
./pack/node_modules/.bin/tslint './pack/**/*.ts' --exclude='./pack/node_modules/**'
|
||||
which ${GOMETALINTERBIN} >/dev/null
|
||||
$(GOMETALINTER) ./provider/... | grep -vE ${LINT_SUPPRESS} | sort ; exit $$(($${PIPESTATUS[1]}-1))
|
||||
@$(ECHO) "\033[0;33mgolint was run quietly; to run with noisy errors, run 'make lint'\033[0m"
|
||||
|
||||
.PHONY: vet
|
||||
vet:
|
||||
@$(ECHO) "\033[0;32mVET:\033[0m"
|
||||
go tool vet -printf=false provider/
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
@$(ECHO) "\033[0;32mTEST:\033[0m"
|
||||
go test -cover -parallel ${TESTPARALLELISM} ${GOPKGS}
|
||||
|
||||
.PHONY: verify
|
||||
verify: gen
|
||||
$(shell git diff --quiet .)
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# lib/aws
|
||||
|
||||
This directory contains the primitive stacks for AWS resources.
|
||||
|
||||
Eventually, this should likely move out into its own standalone Git repo.
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
|
||||
"github.com/pulumi/lumi/lib/aws/idl/iam"
|
||||
)
|
||||
|
||||
// The Account resource specifies the AWS Identity and Access Management (IAM) role that Amazon API
|
||||
// Gateway (API Gateway) uses to write API logs to Amazon CloudWatch Logs (CloudWatch Logs).
|
||||
type Account struct {
|
||||
idl.NamedResource
|
||||
// CloudWatchRole is the IAM role that has write access to CloudWatch Logs in your account.
|
||||
CloudWatchRole *iam.Role `lumi:"cloudWatchRole,optional"`
|
||||
}
|
|
@ -1,30 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The APIKey resource creates a unique key that you can distribute to clients who are executing Amazon
|
||||
// API Gateway (API Gateway) Method resources that require an API key. To specify which API key clients must use, map
|
||||
// the API key with the RestApi and Stage resources that include the methods requiring a key.
|
||||
type APIKey struct {
|
||||
idl.NamedResource
|
||||
// KeyName is a name for the API key. If you don't specify a name, a unique physical ID is generated and used.
|
||||
KeyName *string `lumi:"keyName,replaces,optional"`
|
||||
// Description is a description of the purpose of the API key.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// Enabled indicates whether the API key can be used by clients.
|
||||
Enabled *bool `lumi:"enabled,optional"`
|
||||
// StageKeys is a list of stages to associated with this API key.
|
||||
StageKeys *StageKey `lumi:"stageKeys,optional"`
|
||||
}
|
||||
|
||||
type StageKey struct {
|
||||
// RestAPI is a RestAPI resource that includes the stage with which you want to associate the API key.
|
||||
RestAPI *RestAPI `lumi:"restAPI,optional"`
|
||||
// Stage is the stage with which to associate the API key. The stage must be included in the RestAPI
|
||||
// resource that you specified in the RestAPI property.
|
||||
Stage *Stage `lumi:"stage,optional"`
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
|
||||
"github.com/pulumi/lumi/lib/aws/idl/iam"
|
||||
)
|
||||
|
||||
// The Authorizer resource creates an authorization layer that Amazon API Gateway (API Gateway) activates for
|
||||
// methods that have authorization enabled. API Gateway activates the authorizer when a client calls those methods.
|
||||
type Authorizer struct {
|
||||
idl.NamedResource
|
||||
// Type is the type of authorizer.
|
||||
Type AuthorizerType `lumi:"type"`
|
||||
// AuthorizerCredentials are the credentials required for the authorizer. To specify an AWS Identity and Access
|
||||
// Management (IAM) role that API Gateway assumes, specify the role. To use resource-based permissions on the AWS
|
||||
// Lambda (Lambda) function, specify null.
|
||||
AuthorizerCredentials *iam.Role `lumi:"authorizerCredentials,optional"`
|
||||
// AuthorizerResultTTLInSeconds is the time-to-live (TTL) period, in seconds, that specifies how long API Gateway
|
||||
// caches authorizer results. If you specify a value greater than `0`, API Gateway caches the authorizer responses.
|
||||
// By default, API Gateway sets this property to `300`. The maximum value is `3600`, or 1 hour.
|
||||
AuthorizerResultTTLInSeconds *float64 `lumi:"authorizerResultTTLInSeconds,optional"`
|
||||
// AuthorizerURI is the authorizer's Uniform Resource Identifier (URI). If you specify `TOKEN` for the authorizer's
|
||||
// type property, specify a Lambda function URI, which has the form `arn:aws:apigateway:region:lambda:path/path`.
|
||||
// The path usually has the form `/2015-03-31/functions/LambdaFunctionARN/invocations`.
|
||||
AuthorizerURI *string `lumi:"authorizerURI,optional"`
|
||||
// IdentitySource is the source of the identity in an incoming request. If you specify `TOKEN` for the authorizer's
|
||||
// type property, specify a mapping expression. The custom header mapping expression has the form
|
||||
// `method.request.header.name`, where name is the name of a custom authorization header that clients submit as part
|
||||
// of their requests.
|
||||
IdentitySource *string `lumi:"identitySource,optional"`
|
||||
// IdentityValidationExpression is a validation expression for the incoming identity. If you specify `TOKEN` for
|
||||
// the authorizer's type property, specify a regular expression. API Gateway uses the expression to attempt to
|
||||
// match the incoming client token, and proceeds if the token matches. If the token doesn't match, API Gateway
|
||||
// responds with a 401 (unauthorized request) error code.
|
||||
IdentityValidationExpression *string `lumi:"identityValidationExpression,optional"`
|
||||
// providers is a list of the Amazon Cognito user pools to associate with this authorizer.
|
||||
Providers *[]idl.Resource/*TODO[pulumi/lumi#217]: cognito.UserPool*/ `lumi:"providers,optional"`
|
||||
// RestAPI is the resource in which API Gateway creates the authorizer.
|
||||
RestAPI *RestAPI `lumi:"restAPI,optional"`
|
||||
}
|
||||
|
||||
type AuthorizerType string
|
||||
|
||||
const (
|
||||
TokenAuthorizer AuthorizerType = "TOKEN" // a custom authorizer that uses a Lambda function.
|
||||
CognitoAuthorizer AuthorizerType = "COGNITO_USER_POOLS" // an authorizer that uses Amazon Cognito user pools.
|
||||
)
|
|
@ -1,21 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The BasePathMapping resource creates a base path that clients who call your Amazon API Gateway API
|
||||
// must use in the invocation URL.
|
||||
type BasePathMapping struct {
|
||||
idl.NamedResource
|
||||
// DomainName is the domain name for the base path mapping.
|
||||
DomainName string `lumi:"domainName"`
|
||||
// RestAPI is the API to map.
|
||||
RestAPI *RestAPI `lumi:"restAPI"`
|
||||
// BasePath is the base path that callers of the API must provider in the URL after the domain name.
|
||||
BasePath *string `lumi:"basePath,optional"`
|
||||
// Stage is the mapping's API stage.
|
||||
Stage *Stage `lumi:"stage,optional"`
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The ClientCertificate resource creates a client certificate that Amazon API Gateway (API Gateway)
|
||||
// uses to configure client-side SSL authentication for sending requests to the integration endpoint.
|
||||
type ClientCertificate struct {
|
||||
idl.NamedResource
|
||||
// Description is a description of the client certificate.
|
||||
Description *string `lumi:"description,optional"`
|
||||
}
|
|
@ -1,22 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Deployment resource deploys an Amazon API Gateway (API Gateway) RestAPI resource to a stage so
|
||||
// that clients can call the API over the Internet. The stage acts as an environment.
|
||||
type Deployment struct {
|
||||
idl.NamedResource
|
||||
// restAPI is the RestAPI resource to deploy.
|
||||
RestAPI *RestAPI `lumi:"restAPI,replaces"`
|
||||
// description is a description of the purpose of the API Gateway deployment.
|
||||
Description *string `lumi:"description,optional"`
|
||||
|
||||
// The identifier for the deployment resource.
|
||||
ID string `lumi:"id,out"`
|
||||
// The date and time that the deployment resource was created.
|
||||
CreatedDate string `lumi:"createdDate,out"`
|
||||
}
|
|
@ -1,215 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Method resource creates Amazon API Gateway (API Gateway) methods that define the parameters and
|
||||
// body that clients must send in their requests.
|
||||
type Method struct {
|
||||
idl.NamedResource
|
||||
// The HTTP method that clients will use to call this method.
|
||||
HTTPMethod string `lumi:"httpMethod"`
|
||||
// The API Gateway resource. For root resource methods, specify the RestAPI's root resource ID.
|
||||
APIResource *Resource `lumi:"apiResource"`
|
||||
// The RestAPI resource in which API Gateway creates the method.
|
||||
RestAPI *RestAPI `lumi:"restAPI"`
|
||||
// Indicates whether the method requires clients to submit a valid API key.
|
||||
APIKeyRequired *bool `lumi:"apiKeyRequired,optional"`
|
||||
// The method's authorization type. Required to be "CUSTOM" if you specify an authorizer.
|
||||
AuthorizationType *AuthorizationType `lumi:"authorizationType,optional"`
|
||||
// The authorizer to use on this method. If you specify this, make sure authorizationType is set to "CUSTOM".
|
||||
Authorizer *Authorizer `lumi:"authorizer,optional"`
|
||||
// The back-end system that the method calls when it receives a request.
|
||||
Integration *Integration `lumi:"integration,optional"`
|
||||
// The responses that can be sent to the client who calls the method.
|
||||
MethodResponses *[]MethodResponse `lumi:"methodResponses,optional"`
|
||||
// The resources used for the response's content type. Specify response models as key-value pairs, with a content
|
||||
// type (string) as the key and a Model resource as the value.
|
||||
RequestModels *map[string]*Model `lumi:"requestModels,optional"`
|
||||
// Request parameters that API Gateway accepts. Specify request parameters as key-value pairs (string-to-Boolean
|
||||
// map), with a source as the key and a Boolean as the value. The Boolean specifies whether a parameter is
|
||||
// required. A source must match the following format `method.request.location.name`, where the `location` is
|
||||
// `querystring`, `path`, or `header`, and `name` is a valid, unique parameter name.
|
||||
RequestParameters *map[string]bool `lumi:"requestParameters,optional"`
|
||||
}
|
||||
|
||||
// The method's authorization type.
|
||||
type AuthorizationType string
|
||||
|
||||
const (
|
||||
NoAuthorization AuthorizationType = "NONE" // open access.
|
||||
AWSIAMAuthorization AuthorizationType = "AWS_IAM" // using AWS IAM permissions.
|
||||
CustomAuthorization AuthorizationType = "CUSTOM" // a custom authorizer.
|
||||
CognitoAuthorization AuthorizationType = "COGNITO_USER_POOLS" // a Cognito user pool.
|
||||
)
|
||||
|
||||
// Integration specifies information about the target back end that an Amazon API Gateway method calls.
|
||||
type Integration struct {
|
||||
// The type of back end your method is running.
|
||||
Type IntegrationType `lumi:"type"`
|
||||
// A list of request parameters whose values API Gateway will cache.
|
||||
CacheKeyParameters *[]string `lumi:"cacheKeyParameters,optional"`
|
||||
// An API-specific tag group of related cached parameters.
|
||||
CacheNamespace *string `lumi:"cacheNamespace,optional"`
|
||||
// The credentials required for the integration. To specify an AWS Identity and Access Management (IAM) role that
|
||||
// API Gateway assumes, specify the role's Amazon Resource Name (ARN). To require that the caller's identity be
|
||||
// passed through from the request, specify arn:aws:iam::*:user/*.
|
||||
//
|
||||
// To use resource-based permissions on the AWS Lambda (Lambda) function, don't specify this property. Use the
|
||||
// AWS::Lambda::Permission resource to permit API Gateway to call the function. For more information, see
|
||||
// http://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#access-control-resource-based-example-apigateway-invoke-function.
|
||||
Credentials *string `lumi:"credentials,optional"`
|
||||
// The integration's HTTP method type. This is required for all types except for "MOCK".
|
||||
IntegrationHTTPMethod *string `lumi:"integrationHTTPMethod,optional"`
|
||||
// The response that API Gateway provides after a method's back end completes processing a request. API Gateway
|
||||
// intercepts the back end's response so that you can control how API Gateway surfaces back-end responses. For
|
||||
// example, you can map the back-end status codes to codes that you define.
|
||||
IntegrationResponse *[]IntegrationResponse `lumi:"integrationResponse,optional"`
|
||||
// Indicates when API Gateway passes requests to the targeted back end. This behavior depends on the request's
|
||||
// Content-Type header and whether you defined a mapping template for it.
|
||||
PassthroughBehavior *PassthroughBehavior `lumi:"passthroughBehavior,optional"`
|
||||
// The request parameters that API Gateway sends with the back-end request. Specify request parameters as key-value
|
||||
// pairs (string-to-string maps), with a destination as the key and a source as the value.
|
||||
//
|
||||
// Specify the destination using the following pattern `integration.request.location.name`, where `location` is
|
||||
// `querystring`, `path`, or `header`, and `name` is a valid, unique parameter name.
|
||||
//
|
||||
// The source must be an existing method request parameter or a static value. Static values must be enclosed in
|
||||
// single quotation marks and pre-encoded based on their destination in the request.
|
||||
RequestParameters *map[string]string `lumi:"requestParameters,optional"`
|
||||
// A map of Apache Velocity templates that are applied on the request payload. The template that API Gateway uses
|
||||
// is based on the value of the Content-Type header sent by the client. The content type value is the key, and the
|
||||
// template is the value (specified as a string). For more information about templates, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html.
|
||||
RequestTemplates *map[string]string `lumi:"requestTemplates,optional"`
|
||||
// The integration's Uniform Resource Identifier (URI).
|
||||
//
|
||||
// If you specify "HTTP" for the Type property, specify the API endpoint URL.
|
||||
//
|
||||
// If you specify "MOCK" for the Type property, don't specify this property.
|
||||
//
|
||||
// If you specify "AWS" for the Type property, specify an AWS service that follows the form:
|
||||
// `arn:aws:apigateway:region:subdomain.service|service:path|action/service_api`. For example, a Lambda function
|
||||
// URI follows the form: `arn:aws:apigateway:region:lambda:path/path`. The path is usually in the form
|
||||
// `/2015-03-31/functions/LambdaFunctionARN/invocations`. For more information, see Integration's URI property.
|
||||
//
|
||||
// If you specify "HTTP" or "AWS" for the Type property, you must specify the URI property.
|
||||
URI *string `lumi:"uri,optional"`
|
||||
}
|
||||
|
||||
// IntegrationType specifies an Integration's type.
|
||||
type IntegrationType string
|
||||
|
||||
const (
|
||||
HTTPIntegration IntegrationType = "HTTP" // for integrating with an HTTP back end.
|
||||
HTTPProxyIntegration IntegrationType = "HTTP_PROXY" // for integrating with the HTTP proxy integration.
|
||||
AWSIntegration IntegrationType = "AWS" // for any AWS service endpoints.
|
||||
AWSProxyIntegration IntegrationType = "AWS_PROXY" // for integrating with the Lambda proxy integration type.
|
||||
MockIntegration IntegrationType = "MOCK" // for testing without actually invoking the back end.
|
||||
)
|
||||
|
||||
// IntegrationResponse specifies the response that Amazon API Gateway sends after a method's back end finishes
|
||||
// processing a request.
|
||||
type IntegrationResponse struct {
|
||||
// The response parameters from the back-end response that API Gateway sends to the method response. Specify
|
||||
// response parameters as key-value pairs (string-to-string mappings).
|
||||
//
|
||||
// Use the destination as the key and the source as the value:
|
||||
//
|
||||
// * The destination must be an existing response parameter in the MethodResponse property.
|
||||
//
|
||||
// * The source must be an existing method request parameter or a static value. You must enclose static values
|
||||
// in single quotation marks and pre-encode these values based on the destination specified in the request.
|
||||
//
|
||||
// For more information, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/request-response-data-mappings.html.
|
||||
ResponseParameters *map[string]string `lumi:"responseParameters,optional"`
|
||||
// The templates used to transform the integration response body. Specify templates as key-value pairs
|
||||
// (string-to-string maps), with a content type as the key and a template as the value. For more information, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html.
|
||||
ResponseTemplates *map[string]string `lumi:"responseTemplates,optional"`
|
||||
// A regular expression that specifies which error strings or status codes from the back end map to the integration
|
||||
// response.
|
||||
SelectionPattern *string `lumi:"selectionPattern,optional"`
|
||||
// The status code that API Gateway uses to map the integration response to a MethodResponse status code.
|
||||
StatusCode *string `lumi:"statusCode,optional"`
|
||||
}
|
||||
|
||||
// PassthroughBehavior specifies how the method request body of an unmapped content type will be passed through the
|
||||
// integration request to the back end without transformation. A content type is unmapped if no mapping template is
|
||||
// defined in the integration or the content type does not match any of the mapped content types.
|
||||
type PassthroughBehavior string
|
||||
|
||||
const (
|
||||
// Passes the method request body through the integration request to the back end without transformation when the
|
||||
// method request content type does not match any content type associated with the mapping templates defined in the
|
||||
// integration request.
|
||||
PassthroughWhenNoMatch PassthroughBehavior = "WHEN_NO_MATCH"
|
||||
// Passes the method request body through the integration request to the back end without transformation when no
|
||||
// mapping template is defined in the integration request. If a template is defined when this option is selected,
|
||||
// the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response.
|
||||
PassthroughWhenNoTemplates PassthroughBehavior = "WHEN_NO_TEMPLATES"
|
||||
// Rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request
|
||||
// content type does not match any content type associated with the mapping templates defined in the integration
|
||||
// request or no mapping template is defined in the integration request.
|
||||
PassthroughNever PassthroughBehavior = "NEVER"
|
||||
)
|
||||
|
||||
// MethodResponse defines the responses that can be sent to the client who calls an Amazon API Gateway method.
|
||||
type MethodResponse struct {
|
||||
// The method response's status code, which you map to an IntegrationResponse.
|
||||
StatusCode string `lumi:"statusCode"`
|
||||
// The resources used for the response's content type. Specify response models as key-value pairs, with a content
|
||||
// type as the key (string) and a Model resource as the value.
|
||||
ResponseModels *map[string]*Model `lumi:"responseModels,optional"`
|
||||
// Response parameters that API Gateway sends to the client that called a method. Specify response parameters as
|
||||
// key-value pairs (string-to-Boolean maps), with a destination as the key and a Boolean as the value. Specify the
|
||||
// destination using the following pattern: `method.response.header.name`, where the `name` is a valid, unique
|
||||
// header name. The Boolean specifies whether a parameter is required.
|
||||
ResponseParameters *map[string]bool `lumi:"responseParameters,optional"`
|
||||
}
|
||||
|
||||
// MethodSetting configures settings for all methods in an Amazon API Gateway (API Gateway) stage.
|
||||
type MethodSetting struct {
|
||||
// Indicates whether the cached responses are encrypted.
|
||||
CacheDataEncrypted *bool `lumi:"cacheDataEncrypted,optional"`
|
||||
// The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses.
|
||||
CacheTTLInSeconds *float64 `lumi:"cacheTTLInSeconds,optional"`
|
||||
// Indicates whether responses are cached and returned for requests. You must enable a cache cluster on the stage
|
||||
// to cache responses. For more information, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html.
|
||||
CachingEnabled *bool `lumi:"cachingEnabled,optional"`
|
||||
// Indicates whether data trace logging is enabled for methods in the stage. API Gateway pushes these logs to Amazon
|
||||
// CloudWatch Logs.
|
||||
DataTraceEnabled *bool `lumi:"dataTraceEnabled,optional"`
|
||||
// The HTTP method.
|
||||
HTTPMethod *string `lumi:"httpMethod,optional"`
|
||||
// The logging level for this method.
|
||||
LoggingLevel *LoggingLevel `lumi:"loggingLevel,optional"`
|
||||
// Indicates whether Amazon CloudWatch metrics are enabled for methods in the stage.
|
||||
MetricsEnabled *bool `lumi:"metricsEnabled,optional"`
|
||||
// The resource path for this method. Forward slashes (`/`) are encoded as `~1` and the initial slash must include
|
||||
// a forward slash. For example, the path value `/resource/subresource` must be encoded as
|
||||
// `/~1resource~1subresource.` To specify the root path, use only a slash (`/`).
|
||||
ResourcePath *string `lumi:"resourcePath,optional"`
|
||||
// The number of burst requests per second that API Gateway permits across all APIs, stages, and methods in your
|
||||
// AWS account. For more information, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html.
|
||||
ThrottlingBurstLimit *float64 `lumi:"throttlingBurstLimit,optional"`
|
||||
// The number of steady-state requests per second that API Gateway permits across all APIs, stages, and methods in
|
||||
// your AWS account. For more information, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html.
|
||||
ThrottlingRateLimit *float64 `lumi:"throttlingRateLimit,optional"`
|
||||
}
|
||||
|
||||
// Specifies the logging level for this method, which effects the log entries pushed to Amazon CloudWatch Logs.
|
||||
type LoggingLevel string
|
||||
|
||||
const (
|
||||
LoggingOff LoggingLevel = "OFF"
|
||||
LoggingErrorLevel LoggingLevel = "ERROR"
|
||||
LoggingInfoLevel LoggingLevel = "INFO"
|
||||
)
|
|
@ -1,23 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Model resource defines the structure of a request or response payload for an Amazon API Gateway method.
|
||||
type Model struct {
|
||||
idl.NamedResource
|
||||
// The content type for the model.
|
||||
ContentType string `lumi:"contentType,replaces"`
|
||||
// The REST API with which to associate this model.
|
||||
RestAPI *RestAPI `lumi:"restAPI,replaces"`
|
||||
// The schema to use to transform data to one or more output formats. Specify null (`{}`) if you don't want to
|
||||
// specify a schema.
|
||||
Schema interface{} `lumi:"schema"`
|
||||
// A name for the model. If you don't specify a name, a unique physical ID is generated and used.
|
||||
ModelName *string `lumi:"modelName,replaces,optional"`
|
||||
// A description that identifies this model.
|
||||
Description *string `lumi:"description,optional"`
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// An Amazon API Gateway (API Gateway) API resource.
|
||||
type Resource struct {
|
||||
idl.NamedResource
|
||||
// If you want to create a child resource, the parent resource. For resources without a parent, specify
|
||||
// the RestAPI's root resource.
|
||||
Parent *Resource `lumi:"parent,replaces"`
|
||||
// A path name for the resource.
|
||||
PathPart string `lumi:"pathPart,replaces"`
|
||||
// The RestAPI resource in which you want to create this resource.
|
||||
RestAPI *RestAPI `lumi:"restAPI,replaces"`
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
|
||||
"github.com/pulumi/lumi/lib/aws/idl/s3"
|
||||
)
|
||||
|
||||
// The RestAPI resource contains a collection of Amazon API Gateway (API Gateway) resources and methods that can be
|
||||
// invoked through HTTPS endpoints.
|
||||
type RestAPI struct {
|
||||
idl.NamedResource
|
||||
// An OpenAPI specification that defines a set of RESTful APIs in the JSON format.
|
||||
Body *interface{} `lumi:"body,optional"`
|
||||
// The Amazon Simple Storage Service (Amazon S3) location that points to a OpenAPI file, which defines a set of
|
||||
// RESTful APIs in JSON or YAML format.
|
||||
BodyS3Location *S3Location `lumi:"bodyS3Location,optional"`
|
||||
// Another API Gateway RestAPI resource that you want to clone.
|
||||
CloneFrom *RestAPI `lumi:"cloneFrom,optional"`
|
||||
// A description of the purpose of this API Gateway RestAPI resource.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// If a warning occurs while API Gateway is creating the RestAPI resource, indicates whether to roll back the
|
||||
// resource.
|
||||
FailOnWarnings *bool `lumi:"failOnWarnings,optional"`
|
||||
// A name for the API Gateway RestApi resource. Required if you don't specify an OpenAPI definition.
|
||||
APIName *string `lumi:"apiName,optional"`
|
||||
// Custom header parameters for the request.
|
||||
Parameters *[]string `lumi:"parameters,optional"`
|
||||
|
||||
// The API's identifier. This identifier is unique across all of your APIs in Amazon API Gateway.
|
||||
ID string `lumi:"id,out"`
|
||||
// The timestamp when the API was created.
|
||||
CreatedDate string `lumi:"createdDate,out"`
|
||||
// A version identifier for the API.
|
||||
Version string `lumi:"version,out"`
|
||||
// The warning messages reported when failonwarnings is turned on during API import.
|
||||
Warnings []string `lumi:"warnings,out"`
|
||||
// The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded
|
||||
// text payloads.
|
||||
BinaryMediaTypes []string `lumi:"binaryMediaTypes,out"`
|
||||
}
|
||||
|
||||
// S3Location is a property of the RestAPI resource that specifies the Amazon Simple Storage Service (Amazon S3)
|
||||
// location of a OpenAPI (formerly Swagger) file that defines a set of RESTful APIs in JSON or YAML.
|
||||
type S3Location struct {
|
||||
// The S3 object corresponding to the OpenAPI file.
|
||||
Object *s3.Object `lumi:"object"`
|
||||
// The Amazon S3 ETag (a file checksum) of the OpenAPI file. If you don't specify a value, API Gateway skips ETag
|
||||
// validation of your OpenAPI file.
|
||||
ETag *string `lumi:"etag,optional"`
|
||||
// For versioning-enabled buckets, a specific version of the OpenAPI file.
|
||||
Version *string `lumi:"version,optional"`
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Stage resource specifies the AWS Identity and Access Management (IAM) role that Amazon API
|
||||
// Gateway (API Gateway) uses to write API logs to Amazon CloudWatch Logs (CloudWatch Logs).
|
||||
type Stage struct {
|
||||
idl.NamedResource
|
||||
// The RestAPI resource that you're deploying with this stage.
|
||||
RestAPI *RestAPI `lumi:"restAPI,replaces"`
|
||||
// The name of the stage, which API Gateway uses as the first path segment in the invoke URI.
|
||||
StageName string `lumi:"stageName,replaces"`
|
||||
// The deployment that the stage points to.
|
||||
Deployment *Deployment `lumi:"deployment"`
|
||||
// Indicates whether cache clustering is enabled for the stage.
|
||||
CacheClusterEnabled *bool `lumi:"cacheClusterEnabled,optional"`
|
||||
// The stage's cache cluster size.
|
||||
CacheClusterSize *string `lumi:"cacheClusterSize,optional"`
|
||||
// The identifier of the client certificate that API Gateway uses to call your integration endpoints in the stage.
|
||||
ClientCertificate *ClientCertificate `lumi:"clientCertificate,optional"`
|
||||
// A description of the stage's purpose.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// Settings for all methods in the stage.
|
||||
MethodSettings *[]MethodSetting `lumi:"methodSettings,optional"`
|
||||
// A map (string to string map) that defines the stage variables, where the variable name is the key and the
|
||||
// variable value is the value. Variable names are limited to alphanumeric characters. Values must match the
|
||||
// following regular expression: `[A-Za-z0-9-._~:/?#&=,]+`.
|
||||
Variables *map[string]string `lumi:"variables,optional"`
|
||||
|
||||
// The timestamp when the stage was created.
|
||||
CreatedDate string `lumi:"createdDate,out"`
|
||||
// The timestamp when the stage last updated.
|
||||
LastUpdatedDate string `lumi:"lastUpdatedDate,out"`
|
||||
// The URL to invoke the HTTP endpoint for this API stage.
|
||||
URL string `lumi:"url,out"`
|
||||
// The execution ARN needed to pass to Lambda to give this API stage permission.
|
||||
ExecutionARN string `lumi:"executionARN,out"`
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The UsagePlan resource specifies a usage plan for deployed Amazon API Gateway (API Gateway) APIs. A
|
||||
// usage plan enforces throttling and quota limits on individual client API keys. For more information, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html.
|
||||
type UsagePlan struct {
|
||||
idl.NamedResource
|
||||
APIStages *[]APIStage `lumi:"apiStages,optional"`
|
||||
Description *string `lumi:"description,optional"`
|
||||
Quota *QuotaSettings `lumi:"quota,optional"`
|
||||
Throttle *ThrottleSettings `lumi:"throttle,optional"`
|
||||
UsagePlanName *string `lumi:"usagePlanName,optional"`
|
||||
}
|
||||
|
||||
// APIStage specifies which Amazon API Gateway (API Gateway) stage and API to associate with a usage plan.
|
||||
type APIStage struct {
|
||||
// The API you want to associate with the usage plan.
|
||||
API *RestAPI `lumi:"api,optional"`
|
||||
// The Stage you want to associate with the usage plan.
|
||||
Stage *Stage `lumi:"stage,optional"`
|
||||
}
|
||||
|
||||
// QuotaSettings specifies the maximum number of requests users can make to your Amazon API Gateway (API Gateway) APIs.
|
||||
type QuotaSettings struct {
|
||||
// The maximum number of requests that users can make within the specified time period.
|
||||
Limit *float64 `lumi:"limit,optional"`
|
||||
// For the initial time period, the number of requests to subtract from the specified limit. When you first
|
||||
// implement a usage plan, the plan might start in the middle of the week or month. With this property, you can
|
||||
// decrease the limit for this initial time period.
|
||||
Offset *float64 `lumi:"offset,optional"`
|
||||
// The time period for which the maximum limit of requests applies.
|
||||
Period *QuotaPeriod `lumi:"period,optional"`
|
||||
}
|
||||
|
||||
// The time period in which a quota limit applies.
|
||||
type QuotaPeriod string
|
||||
|
||||
const (
|
||||
QuotaDayPeriod QuotaPeriod = "DAY"
|
||||
QuotaWeekPeriod QuotaPeriod = "WEEK"
|
||||
QuotaMonthPeriod QuotaPeriod = "MONTH"
|
||||
)
|
||||
|
||||
// ThrottleSettings specifies the overall request rate (average requests per second) and burst capacity when users call
|
||||
// your Amazon API Gateway (API Gateway) APIs.
|
||||
type ThrottleSettings struct {
|
||||
// The maximum API request rate limit over a time ranging from one to a few seconds. The maximum API request rate
|
||||
// limit depends on whether the underlying token bucket is at its full capacity. For more information about request
|
||||
// throttling, see http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html.
|
||||
BurstRateLimit *float64 `lumi:"burstRateLimit,optional"`
|
||||
// The API request steady-state rate limit (average requests per second over an extended period of time). For more
|
||||
// information about request throttling, see
|
||||
// http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html.
|
||||
RateLimit *float64 `lumi:"rateLimit,optional"`
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package apigateway
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The UsagePlanKey resource associates an Amazon API Gateway API key with an API Gateway usage plan. This association
|
||||
// determines which user the usage plan is applied to.
|
||||
type UsagePlanKey struct {
|
||||
idl.NamedResource
|
||||
// The API key for the API resource to associate with a usage plan.
|
||||
Key *APIKey `lumi:"key,replaces"`
|
||||
// The usage plan.
|
||||
UsagePlan *UsagePlan `lumi:"usagePlan,replaces"`
|
||||
}
|
|
@ -1,118 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package cloudwatch
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
|
||||
"github.com/pulumi/lumi/lib/aws/idl/sns"
|
||||
)
|
||||
|
||||
// Alarm is a CloudWatch alarm. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html.
|
||||
type Alarm struct {
|
||||
idl.NamedResource
|
||||
// The arithmetic operator to use when comparing the specified statistic and threshold. The specified statistic
|
||||
// value is used as the first operand (so, "<statistic> <op> <threshold>").
|
||||
ComparisonOperator AlarmComparisonOperator `lumi:"comparisonOperator"`
|
||||
// The number of periods over which data is compared to the specific threshold.
|
||||
EvaluationPeriods float64 `lumi:"evaluationPerids"`
|
||||
// The name for the alarm's associated metric.
|
||||
MetricName string `lumi:"metricName"`
|
||||
// The namespace for the alarm's associated metric.
|
||||
Namespace string `lumi:"namespace"`
|
||||
// The time over which the specified statistic is applied; it is a time in second that is a multiple of 60.
|
||||
Period float64 `lumi:"period"`
|
||||
// The statistic to apply to the alarm's associated metric.
|
||||
Statistic AlarmStatistic `lumi:"statistic"`
|
||||
// The value against which the specified statistic is compared.
|
||||
Threshold float64 `lumi:"threshold"`
|
||||
// Indicates whether or not actions should be executed during any changes to the alarm's state.
|
||||
ActionsEnabled *bool `lumi:"actionsEnabled,optional"`
|
||||
// The list of actions to execute hen this alarm transitions into an ALARM state from any other state. Each action
|
||||
// is specified as an Amazon Resource Number (ARN).
|
||||
AlarmActions *[]ActionTarget `lumi:"alarmActions,optional"`
|
||||
// The description for the alarm.
|
||||
AlarmDescription *string `lumi:"alarmDescription,optional"`
|
||||
// A name for the alarm. If you don't specify one, an auto-generated physical ID will be assigned.
|
||||
AlarmName *string `lumi:"alarmName,replaces,optional"`
|
||||
// The dimension for the alarm's associated metric.
|
||||
Dimensions *[]AlarmDimension `lumi:"dimensions,optional"`
|
||||
// The list of actions to execute when this alarm transitions into an INSUFFICIENT_DATA state from any other state.
|
||||
// Each action is specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing
|
||||
// to an Amazon SNS topic or an Amazon Auto Scaling policy.
|
||||
InsufficientDataActions *[]ActionTarget `lumi:"insufficientDataActions,optional"`
|
||||
// The list of actions to execute when this alarm transitions into an OK state from any other state. Each action is
|
||||
// specified as an Amazon Resource Number (ARN). Currently the only action supported is publishing to an Amazon SNS
|
||||
// topic of an Amazon Auto Scaling policy.
|
||||
OKActions *[]ActionTarget `lumi:"okActions,optional"`
|
||||
// The unit for the alarm's associated metric.
|
||||
Unit *AlarmMetric `lumi:"unit,optional"`
|
||||
}
|
||||
|
||||
// ActionTarget is a strongly typed capability for an action target to avoid string-based ARNs.
|
||||
// TODO[pulumi/lumi#90]: once we support more resource types, we need to support Auto Scaling policies, etc. It's
|
||||
// not yet clear whether we should do this using ARNs, or something else.
|
||||
type ActionTarget sns.Topic
|
||||
|
||||
// AlarmComparisonOperator represents the operator (>=, >, <, or <=) used for alarm threshold comparisons.
|
||||
type AlarmComparisonOperator string
|
||||
|
||||
const (
|
||||
ThresholdGreaterThanOrEqualTo AlarmComparisonOperator = "GreaterThanOrEqualToThreshold"
|
||||
ThresholdGreaterThan AlarmComparisonOperator = "GreaterThanThreshold"
|
||||
ThresholdLessThan AlarmComparisonOperator = "LessThanThreshold"
|
||||
ThresholdLessThanOrEqualTo AlarmComparisonOperator = "LessThanOrEqualToThreshold"
|
||||
)
|
||||
|
||||
// AlarmStatistic represents the legal values for an alarm's statistic.
|
||||
type AlarmStatistic string
|
||||
|
||||
const (
|
||||
SampleCountStatistic AlarmStatistic = "SampleCount"
|
||||
AverageStatistic AlarmStatistic = "Average"
|
||||
SumStatistic AlarmStatistic = "Sum"
|
||||
MinimumStatistic AlarmStatistic = "Minimum"
|
||||
MaximumStatistic AlarmStatistic = "Maximum"
|
||||
)
|
||||
|
||||
// AlarmDimension is an embedded property of the alarm type. Dimensions are arbitrary name/value pairs that can be
|
||||
// associated with a CloudWatch metric. You can specify a maximum of 10 dimensions for a given metric.
|
||||
type AlarmDimension struct {
|
||||
Name string `lumi:"name"` // the name of the dimension, from 1-255 characters in length.
|
||||
// TODO[pulumi/lumi#90]: strongly type this.
|
||||
Value interface{} `lumi:"value"` // the value representing the dimension measurement, from 1-255 characters in length.
|
||||
}
|
||||
|
||||
// AlarmMetric represents the legal values for an alarm's associated metric.
|
||||
type AlarmMetric string
|
||||
|
||||
const (
|
||||
SecondsMetric AlarmMetric = "Seconds"
|
||||
MicrosecondsMetric AlarmMetric = "Microseconds"
|
||||
MillisecondsMetric AlarmMetric = "Milliseconds"
|
||||
BytesMetric AlarmMetric = "Bytes"
|
||||
KilobytesMetric AlarmMetric = "Kilobytes"
|
||||
MegabytesMetric AlarmMetric = "Megabytes"
|
||||
GigabytesMetric AlarmMetric = "Gigabytes"
|
||||
TerabytesMetric AlarmMetric = "Terabytes"
|
||||
BytesPerSecondMetric AlarmMetric = "Bytes/Second"
|
||||
KilobytesPerSecondMetric AlarmMetric = "Kilobytes/Second"
|
||||
MegabytesPerSecondMetric AlarmMetric = "Megabytes/Second"
|
||||
GigabytesPerSecondMetric AlarmMetric = "Gigabytes/Second"
|
||||
TerabytesPerSecondMetric AlarmMetric = "Terabytes/Second"
|
||||
BitsMetric AlarmMetric = "Bits"
|
||||
KilobitsMetric AlarmMetric = "Kilobits"
|
||||
MegabitsMetric AlarmMetric = "Megabits"
|
||||
GigabitsMetric AlarmMetric = "Gigabits"
|
||||
TerabitsMetric AlarmMetric = "Terabits"
|
||||
BitsPerSecondMetric AlarmMetric = "Bits/Second"
|
||||
KilobitsPerSecondMetric AlarmMetric = "Kilobits/Second"
|
||||
MegabitsPerSecondMetric AlarmMetric = "Megabits/Second"
|
||||
GigabitsPerSecondMetric AlarmMetric = "Gigabits/Second"
|
||||
TerabitsPerSecondMetric AlarmMetric = "Terabits/Second"
|
||||
PercentMetric AlarmMetric = "Percent"
|
||||
CountMetric AlarmMetric = "Count"
|
||||
CountPerSecondMetric AlarmMetric = "Count/Second"
|
||||
NoMetric AlarmMetric = "None"
|
||||
)
|
|
@ -1,17 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package cloudwatch
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// LogGroup is a CloudWatch Logs log group. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html.
|
||||
type LogGroup struct {
|
||||
idl.NamedResource
|
||||
// The name of the log group.
|
||||
LogGroupName *string `lumi:"logGroupName,optional,replaces"`
|
||||
// The number of days log events are kept in CloudWatch Logs. When a log event expires, CloudWatch Logs automatically deletes it.
|
||||
RetentionInDays *float64 `lumi:"retentionInDays,optional"`
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package cloudwatch
|
||||
|
||||
import (
|
||||
aws "github.com/pulumi/lumi/lib/aws/idl"
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// LogSubscriptionFilter is a CloudWatch Logs subscription filter. For more information, see
|
||||
// http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateSubscriptionFilter.html.
|
||||
type LogSubscriptionFilter struct {
|
||||
idl.NamedResource
|
||||
// The name of the log group.
|
||||
LogGroupName string `lumi:"logGroupName,replaces"`
|
||||
// A filter pattern for subscribing to a filtered stream of log events.
|
||||
FilterPattern string `lumi:"filterPattern"`
|
||||
// The ARN of the destination to deliver matching log events to.
|
||||
DestinationArn string `lumi:"destinationArn,replaces"`
|
||||
// The ARN of an IAM role that grants CloudWatch Logs permissions to deliver ingested log events to the
|
||||
// destination stream. You don't need to provide the ARN when you are working with a logical destination for
|
||||
// cross-account delivery.
|
||||
RoleARN *aws.ARN `lumi:"roleArn,optional"`
|
||||
// The method used to distribute log data to the destination, when the destination is an Amazon Kinesis stream.
|
||||
// By default, log data is grouped by log stream. For a more even distribution, you can group log data randomly.
|
||||
Distribution *LogSubscriptionDistribution `lumi:"distribution,optional"`
|
||||
|
||||
// The time the log group subscription gilter was created.
|
||||
CreationTime *float64 `lumi:"creationTime,out"`
|
||||
}
|
||||
|
||||
type LogSubscriptionDistribution string
|
||||
|
||||
const (
|
||||
RandomDistribution LogSubscriptionDistribution = "Random"
|
||||
ByLogStreamDistribution LogSubscriptionDistribution = "ByLogStream"
|
||||
)
|
|
@ -1,61 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package dynamodb
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Table resource creates an AWS DynamoDB Table. For more information, see
|
||||
// http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/.
|
||||
type Table struct {
|
||||
idl.NamedResource
|
||||
HashKey string `lumi:"hashKey,replaces"`
|
||||
Attributes []Attribute `lumi:"attributes"`
|
||||
ReadCapacity float64 `lumi:"readCapacity"`
|
||||
WriteCapacity float64 `lumi:"writeCapacity"`
|
||||
RangeKey *string `lumi:"rangeKey,optional,replaces"`
|
||||
TableName *string `lumi:"tableName,optional,replaces"`
|
||||
GlobalSecondaryIndexes *[]GlobalSecondaryIndex `lumi:"globalSecondaryIndexes,optional"`
|
||||
|
||||
// TODO[pulumi/lumi#216]:
|
||||
// LocalSecondaryIndexes
|
||||
// StreamSpecification
|
||||
}
|
||||
|
||||
// Attribute is a DynamoDB Table Attribute definition.
|
||||
type Attribute struct {
|
||||
// Name of the DynamoDB Table Attribute.
|
||||
Name string `lumi:"name"`
|
||||
// Type of the DynamoDB Table Attribute. You can specify S for string data, N for numeric data, or B for binary data.
|
||||
Type AttributeType `lumi:"type"`
|
||||
}
|
||||
|
||||
// AttributeType represents the types of DynamoDB Table Attributes.
|
||||
type AttributeType string
|
||||
|
||||
const (
|
||||
StringAttribute AttributeType = "S"
|
||||
NumberAttribute AttributeType = "N"
|
||||
BinaryAttribute AttributeType = "B"
|
||||
)
|
||||
|
||||
// A GlobalSecondaryIndex represents an alternative index at DynamoDB Table
|
||||
type GlobalSecondaryIndex struct {
|
||||
IndexName string `lumi:"indexName"`
|
||||
HashKey string `lumi:"hashKey"`
|
||||
RangeKey *string `lumi:"rangeKey,optional"`
|
||||
ReadCapacity float64 `lumi:"readCapacity"`
|
||||
WriteCapacity float64 `lumi:"writeCapacity"`
|
||||
NonKeyAttributes []string `lumi:"nonKeyAttributes"`
|
||||
ProjectionType ProjectionType `lumi:"projectionType"`
|
||||
}
|
||||
|
||||
// ProjectionType represents the types of DynamoDB Table Attributes.
|
||||
type ProjectionType string
|
||||
|
||||
const (
|
||||
KeysOnlyProjection ProjectionType = "KEYS_ONLY"
|
||||
IncludeProjection ProjectionType = "INCLUDE"
|
||||
AllProjection ProjectionType = "ALL"
|
||||
)
|
|
@ -1,152 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Instance ia an EC2 VM instance. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html.
|
||||
type Instance struct {
|
||||
idl.NamedResource
|
||||
// Provides the unique ID of the Amazon Machine Image (AMI) that was assigned during registration.
|
||||
ImageID string `lumi:"imageId,replaces"`
|
||||
// The instance type, such as t2.micro. The default type is "m3.medium".
|
||||
InstanceType *InstanceType `lumi:"instanceType,optional,replaces"`
|
||||
// A list that contains the Amazon EC2 security groups to assign to the Amazon EC2 instance.
|
||||
SecurityGroups *[]*SecurityGroup `lumi:"securityGroups,optional,replaces"`
|
||||
// Provides the name of the Amazon EC2 key pair.
|
||||
KeyName *string `lumi:"keyName,optional,replaces"`
|
||||
// Provides a list of tags to attach to the instance.
|
||||
Tags *[]Tag `lumi:"tags,optional"`
|
||||
|
||||
// Output properties:
|
||||
|
||||
// The Availability Zone where the specified instance is launched. For example: `us-east-1b`.
|
||||
AvailabilityZone string `lumi:"availabilityZone,out"`
|
||||
// The private DNS name of the specified instance. For example: `ip-10-24-34-0.ec2.internal`.
|
||||
PrivateDNSName *string `lumi:"privateDNSName,out,optional"`
|
||||
// The public DNS name of the specified instance. For example: `ec2-107-20-50-45.compute-1.amazonaws.com`.
|
||||
PublicDNSName *string `lumi:"publicDNSName,out,optional"`
|
||||
// The private IP address of the specified instance. For example: `10.24.34.0`.
|
||||
PrivateIP *string `lumi:"privateIP,out,optional"`
|
||||
// The public IP address of the specified instance. For example: `192.0.2.0`.
|
||||
PublicIP *string `lumi:"publicIP,out,optional"`
|
||||
}
|
||||
|
||||
// A Tag applied to an EC2 instance.
|
||||
type Tag struct {
|
||||
Key string `lumi:"key"`
|
||||
Value string `lumi:"value"`
|
||||
}
|
||||
|
||||
// InstanceType is an enum type with all the names of instance types available in EC2.
|
||||
type InstanceType string
|
||||
|
||||
const (
|
||||
// GENERAL PURPOSE:
|
||||
|
||||
// T2: Instances are Burstable Performance Instances that provide a baseline level of CPU performance with the
|
||||
// ability to burst above the baseline. The baseline performance and ability to burst are governed by CPU Credits.
|
||||
// Each T2 instance receives CPU Credits continuously at a set rate depending on the instance size. T2 instances
|
||||
// accrue CPU Credits when they are idle, and use CPU credits when they are active. T2 instances are a good choice
|
||||
// for workloads that don’t use the full CPU often or consistently, but occasionally need to burst (e.g. web
|
||||
// servers, developer environments and databases). For more information see Burstable Performance Instances.
|
||||
T2InstanceNano InstanceType = "t2.nano"
|
||||
T2InstanceMicro InstanceType = "t2.micro"
|
||||
T2InstanceSmall InstanceType = "t2.small"
|
||||
T2InstanceMedium InstanceType = "t2.medium"
|
||||
T2InstanceLarge InstanceType = "t2.large"
|
||||
T2InstanceXLarge InstanceType = "t2.xlarge"
|
||||
T2Instance2XLarge InstanceType = "t2.2xlarge"
|
||||
|
||||
// M4: Instances are the latest generation of General Purpose Instances. This family provides a balance of compute,
|
||||
// memory, and network resources, and it is a good choice for many applications.
|
||||
M4InstanceLarge InstanceType = "m4.large"
|
||||
M4InstanceXLarge InstanceType = "m4.xlarge"
|
||||
M4Instance2XLarge InstanceType = "m4.2xlarge"
|
||||
M4Instance4XLarge InstanceType = "m4.4xlarge"
|
||||
M4Instance10XLarge InstanceType = "m4.10xlarge"
|
||||
M4Instance16XLarge InstanceType = "m4.16xlarge"
|
||||
|
||||
// M3: This family includes the M3 instance types and provides a balance of compute, memory, and network resources,
|
||||
// and it is a good choice for many applications.
|
||||
M3InstanceMedium InstanceType = "m3.medium"
|
||||
M3InstanceLarge InstanceType = "m3.large"
|
||||
M3InstanceXLarge InstanceType = "m3.xlarge"
|
||||
M3Instance2XLarge InstanceType = "m3.2xlarge"
|
||||
|
||||
// COMPUTE OPTIMIZED:
|
||||
|
||||
// C4: Instances are the latest generation of Compute-optimized instances, featuring the highest performing
|
||||
// processors and the lowest price/compute performance in EC2.
|
||||
C4InstanceLarge InstanceType = "c4.large"
|
||||
C4InstanceXLarge InstanceType = "c4.xlarge"
|
||||
C4Instance2XLarge InstanceType = "c4.2xlarge"
|
||||
C4Instance4XLarge InstanceType = "c4.4xlarge"
|
||||
C4Instance8XLarge InstanceType = "c4.8xlarge"
|
||||
|
||||
// C3: Instances are the previous generation of Compute-optimized instances.
|
||||
C3InstanceLarge InstanceType = "c3.large"
|
||||
C3InstanceXLarge InstanceType = "c3.xlarge"
|
||||
C3Instance2XLarge InstanceType = "c3.2xlarge"
|
||||
C3Instance4XLarge InstanceType = "c3.4xlarge"
|
||||
C3Instance8XLarge InstanceType = "c3.8xlarge"
|
||||
|
||||
// MEMORY OPTIMIZED:
|
||||
|
||||
// X1: Instances are optimized for large-scale, enterprise-class, in-memory applications and have the lowest price
|
||||
// per GiB of RAM among Amazon EC2 instance types.
|
||||
X1Instance32XLarge InstanceType = "x1.32xlarge"
|
||||
X1Instance16XLarge InstanceType = "x1.16xlarge"
|
||||
|
||||
// R4: Instance InstanceType =s are optimized for memory-intensive applications and offer better price per GiB of RAM than R3.
|
||||
R4InstanceLarge InstanceType = "r4.large"
|
||||
R4InstanceXLarge InstanceType = "r4.xlarge"
|
||||
R4Instance2XLarge InstanceType = "r4.2xlarge"
|
||||
R4Instance4XLarge InstanceType = "r4.4xlarge"
|
||||
R4Instance8XLarge InstanceType = "r4.8xlarge"
|
||||
R4Instance16XLarge InstanceType = "r4.16xlarge"
|
||||
|
||||
// R3: Instance InstanceType =s are optimized for memory-intensive applications and offer lower price per GiB of RAM.
|
||||
R3InstanceLarge InstanceType = "r3.large"
|
||||
R3InstanceXLarge InstanceType = "r3.xlarge"
|
||||
R3Instance2XLarge InstanceType = "r3.2xlarge"
|
||||
R3Instance4XLarge InstanceType = "r3.4xlarge"
|
||||
R3Instance8XLarge InstanceType = "r3.8xlarge"
|
||||
|
||||
// ACCELERATED COMPUTING INSTANCES:
|
||||
|
||||
// P2: Instance InstanceType =s are intended for general-purpose GPU compute applications.
|
||||
P2InstanceXLarge InstanceType = "p2.xlarge"
|
||||
P2Instance8XLarge InstanceType = "p2.8xlarge"
|
||||
P2Instance16XLarge InstanceType = "p2.16xlarge"
|
||||
|
||||
// G2: Instances are optimized for graphics-intensive applications.
|
||||
G2Instance2XLarge InstanceType = "g2.2xlarge"
|
||||
G2Instance8XLarge InstanceType = "g2.8xlarge"
|
||||
|
||||
// F1: Instances offer customizable hardware acceleration with field programmable gate arrays (FPGAs).
|
||||
F1Instance2XLarge InstanceType = "f1.2xlarge"
|
||||
F1Instance16XLarge InstanceType = "f1.16xlarge"
|
||||
|
||||
// STORAGE OPTIMIZED:
|
||||
|
||||
// I3: This family includes the High Storage Instances that provide Non-Volatile Memory Express (NVMe) SSD backed
|
||||
// instance storage optimized for low latency, very high random I/O performance, high sequential read throughput and
|
||||
// provide high IOPS at a low cost.
|
||||
I3InstanceLarge InstanceType = "i3.large"
|
||||
I3InstanceXLarge InstanceType = "i3.xlarge"
|
||||
I3Instance2XLarge InstanceType = "i3.2xlarge"
|
||||
I3Instance4XLarge InstanceType = "i3.4xlarge"
|
||||
I3Instance8XLarge InstanceType = "i3.8xlarge"
|
||||
I3Instance16XLarge InstanceType = "i3.16xlarge"
|
||||
|
||||
// D2: Instances feature up to 48 TB of HDD-based local storage, deliver high disk throughput, and offer the lowest
|
||||
// price per disk throughput performance on Amazon EC2.
|
||||
D2InstanceXLarge InstanceType = "d2.xlarge"
|
||||
D2Instance2XLarge InstanceType = "d2.2xlarge"
|
||||
D2Instance4XLarge InstanceType = "d2.4xlarge"
|
||||
D2Instance8XLarge InstanceType = "d2.8xlarge"
|
||||
)
|
|
@ -1,13 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// An Internet gateway enables your instances to connect to the Internet through the Amazon EC2 edge network. See
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internet-gateway.html.
|
||||
type InternetGateway struct {
|
||||
idl.NamedResource
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Route in a route table within a VPC. For more information, see
|
||||
// https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route.html.
|
||||
type Route struct {
|
||||
idl.NamedResource
|
||||
// The CIDR address block used for the destination match. For example, `0.0.0.0/0`. Routing decisions are based
|
||||
// on the most specific match.
|
||||
DestinationCidrBlock string `lumi:"destinationCidrBlock,replaces"`
|
||||
// The route table where the route will be added.
|
||||
RouteTable *RouteTable `lumi:"routeTable,replaces"`
|
||||
// The Internet gateway that is attached to your VPC. For route entries that specify a gateway, you must also
|
||||
// specify a dependency on the gateway attachment resource (`vpcGatewayAttachment`).
|
||||
InternetGateway *InternetGateway `lumi:"internetGateway,replaces"`
|
||||
// The gateway attachment resource that attached the specified gateway to the VPC.
|
||||
VPCGatewayAttachment *VPCGatewayAttachment `lumi:"vpcGatewayAttachment,replaces"`
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// RouteTable is a route table within your VPC. After creating a route table, you can add routes and associate the
|
||||
// table with a subnet. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html.
|
||||
type RouteTable struct {
|
||||
idl.NamedResource
|
||||
// The VPC where the route table will be created.
|
||||
VPC *VPC `lumi:"vpc,replaces"`
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// A SecurityGroup is an Amazon EC2 Security Group. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html.
|
||||
type SecurityGroup struct {
|
||||
idl.NamedResource
|
||||
// A required description about the security group.
|
||||
GroupDescription string `lumi:"groupDescription,replaces"`
|
||||
// An optional name for the security group. If you don't specify one, a unique physical ID will be generated and
|
||||
// used instead. If you specify a name, you cannot perform updates that require replacement of this resource. You
|
||||
// can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
|
||||
GroupName *string `lumi:"groupName,optional,replaces"`
|
||||
// The VPC in which this security group resides (or blank if the default VPC).
|
||||
VPC *VPC `lumi:"vpc,optional,replaces"`
|
||||
// A list of Amazon EC2 security group egress rules.
|
||||
SecurityGroupEgress *[]SecurityGroupRule `lumi:"securityGroupEgress,optional"`
|
||||
// A list of Amazon EC2 security group ingress rules.
|
||||
SecurityGroupIngress *[]SecurityGroupRule `lumi:"securityGroupIngress,optional"`
|
||||
// The group ID of the specified security group, such as `sg-94b3a1f6`.
|
||||
GroupID string `lumi:"groupID,out"`
|
||||
}
|
||||
|
||||
// A SecurityGroupRule describes an EC2 security group rule embedded within a SecurityGroup.
|
||||
type SecurityGroupRule struct {
|
||||
// The IP name or number.
|
||||
IPProtocol string `lumi:"ipProtocol"`
|
||||
// Specifies a CIDR range.
|
||||
CIDRIP *string `lumi:"cidrIp,optional"`
|
||||
// The start of port range for the TCP and UDP protocols, or an ICMP type number. An ICMP type number of `-1`
|
||||
// indicates a wildcard (i.e., any ICMP type number).
|
||||
FromPort *float64 `lumi:"fromPort,optional"`
|
||||
// The end of port range for the TCP and UDP protocols, or an ICMP code. An ICMP code of `-1` indicates a
|
||||
// wildcard (i.e., any ICMP code).
|
||||
ToPort *float64 `lumi:"toPort,optional"`
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// SecurityGroupEgress adds an egress (outbound) rule to an Amazon VPC security group. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-egress.html.
|
||||
type SecurityGroupEgress struct {
|
||||
idl.NamedResource
|
||||
// Start of port range for the TCP and UDP protocols, or an ICMP type number. If you specify `icmp` for the
|
||||
// `ipProtocol` property, you can specify `-1` as a wildcard (i.e., any ICMP type number).
|
||||
FromPort float64 `lumi:"fromPort,replaces"`
|
||||
// The Amazon VPC security group to modify.
|
||||
Group *SecurityGroup `lumi:"group,replaces"`
|
||||
// IP protocol name or number.
|
||||
IPProtocol string `lumi:"ipProtocol,replaces"`
|
||||
// End of port range for the TCP and UDP protocols, or an ICMP code. If you specify `icmp` for the `ipProtocol`
|
||||
// property, you can specify `-1` as a wildcard (i.e., any ICMP code).
|
||||
ToPort float64 `lumi:"toPort,replaces"`
|
||||
// An IPv4 CIDR range.
|
||||
CIDRIP *string `lumi:"cidrIp,replaces,optional"`
|
||||
// An IPv6 CIDR range.
|
||||
CIDRIPv6 *string `lumi:"cidrIpv6,replaces,optional"`
|
||||
// The AWS service prefix of an Amazon VPC endpoint.
|
||||
DestinationPrefixListId *string `lumi:"destinationPrefixListId,replaces,optional"`
|
||||
// Specifies the group ID of the destination Amazon VPC security group.
|
||||
DestinationSecurityGroup *SecurityGroup `lumi:"destinationSecurityGroup,replaces,optional"`
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// SecurityGroupIngress dds an ingress (inbound) rule to an Amazon VPC security group. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-security-group-ingress.html.
|
||||
type SecurityGroupIngress struct {
|
||||
idl.NamedResource
|
||||
// IP protocol name or number.
|
||||
IPProtocol string `lumi:"ipProtocol,replaces"`
|
||||
// An IPv4 CIDR range.
|
||||
CIDRIP *string `lumi:"cidrIp,replaces,optional"`
|
||||
// An IPv6 CIDR range.
|
||||
CIDRIPv6 *string `lumi:"cidrIpv6,replaces,optional"`
|
||||
// Start of port range for the TCP and UDP protocols, or an ICMP type number. If you specify `icmp` for the
|
||||
// `ipProtocol` property, you can specify `-1` as a wildcard (i.e., any ICMP type number).
|
||||
FromPort *float64 `lumi:"fromPort,replaces,optional"`
|
||||
// The Amazon VPC security group to modify.
|
||||
Group *SecurityGroup `lumi:"group,replaces,optional"`
|
||||
// Name of the Amazon EC2 security group (non-VPC security group) to modify.
|
||||
GroupName *string `lumi:"groupName,replaces,optional"`
|
||||
// Specifies the ID of the source security group or uses the Ref intrinsic function to refer to the logical ID of a
|
||||
// security group defined in the same template.
|
||||
SourceSecurityGroup *SecurityGroup `lumi:"sourceSecurityGroup,replaces,optional"`
|
||||
// Specifies the name of the Amazon EC2 security group (non-VPC security group) to allow access or uses the Ref
|
||||
// intrinsic function to refer to the logical name of a security group defined in the same template. For instances
|
||||
// in a VPC, specify the SourceSecurityGroupId property.
|
||||
SourceSecurityGroupName *string `lumi:"sourceSecurityGroupName,replaces,optional"`
|
||||
// Specifies the AWS Account ID of the owner of the Amazon EC2 security group specified in the
|
||||
// SourceSecurityGroupName property.
|
||||
SourceSecurityGroupOwnerId *string `lumi:"sourceSecurityGroupOwnerId,replaces,optional"`
|
||||
// End of port range for the TCP and UDP protocols, or an ICMP code. If you specify `icmp` for the `ipProtocol`
|
||||
// property, you can specify `-1` as a wildcard (i.e., any ICMP code).
|
||||
ToPort *float64 `lumi:"toPort,replaces,optional"`
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Subnet is a subnet in an existing VPC. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html.
|
||||
type Subnet struct {
|
||||
idl.NamedResource
|
||||
// The CIDR block that you want the subnet to cover (for example, `"10.0.0.0/24"`).
|
||||
CIDRBlock string `lumi:"cidrBlock,replaces"`
|
||||
// The VPC on which you want to create the subnet.
|
||||
VPC *VPC `lumi:"vpc,replaces"`
|
||||
// The availability zone in which you want the subnet. By default, AWS selects a zone for you.
|
||||
AvailabilityZone *string `lumi:"availabilityZone,replaces,optional"`
|
||||
// Indicates whether instances that are launched in this subnet receive a public IP address. By default, `false`.
|
||||
MapPublicIpOnLaunch *bool `lumi:"mapPublicIpOnLaunch,optional"`
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// VPC is a Virtual Private Cloud with a specified CIDR block. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html.
|
||||
type VPC struct {
|
||||
idl.NamedResource
|
||||
// The CIDR block you want the VPC to cover. For example, "10.0.0.0/16".
|
||||
CIDRBlock string `lumi:"cidrBlock,replaces"`
|
||||
// The allowed tenancy of instances launched into the VPC. "default" indicates that instances can be launched with
|
||||
// any tenancy, while "dedicated" indicates that any instance launched into the VPC automatically has dedicated
|
||||
// tenancy, unless you launch it with the default tenancy.
|
||||
InstanceTenancy *InstanceTenancy `lumi:"instanceTenancy,optional,replaces"`
|
||||
// Specifies whether DNS resolution is supported for the VPC. If true, the Amazon DNS server resolves DNS hostnames
|
||||
// for your instances to their corresponding IP addresses; otherwise, it does not. By default, the value is true.
|
||||
EnableDNSSupport *bool `lumi:"enableDnsSupport,optional"`
|
||||
// Specifies whether the instances launched in the VPC get DNS hostnames. If this attribute is true, instances in
|
||||
// the VPC get DNS hostnames; otherwise, they do not. You can only set enableDnsHostnames to true if you also set
|
||||
// the enableDnsSupport property to true. By default, the value is set to false.
|
||||
EnableDNSHostnames *bool `lumi:"enableDnsHostnames,optional"`
|
||||
}
|
||||
|
||||
type InstanceTenancy string
|
||||
|
||||
const (
|
||||
// Your instance runs on shared hardware.
|
||||
DefaultTenancy InstanceTenancy = "default"
|
||||
// Your instance runs on single-tenant hardware.
|
||||
DedicatedTenancy InstanceTenancy = "dedicated"
|
||||
// Your instance runs on a Dedicated Host, which is an isolated server with configurations that you can control.
|
||||
HostTenancy InstanceTenancy = "host"
|
||||
)
|
|
@ -1,17 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// VPCGatewayAttachment attaches a gateway to a VPC. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html.
|
||||
type VPCGatewayAttachment struct {
|
||||
idl.NamedResource
|
||||
// The VPC to associate with this gateway.
|
||||
VPC *VPC `lumi:"vpc,replaces"`
|
||||
// The Internet gateway to attach to the VPC.
|
||||
InternetGateway *InternetGateway `lumi:"internetGateway,replaces"`
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package ec2
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// VPCPeeringConnection enables a network connection between two virtual private clouds (VPCs) so that you can route
|
||||
// traffic between them by means of a private IP addresses. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpcpeeringconnection.html.
|
||||
type VPCPeeringConnection struct {
|
||||
idl.NamedResource
|
||||
// The VPC with which you are creating the peering connection.
|
||||
PeerVPC *VPC `lumi:"peerVpc,replaces"`
|
||||
// The VPC that is requesting a peering connection.
|
||||
VPC *VPC `lumi:"vpc,replaces"`
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package elasticbeanstalk
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Application is an Elastic Beanstalk application. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html.
|
||||
type Application struct {
|
||||
idl.NamedResource
|
||||
// ApplicationName is a name for the application. If you don't specify a name, a unique physical ID is used instead.
|
||||
ApplicationName *string `lumi:"applicationName,optional,replaces"`
|
||||
// An optional description of this application.
|
||||
Description *string `lumi:"description,optional"`
|
||||
}
|
|
@ -1,26 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package elasticbeanstalk
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/lib/aws/idl/s3"
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// ApplicationVersion is an application version, an iteration of deployable code, for an Elastic Beanstalk application.
|
||||
// For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html.
|
||||
type ApplicationVersion struct {
|
||||
idl.NamedResource
|
||||
// Name of the Elastic Beanstalk application that is associated with this application version.
|
||||
Application *Application `lumi:"application,replaces"`
|
||||
// An optional version label name. If you don't specify one, a unique physical ID will be generated and
|
||||
// used instead. If you specify a name, you cannot perform updates that require replacement of this resource. You
|
||||
// can perform updates that require no or some interruption. If you must replace the resource, specify a new name.
|
||||
VersionLabel *string `lumi:"versionLabel,optional,replaces"`
|
||||
// A description of this application version.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// The source bundle for this application version. This supports all the usual Lumi asset schemes, in addition
|
||||
// to Amazon Simple Storage Service (S3) bucket locations, indicating with a URI scheme of s3//<bucket>/<object>.
|
||||
SourceBundle *s3.Object `lumi:"sourceBundle,replaces"`
|
||||
}
|
|
@ -1,78 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package elasticbeanstalk
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// ApplicationVersion is an application version, an iteration of deployable code, for an Elastic Beanstalk application.
|
||||
// For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html.
|
||||
type Environment struct {
|
||||
idl.NamedResource
|
||||
// The name of the application that is associated with this environment.
|
||||
Application *Application `lumi:"application,replaces"`
|
||||
// A prefix for your Elastic Beanstalk environment URL.
|
||||
CNAMEPrefix *string `lumi:"cnamePrefix,optional,replaces"`
|
||||
// A description that helps you identify this environment.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// A name for the Elastic Beanstalk environment.
|
||||
EnvironmentName *string `lumi:"environmentName,optional,replaces"`
|
||||
// Key-value pairs defining configuration options for this environment, such as the instance type. These options
|
||||
// override the values that are defined in the solution stack or the configuration template. If you remove any
|
||||
// options during a stack update, the removed options revert to default values.
|
||||
OptionSettings *[]OptionSetting `lumi:"optionSettings,optional"`
|
||||
// The name of an Elastic Beanstalk solution stack that this configuration will use. For more information, see
|
||||
// http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html. You must specify either this
|
||||
// parameter or an Elastic Beanstalk configuration template name.
|
||||
SolutionStackName *string `lumi:"solutionStackName,optional,replaces"`
|
||||
// An arbitrary set of tags (key–value pairs) for this environment.
|
||||
Tags *[]Tag `lumi:"tags,optional,replaces"`
|
||||
// The name of the Elastic Beanstalk configuration template to use with the environment. You must specify either
|
||||
// this parameter or a solution stack name.
|
||||
TemplateName *string `lumi:"templateName,optional"`
|
||||
// Specifies the tier to use in creating this environment. The environment tier that you choose determines whether
|
||||
// Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web
|
||||
// application that handles background-processing tasks.
|
||||
Tier *Tier `lumi:"tier,optional,replaces"`
|
||||
// The version to associate with the environment.
|
||||
Version *ApplicationVersion `lumi:"version,optional"`
|
||||
// The URL to the load balancer for this environment.
|
||||
EndpointURL string `lumi:"endpointURL,out"`
|
||||
// Key-value pairs defining all of the configuration options for this environment, including both values provided
|
||||
// in the OptionSettings input, as well as settings with default values.
|
||||
AllOptionSettings *[]OptionSetting `lumi:"allOptionSettings,out"`
|
||||
}
|
||||
|
||||
// OptionSetting specifies options for an Elastic Beanstalk environment.
|
||||
type OptionSetting struct {
|
||||
// A unique namespace identifying the option's associated AWS resource. For a list of namespaces that you can use,
|
||||
// see http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html.
|
||||
Namespace string `lumi:"namespace"`
|
||||
// The name of the configuration option. For a list of options that you can use, see
|
||||
// http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html.
|
||||
OptionName string `lumi:"optionName"`
|
||||
// The value of the setting.
|
||||
Value string `lumi:"value"`
|
||||
}
|
||||
|
||||
// A Tag helps to identify and categorize resources.
|
||||
type Tag struct {
|
||||
// The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be
|
||||
// prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace,
|
||||
// _, ., /, =, +, and -.
|
||||
Key string `lumi:"key"`
|
||||
// The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be
|
||||
// prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace,
|
||||
// _, ., /, =, +, and -.
|
||||
Value string `lumi:"value"`
|
||||
}
|
||||
|
||||
// The Tier for an Elastic Beanstalk Environment.
|
||||
type Tier string
|
||||
|
||||
const (
|
||||
WebServerTier Tier = "WebServer::Standard::1.0"
|
||||
WorkerTier Tier = "Worker::SQS/HTTP::1.0"
|
||||
)
|
|
@ -1,29 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package iam
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Group is an AWS Identity and Access Management (IAM) group.
|
||||
type Group struct {
|
||||
idl.NamedResource
|
||||
// groupName is a name for the IAM group. If you don't specify a name, a unique physical ID will be generated.
|
||||
//
|
||||
// Important: if you specify a name, you cannot perform updates that require replacement of this resource. You can
|
||||
// perform updates that require no or some interruption. If you must replace this resource, specify a new name.
|
||||
//
|
||||
// If you specify a new name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your capabilities.
|
||||
//
|
||||
// Warning: Naming an IAM resource can cause an unrecoverable error if you reuse the same code in multiple regions.
|
||||
// To prevent this, create a name that includes the region name itself, to create a region-specific name.
|
||||
GroupName *string `lumi:"groupName,replaces,optional"`
|
||||
// managedPolicies is one or more managed policies to attach to this role.
|
||||
ManagedPolicies *[]*Policy `lumi:"managedPolicies,optional"`
|
||||
// path is the path associated with this role. For more information about paths, see
|
||||
// http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_FriendlyNames.
|
||||
Path *string `lumi:"path,optional"`
|
||||
// policies are the policies to associate with this role.
|
||||
Policies *InlinePolicy `lumi:"policies,optional"`
|
||||
}
|
|
@ -1,28 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package iam
|
||||
|
||||
import (
|
||||
aws "github.com/pulumi/lumi/lib/aws/idl"
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// InstanceProfile is an AWS Identity and Access Management (IAM) instance profile. Use an IAM instance profile to
|
||||
// enable applications running on an EC2 instance to securely access your AWS resources. For more information about
|
||||
// IAM instance profiles, see
|
||||
// http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html.
|
||||
type InstanceProfile struct {
|
||||
idl.NamedResource
|
||||
// Path is the path associated with this instance profile. For more information about paths, see
|
||||
// http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_FriendlyNames.
|
||||
Path *string `lumi:"path,replaces,optional"`
|
||||
// The name of the instance profile that you want to create. This parameter allows a string consisting of upper and
|
||||
// lowercase alphanumeric characters with no spaces. You can also include any of the following characters: = , . @ -.
|
||||
InstanceProfileName *string `lumi:"instanceProfileName,replaces,optional"`
|
||||
// The name of an existing IAM role to associate with this instance profile. Currently, you can assign a maximum
|
||||
// of one role to an instance profile.
|
||||
Roles []*Role `lumi:"roles"`
|
||||
// The Amazon Resource Name (ARN) for the instance profile. For example,
|
||||
// `arn:aws:iam::1234567890:instance-profile/MyProfile-ASDNSDLKJ`.
|
||||
ARN aws.ARN `lumi:"arn,out"`
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package iam
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Policy associates an IAM policy with IAM users, roles, or groups. For more information about IAM
|
||||
// policies, see http://docs.aws.amazon.com/IAM/latest/UserGuide/policies_overview.html.
|
||||
type Policy struct {
|
||||
idl.NamedResource
|
||||
// PolicyDocument is a policy document that contains permissions to add to the specified users, roles, or groups.
|
||||
PolicyDocument interface{} `lumi:"policyDocument"` // IDEA: schematize this.
|
||||
// PolicyName is the name of the policy. If you specify multiple policies for an entity, specify unique names. For
|
||||
// example, if you specify a list of policies for an IAM role, each policy must have a unique name.
|
||||
PolicyName string `lumi:"policyName"`
|
||||
// Groups are the groups to which you want to add this policy.
|
||||
Groups *[]*Group `lumi:"groups,optional"`
|
||||
// Roles are the roles to which you want to attach this policy.
|
||||
Roles *[]*Role `lumi:"roles,optional"`
|
||||
// Users are the users for whom you want to add this policy.
|
||||
Users *[]*User `lumi:"users,optional"`
|
||||
}
|
||||
|
||||
// InlinePolicies are attached to Policies, Groups, and User resources, to describe what actions are allowed on them.
|
||||
// For more information on policies, please see http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html.
|
||||
type InlinePolicy struct {
|
||||
// PolicyDocument is a policy document that describes what actions are allowed on which resources.
|
||||
PolicyDocument interface{} `lumi:"policyDocument"` // IDEA: schematize this.
|
||||
// PolicyName is the unique name of the policy.
|
||||
PolicyName string `lumi:"policyName"`
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package iam
|
||||
|
||||
import (
|
||||
aws "github.com/pulumi/lumi/lib/aws/idl"
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Role is an AWS Identity and Access Management (IAM) role. Use an IAM role to enable applications running on an EC2
|
||||
// instance to securely access your AWS resources. For more information about IAM roles, see
|
||||
// http://docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html.
|
||||
type Role struct {
|
||||
idl.NamedResource
|
||||
// AssumeRolePolicyDocument is the trust policy associated with this role.
|
||||
AssumeRolePolicyDocument interface{} `lumi:"assumeRolePolicyDocument"` // IDEA: schematize this.
|
||||
// Path is the path associated with this role. For more information about paths, see
|
||||
// http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_FriendlyNames.
|
||||
Path *string `lumi:"path,replaces,optional"`
|
||||
// RoleName is a name for the IAM role. If you don't specify a name, a unique physical ID will be generated.
|
||||
//
|
||||
// Important: If you specify a name, you cannot perform updates that require replacement of this resource. You can
|
||||
// perform updates that require no or some interruption. If you must replace the resource, specify a new name.
|
||||
//
|
||||
// If you specify a name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge these capabilities.
|
||||
//
|
||||
// Warning: Naming an IAM resource can cause an unrecoverable error if you reuse the same code in multiple regions.
|
||||
// To prevent this, create a name that includes the region name itself, to create a region-specific name.
|
||||
RoleName *string `lumi:"roleName,replaces,optional"`
|
||||
// managedPolicies is one or more managed policies to attach to this role.
|
||||
ManagedPolicyARNs *[]aws.ARN `lumi:"managedPolicyARNs,optional"`
|
||||
// Policies are the policies to associate with this role.
|
||||
Policies *[]InlinePolicy `lumi:"policies,optional"`
|
||||
// The Amazon Resource Name (ARN) for the instance profile. For example,
|
||||
// `arn:aws:iam::1234567890:role/MyRole-AJJHDSKSDF`.
|
||||
ARN aws.ARN `lumi:"arn,out"`
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package iam
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The User resource creates an AWS Identity and Access Management (IAM) user.
|
||||
type User struct {
|
||||
idl.NamedResource
|
||||
// UserName is a name for the IAM group. If you don't specify a name, a unique physical ID will be generated.
|
||||
//
|
||||
// Important: if you specify a name, you cannot perform updates that require replacement of this resource. You can
|
||||
// perform updates that require no or some interruption. If you must replace this resource, specify a new name.
|
||||
//
|
||||
// If you specify a new name, you must specify the `CAPABILITY_NAMED_IAM` value to acknowledge your capabilities.
|
||||
//
|
||||
// Warning: Naming an IAM resource can cause an unrecoverable error if you reuse the same code in multiple regions.
|
||||
// To prevent this, create a name that includes the region name itself, to create a region-specific name.
|
||||
UserName *string `lumi:"userName,replaces,optional"`
|
||||
// Groups is a list of groups to which you want to add the user.
|
||||
Groups *[]*Group `lumi:"groups,optional"`
|
||||
// LoginProfile creates a login profile so that the user can access the AWS Management Console.
|
||||
LoginProfile *LoginProfile `lumi:"loginProfile,optional"`
|
||||
// ManagedPolicies is one or more managed policies to attach to this role.
|
||||
ManagedPolicies *[]*Policy `lumi:"managedPolicies,optional"`
|
||||
// Path is the path associated with this role. For more information about paths, see
|
||||
// http://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html#Identifiers_FriendlyNames.
|
||||
Path *string `lumi:"path,optional"`
|
||||
// Policies are the policies to associate with this role.
|
||||
Policies *[]InlinePolicy `lumi:"policies,optional"`
|
||||
}
|
||||
|
||||
type LoginProfile struct {
|
||||
// Password is the password for the user.
|
||||
Password string `lumi:"password"`
|
||||
// PasswordResetRequired specifies whether the user is required to set a new password the next time the user logs
|
||||
// into the AWS Management Console.
|
||||
PasswordResetRequired *bool `lumi:"passwordResetRequired,optional"`
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package kms
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Key resource creates a customer master key (CMK) in AWS Key Management Service (AWS KMS). Users (customers) can
|
||||
// use the master key to encrypt their data stored in AWS services that are integrated with AWS KMS or within their
|
||||
// applications. For more information, see http://docs.aws.amazon.com/kms/latest/developerguide/.
|
||||
type Key struct {
|
||||
idl.NamedResource
|
||||
// KeyPolicy attaches a KMS policy to this key. Use a policy to specify who has permission to use the key and which
|
||||
// actions they can perform. For more information, see
|
||||
// http://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html.
|
||||
KeyPolicy interface{} `lumi:"keyPolicy"` // IDEA: schematize this.
|
||||
// Description is an optional description of the key. Use a description that helps your users decide whether the
|
||||
// key is appropriate for a particular task.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// Enabled indicates whether the key is available for use. This value is `true` by default.
|
||||
Enabled *bool `lumi:"enabled,optional"`
|
||||
// EnableKeyRotation indicates whether AWS KMS rotates the key. This value is `false` by default.
|
||||
EnableKeyRotation *bool `lumi:"enableKeyRotation,optional"`
|
||||
}
|
|
@ -1,106 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package lambda
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
|
||||
aws "github.com/pulumi/lumi/lib/aws/idl"
|
||||
"github.com/pulumi/lumi/lib/aws/idl/ec2"
|
||||
"github.com/pulumi/lumi/lib/aws/idl/iam"
|
||||
"github.com/pulumi/lumi/lib/aws/idl/kms"
|
||||
)
|
||||
|
||||
// The Function resource creates an AWS Lambda function that can run code in response to events.
|
||||
type Function struct {
|
||||
idl.NamedResource
|
||||
|
||||
// code is the source code of your Lambda function. This supports all the usual Lumi asset schemes, in addition
|
||||
// to Amazon Simple Storage Service (S3) bucket locations, indicating with a URI scheme of s3//<bucket>/<object>.
|
||||
Code *idl.Archive `lumi:"code"`
|
||||
// handler is the name of the function (within your source code) that Lambda calls to start running your code.
|
||||
Handler string `lumi:"handler"`
|
||||
// role is the AWS Identity and Access Management (IAM) execution role that Lambda assumes when it runs your code
|
||||
// to access AWS services.
|
||||
Role *iam.Role `lumi:"role"`
|
||||
// runtime is the runtime environment for the Lambda function that you are uploading.
|
||||
Runtime Runtime `lumi:"runtime"`
|
||||
// functionName is a name for the function. If you don't specify a name, a unique physical ID is used instead.
|
||||
FunctionName *string `lumi:"functionName,optional"`
|
||||
// deadLetterConfig configures how Lambda handles events that it can't process. If you don't specify a Dead Letter
|
||||
// Queue (DLQ) configuration, Lambda discards events after the maximum number of retries.
|
||||
DeadLetterConfig *DeadLetterConfig `lumi:"deadLetterConfig,optional"`
|
||||
// description is an optional description of the function.
|
||||
Description *string `lumi:"description,optional"`
|
||||
// environment contains key-value pairs that Lambda caches and makes available for your Lambda functions. Use
|
||||
// environment variables to apply configuration changes, such as test and production environment configurations,
|
||||
// without changing your Lambda function source code.
|
||||
Environment *Environment `lumi:"environment,optional"`
|
||||
// kmsKey is a AWS Key Management Service (AMS KMS) key that Lambda uses to encrypt and decrypt environment
|
||||
// variables.
|
||||
KMSKey *kms.Key `lumi:"kmsKey,optional"`
|
||||
// memorySize is the amount of memory, in MB, that is allocated to your Lambda function. Lambda uses this value to
|
||||
// proportionally allocate the amount of CPU power. Your function use case determines your CPU and memory
|
||||
// requirements. For example, a database operation might need less memory than an image processing function. You
|
||||
// must specify a value that is greater than or equal to `128` and it must be a multiple of `64`. You cannot
|
||||
// specify a size larger than `1536`. The default value is `128` MB.
|
||||
MemorySize *float64 `lumi:"memorySize,optional"`
|
||||
// timeout is the function execution time (in seconds) after which Lambda terminates the function. Because the
|
||||
// execution time affects cost, set this value based on the function's expected execution time. By default, timeout
|
||||
// is set to `3` seconds.
|
||||
Timeout *float64 `lumi:"timeout,optional"`
|
||||
// vpcConfig specifies a VPC configuration that Lambda uses to set up an elastic network interface (ENI). The ENI
|
||||
// enables your function to connect to other resources in your VPC, but it doesn't provide public Internet access.
|
||||
// If your function requires Internet access (for example, to access AWS services that don't have VPC endpoints),
|
||||
// configure a Network Address Translation (NAT) instance inside your VPC or use an Amazon Virtual Private Cloud
|
||||
// (Amazon VPC) NAT gateway.
|
||||
VPCConfig *VPCConfig `lumi:"vpcConfig,optional"`
|
||||
|
||||
// The ARN of the Lambda function, such as `arn:aws:lambda:us-west-2:123456789012:MyStack-AMILookUp-NT5EUXTNTXXD`.
|
||||
ARN aws.ARN `lumi:"arn,out"`
|
||||
// version is the latest published version of the Lambda function.
|
||||
Version string `lumi:"version,out"`
|
||||
// codeSHA256 is the base64-encoded SHA-256 hash of the source code zip file for the Lambda function.
|
||||
CodeSHA256 string `lumi:"codeSHA256,out"`
|
||||
// lastModified is the date the Lambda function was last modified.
|
||||
LastModified string `lumi:"lastModified,out"`
|
||||
}
|
||||
|
||||
// Runtime represents the legal runtime environments for Lambdas.
|
||||
type Runtime string
|
||||
|
||||
const (
|
||||
NodeJSRuntime Runtime = "nodejs"
|
||||
NodeJS4d3Runtime Runtime = "nodejs4.3"
|
||||
NodeJS4d3EdgeRuntime Runtime = "nodejs4.3-edge"
|
||||
NodeJS6d10Runtime Runtime = "nodejs6.10"
|
||||
Java8Runtime Runtime = "java8"
|
||||
Python2d7Runtime Runtime = "python2.7"
|
||||
DotnetCore1d0Runtime Runtime = "dotnetcore1.0"
|
||||
)
|
||||
|
||||
// DeadLetterConfig is a property of an AWS Lambda Function resource that specifies a Dead Letter Queue (DLQ) that
|
||||
// events are sent to when functions cannot be processed. For example, you can send unprocessed events to an Amazon
|
||||
// Simple Notification Service (Amazon SQS) topic, where you can take further action.
|
||||
type DeadLetterConfig struct {
|
||||
// The Target resource where Lambda delivers unprocessed events. It may be an Amazon SNS topic or Amazon
|
||||
// Simple Queue Service (SQS) queue. For the Lambda function-execution role, you must explicitly provide the
|
||||
// relevant permissions so that access to your DLQ resource is part of the execution role for your Lambda function.
|
||||
Target *idl.Resource `lumi:"target"` // IDEA: use union types to represent `sns.Topic | sqs.Queue`;
|
||||
}
|
||||
|
||||
// Environment is a property of an AWS Lambda Function resource that specifies key-value pairs that the function can
|
||||
// access so that you can apply configuration changes, such as test and production environment configurations, without
|
||||
// changing the function code.
|
||||
type Environment map[string]string
|
||||
|
||||
// VPCConfig is a property of an AWS Lambda Function resource that enables it to access resources in a VPC. For more
|
||||
// information, see http://docs.aws.amazon.com/lambda/latest/dg/vpc.html.
|
||||
type VPCConfig struct {
|
||||
// securityGroups is a list of one or more security groups in the VPC that include the resources to which your
|
||||
// Lambda function requires access.
|
||||
SecurityGroups []*ec2.SecurityGroup `lumi:"securityGroups"`
|
||||
// subnets is a list of one or more subnet IDs in the VPC that includes the resources to which your Lambda function
|
||||
// requires access.
|
||||
Subnets []*ec2.Subnet `lumi:"subnets"`
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package lambda
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
|
||||
aws "github.com/pulumi/lumi/lib/aws/idl"
|
||||
)
|
||||
|
||||
// The Permission resource associates a policy statement with a specific AWS Lambda function's access policy. The
|
||||
// function policy grants a specific AWS service or application permission to invoke the function. For more
|
||||
// information, see http://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html.
|
||||
type Permission struct {
|
||||
idl.NamedResource
|
||||
// The Lambda actions that you want to allow in this statement. For example, you can specify lambda:CreateFunction
|
||||
// to specify a certain action, or use a wildcard (lambda:*) to grant permission to all Lambda actions. For a list
|
||||
// of actions, see http://docs.aws.amazon.com/IAM/latest/UserGuide/list_lambda.html.
|
||||
Action string `lumi:"action,replaces"`
|
||||
// The Lambda function that you want to associate with this statement.
|
||||
Function *Function `lumi:"function,replaces"`
|
||||
// The entity for which you are granting permission to invoke the Lambda function. This entity can be any valid AWS
|
||||
// service principal, such as `s3.amazonaws.com` or `sns.amazonaws.com`, or, if you are granting cross-account
|
||||
// permission, an AWS account ID. For example, you might want to allow a custom application in another AWS account
|
||||
// to push events to Lambda by invoking your function.
|
||||
Principal string `lumi:"principal,replaces"`
|
||||
// The AWS account ID (without hyphens) of the source owner. For example, if you specify an S3 bucket in the
|
||||
// sourceARN property, this value is the bucket owner's account ID. You can use this property to ensure that all
|
||||
// source principals are owned by a specific account.
|
||||
SourceAccount *string `lumi:"sourceAccount,replaces,optional"`
|
||||
// The ARN of a resource that is invoking your function. When granting Amazon Simple Storage Service (Amazon S3)
|
||||
// permission to invoke your function, specify this property with the bucket ARN as its value. This ensures that
|
||||
// events generated only from the specified bucket, not just any bucket from any AWS account that creates a mapping
|
||||
// to your function, can invoke the function.
|
||||
SourceARN *aws.ARN `lumi:"sourceARN,replaces,optional"`
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package s3
|
||||
|
||||
// CannedACL is a predefined Amazon S3 grant. Each canned ACL value has a predefined set of grantees and permissions.
|
||||
type CannedACL string
|
||||
|
||||
const (
|
||||
// Owner gets `FULL_CONTROL`. Noone else has access rights (default).
|
||||
PrivateACL CannedACL = "private"
|
||||
// Owner gets `FULL_CONTROL`. The `AllUsers` group gets `READ` access.
|
||||
PublicReadACL CannedACL = "public-read"
|
||||
// Owner gets `FULL_CONTROL`. The `AllUsers` group gets `READ` and `WRITE` access.
|
||||
PublicReadWriteACL CannedACL = "public-read-write"
|
||||
// Owner gets `FULL_CONTROL`. Amazon EC2 gets `READ` access to `GET` an AMI bundle.
|
||||
AWSExecReadACL CannedACL = "aws-exec-read"
|
||||
// Owner gets `FULL_CONTROL`. The `AuthenticatedUsers` group gets `READ` access.
|
||||
AuthenticatedReadACL CannedACL = "authenticated-read"
|
||||
// Object owner gets `FULL_CONTROL`. Bucket owner gets `READ` access.
|
||||
BucketOwnerReadACL CannedACL = "bucket-owner-read"
|
||||
// Both object and bucket owner get `FULL_CONTROL` over the object.
|
||||
BucketOwnerFullControlACL CannedACL = "bucket-owner-full-control"
|
||||
// The `LogDelivery` group gets `WRITE` and `READ_ACP` permissions on this bucket.
|
||||
LogDeliveryWriteACL CannedACL = "log-delivery-write"
|
||||
)
|
|
@ -1,18 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package s3
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Bucket represents an Amazon Simple Storage Service (Amazon S3) bucket.
|
||||
// TODO[pulumi/lumi#218]: support all the various configuration settings (CORS, lifecycle, logging, and so on).
|
||||
type Bucket struct {
|
||||
idl.NamedResource
|
||||
// BucketName is a name for the bucket. If you don't specify a name, a unique physical ID is generated. The name
|
||||
// must contain only lowercase letters, numbers, periods (`.`), and dashes (`-`).
|
||||
BucketName *string `lumi:"bucketName,replaces,optional"`
|
||||
// accessControl is a canned access control list (ACL) that grants predefined permissions to the bucket.
|
||||
AccessControl *CannedACL `lumi:"accessControl,optional"`
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package s3
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// Object represents an Amazon Simple Storage Service (S3) object (key/value blob).
|
||||
type Object struct {
|
||||
idl.Resource
|
||||
// The Key that uniquely identifies this object.
|
||||
Key string `lumi:"key,replaces"`
|
||||
// The Bucket this object belongs to.
|
||||
Bucket *Bucket `lumi:"bucket,replaces"`
|
||||
// The Source of content for this object.
|
||||
Source *idl.Asset `lumi:"source,in"`
|
||||
// A standard MIME type describing the format of the object data.
|
||||
ContentType *string `lumi:"contentType,optional"`
|
||||
// Specifies presentational information for the object.
|
||||
ContentDisposition *string `lumi:"contentDisposition,optional"`
|
||||
// Specifies caching behavior along the request/reply chain.
|
||||
CacheControl *string `lumi:"cacheControl,optional"`
|
||||
// Specifies what content encodings have been applied to the object and thus
|
||||
// what decoding mechanisms must be applied to obtain the media-type referenced
|
||||
// by the Content-Type header field.
|
||||
ContentEncoding *string `lumi:"contentEncoding,optional"`
|
||||
// The language the content is in.
|
||||
ContentLanguage *string `lumi:"contentLanguage,optional"`
|
||||
// Size of the body in bytes. This parameter is useful when the size of the
|
||||
// body cannot be determined automatically.
|
||||
ContentLength *float64 `lumi:"contentLength,optional"`
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package sns
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// An Amazon Simple Notification Service (Amazon SNS) topic subscription. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sns-subscription.html.
|
||||
type Subscription struct {
|
||||
idl.NamedResource
|
||||
// A name for the topic. If you don't specify a name, a unique physical ID will be generated.
|
||||
Topic *Topic `lumi:"topic,replaces"`
|
||||
// The subscription's protocol.
|
||||
Protocol Protocol `lumi:"protocol,replaces"`
|
||||
// The subscription's endpoint (format depends on the protocol).
|
||||
Endpoint string `lumi:"endpoint,replaces"`
|
||||
}
|
||||
|
||||
// The protocols supported by the Amazon Simple Notification Service (Amazon SNS).
|
||||
type Protocol string
|
||||
|
||||
const (
|
||||
HTTSubscription Protocol = "http" // delivery of JSON-encoded message via HTTP POST.
|
||||
HTTPSSubscription Protocol = "https" // delivery of JSON-encoded message via HTTPS POST.
|
||||
EmailSubscription Protocol = "email" // delivery of message via SMTP.
|
||||
EmailJSONSubscription Protocol = "email-json" // delivery of JSON-encoded message via SMTP.
|
||||
SMSSubscription Protocol = "sms" // delivery of message via SMS.
|
||||
SQSSubscription Protocol = "sqs" // delivery of JSON-encoded message to an Amazon SQS queue.
|
||||
ApplicationSubscription Protocol = "application" // delivery of JSON-encoded message to a mobile app or device.
|
||||
LambdaSubscription Protocol = "lambda" // delivery of JSON-encoded message to an AWS Lambda function.
|
||||
)
|
|
@ -1,17 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package sns
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// An Amazon Simple Notification Service (Amazon SNS) topic. For more information, see
|
||||
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html.
|
||||
type Topic struct {
|
||||
idl.NamedResource
|
||||
// A name for the topic. If you don't specify a name, a unique physical ID will be generated.
|
||||
TopicName *string `lumi:"topicName,replaces,optional"`
|
||||
// A developer-defined string that can be used to identify this SNS topic.
|
||||
DisplayName *string `lumi:"displayName,optional"`
|
||||
}
|
|
@ -1,61 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package sqs
|
||||
|
||||
import (
|
||||
"github.com/pulumi/lumi/pkg/resource/idl"
|
||||
)
|
||||
|
||||
// The Queue resource creates an Amzon Simple Queue Service (Amazon SQS) queue. For more information about creating
|
||||
// FIFO (first-in-first-out) queues, see http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/.
|
||||
type Queue struct {
|
||||
idl.NamedResource
|
||||
// FIFOQueue indicates whether this queue is a FIFO queue. The default value is `false`.
|
||||
FIFOQueue *bool `lumi:"fifoQueue,replaces,optional"`
|
||||
// queueName is a name for the queue. To create a FIFO queue, the name of your FIFO queue must end with the `.fifo`
|
||||
// suffix. If you don't specify a name, a unique physical ID will be generated and used.
|
||||
//
|
||||
// Important: If you specify a name, you cannot perform updates that require replacement of this resource. You can
|
||||
// perform updates that require no or some interruption. If you must replace the resource, specify a new name.
|
||||
QueueName *string `lumi:"queueName,replaces,optional"`
|
||||
// contentBasedDeduplication, for first-in-first-out (FIFO) queues, specifies whether to enable content-based
|
||||
// deduplication. During the deduplication interval, Amazon SQS treats messages that are sent with identical
|
||||
// content as duplicates and delivers only one copy of the message.
|
||||
ContentBasedDeduplication *bool `lumi:"contentBasedDeduplication,optional"`
|
||||
// delaySeconds is the time in seconds that the delivery of all messages in the queue is delayed. You can specify
|
||||
// an integer value of `0` to `900` (15 minutes). The default value is `0`.
|
||||
DelaySeconds *float64 `lumi:"delaySeconds,optional"`
|
||||
// maximumMessageSize sets a limit of how many bytes that a message can contain before Amazon SQS rejects it. You
|
||||
// can specify an integer value from `1024` bytes (1 KiB) to `262144` bytes (256 KiB). The default value is
|
||||
// `262144` bytes (256 KiB).
|
||||
MaximumMessageSize *float64 `lumi:"maximumMessageSize,optional"`
|
||||
// messageRetentionPeriod is the number of seconds that Amazon SQS retains a message. You can specify an integer
|
||||
// value from `60` seconds (1 minute) to `1209600` seconds (14 days). The default value is `345600` (4 days).
|
||||
MessageRetentionPeriod *float64 `lumi:"messageRetentionPeriod,optional"`
|
||||
// receiveMessageWaitTimeSeconds specifies the duration, in seconds, that receiving a message waits until a message
|
||||
// is in the queue in order to include it in the response, as opposed to returning an empty response if a message is
|
||||
// not yet available. You can specify an integer from `1` to `20`. The short polling is used as the default
|
||||
// or when you specify `0` for this property. For more information about SQS Long Polling, see
|
||||
// http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html.
|
||||
ReceiveMessageWaitTimeSeconds *float64 `lumi:"receiveMessageWaitTimeSeconds,optional"`
|
||||
// redrivePolicy specifies an existing dead letter queue to receive messages after the source queue (this queue)
|
||||
// fails to process a message a specified number of times.
|
||||
RedrivePolicy *RedrivePolicy `lumi:"redrivePolicy,optional"`
|
||||
// visibilityTimeout specifies the length of time during which a message will be unavailable after a message is
|
||||
// delivered from the queue. This blocks other components from receiving the same message and gives the initial
|
||||
// component time to process and delete the message from the queue.
|
||||
//
|
||||
// Values must be from `0` to `43200` seconds (12 hours). The default value if unspecified is `30` seconds.
|
||||
//
|
||||
// For more information about Amazon SQS queue visibility timeouts, see Visibility Timeouts in
|
||||
// http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html.
|
||||
VisibilityTimeout *float64 `lumi:"visibilityTimeout,optional"`
|
||||
}
|
||||
|
||||
type RedrivePolicy struct {
|
||||
// deadLetterTarget is the dead letter queue to which the messages are sent after maxReceiveCount has been exceeded.
|
||||
DeadLetterTarget *Queue `lumi:"deadLetterTarget"`
|
||||
// maxReceiveCount is the number of times a message is delivered to the source queue before being sent to the dead
|
||||
// letter queue.
|
||||
MaxReceiveCount float64 `lumi:"maxReceiveCount"`
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
package aws
|
||||
|
||||
// Amazon Resource Names (ARNs) uniquely identify AWS resources. An ARN is required when you need to specify a
|
||||
// resource unambiguously across all of AWS, such as in IAM policies, Amazon Relational Database Service (Amazon RDS)
|
||||
// tags, and API calls.
|
||||
//
|
||||
// Here are some example ARNs:
|
||||
//
|
||||
// * Elastic Beanstalk application version:
|
||||
// arn:aws:elasticbeanstalk:us-east-1:123456789012:environment/My App/MyEnvironment
|
||||
// * IAM user name:
|
||||
// arn:aws:iam::123456789012:user/David
|
||||
// * Amazon RDS instance used for tagging:
|
||||
// arn:aws:rds:eu-west-1:123456789012:db:mysql-db
|
||||
// * Object in an Amazon S3 bucket:
|
||||
// arn:aws:s3:::my_corporate_bucket/exampleobject.png
|
||||
//
|
||||
// The following are the general formats for ARNs; the specific components and values depend on the AWS service:
|
||||
//
|
||||
// arn:partition:service:region:account-id:resource
|
||||
// arn:partition:service:region:account-id:resourcetype/resource
|
||||
// arn:partition:service:region:account-id:resourcetype:resource
|
||||
//
|
||||
// The component parts are:
|
||||
//
|
||||
// * `partition`: The partition that the resource is in. For standard AWS regions, the partition is `aws`. If you
|
||||
// have resources in other partitions, the partition is `aws-partitionname`. For example, the partition for
|
||||
// resources in the China (Beijing) region is `aws-cn`.
|
||||
// * `service`: The service namespace that identifies the AWS product (for example, Amazon S3, IAM, or Amazon RDS).
|
||||
// For a list of namespaces, see
|
||||
// http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces.
|
||||
// * `region`: The region the resource resides in. Note that the ARNs for some resources do not require a region,
|
||||
// so this component might be omitted.
|
||||
// * `account`: The ID of the AWS account that owns the resource, without the hyphens. For example, 123456789012.
|
||||
// Note that the ARNs for some resources don't require an account number, so this component might be omitted.
|
||||
// * `resource`, `resourcetype/resource`, or `resourcetype:resource`: The content of this part of the ARN varies by
|
||||
// service. It often includes an indicator of the type of resource—for example, an IAM user or Amazon RDS
|
||||
// database -- followed by a slash (/) or a colon (:), followed by the resource name itself. Some services
|
||||
// allows paths for resource names, as described in
|
||||
// http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-paths.
|
||||
//
|
||||
// For more information on ARNs, please see http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html.
|
||||
type ARN string
|
||||
|
||||
// Region contains all the valid AWS regions in a convenient union type.
|
||||
type Region string
|
||||
|
||||
const (
|
||||
USEast1Region Region = "us-east-1" // US East (N. Virginia)
|
||||
USEast2Region Region = "us-east-2" // US East (Ohio)
|
||||
USWest1Region Region = "us-west-1" // US West (N. California)
|
||||
USWest2Region Region = "us-west-2" // US West (Oregon)
|
||||
CACentralRegion Region = "ca-central" // Canada (Central)
|
||||
APSouth1Region Region = "ap-south-1" // Asia Pacific (Mumbai)
|
||||
APNortheast1Region Region = "ap-northeast-1" // Asia Pacific (Tokyo)
|
||||
APNortheast2Region Region = "ap-northeast-2" // Asia Pacific (Seoul)
|
||||
APSoutheast1Region Region = "ap-southeast-1" // Asia Pacific (Singapore)
|
||||
APSouthEast2Region Region = "ap-southeast-2" // Asia Pacific (Sydney)
|
||||
EUCentral1Region Region = "eu-central-1" // EU (Frankfurt)
|
||||
EUWest1Region Region = "eu-west-1" // EU (Ireland)
|
||||
EUWest2Region Region = "eu-west-2" // EU (London)
|
||||
SAEast1Region Region = "sa-east-1" // South America (Sao Paulo)
|
||||
)
|
3
lib/aws/pack/.gitignore
vendored
3
lib/aws/pack/.gitignore
vendored
|
@ -1,3 +0,0 @@
|
|||
.lumi/
|
||||
node_modules/
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
name: aws
|
||||
description: A collection of AWS resources as Lumi stacks.
|
||||
dependencies:
|
||||
lumi: "*"
|
||||
lumirt: "*"
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Role} from "../iam/role";
|
||||
|
||||
export class Account extends lumi.NamedResource implements AccountArgs {
|
||||
public cloudWatchRole?: Role;
|
||||
|
||||
public static get(id: lumi.ID): Account {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Account[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: AccountArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.cloudWatchRole = args.cloudWatchRole;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface AccountArgs {
|
||||
cloudWatchRole?: Role;
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
import {Stage} from "./stage";
|
||||
|
||||
export class APIKey extends lumi.NamedResource implements APIKeyArgs {
|
||||
public readonly keyName?: string;
|
||||
public description?: string;
|
||||
public enabled?: boolean;
|
||||
public stageKeys?: StageKey;
|
||||
|
||||
public static get(id: lumi.ID): APIKey {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): APIKey[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: APIKeyArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.keyName = args.keyName;
|
||||
this.description = args.description;
|
||||
this.enabled = args.enabled;
|
||||
this.stageKeys = args.stageKeys;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface APIKeyArgs {
|
||||
readonly keyName?: string;
|
||||
description?: string;
|
||||
enabled?: boolean;
|
||||
stageKeys?: StageKey;
|
||||
}
|
||||
|
||||
export interface StageKey {
|
||||
restAPI?: RestAPI;
|
||||
stage?: Stage;
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
import {Role} from "../iam/role";
|
||||
|
||||
export let CognitoAuthorizer: AuthorizerType = "COGNITO_USER_POOLS";
|
||||
export let TokenAuthorizer: AuthorizerType = "TOKEN";
|
||||
|
||||
export class Authorizer extends lumi.NamedResource implements AuthorizerArgs {
|
||||
public type: AuthorizerType;
|
||||
public authorizerCredentials?: Role;
|
||||
public authorizerResultTTLInSeconds?: number;
|
||||
public authorizerURI?: string;
|
||||
public identitySource?: string;
|
||||
public identityValidationExpression?: string;
|
||||
public providers?: lumi.Resource[];
|
||||
public restAPI?: RestAPI;
|
||||
|
||||
public static get(id: lumi.ID): Authorizer {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Authorizer[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: AuthorizerArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.type, "") === undefined) {
|
||||
throw new Error("Missing required argument 'type'");
|
||||
}
|
||||
this.type = args.type;
|
||||
this.authorizerCredentials = args.authorizerCredentials;
|
||||
this.authorizerResultTTLInSeconds = args.authorizerResultTTLInSeconds;
|
||||
this.authorizerURI = args.authorizerURI;
|
||||
this.identitySource = args.identitySource;
|
||||
this.identityValidationExpression = args.identityValidationExpression;
|
||||
this.providers = args.providers;
|
||||
this.restAPI = args.restAPI;
|
||||
}
|
||||
}
|
||||
|
||||
export interface AuthorizerArgs {
|
||||
type: AuthorizerType;
|
||||
authorizerCredentials?: Role;
|
||||
authorizerResultTTLInSeconds?: number;
|
||||
authorizerURI?: string;
|
||||
identitySource?: string;
|
||||
identityValidationExpression?: string;
|
||||
providers?: lumi.Resource[];
|
||||
restAPI?: RestAPI;
|
||||
}
|
||||
|
||||
export type AuthorizerType =
|
||||
"COGNITO_USER_POOLS" |
|
||||
"TOKEN";
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
import {Stage} from "./stage";
|
||||
|
||||
export class BasePathMapping extends lumi.NamedResource implements BasePathMappingArgs {
|
||||
public domainName: string;
|
||||
public restAPI: RestAPI;
|
||||
public basePath?: string;
|
||||
public stage?: Stage;
|
||||
|
||||
public static get(id: lumi.ID): BasePathMapping {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): BasePathMapping[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: BasePathMappingArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.domainName, "") === undefined) {
|
||||
throw new Error("Missing required argument 'domainName'");
|
||||
}
|
||||
this.domainName = args.domainName;
|
||||
if (lumirt.defaultIfComputed(args.restAPI, "") === undefined) {
|
||||
throw new Error("Missing required argument 'restAPI'");
|
||||
}
|
||||
this.restAPI = args.restAPI;
|
||||
this.basePath = args.basePath;
|
||||
this.stage = args.stage;
|
||||
}
|
||||
}
|
||||
|
||||
export interface BasePathMappingArgs {
|
||||
domainName: string;
|
||||
restAPI: RestAPI;
|
||||
basePath?: string;
|
||||
stage?: Stage;
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export class ClientCertificate extends lumi.NamedResource implements ClientCertificateArgs {
|
||||
public description?: string;
|
||||
|
||||
public static get(id: lumi.ID): ClientCertificate {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): ClientCertificate[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: ClientCertificateArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.description = args.description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface ClientCertificateArgs {
|
||||
description?: string;
|
||||
}
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
|
||||
export class Deployment extends lumi.NamedResource implements DeploymentArgs {
|
||||
public readonly restAPI: RestAPI;
|
||||
public description?: string;
|
||||
public id: string;
|
||||
public createdDate: string;
|
||||
|
||||
public static get(id: lumi.ID): Deployment {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Deployment[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: DeploymentArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.restAPI, "") === undefined) {
|
||||
throw new Error("Missing required argument 'restAPI'");
|
||||
}
|
||||
this.restAPI = args.restAPI;
|
||||
this.description = args.description;
|
||||
}
|
||||
}
|
||||
|
||||
export interface DeploymentArgs {
|
||||
readonly restAPI: RestAPI;
|
||||
description?: string;
|
||||
}
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./account";
|
||||
export * from "./apiKey";
|
||||
export * from "./authorizer";
|
||||
export * from "./basePathMapping";
|
||||
export * from "./clientCertificate";
|
||||
export * from "./deployment";
|
||||
export * from "./method";
|
||||
export * from "./model";
|
||||
export * from "./resource";
|
||||
export * from "./restAPI";
|
||||
export * from "./stage";
|
||||
export * from "./usagePlan";
|
||||
export * from "./usagePlanKey";
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Authorizer} from "./authorizer";
|
||||
import {Model} from "./model";
|
||||
import {Resource} from "./resource";
|
||||
import {RestAPI} from "./restAPI";
|
||||
|
||||
export let AWSIAMAuthorization: AuthorizationType = "AWS_IAM";
|
||||
export let AWSIntegration: IntegrationType = "AWS";
|
||||
export let AWSProxyIntegration: IntegrationType = "AWS_PROXY";
|
||||
export let CognitoAuthorization: AuthorizationType = "COGNITO_USER_POOLS";
|
||||
export let CustomAuthorization: AuthorizationType = "CUSTOM";
|
||||
export let HTTPIntegration: IntegrationType = "HTTP";
|
||||
export let HTTPProxyIntegration: IntegrationType = "HTTP_PROXY";
|
||||
export let LoggingErrorLevel: LoggingLevel = "ERROR";
|
||||
export let LoggingInfoLevel: LoggingLevel = "INFO";
|
||||
export let LoggingOff: LoggingLevel = "OFF";
|
||||
export let MockIntegration: IntegrationType = "MOCK";
|
||||
export let NoAuthorization: AuthorizationType = "NONE";
|
||||
export let PassthroughNever: PassthroughBehavior = "NEVER";
|
||||
export let PassthroughWhenNoMatch: PassthroughBehavior = "WHEN_NO_MATCH";
|
||||
export let PassthroughWhenNoTemplates: PassthroughBehavior = "WHEN_NO_TEMPLATES";
|
||||
|
||||
export type AuthorizationType =
|
||||
"AWS_IAM" |
|
||||
"COGNITO_USER_POOLS" |
|
||||
"CUSTOM" |
|
||||
"NONE";
|
||||
|
||||
export interface Integration {
|
||||
type: IntegrationType;
|
||||
cacheKeyParameters?: string[];
|
||||
cacheNamespace?: string;
|
||||
credentials?: string;
|
||||
integrationHTTPMethod?: string;
|
||||
integrationResponse?: IntegrationResponse[];
|
||||
passthroughBehavior?: PassthroughBehavior;
|
||||
requestParameters?: {[key: string]: string};
|
||||
requestTemplates?: {[key: string]: string};
|
||||
uri?: string;
|
||||
}
|
||||
|
||||
export interface IntegrationResponse {
|
||||
responseParameters?: {[key: string]: string};
|
||||
responseTemplates?: {[key: string]: string};
|
||||
selectionPattern?: string;
|
||||
statusCode?: string;
|
||||
}
|
||||
|
||||
export type IntegrationType =
|
||||
"AWS" |
|
||||
"AWS_PROXY" |
|
||||
"HTTP" |
|
||||
"HTTP_PROXY" |
|
||||
"MOCK";
|
||||
|
||||
export type LoggingLevel =
|
||||
"ERROR" |
|
||||
"INFO" |
|
||||
"OFF";
|
||||
|
||||
export class Method extends lumi.NamedResource implements MethodArgs {
|
||||
public httpMethod: string;
|
||||
public apiResource: Resource;
|
||||
public restAPI: RestAPI;
|
||||
public apiKeyRequired?: boolean;
|
||||
public authorizationType?: AuthorizationType;
|
||||
public authorizer?: Authorizer;
|
||||
public integration?: Integration;
|
||||
public methodResponses?: MethodResponse[];
|
||||
public requestModels?: {[key: string]: Model};
|
||||
public requestParameters?: {[key: string]: boolean};
|
||||
|
||||
public static get(id: lumi.ID): Method {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Method[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: MethodArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.httpMethod, "") === undefined) {
|
||||
throw new Error("Missing required argument 'httpMethod'");
|
||||
}
|
||||
this.httpMethod = args.httpMethod;
|
||||
if (lumirt.defaultIfComputed(args.apiResource, "") === undefined) {
|
||||
throw new Error("Missing required argument 'apiResource'");
|
||||
}
|
||||
this.apiResource = args.apiResource;
|
||||
if (lumirt.defaultIfComputed(args.restAPI, "") === undefined) {
|
||||
throw new Error("Missing required argument 'restAPI'");
|
||||
}
|
||||
this.restAPI = args.restAPI;
|
||||
this.apiKeyRequired = args.apiKeyRequired;
|
||||
this.authorizationType = args.authorizationType;
|
||||
this.authorizer = args.authorizer;
|
||||
this.integration = args.integration;
|
||||
this.methodResponses = args.methodResponses;
|
||||
this.requestModels = args.requestModels;
|
||||
this.requestParameters = args.requestParameters;
|
||||
}
|
||||
}
|
||||
|
||||
export interface MethodArgs {
|
||||
httpMethod: string;
|
||||
apiResource: Resource;
|
||||
restAPI: RestAPI;
|
||||
apiKeyRequired?: boolean;
|
||||
authorizationType?: AuthorizationType;
|
||||
authorizer?: Authorizer;
|
||||
integration?: Integration;
|
||||
methodResponses?: MethodResponse[];
|
||||
requestModels?: {[key: string]: Model};
|
||||
requestParameters?: {[key: string]: boolean};
|
||||
}
|
||||
|
||||
export interface MethodResponse {
|
||||
statusCode: string;
|
||||
responseModels?: {[key: string]: Model};
|
||||
responseParameters?: {[key: string]: boolean};
|
||||
}
|
||||
|
||||
export interface MethodSetting {
|
||||
cacheDataEncrypted?: boolean;
|
||||
cacheTTLInSeconds?: number;
|
||||
cachingEnabled?: boolean;
|
||||
dataTraceEnabled?: boolean;
|
||||
httpMethod?: string;
|
||||
loggingLevel?: LoggingLevel;
|
||||
metricsEnabled?: boolean;
|
||||
resourcePath?: string;
|
||||
throttlingBurstLimit?: number;
|
||||
throttlingRateLimit?: number;
|
||||
}
|
||||
|
||||
export type PassthroughBehavior =
|
||||
"NEVER" |
|
||||
"WHEN_NO_MATCH" |
|
||||
"WHEN_NO_TEMPLATES";
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
|
||||
export class Model extends lumi.NamedResource implements ModelArgs {
|
||||
public readonly contentType: string;
|
||||
public readonly restAPI: RestAPI;
|
||||
public schema: any;
|
||||
public readonly modelName?: string;
|
||||
public description?: string;
|
||||
|
||||
public static get(id: lumi.ID): Model {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Model[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: ModelArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.contentType, "") === undefined) {
|
||||
throw new Error("Missing required argument 'contentType'");
|
||||
}
|
||||
this.contentType = args.contentType;
|
||||
if (lumirt.defaultIfComputed(args.restAPI, "") === undefined) {
|
||||
throw new Error("Missing required argument 'restAPI'");
|
||||
}
|
||||
this.restAPI = args.restAPI;
|
||||
if (lumirt.defaultIfComputed(args.schema, "") === undefined) {
|
||||
throw new Error("Missing required argument 'schema'");
|
||||
}
|
||||
this.schema = args.schema;
|
||||
this.modelName = args.modelName;
|
||||
this.description = args.description;
|
||||
}
|
||||
}
|
||||
|
||||
export interface ModelArgs {
|
||||
readonly contentType: string;
|
||||
readonly restAPI: RestAPI;
|
||||
schema: any;
|
||||
readonly modelName?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
|
||||
export class Resource extends lumi.NamedResource implements ResourceArgs {
|
||||
public readonly parent: Resource;
|
||||
public readonly pathPart: string;
|
||||
public readonly restAPI: RestAPI;
|
||||
|
||||
public static get(id: lumi.ID): Resource {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Resource[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: ResourceArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.parent, "") === undefined) {
|
||||
throw new Error("Missing required argument 'parent'");
|
||||
}
|
||||
this.parent = args.parent;
|
||||
if (lumirt.defaultIfComputed(args.pathPart, "") === undefined) {
|
||||
throw new Error("Missing required argument 'pathPart'");
|
||||
}
|
||||
this.pathPart = args.pathPart;
|
||||
if (lumirt.defaultIfComputed(args.restAPI, "") === undefined) {
|
||||
throw new Error("Missing required argument 'restAPI'");
|
||||
}
|
||||
this.restAPI = args.restAPI;
|
||||
}
|
||||
}
|
||||
|
||||
export interface ResourceArgs {
|
||||
readonly parent: Resource;
|
||||
readonly pathPart: string;
|
||||
readonly restAPI: RestAPI;
|
||||
}
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Object} from "../s3/object";
|
||||
|
||||
export class RestAPI extends lumi.NamedResource implements RestAPIArgs {
|
||||
public body?: any;
|
||||
public bodyS3Location?: S3Location;
|
||||
public cloneFrom?: RestAPI;
|
||||
public description?: string;
|
||||
public failOnWarnings?: boolean;
|
||||
public apiName?: string;
|
||||
public parameters?: string[];
|
||||
public id: string;
|
||||
public createdDate: string;
|
||||
public version: string;
|
||||
public warnings: string[];
|
||||
public binaryMediaTypes: string[];
|
||||
|
||||
public static get(id: lumi.ID): RestAPI {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): RestAPI[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: RestAPIArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.body = args.body;
|
||||
this.bodyS3Location = args.bodyS3Location;
|
||||
this.cloneFrom = args.cloneFrom;
|
||||
this.description = args.description;
|
||||
this.failOnWarnings = args.failOnWarnings;
|
||||
this.apiName = args.apiName;
|
||||
this.parameters = args.parameters;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface RestAPIArgs {
|
||||
body?: any;
|
||||
bodyS3Location?: S3Location;
|
||||
cloneFrom?: RestAPI;
|
||||
description?: string;
|
||||
failOnWarnings?: boolean;
|
||||
apiName?: string;
|
||||
parameters?: string[];
|
||||
}
|
||||
|
||||
export interface S3Location {
|
||||
object: Object;
|
||||
etag?: string;
|
||||
version?: string;
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {ClientCertificate} from "./clientCertificate";
|
||||
import {Deployment} from "./deployment";
|
||||
import {MethodSetting} from "./method";
|
||||
import {RestAPI} from "./restAPI";
|
||||
|
||||
export class Stage extends lumi.NamedResource implements StageArgs {
|
||||
public readonly restAPI: RestAPI;
|
||||
public readonly stageName: string;
|
||||
public deployment: Deployment;
|
||||
public cacheClusterEnabled?: boolean;
|
||||
public cacheClusterSize?: string;
|
||||
public clientCertificate?: ClientCertificate;
|
||||
public description?: string;
|
||||
public methodSettings?: MethodSetting[];
|
||||
public variables?: {[key: string]: string};
|
||||
public createdDate: string;
|
||||
public lastUpdatedDate: string;
|
||||
public url: string;
|
||||
public executionARN: string;
|
||||
|
||||
public static get(id: lumi.ID): Stage {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Stage[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: StageArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.restAPI, "") === undefined) {
|
||||
throw new Error("Missing required argument 'restAPI'");
|
||||
}
|
||||
this.restAPI = args.restAPI;
|
||||
if (lumirt.defaultIfComputed(args.stageName, "") === undefined) {
|
||||
throw new Error("Missing required argument 'stageName'");
|
||||
}
|
||||
this.stageName = args.stageName;
|
||||
if (lumirt.defaultIfComputed(args.deployment, "") === undefined) {
|
||||
throw new Error("Missing required argument 'deployment'");
|
||||
}
|
||||
this.deployment = args.deployment;
|
||||
this.cacheClusterEnabled = args.cacheClusterEnabled;
|
||||
this.cacheClusterSize = args.cacheClusterSize;
|
||||
this.clientCertificate = args.clientCertificate;
|
||||
this.description = args.description;
|
||||
this.methodSettings = args.methodSettings;
|
||||
this.variables = args.variables;
|
||||
}
|
||||
}
|
||||
|
||||
export interface StageArgs {
|
||||
readonly restAPI: RestAPI;
|
||||
readonly stageName: string;
|
||||
deployment: Deployment;
|
||||
cacheClusterEnabled?: boolean;
|
||||
cacheClusterSize?: string;
|
||||
clientCertificate?: ClientCertificate;
|
||||
description?: string;
|
||||
methodSettings?: MethodSetting[];
|
||||
variables?: {[key: string]: string};
|
||||
}
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {RestAPI} from "./restAPI";
|
||||
import {Stage} from "./stage";
|
||||
|
||||
export let QuotaDayPeriod: QuotaPeriod = "DAY";
|
||||
export let QuotaMonthPeriod: QuotaPeriod = "MONTH";
|
||||
export let QuotaWeekPeriod: QuotaPeriod = "WEEK";
|
||||
|
||||
export interface APIStage {
|
||||
api?: RestAPI;
|
||||
stage?: Stage;
|
||||
}
|
||||
|
||||
export type QuotaPeriod =
|
||||
"DAY" |
|
||||
"MONTH" |
|
||||
"WEEK";
|
||||
|
||||
export interface QuotaSettings {
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
period?: QuotaPeriod;
|
||||
}
|
||||
|
||||
export interface ThrottleSettings {
|
||||
burstRateLimit?: number;
|
||||
rateLimit?: number;
|
||||
}
|
||||
|
||||
export class UsagePlan extends lumi.NamedResource implements UsagePlanArgs {
|
||||
public apiStages?: APIStage[];
|
||||
public description?: string;
|
||||
public quota?: QuotaSettings;
|
||||
public throttle?: ThrottleSettings;
|
||||
public usagePlanName?: string;
|
||||
|
||||
public static get(id: lumi.ID): UsagePlan {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): UsagePlan[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: UsagePlanArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.apiStages = args.apiStages;
|
||||
this.description = args.description;
|
||||
this.quota = args.quota;
|
||||
this.throttle = args.throttle;
|
||||
this.usagePlanName = args.usagePlanName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface UsagePlanArgs {
|
||||
apiStages?: APIStage[];
|
||||
description?: string;
|
||||
quota?: QuotaSettings;
|
||||
throttle?: ThrottleSettings;
|
||||
usagePlanName?: string;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {APIKey} from "./apiKey";
|
||||
import {UsagePlan} from "./usagePlan";
|
||||
|
||||
export class UsagePlanKey extends lumi.NamedResource implements UsagePlanKeyArgs {
|
||||
public readonly key: APIKey;
|
||||
public readonly usagePlan: UsagePlan;
|
||||
|
||||
public static get(id: lumi.ID): UsagePlanKey {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): UsagePlanKey[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: UsagePlanKeyArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.key, "") === undefined) {
|
||||
throw new Error("Missing required argument 'key'");
|
||||
}
|
||||
this.key = args.key;
|
||||
if (lumirt.defaultIfComputed(args.usagePlan, "") === undefined) {
|
||||
throw new Error("Missing required argument 'usagePlan'");
|
||||
}
|
||||
this.usagePlan = args.usagePlan;
|
||||
}
|
||||
}
|
||||
|
||||
export interface UsagePlanKeyArgs {
|
||||
readonly key: APIKey;
|
||||
readonly usagePlan: UsagePlan;
|
||||
}
|
||||
|
|
@ -1,201 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export let AverageStatistic: AlarmStatistic = "Average";
|
||||
export let BitsMetric: AlarmMetric = "Bits";
|
||||
export let BitsPerSecondMetric: AlarmMetric = "Bits/Second";
|
||||
export let BytesMetric: AlarmMetric = "Bytes";
|
||||
export let BytesPerSecondMetric: AlarmMetric = "Bytes/Second";
|
||||
export let CountMetric: AlarmMetric = "Count";
|
||||
export let CountPerSecondMetric: AlarmMetric = "Count/Second";
|
||||
export let GigabitsMetric: AlarmMetric = "Gigabits";
|
||||
export let GigabitsPerSecondMetric: AlarmMetric = "Gigabits/Second";
|
||||
export let GigabytesMetric: AlarmMetric = "Gigabytes";
|
||||
export let GigabytesPerSecondMetric: AlarmMetric = "Gigabytes/Second";
|
||||
export let KilobitsMetric: AlarmMetric = "Kilobits";
|
||||
export let KilobitsPerSecondMetric: AlarmMetric = "Kilobits/Second";
|
||||
export let KilobytesMetric: AlarmMetric = "Kilobytes";
|
||||
export let KilobytesPerSecondMetric: AlarmMetric = "Kilobytes/Second";
|
||||
export let MaximumStatistic: AlarmStatistic = "Maximum";
|
||||
export let MegabitsMetric: AlarmMetric = "Megabits";
|
||||
export let MegabitsPerSecondMetric: AlarmMetric = "Megabits/Second";
|
||||
export let MegabytesMetric: AlarmMetric = "Megabytes";
|
||||
export let MegabytesPerSecondMetric: AlarmMetric = "Megabytes/Second";
|
||||
export let MicrosecondsMetric: AlarmMetric = "Microseconds";
|
||||
export let MillisecondsMetric: AlarmMetric = "Milliseconds";
|
||||
export let MinimumStatistic: AlarmStatistic = "Minimum";
|
||||
export let NoMetric: AlarmMetric = "None";
|
||||
export let PercentMetric: AlarmMetric = "Percent";
|
||||
export let SampleCountStatistic: AlarmStatistic = "SampleCount";
|
||||
export let SecondsMetric: AlarmMetric = "Seconds";
|
||||
export let SumStatistic: AlarmStatistic = "Sum";
|
||||
export let TerabitsMetric: AlarmMetric = "Terabits";
|
||||
export let TerabitsPerSecondMetric: AlarmMetric = "Terabits/Second";
|
||||
export let TerabytesMetric: AlarmMetric = "Terabytes";
|
||||
export let TerabytesPerSecondMetric: AlarmMetric = "Terabytes/Second";
|
||||
export let ThresholdGreaterThan: AlarmComparisonOperator = "GreaterThanThreshold";
|
||||
export let ThresholdGreaterThanOrEqualTo: AlarmComparisonOperator = "GreaterThanOrEqualToThreshold";
|
||||
export let ThresholdLessThan: AlarmComparisonOperator = "LessThanThreshold";
|
||||
export let ThresholdLessThanOrEqualTo: AlarmComparisonOperator = "LessThanOrEqualToThreshold";
|
||||
|
||||
export class ActionTarget extends lumi.NamedResource implements ActionTargetArgs {
|
||||
public readonly topicName?: string;
|
||||
public displayName?: string;
|
||||
|
||||
public static get(id: lumi.ID): ActionTarget {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): ActionTarget[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: ActionTargetArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.topicName = args.topicName;
|
||||
this.displayName = args.displayName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface ActionTargetArgs {
|
||||
readonly topicName?: string;
|
||||
displayName?: string;
|
||||
}
|
||||
|
||||
export class Alarm extends lumi.NamedResource implements AlarmArgs {
|
||||
public comparisonOperator: AlarmComparisonOperator;
|
||||
public evaluationPerids: number;
|
||||
public metricName: string;
|
||||
public namespace: string;
|
||||
public period: number;
|
||||
public statistic: AlarmStatistic;
|
||||
public threshold: number;
|
||||
public actionsEnabled?: boolean;
|
||||
public alarmActions?: ActionTarget[];
|
||||
public alarmDescription?: string;
|
||||
public readonly alarmName?: string;
|
||||
public dimensions?: AlarmDimension[];
|
||||
public insufficientDataActions?: ActionTarget[];
|
||||
public okActions?: ActionTarget[];
|
||||
public unit?: AlarmMetric;
|
||||
|
||||
public static get(id: lumi.ID): Alarm {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Alarm[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: AlarmArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.comparisonOperator, "") === undefined) {
|
||||
throw new Error("Missing required argument 'comparisonOperator'");
|
||||
}
|
||||
this.comparisonOperator = args.comparisonOperator;
|
||||
if (lumirt.defaultIfComputed(args.evaluationPerids, "") === undefined) {
|
||||
throw new Error("Missing required argument 'evaluationPerids'");
|
||||
}
|
||||
this.evaluationPerids = args.evaluationPerids;
|
||||
if (lumirt.defaultIfComputed(args.metricName, "") === undefined) {
|
||||
throw new Error("Missing required argument 'metricName'");
|
||||
}
|
||||
this.metricName = args.metricName;
|
||||
if (lumirt.defaultIfComputed(args.namespace, "") === undefined) {
|
||||
throw new Error("Missing required argument 'namespace'");
|
||||
}
|
||||
this.namespace = args.namespace;
|
||||
if (lumirt.defaultIfComputed(args.period, "") === undefined) {
|
||||
throw new Error("Missing required argument 'period'");
|
||||
}
|
||||
this.period = args.period;
|
||||
if (lumirt.defaultIfComputed(args.statistic, "") === undefined) {
|
||||
throw new Error("Missing required argument 'statistic'");
|
||||
}
|
||||
this.statistic = args.statistic;
|
||||
if (lumirt.defaultIfComputed(args.threshold, "") === undefined) {
|
||||
throw new Error("Missing required argument 'threshold'");
|
||||
}
|
||||
this.threshold = args.threshold;
|
||||
this.actionsEnabled = args.actionsEnabled;
|
||||
this.alarmActions = args.alarmActions;
|
||||
this.alarmDescription = args.alarmDescription;
|
||||
this.alarmName = args.alarmName;
|
||||
this.dimensions = args.dimensions;
|
||||
this.insufficientDataActions = args.insufficientDataActions;
|
||||
this.okActions = args.okActions;
|
||||
this.unit = args.unit;
|
||||
}
|
||||
}
|
||||
|
||||
export interface AlarmArgs {
|
||||
comparisonOperator: AlarmComparisonOperator;
|
||||
evaluationPerids: number;
|
||||
metricName: string;
|
||||
namespace: string;
|
||||
period: number;
|
||||
statistic: AlarmStatistic;
|
||||
threshold: number;
|
||||
actionsEnabled?: boolean;
|
||||
alarmActions?: ActionTarget[];
|
||||
alarmDescription?: string;
|
||||
readonly alarmName?: string;
|
||||
dimensions?: AlarmDimension[];
|
||||
insufficientDataActions?: ActionTarget[];
|
||||
okActions?: ActionTarget[];
|
||||
unit?: AlarmMetric;
|
||||
}
|
||||
|
||||
export type AlarmComparisonOperator =
|
||||
"GreaterThanThreshold" |
|
||||
"GreaterThanOrEqualToThreshold" |
|
||||
"LessThanThreshold" |
|
||||
"LessThanOrEqualToThreshold";
|
||||
|
||||
export interface AlarmDimension {
|
||||
name: string;
|
||||
value: any;
|
||||
}
|
||||
|
||||
export type AlarmMetric =
|
||||
"Bits" |
|
||||
"Bits/Second" |
|
||||
"Bytes" |
|
||||
"Bytes/Second" |
|
||||
"Count" |
|
||||
"Count/Second" |
|
||||
"Gigabits" |
|
||||
"Gigabits/Second" |
|
||||
"Gigabytes" |
|
||||
"Gigabytes/Second" |
|
||||
"Kilobits" |
|
||||
"Kilobits/Second" |
|
||||
"Kilobytes" |
|
||||
"Kilobytes/Second" |
|
||||
"Megabits" |
|
||||
"Megabits/Second" |
|
||||
"Megabytes" |
|
||||
"Megabytes/Second" |
|
||||
"Microseconds" |
|
||||
"Milliseconds" |
|
||||
"None" |
|
||||
"Percent" |
|
||||
"Seconds" |
|
||||
"Terabits" |
|
||||
"Terabits/Second" |
|
||||
"Terabytes" |
|
||||
"Terabytes/Second";
|
||||
|
||||
export type AlarmStatistic =
|
||||
"Average" |
|
||||
"Maximum" |
|
||||
"Minimum" |
|
||||
"SampleCount" |
|
||||
"Sum";
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./alarm";
|
||||
export * from "./logGroup";
|
||||
export * from "./logSubscriptionFilter";
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export class LogGroup extends lumi.NamedResource implements LogGroupArgs {
|
||||
public readonly logGroupName?: string;
|
||||
public retentionInDays?: number;
|
||||
|
||||
public static get(id: lumi.ID): LogGroup {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): LogGroup[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: LogGroupArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.logGroupName = args.logGroupName;
|
||||
this.retentionInDays = args.retentionInDays;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface LogGroupArgs {
|
||||
readonly logGroupName?: string;
|
||||
retentionInDays?: number;
|
||||
}
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {ARN} from "../types";
|
||||
|
||||
export let ByLogStreamDistribution: LogSubscriptionDistribution = "ByLogStream";
|
||||
export let RandomDistribution: LogSubscriptionDistribution = "Random";
|
||||
|
||||
export type LogSubscriptionDistribution =
|
||||
"ByLogStream" |
|
||||
"Random";
|
||||
|
||||
export class LogSubscriptionFilter extends lumi.NamedResource implements LogSubscriptionFilterArgs {
|
||||
public readonly logGroupName: string;
|
||||
public filterPattern: string;
|
||||
public readonly destinationArn: string;
|
||||
public roleArn?: ARN;
|
||||
public distribution?: LogSubscriptionDistribution;
|
||||
public creationTime: number;
|
||||
|
||||
public static get(id: lumi.ID): LogSubscriptionFilter {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): LogSubscriptionFilter[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: LogSubscriptionFilterArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.logGroupName, "") === undefined) {
|
||||
throw new Error("Missing required argument 'logGroupName'");
|
||||
}
|
||||
this.logGroupName = args.logGroupName;
|
||||
if (lumirt.defaultIfComputed(args.filterPattern, "") === undefined) {
|
||||
throw new Error("Missing required argument 'filterPattern'");
|
||||
}
|
||||
this.filterPattern = args.filterPattern;
|
||||
if (lumirt.defaultIfComputed(args.destinationArn, "") === undefined) {
|
||||
throw new Error("Missing required argument 'destinationArn'");
|
||||
}
|
||||
this.destinationArn = args.destinationArn;
|
||||
this.roleArn = args.roleArn;
|
||||
this.distribution = args.distribution;
|
||||
}
|
||||
}
|
||||
|
||||
export interface LogSubscriptionFilterArgs {
|
||||
readonly logGroupName: string;
|
||||
filterPattern: string;
|
||||
readonly destinationArn: string;
|
||||
roleArn?: ARN;
|
||||
distribution?: LogSubscriptionDistribution;
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
import {Region} from "../types";
|
||||
|
||||
// region configures the target region for a deployment. The provider explicitly does not recognize AWS_REGION,
|
||||
// to minimize the possibility of accidental deployment differences due to a changing environment variable.
|
||||
export let region: Region | undefined;
|
||||
|
||||
// requireRegion fetches the AWS region, requiring that it exists; if it has not been configured, an error is thrown.
|
||||
export function requireRegion(): Region {
|
||||
if (region === undefined) {
|
||||
throw new Error("No AWS region has been configured");
|
||||
}
|
||||
return region;
|
||||
}
|
||||
|
||||
// accessKeyId configures the access key ID used to access AWS. This is a secret. If not provided, the
|
||||
// provider will look in the standard places (~/.aws/credentials, AWS_ACCESS_KEY_ID, etc).
|
||||
export let accessKeyId: string | undefined;
|
||||
|
||||
// secretAcessKey configures the secret access key used to access AWS. This is a secret. If not provided, the
|
||||
// provider will look in the standard places (~/.aws/credentials, AWS_SECRET_ACCESS_KEY, etc).
|
||||
export let secretAccessKey: string | undefined; // the secret access key used to access AWS.
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./table";
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export let AllProjection: ProjectionType = "ALL";
|
||||
export let BinaryAttribute: AttributeType = "B";
|
||||
export let IncludeProjection: ProjectionType = "INCLUDE";
|
||||
export let KeysOnlyProjection: ProjectionType = "KEYS_ONLY";
|
||||
export let NumberAttribute: AttributeType = "N";
|
||||
export let StringAttribute: AttributeType = "S";
|
||||
|
||||
export interface Attribute {
|
||||
name: string;
|
||||
type: AttributeType;
|
||||
}
|
||||
|
||||
export type AttributeType =
|
||||
"B" |
|
||||
"N" |
|
||||
"S";
|
||||
|
||||
export interface GlobalSecondaryIndex {
|
||||
indexName: string;
|
||||
hashKey: string;
|
||||
rangeKey?: string;
|
||||
readCapacity: number;
|
||||
writeCapacity: number;
|
||||
nonKeyAttributes: string[];
|
||||
projectionType: ProjectionType;
|
||||
}
|
||||
|
||||
export type ProjectionType =
|
||||
"ALL" |
|
||||
"INCLUDE" |
|
||||
"KEYS_ONLY";
|
||||
|
||||
export class Table extends lumi.NamedResource implements TableArgs {
|
||||
public readonly hashKey: string;
|
||||
public attributes: Attribute[];
|
||||
public readCapacity: number;
|
||||
public writeCapacity: number;
|
||||
public readonly rangeKey?: string;
|
||||
public readonly tableName?: string;
|
||||
public globalSecondaryIndexes?: GlobalSecondaryIndex[];
|
||||
|
||||
public static get(id: lumi.ID): Table {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Table[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: TableArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.hashKey, "") === undefined) {
|
||||
throw new Error("Missing required argument 'hashKey'");
|
||||
}
|
||||
this.hashKey = args.hashKey;
|
||||
if (lumirt.defaultIfComputed(args.attributes, "") === undefined) {
|
||||
throw new Error("Missing required argument 'attributes'");
|
||||
}
|
||||
this.attributes = args.attributes;
|
||||
if (lumirt.defaultIfComputed(args.readCapacity, "") === undefined) {
|
||||
throw new Error("Missing required argument 'readCapacity'");
|
||||
}
|
||||
this.readCapacity = args.readCapacity;
|
||||
if (lumirt.defaultIfComputed(args.writeCapacity, "") === undefined) {
|
||||
throw new Error("Missing required argument 'writeCapacity'");
|
||||
}
|
||||
this.writeCapacity = args.writeCapacity;
|
||||
this.rangeKey = args.rangeKey;
|
||||
this.tableName = args.tableName;
|
||||
this.globalSecondaryIndexes = args.globalSecondaryIndexes;
|
||||
}
|
||||
}
|
||||
|
||||
export interface TableArgs {
|
||||
readonly hashKey: string;
|
||||
attributes: Attribute[];
|
||||
readCapacity: number;
|
||||
writeCapacity: number;
|
||||
readonly rangeKey?: string;
|
||||
readonly tableName?: string;
|
||||
globalSecondaryIndexes?: GlobalSecondaryIndex[];
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./instance";
|
||||
export * from "./instanceMaps";
|
||||
export * from "./internetGateway";
|
||||
export * from "./route";
|
||||
export * from "./routeTable";
|
||||
export * from "./securityGroup";
|
||||
export * from "./securityGroupEgress";
|
||||
export * from "./securityGroupIngress";
|
||||
export * from "./subnet";
|
||||
export * from "./vpc";
|
||||
export * from "./vpcGatewayAttachment";
|
||||
export * from "./vpcPeeringConnection";
|
||||
|
|
@ -1,172 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {SecurityGroup} from "./securityGroup";
|
||||
|
||||
export let C3Instance2XLarge: InstanceType = "c3.2xlarge";
|
||||
export let C3Instance4XLarge: InstanceType = "c3.4xlarge";
|
||||
export let C3Instance8XLarge: InstanceType = "c3.8xlarge";
|
||||
export let C3InstanceLarge: InstanceType = "c3.large";
|
||||
export let C3InstanceXLarge: InstanceType = "c3.xlarge";
|
||||
export let C4Instance2XLarge: InstanceType = "c4.2xlarge";
|
||||
export let C4Instance4XLarge: InstanceType = "c4.4xlarge";
|
||||
export let C4Instance8XLarge: InstanceType = "c4.8xlarge";
|
||||
export let C4InstanceLarge: InstanceType = "c4.large";
|
||||
export let C4InstanceXLarge: InstanceType = "c4.xlarge";
|
||||
export let D2Instance2XLarge: InstanceType = "d2.2xlarge";
|
||||
export let D2Instance4XLarge: InstanceType = "d2.4xlarge";
|
||||
export let D2Instance8XLarge: InstanceType = "d2.8xlarge";
|
||||
export let D2InstanceXLarge: InstanceType = "d2.xlarge";
|
||||
export let F1Instance16XLarge: InstanceType = "f1.16xlarge";
|
||||
export let F1Instance2XLarge: InstanceType = "f1.2xlarge";
|
||||
export let G2Instance2XLarge: InstanceType = "g2.2xlarge";
|
||||
export let G2Instance8XLarge: InstanceType = "g2.8xlarge";
|
||||
export let I3Instance16XLarge: InstanceType = "i3.16xlarge";
|
||||
export let I3Instance2XLarge: InstanceType = "i3.2xlarge";
|
||||
export let I3Instance4XLarge: InstanceType = "i3.4xlarge";
|
||||
export let I3Instance8XLarge: InstanceType = "i3.8xlarge";
|
||||
export let I3InstanceLarge: InstanceType = "i3.large";
|
||||
export let I3InstanceXLarge: InstanceType = "i3.xlarge";
|
||||
export let M3Instance2XLarge: InstanceType = "m3.2xlarge";
|
||||
export let M3InstanceLarge: InstanceType = "m3.large";
|
||||
export let M3InstanceMedium: InstanceType = "m3.medium";
|
||||
export let M3InstanceXLarge: InstanceType = "m3.xlarge";
|
||||
export let M4Instance10XLarge: InstanceType = "m4.10xlarge";
|
||||
export let M4Instance16XLarge: InstanceType = "m4.16xlarge";
|
||||
export let M4Instance2XLarge: InstanceType = "m4.2xlarge";
|
||||
export let M4Instance4XLarge: InstanceType = "m4.4xlarge";
|
||||
export let M4InstanceLarge: InstanceType = "m4.large";
|
||||
export let M4InstanceXLarge: InstanceType = "m4.xlarge";
|
||||
export let P2Instance16XLarge: InstanceType = "p2.16xlarge";
|
||||
export let P2Instance8XLarge: InstanceType = "p2.8xlarge";
|
||||
export let P2InstanceXLarge: InstanceType = "p2.xlarge";
|
||||
export let R3Instance2XLarge: InstanceType = "r3.2xlarge";
|
||||
export let R3Instance4XLarge: InstanceType = "r3.4xlarge";
|
||||
export let R3Instance8XLarge: InstanceType = "r3.8xlarge";
|
||||
export let R3InstanceLarge: InstanceType = "r3.large";
|
||||
export let R3InstanceXLarge: InstanceType = "r3.xlarge";
|
||||
export let R4Instance16XLarge: InstanceType = "r4.16xlarge";
|
||||
export let R4Instance2XLarge: InstanceType = "r4.2xlarge";
|
||||
export let R4Instance4XLarge: InstanceType = "r4.4xlarge";
|
||||
export let R4Instance8XLarge: InstanceType = "r4.8xlarge";
|
||||
export let R4InstanceLarge: InstanceType = "r4.large";
|
||||
export let R4InstanceXLarge: InstanceType = "r4.xlarge";
|
||||
export let T2Instance2XLarge: InstanceType = "t2.2xlarge";
|
||||
export let T2InstanceLarge: InstanceType = "t2.large";
|
||||
export let T2InstanceMedium: InstanceType = "t2.medium";
|
||||
export let T2InstanceMicro: InstanceType = "t2.micro";
|
||||
export let T2InstanceNano: InstanceType = "t2.nano";
|
||||
export let T2InstanceSmall: InstanceType = "t2.small";
|
||||
export let T2InstanceXLarge: InstanceType = "t2.xlarge";
|
||||
export let X1Instance16XLarge: InstanceType = "x1.16xlarge";
|
||||
export let X1Instance32XLarge: InstanceType = "x1.32xlarge";
|
||||
|
||||
export class Instance extends lumi.NamedResource implements InstanceArgs {
|
||||
public readonly imageId: string;
|
||||
public readonly instanceType?: InstanceType;
|
||||
public readonly securityGroups?: SecurityGroup[];
|
||||
public readonly keyName?: string;
|
||||
public tags?: Tag[];
|
||||
public availabilityZone: string;
|
||||
public privateDNSName?: string;
|
||||
public publicDNSName?: string;
|
||||
public privateIP?: string;
|
||||
public publicIP?: string;
|
||||
|
||||
public static get(id: lumi.ID): Instance {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Instance[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: InstanceArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.imageId, "") === undefined) {
|
||||
throw new Error("Missing required argument 'imageId'");
|
||||
}
|
||||
this.imageId = args.imageId;
|
||||
this.instanceType = args.instanceType;
|
||||
this.securityGroups = args.securityGroups;
|
||||
this.keyName = args.keyName;
|
||||
this.tags = args.tags;
|
||||
}
|
||||
}
|
||||
|
||||
export interface InstanceArgs {
|
||||
readonly imageId: string;
|
||||
readonly instanceType?: InstanceType;
|
||||
readonly securityGroups?: SecurityGroup[];
|
||||
readonly keyName?: string;
|
||||
tags?: Tag[];
|
||||
}
|
||||
|
||||
export type InstanceType =
|
||||
"c3.2xlarge" |
|
||||
"c3.4xlarge" |
|
||||
"c3.8xlarge" |
|
||||
"c3.large" |
|
||||
"c3.xlarge" |
|
||||
"c4.2xlarge" |
|
||||
"c4.4xlarge" |
|
||||
"c4.8xlarge" |
|
||||
"c4.large" |
|
||||
"c4.xlarge" |
|
||||
"d2.2xlarge" |
|
||||
"d2.4xlarge" |
|
||||
"d2.8xlarge" |
|
||||
"d2.xlarge" |
|
||||
"f1.16xlarge" |
|
||||
"f1.2xlarge" |
|
||||
"g2.2xlarge" |
|
||||
"g2.8xlarge" |
|
||||
"i3.16xlarge" |
|
||||
"i3.2xlarge" |
|
||||
"i3.4xlarge" |
|
||||
"i3.8xlarge" |
|
||||
"i3.large" |
|
||||
"i3.xlarge" |
|
||||
"m3.2xlarge" |
|
||||
"m3.large" |
|
||||
"m3.medium" |
|
||||
"m3.xlarge" |
|
||||
"m4.10xlarge" |
|
||||
"m4.16xlarge" |
|
||||
"m4.2xlarge" |
|
||||
"m4.4xlarge" |
|
||||
"m4.large" |
|
||||
"m4.xlarge" |
|
||||
"p2.16xlarge" |
|
||||
"p2.8xlarge" |
|
||||
"p2.xlarge" |
|
||||
"r3.2xlarge" |
|
||||
"r3.4xlarge" |
|
||||
"r3.8xlarge" |
|
||||
"r3.large" |
|
||||
"r3.xlarge" |
|
||||
"r4.16xlarge" |
|
||||
"r4.2xlarge" |
|
||||
"r4.4xlarge" |
|
||||
"r4.8xlarge" |
|
||||
"r4.large" |
|
||||
"r4.xlarge" |
|
||||
"t2.2xlarge" |
|
||||
"t2.large" |
|
||||
"t2.medium" |
|
||||
"t2.micro" |
|
||||
"t2.nano" |
|
||||
"t2.small" |
|
||||
"t2.xlarge" |
|
||||
"x1.16xlarge" |
|
||||
"x1.32xlarge";
|
||||
|
||||
export interface Tag {
|
||||
key: string;
|
||||
value: string;
|
||||
}
|
||||
|
|
@ -1,156 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
// This file defines some maps that correspond to the recommended AWS Marketplace values:
|
||||
// http://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_marketplace-products.html
|
||||
// Ultimately, this lets us choose a recommended Amazon Linux AMI; see:
|
||||
// https://aws.amazon.com/amazon-linux-ami/instance-type-matrix/
|
||||
|
||||
import * as config from "../config";
|
||||
|
||||
// instanceTypeArch is a map of instance type to its architecture.
|
||||
export let instanceTypeArch: {
|
||||
[instanceType: string]: string,
|
||||
} = {
|
||||
"t1.micro" : "PV64" ,
|
||||
"t2.nano" : "HVM64",
|
||||
"t2.micro" : "HVM64",
|
||||
"t2.small" : "HVM64",
|
||||
"t2.medium" : "HVM64",
|
||||
"t2.large" : "HVM64",
|
||||
"m1.small" : "PV64" ,
|
||||
"m1.medium" : "PV64" ,
|
||||
"m1.large" : "PV64" ,
|
||||
"m1.xlarge" : "PV64" ,
|
||||
"m2.xlarge" : "PV64" ,
|
||||
"m2.2xlarge" : "PV64" ,
|
||||
"m2.4xlarge" : "PV64" ,
|
||||
"m3.medium" : "HVM64",
|
||||
"m3.large" : "HVM64",
|
||||
"m3.xlarge" : "HVM64",
|
||||
"m3.2xlarge" : "HVM64",
|
||||
"m4.large" : "HVM64",
|
||||
"m4.xlarge" : "HVM64",
|
||||
"m4.2xlarge" : "HVM64",
|
||||
"m4.4xlarge" : "HVM64",
|
||||
"m4.10xlarge": "HVM64",
|
||||
"c1.medium" : "PV64" ,
|
||||
"c1.xlarge" : "PV64" ,
|
||||
"c3.large" : "HVM64",
|
||||
"c3.xlarge" : "HVM64",
|
||||
"c3.2xlarge" : "HVM64",
|
||||
"c3.4xlarge" : "HVM64",
|
||||
"c3.8xlarge" : "HVM64",
|
||||
"c4.large" : "HVM64",
|
||||
"c4.xlarge" : "HVM64",
|
||||
"c4.2xlarge" : "HVM64",
|
||||
"c4.4xlarge" : "HVM64",
|
||||
"c4.8xlarge" : "HVM64",
|
||||
"g2.2xlarge" : "HVMG2",
|
||||
"g2.8xlarge" : "HVMG2",
|
||||
"r3.large" : "HVM64",
|
||||
"r3.xlarge" : "HVM64",
|
||||
"r3.2xlarge" : "HVM64",
|
||||
"r3.4xlarge" : "HVM64",
|
||||
"r3.8xlarge" : "HVM64",
|
||||
"i2.xlarge" : "HVM64",
|
||||
"i2.2xlarge" : "HVM64",
|
||||
"i2.4xlarge" : "HVM64",
|
||||
"i2.8xlarge" : "HVM64",
|
||||
"d2.xlarge" : "HVM64",
|
||||
"d2.2xlarge" : "HVM64",
|
||||
"d2.4xlarge" : "HVM64",
|
||||
"d2.8xlarge" : "HVM64",
|
||||
"hi1.4xlarge": "HVM64",
|
||||
"hs1.8xlarge": "HVM64",
|
||||
"cr1.8xlarge": "HVM64",
|
||||
"cc2.8xlarge": "HVM64",
|
||||
};
|
||||
|
||||
// regionArchLinuxAMI is a map from region to inner maps from architecture to the recommended Linux AMI.
|
||||
export let regionArchLinuxAMI: {
|
||||
[region: string]: { [arch: string]: string; },
|
||||
} = {
|
||||
"us-east-1": {
|
||||
"PV64" : "ami-2a69aa47",
|
||||
"HVM64": "ami-6869aa05",
|
||||
"HVMG2": "ami-648d9973",
|
||||
},
|
||||
"us-west-2": {
|
||||
"PV64" : "ami-7f77b31f",
|
||||
"HVM64": "ami-7172b611",
|
||||
"HVMG2": "ami-09cd7a69",
|
||||
},
|
||||
"us-west-1": {
|
||||
"PV64" : "ami-a2490dc2",
|
||||
"HVM64": "ami-31490d51",
|
||||
"HVMG2": "ami-1e5f0e7e",
|
||||
},
|
||||
"eu-west-1": {
|
||||
"PV64" : "ami-4cdd453f",
|
||||
"HVM64": "ami-f9dd458a",
|
||||
"HVMG2": "ami-b4694ac7",
|
||||
},
|
||||
"eu-west-2": {
|
||||
"PV64" : "NOT_SUPPORTED",
|
||||
"HVM64": "ami-886369ec",
|
||||
"HVMG2": "NOT_SUPPORTED",
|
||||
},
|
||||
"eu-central-1": {
|
||||
"PV64" : "ami-6527cf0a",
|
||||
"HVM64": "ami-ea26ce85",
|
||||
"HVMG2": "ami-de5191b1",
|
||||
},
|
||||
"ap-northeast-1": {
|
||||
"PV64" : "ami-3e42b65f",
|
||||
"HVM64": "ami-374db956",
|
||||
"HVMG2": "ami-df9ff4b8",
|
||||
},
|
||||
"ap-northeast-2": {
|
||||
"PV64" : "NOT_SUPPORTED",
|
||||
"HVM64": "ami-2b408b45",
|
||||
"HVMG2": "NOT_SUPPORTED",
|
||||
},
|
||||
"ap-southeast-1": {
|
||||
"PV64" : "ami-df9e4cbc",
|
||||
"HVM64": "ami-a59b49c6",
|
||||
"HVMG2": "ami-8d8d23ee",
|
||||
},
|
||||
"ap-southeast-2": {
|
||||
"PV64" : "ami-63351d00",
|
||||
"HVM64": "ami-dc361ebf",
|
||||
"HVMG2": "ami-cbaf94a8",
|
||||
},
|
||||
"ap-south-1": {
|
||||
"PV64" : "NOT_SUPPORTED",
|
||||
"HVM64": "ami-ffbdd790",
|
||||
"HVMG2": "ami-decdbab1",
|
||||
},
|
||||
"us-east-2": {
|
||||
"PV64" : "NOT_SUPPORTED",
|
||||
"HVM64": "ami-f6035893",
|
||||
"HVMG2": "NOT_SUPPORTED",
|
||||
},
|
||||
"ca-central-1": {
|
||||
"PV64" : "NOT_SUPPORTED",
|
||||
"HVM64": "ami-730ebd17",
|
||||
"HVMG2": "NOT_SUPPORTED",
|
||||
},
|
||||
"sa-east-1": {
|
||||
"PV64" : "ami-1ad34676",
|
||||
"HVM64": "ami-6dd04501",
|
||||
"HVMG2": "NOT_SUPPORTED",
|
||||
},
|
||||
"cn-north-1": {
|
||||
"PV64" : "ami-77559f1a",
|
||||
"HVM64": "ami-8e6aa0e3",
|
||||
"HVMG2": "NOT_SUPPORTED",
|
||||
},
|
||||
};
|
||||
|
||||
// getLinuxAMI gets the recommended Linux AMI for the given instance in the current AWS region.
|
||||
export function getLinuxAMI(instanceType: string): string {
|
||||
let region = config.requireRegion();
|
||||
let arch = instanceTypeArch[instanceType];
|
||||
return regionArchLinuxAMI[region][arch];
|
||||
}
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export class InternetGateway extends lumi.NamedResource implements InternetGatewayArgs {
|
||||
|
||||
public static get(id: lumi.ID): InternetGateway {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): InternetGateway[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: InternetGatewayArgs) {
|
||||
super(name);
|
||||
}
|
||||
}
|
||||
|
||||
export interface InternetGatewayArgs {
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {InternetGateway} from "./internetGateway";
|
||||
import {RouteTable} from "./routeTable";
|
||||
import {VPCGatewayAttachment} from "./vpcGatewayAttachment";
|
||||
|
||||
export class Route extends lumi.NamedResource implements RouteArgs {
|
||||
public readonly destinationCidrBlock: string;
|
||||
public readonly routeTable: RouteTable;
|
||||
public readonly internetGateway: InternetGateway;
|
||||
public readonly vpcGatewayAttachment: VPCGatewayAttachment;
|
||||
|
||||
public static get(id: lumi.ID): Route {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Route[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: RouteArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.destinationCidrBlock, "") === undefined) {
|
||||
throw new Error("Missing required argument 'destinationCidrBlock'");
|
||||
}
|
||||
this.destinationCidrBlock = args.destinationCidrBlock;
|
||||
if (lumirt.defaultIfComputed(args.routeTable, "") === undefined) {
|
||||
throw new Error("Missing required argument 'routeTable'");
|
||||
}
|
||||
this.routeTable = args.routeTable;
|
||||
if (lumirt.defaultIfComputed(args.internetGateway, "") === undefined) {
|
||||
throw new Error("Missing required argument 'internetGateway'");
|
||||
}
|
||||
this.internetGateway = args.internetGateway;
|
||||
if (lumirt.defaultIfComputed(args.vpcGatewayAttachment, "") === undefined) {
|
||||
throw new Error("Missing required argument 'vpcGatewayAttachment'");
|
||||
}
|
||||
this.vpcGatewayAttachment = args.vpcGatewayAttachment;
|
||||
}
|
||||
}
|
||||
|
||||
export interface RouteArgs {
|
||||
readonly destinationCidrBlock: string;
|
||||
readonly routeTable: RouteTable;
|
||||
readonly internetGateway: InternetGateway;
|
||||
readonly vpcGatewayAttachment: VPCGatewayAttachment;
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {VPC} from "./vpc";
|
||||
|
||||
export class RouteTable extends lumi.NamedResource implements RouteTableArgs {
|
||||
public readonly vpc: VPC;
|
||||
|
||||
public static get(id: lumi.ID): RouteTable {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): RouteTable[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: RouteTableArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.vpc, "") === undefined) {
|
||||
throw new Error("Missing required argument 'vpc'");
|
||||
}
|
||||
this.vpc = args.vpc;
|
||||
}
|
||||
}
|
||||
|
||||
export interface RouteTableArgs {
|
||||
readonly vpc: VPC;
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {VPC} from "./vpc";
|
||||
|
||||
export class SecurityGroup extends lumi.NamedResource implements SecurityGroupArgs {
|
||||
public readonly groupDescription: string;
|
||||
public readonly groupName?: string;
|
||||
public readonly vpc?: VPC;
|
||||
public securityGroupEgress?: SecurityGroupRule[];
|
||||
public securityGroupIngress?: SecurityGroupRule[];
|
||||
public groupID: string;
|
||||
|
||||
public static get(id: lumi.ID): SecurityGroup {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): SecurityGroup[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: SecurityGroupArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.groupDescription, "") === undefined) {
|
||||
throw new Error("Missing required argument 'groupDescription'");
|
||||
}
|
||||
this.groupDescription = args.groupDescription;
|
||||
this.groupName = args.groupName;
|
||||
this.vpc = args.vpc;
|
||||
this.securityGroupEgress = args.securityGroupEgress;
|
||||
this.securityGroupIngress = args.securityGroupIngress;
|
||||
}
|
||||
}
|
||||
|
||||
export interface SecurityGroupArgs {
|
||||
readonly groupDescription: string;
|
||||
readonly groupName?: string;
|
||||
readonly vpc?: VPC;
|
||||
securityGroupEgress?: SecurityGroupRule[];
|
||||
securityGroupIngress?: SecurityGroupRule[];
|
||||
}
|
||||
|
||||
export interface SecurityGroupRule {
|
||||
ipProtocol: string;
|
||||
cidrIp?: string;
|
||||
fromPort?: number;
|
||||
toPort?: number;
|
||||
}
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {SecurityGroup} from "./securityGroup";
|
||||
|
||||
export class SecurityGroupEgress extends lumi.NamedResource implements SecurityGroupEgressArgs {
|
||||
public readonly fromPort: number;
|
||||
public readonly group: SecurityGroup;
|
||||
public readonly ipProtocol: string;
|
||||
public readonly toPort: number;
|
||||
public readonly cidrIp?: string;
|
||||
public readonly cidrIpv6?: string;
|
||||
public readonly destinationPrefixListId?: string;
|
||||
public readonly destinationSecurityGroup?: SecurityGroup;
|
||||
|
||||
public static get(id: lumi.ID): SecurityGroupEgress {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): SecurityGroupEgress[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: SecurityGroupEgressArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.fromPort, "") === undefined) {
|
||||
throw new Error("Missing required argument 'fromPort'");
|
||||
}
|
||||
this.fromPort = args.fromPort;
|
||||
if (lumirt.defaultIfComputed(args.group, "") === undefined) {
|
||||
throw new Error("Missing required argument 'group'");
|
||||
}
|
||||
this.group = args.group;
|
||||
if (lumirt.defaultIfComputed(args.ipProtocol, "") === undefined) {
|
||||
throw new Error("Missing required argument 'ipProtocol'");
|
||||
}
|
||||
this.ipProtocol = args.ipProtocol;
|
||||
if (lumirt.defaultIfComputed(args.toPort, "") === undefined) {
|
||||
throw new Error("Missing required argument 'toPort'");
|
||||
}
|
||||
this.toPort = args.toPort;
|
||||
this.cidrIp = args.cidrIp;
|
||||
this.cidrIpv6 = args.cidrIpv6;
|
||||
this.destinationPrefixListId = args.destinationPrefixListId;
|
||||
this.destinationSecurityGroup = args.destinationSecurityGroup;
|
||||
}
|
||||
}
|
||||
|
||||
export interface SecurityGroupEgressArgs {
|
||||
readonly fromPort: number;
|
||||
readonly group: SecurityGroup;
|
||||
readonly ipProtocol: string;
|
||||
readonly toPort: number;
|
||||
readonly cidrIp?: string;
|
||||
readonly cidrIpv6?: string;
|
||||
readonly destinationPrefixListId?: string;
|
||||
readonly destinationSecurityGroup?: SecurityGroup;
|
||||
}
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {SecurityGroup} from "./securityGroup";
|
||||
|
||||
export class SecurityGroupIngress extends lumi.NamedResource implements SecurityGroupIngressArgs {
|
||||
public readonly ipProtocol: string;
|
||||
public readonly cidrIp?: string;
|
||||
public readonly cidrIpv6?: string;
|
||||
public readonly fromPort?: number;
|
||||
public readonly group?: SecurityGroup;
|
||||
public readonly groupName?: string;
|
||||
public readonly sourceSecurityGroup?: SecurityGroup;
|
||||
public readonly sourceSecurityGroupName?: string;
|
||||
public readonly sourceSecurityGroupOwnerId?: string;
|
||||
public readonly toPort?: number;
|
||||
|
||||
public static get(id: lumi.ID): SecurityGroupIngress {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): SecurityGroupIngress[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: SecurityGroupIngressArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.ipProtocol, "") === undefined) {
|
||||
throw new Error("Missing required argument 'ipProtocol'");
|
||||
}
|
||||
this.ipProtocol = args.ipProtocol;
|
||||
this.cidrIp = args.cidrIp;
|
||||
this.cidrIpv6 = args.cidrIpv6;
|
||||
this.fromPort = args.fromPort;
|
||||
this.group = args.group;
|
||||
this.groupName = args.groupName;
|
||||
this.sourceSecurityGroup = args.sourceSecurityGroup;
|
||||
this.sourceSecurityGroupName = args.sourceSecurityGroupName;
|
||||
this.sourceSecurityGroupOwnerId = args.sourceSecurityGroupOwnerId;
|
||||
this.toPort = args.toPort;
|
||||
}
|
||||
}
|
||||
|
||||
export interface SecurityGroupIngressArgs {
|
||||
readonly ipProtocol: string;
|
||||
readonly cidrIp?: string;
|
||||
readonly cidrIpv6?: string;
|
||||
readonly fromPort?: number;
|
||||
readonly group?: SecurityGroup;
|
||||
readonly groupName?: string;
|
||||
readonly sourceSecurityGroup?: SecurityGroup;
|
||||
readonly sourceSecurityGroupName?: string;
|
||||
readonly sourceSecurityGroupOwnerId?: string;
|
||||
readonly toPort?: number;
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {VPC} from "./vpc";
|
||||
|
||||
export class Subnet extends lumi.NamedResource implements SubnetArgs {
|
||||
public readonly cidrBlock: string;
|
||||
public readonly vpc: VPC;
|
||||
public readonly availabilityZone?: string;
|
||||
public mapPublicIpOnLaunch?: boolean;
|
||||
|
||||
public static get(id: lumi.ID): Subnet {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Subnet[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: SubnetArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.cidrBlock, "") === undefined) {
|
||||
throw new Error("Missing required argument 'cidrBlock'");
|
||||
}
|
||||
this.cidrBlock = args.cidrBlock;
|
||||
if (lumirt.defaultIfComputed(args.vpc, "") === undefined) {
|
||||
throw new Error("Missing required argument 'vpc'");
|
||||
}
|
||||
this.vpc = args.vpc;
|
||||
this.availabilityZone = args.availabilityZone;
|
||||
this.mapPublicIpOnLaunch = args.mapPublicIpOnLaunch;
|
||||
}
|
||||
}
|
||||
|
||||
export interface SubnetArgs {
|
||||
readonly cidrBlock: string;
|
||||
readonly vpc: VPC;
|
||||
readonly availabilityZone?: string;
|
||||
mapPublicIpOnLaunch?: boolean;
|
||||
}
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export let DedicatedTenancy: InstanceTenancy = "dedicated";
|
||||
export let DefaultTenancy: InstanceTenancy = "default";
|
||||
export let HostTenancy: InstanceTenancy = "host";
|
||||
|
||||
export type InstanceTenancy =
|
||||
"dedicated" |
|
||||
"default" |
|
||||
"host";
|
||||
|
||||
export class VPC extends lumi.NamedResource implements VPCArgs {
|
||||
public readonly cidrBlock: string;
|
||||
public readonly instanceTenancy?: InstanceTenancy;
|
||||
public enableDnsSupport?: boolean;
|
||||
public enableDnsHostnames?: boolean;
|
||||
|
||||
public static get(id: lumi.ID): VPC {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): VPC[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: VPCArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.cidrBlock, "") === undefined) {
|
||||
throw new Error("Missing required argument 'cidrBlock'");
|
||||
}
|
||||
this.cidrBlock = args.cidrBlock;
|
||||
this.instanceTenancy = args.instanceTenancy;
|
||||
this.enableDnsSupport = args.enableDnsSupport;
|
||||
this.enableDnsHostnames = args.enableDnsHostnames;
|
||||
}
|
||||
}
|
||||
|
||||
export interface VPCArgs {
|
||||
readonly cidrBlock: string;
|
||||
readonly instanceTenancy?: InstanceTenancy;
|
||||
enableDnsSupport?: boolean;
|
||||
enableDnsHostnames?: boolean;
|
||||
}
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {InternetGateway} from "./internetGateway";
|
||||
import {VPC} from "./vpc";
|
||||
|
||||
export class VPCGatewayAttachment extends lumi.NamedResource implements VPCGatewayAttachmentArgs {
|
||||
public readonly vpc: VPC;
|
||||
public readonly internetGateway: InternetGateway;
|
||||
|
||||
public static get(id: lumi.ID): VPCGatewayAttachment {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): VPCGatewayAttachment[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: VPCGatewayAttachmentArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.vpc, "") === undefined) {
|
||||
throw new Error("Missing required argument 'vpc'");
|
||||
}
|
||||
this.vpc = args.vpc;
|
||||
if (lumirt.defaultIfComputed(args.internetGateway, "") === undefined) {
|
||||
throw new Error("Missing required argument 'internetGateway'");
|
||||
}
|
||||
this.internetGateway = args.internetGateway;
|
||||
}
|
||||
}
|
||||
|
||||
export interface VPCGatewayAttachmentArgs {
|
||||
readonly vpc: VPC;
|
||||
readonly internetGateway: InternetGateway;
|
||||
}
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {VPC} from "./vpc";
|
||||
|
||||
export class VPCPeeringConnection extends lumi.NamedResource implements VPCPeeringConnectionArgs {
|
||||
public readonly peerVpc: VPC;
|
||||
public readonly vpc: VPC;
|
||||
|
||||
public static get(id: lumi.ID): VPCPeeringConnection {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): VPCPeeringConnection[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: VPCPeeringConnectionArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.peerVpc, "") === undefined) {
|
||||
throw new Error("Missing required argument 'peerVpc'");
|
||||
}
|
||||
this.peerVpc = args.peerVpc;
|
||||
if (lumirt.defaultIfComputed(args.vpc, "") === undefined) {
|
||||
throw new Error("Missing required argument 'vpc'");
|
||||
}
|
||||
this.vpc = args.vpc;
|
||||
}
|
||||
}
|
||||
|
||||
export interface VPCPeeringConnectionArgs {
|
||||
readonly peerVpc: VPC;
|
||||
readonly vpc: VPC;
|
||||
}
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
export class Application extends lumi.NamedResource implements ApplicationArgs {
|
||||
public readonly applicationName?: string;
|
||||
public description?: string;
|
||||
|
||||
public static get(id: lumi.ID): Application {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Application[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: ApplicationArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.applicationName = args.applicationName;
|
||||
this.description = args.description;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface ApplicationArgs {
|
||||
readonly applicationName?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Application} from "./application";
|
||||
import {Object} from "../s3/object";
|
||||
|
||||
export class ApplicationVersion extends lumi.NamedResource implements ApplicationVersionArgs {
|
||||
public readonly application: Application;
|
||||
public readonly versionLabel?: string;
|
||||
public description?: string;
|
||||
public readonly sourceBundle: Object;
|
||||
|
||||
public static get(id: lumi.ID): ApplicationVersion {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): ApplicationVersion[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: ApplicationVersionArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.application, "") === undefined) {
|
||||
throw new Error("Missing required argument 'application'");
|
||||
}
|
||||
this.application = args.application;
|
||||
this.versionLabel = args.versionLabel;
|
||||
this.description = args.description;
|
||||
if (lumirt.defaultIfComputed(args.sourceBundle, "") === undefined) {
|
||||
throw new Error("Missing required argument 'sourceBundle'");
|
||||
}
|
||||
this.sourceBundle = args.sourceBundle;
|
||||
}
|
||||
}
|
||||
|
||||
export interface ApplicationVersionArgs {
|
||||
readonly application: Application;
|
||||
readonly versionLabel?: string;
|
||||
description?: string;
|
||||
readonly sourceBundle: Object;
|
||||
}
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Application} from "./application";
|
||||
import {ApplicationVersion} from "./applicationVersion";
|
||||
|
||||
export let WebServerTier: Tier = "WebServer::Standard::1.0";
|
||||
export let WorkerTier: Tier = "Worker::SQS/HTTP::1.0";
|
||||
|
||||
export class Environment extends lumi.NamedResource implements EnvironmentArgs {
|
||||
public readonly application: Application;
|
||||
public readonly cnamePrefix?: string;
|
||||
public description?: string;
|
||||
public readonly environmentName?: string;
|
||||
public optionSettings?: OptionSetting[];
|
||||
public readonly solutionStackName?: string;
|
||||
public readonly tags?: Tag[];
|
||||
public templateName?: string;
|
||||
public readonly tier?: Tier;
|
||||
public version?: ApplicationVersion;
|
||||
public endpointURL: string;
|
||||
public allOptionSettings: OptionSetting[];
|
||||
|
||||
public static get(id: lumi.ID): Environment {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Environment[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: EnvironmentArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.application, "") === undefined) {
|
||||
throw new Error("Missing required argument 'application'");
|
||||
}
|
||||
this.application = args.application;
|
||||
this.cnamePrefix = args.cnamePrefix;
|
||||
this.description = args.description;
|
||||
this.environmentName = args.environmentName;
|
||||
this.optionSettings = args.optionSettings;
|
||||
this.solutionStackName = args.solutionStackName;
|
||||
this.tags = args.tags;
|
||||
this.templateName = args.templateName;
|
||||
this.tier = args.tier;
|
||||
this.version = args.version;
|
||||
}
|
||||
}
|
||||
|
||||
export interface EnvironmentArgs {
|
||||
readonly application: Application;
|
||||
readonly cnamePrefix?: string;
|
||||
description?: string;
|
||||
readonly environmentName?: string;
|
||||
optionSettings?: OptionSetting[];
|
||||
readonly solutionStackName?: string;
|
||||
readonly tags?: Tag[];
|
||||
templateName?: string;
|
||||
readonly tier?: Tier;
|
||||
version?: ApplicationVersion;
|
||||
}
|
||||
|
||||
export interface OptionSetting {
|
||||
namespace: string;
|
||||
optionName: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface Tag {
|
||||
key: string;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export type Tier =
|
||||
"WebServer::Standard::1.0" |
|
||||
"Worker::SQS/HTTP::1.0";
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./application";
|
||||
export * from "./applicationVersion";
|
||||
export * from "./environment";
|
||||
|
|
@ -1,264 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
/* tslint:disable:max-line-length ordered-imports variable-name */
|
||||
import {ARN} from "../types";
|
||||
|
||||
export const AWSAccountActivityAccess: ARN = "arn:aws:iam::aws:policy/AWSAccountActivityAccess";
|
||||
export const AWSAccountUsageReportAccess: ARN = "arn:aws:iam::aws:policy/AWSAccountUsageReportAccess";
|
||||
export const AWSAgentlessDiscoveryService: ARN = "arn:aws:iam::aws:policy/AWSAgentlessDiscoveryService";
|
||||
export const AWSApplicationDiscoveryAgentAccess: ARN = "arn:aws:iam::aws:policy/AWSApplicationDiscoveryAgentAccess";
|
||||
export const AWSApplicationDiscoveryServiceFullAccess: ARN = "arn:aws:iam::aws:policy/AWSApplicationDiscoveryServiceFullAccess";
|
||||
export const AWSBatchFullAccess: ARN = "arn:aws:iam::aws:policy/AWSBatchFullAccess";
|
||||
export const AWSBatchServiceRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSBatchServiceRole";
|
||||
export const AWSCertificateManagerFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCertificateManagerFullAccess";
|
||||
export const AWSCertificateManagerReadOnly: ARN = "arn:aws:iam::aws:policy/AWSCertificateManagerReadOnly";
|
||||
export const AWSCloudFormationReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess";
|
||||
export const AWSCloudHSMFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCloudHSMFullAccess";
|
||||
export const AWSCloudHSMReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSCloudHSMReadOnlyAccess";
|
||||
export const AWSCloudHSMRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSCloudHSMRole";
|
||||
export const AWSCloudTrailFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCloudTrailFullAccess";
|
||||
export const AWSCloudTrailReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSCloudTrailReadOnlyAccess";
|
||||
export const AWSCodeBuildAdminAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess";
|
||||
export const AWSCodeBuildDeveloperAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess";
|
||||
export const AWSCodeBuildReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess";
|
||||
export const AWSCodeCommitFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeCommitFullAccess";
|
||||
export const AWSCodeCommitPowerUser: ARN = "arn:aws:iam::aws:policy/AWSCodeCommitPowerUser";
|
||||
export const AWSCodeCommitReadOnly: ARN = "arn:aws:iam::aws:policy/AWSCodeCommitReadOnly";
|
||||
export const AWSCodeDeployDeployerAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeDeployDeployerAccess";
|
||||
export const AWSCodeDeployFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeDeployFullAccess";
|
||||
export const AWSCodeDeployReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeDeployReadOnlyAccess";
|
||||
export const AWSCodeDeployRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole";
|
||||
export const AWSCodePipelineApproverAccess: ARN = "arn:aws:iam::aws:policy/AWSCodePipelineApproverAccess";
|
||||
export const AWSCodePipelineCustomActionAccess: ARN = "arn:aws:iam::aws:policy/AWSCodePipelineCustomActionAccess";
|
||||
export const AWSCodePipelineFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCodePipelineFullAccess";
|
||||
export const AWSCodePipelineReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSCodePipelineReadOnlyAccess";
|
||||
export const AWSCodeStarFullAccess: ARN = "arn:aws:iam::aws:policy/AWSCodeStarFullAccess";
|
||||
export const AWSCodeStarServiceRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSCodeStarServiceRole";
|
||||
export const AWSConfigRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSConfigRole";
|
||||
export const AWSConfigRulesExecutionRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSConfigRulesExecutionRole";
|
||||
export const AWSConfigUserAccess: ARN = "arn:aws:iam::aws:policy/AWSConfigUserAccess";
|
||||
export const AWSConnector: ARN = "arn:aws:iam::aws:policy/AWSConnector";
|
||||
export const AWSDataPipelineRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSDataPipelineRole";
|
||||
export const AWSDataPipeline_FullAccess: ARN = "arn:aws:iam::aws:policy/AWSDataPipeline_FullAccess";
|
||||
export const AWSDataPipeline_PowerUser: ARN = "arn:aws:iam::aws:policy/AWSDataPipeline_PowerUser";
|
||||
export const AWSDeviceFarmFullAccess: ARN = "arn:aws:iam::aws:policy/AWSDeviceFarmFullAccess";
|
||||
export const AWSDirectConnectFullAccess: ARN = "arn:aws:iam::aws:policy/AWSDirectConnectFullAccess";
|
||||
export const AWSDirectConnectReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSDirectConnectReadOnlyAccess";
|
||||
export const AWSDirectoryServiceFullAccess: ARN = "arn:aws:iam::aws:policy/AWSDirectoryServiceFullAccess";
|
||||
export const AWSDirectoryServiceReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSDirectoryServiceReadOnlyAccess";
|
||||
export const AWSElasticBeanstalkCustomPlatformforEC2Role: ARN = "arn:aws:iam::aws:policy/AWSElasticBeanstalkCustomPlatformforEC2Role";
|
||||
export const AWSElasticBeanstalkEnhancedHealth: ARN = "arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkEnhancedHealth";
|
||||
export const AWSElasticBeanstalkFullAccess: ARN = "arn:aws:iam::aws:policy/AWSElasticBeanstalkFullAccess";
|
||||
export const AWSElasticBeanstalkMulticontainerDocker: ARN = "arn:aws:iam::aws:policy/AWSElasticBeanstalkMulticontainerDocker";
|
||||
export const AWSElasticBeanstalkReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSElasticBeanstalkReadOnlyAccess";
|
||||
export const AWSElasticBeanstalkService: ARN = "arn:aws:iam::aws:policy/service-role/AWSElasticBeanstalkService";
|
||||
export const AWSElasticBeanstalkWebTier: ARN = "arn:aws:iam::aws:policy/AWSElasticBeanstalkWebTier";
|
||||
export const AWSElasticBeanstalkWorkerTier: ARN = "arn:aws:iam::aws:policy/AWSElasticBeanstalkWorkerTier";
|
||||
export const AWSGreengrassFullAccess: ARN = "arn:aws:iam::aws:policy/AWSGreengrassFullAccess";
|
||||
export const AWSGreengrassResourceAccessRolePolicy: ARN = "arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy";
|
||||
export const AWSHealthFullAccess: ARN = "arn:aws:iam::aws:policy/AWSHealthFullAccess";
|
||||
export const AWSImportExportFullAccess: ARN = "arn:aws:iam::aws:policy/AWSImportExportFullAccess";
|
||||
export const AWSImportExportReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSImportExportReadOnlyAccess";
|
||||
export const AWSIoTConfigAccess: ARN = "arn:aws:iam::aws:policy/AWSIoTConfigAccess";
|
||||
export const AWSIoTConfigReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSIoTConfigReadOnlyAccess";
|
||||
export const AWSIoTDataAccess: ARN = "arn:aws:iam::aws:policy/AWSIoTDataAccess";
|
||||
export const AWSIoTFullAccess: ARN = "arn:aws:iam::aws:policy/AWSIoTFullAccess";
|
||||
export const AWSIoTLogging: ARN = "arn:aws:iam::aws:policy/service-role/AWSIoTLogging";
|
||||
export const AWSIoTRuleActions: ARN = "arn:aws:iam::aws:policy/service-role/AWSIoTRuleActions";
|
||||
export const AWSKeyManagementServicePowerUser: ARN = "arn:aws:iam::aws:policy/AWSKeyManagementServicePowerUser";
|
||||
export const AWSLambdaBasicExecutionRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole";
|
||||
export const AWSLambdaDynamoDBExecutionRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole";
|
||||
export const AWSLambdaENIManagementAccess: ARN = "arn:aws:iam::aws:policy/service-role/AWSLambdaENIManagementAccess";
|
||||
export const AWSLambdaExecute: ARN = "arn:aws:iam::aws:policy/AWSLambdaExecute";
|
||||
export const AWSLambdaFullAccess: ARN = "arn:aws:iam::aws:policy/AWSLambdaFullAccess";
|
||||
export const AWSLambdaInvocationDynamoDB: ARN = "arn:aws:iam::aws:policy/AWSLambdaInvocation-DynamoDB";
|
||||
export const AWSLambdaKinesisExecutionRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSLambdaKinesisExecutionRole";
|
||||
export const AWSLambdaReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSLambdaReadOnlyAccess";
|
||||
export const AWSLambdaRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSLambdaRole";
|
||||
export const AWSLambdaVPCAccessExecutionRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole";
|
||||
export const AWSMarketplaceFullAccess: ARN = "arn:aws:iam::aws:policy/AWSMarketplaceFullAccess";
|
||||
export const AWSMarketplaceGetEntitlements: ARN = "arn:aws:iam::aws:policy/AWSMarketplaceGetEntitlements";
|
||||
export const AWSMarketplaceManageSubscriptions: ARN = "arn:aws:iam::aws:policy/AWSMarketplaceManageSubscriptions";
|
||||
export const AWSMarketplaceMeteringFullAccess: ARN = "arn:aws:iam::aws:policy/AWSMarketplaceMeteringFullAccess";
|
||||
export const AWSMarketplaceReadonly: ARN = "arn:aws:iam::aws:policy/AWSMarketplaceRead-only";
|
||||
export const AWSMobileHub_FullAccess: ARN = "arn:aws:iam::aws:policy/AWSMobileHub_FullAccess";
|
||||
export const AWSMobileHub_ReadOnly: ARN = "arn:aws:iam::aws:policy/AWSMobileHub_ReadOnly";
|
||||
export const AWSMobileHub_ServiceUseOnly: ARN = "arn:aws:iam::aws:policy/service-role/AWSMobileHub_ServiceUseOnly";
|
||||
export const AWSOpsWorksCMInstanceProfileRole: ARN = "arn:aws:iam::aws:policy/AWSOpsWorksCMInstanceProfileRole";
|
||||
export const AWSOpsWorksCMServiceRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSOpsWorksCMServiceRole";
|
||||
export const AWSOpsWorksCloudWatchLogs: ARN = "arn:aws:iam::aws:policy/AWSOpsWorksCloudWatchLogs";
|
||||
export const AWSOpsWorksFullAccess: ARN = "arn:aws:iam::aws:policy/AWSOpsWorksFullAccess";
|
||||
export const AWSOpsWorksInstanceRegistration: ARN = "arn:aws:iam::aws:policy/AWSOpsWorksInstanceRegistration";
|
||||
export const AWSOpsWorksRegisterCLI: ARN = "arn:aws:iam::aws:policy/AWSOpsWorksRegisterCLI";
|
||||
export const AWSOpsWorksRole: ARN = "arn:aws:iam::aws:policy/service-role/AWSOpsWorksRole";
|
||||
export const AWSQuickSightDescribeRDS: ARN = "arn:aws:iam::aws:policy/service-role/AWSQuickSightDescribeRDS";
|
||||
export const AWSQuickSightDescribeRedshift: ARN = "arn:aws:iam::aws:policy/service-role/AWSQuickSightDescribeRedshift";
|
||||
export const AWSQuickSightListIAM: ARN = "arn:aws:iam::aws:policy/service-role/AWSQuickSightListIAM";
|
||||
export const AWSQuicksightAthenaAccess: ARN = "arn:aws:iam::aws:policy/service-role/AWSQuicksightAthenaAccess";
|
||||
export const AWSStepFunctionsConsoleFullAccess: ARN = "arn:aws:iam::aws:policy/AWSStepFunctionsConsoleFullAccess";
|
||||
export const AWSStepFunctionsFullAccess: ARN = "arn:aws:iam::aws:policy/AWSStepFunctionsFullAccess";
|
||||
export const AWSStepFunctionsReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSStepFunctionsReadOnlyAccess";
|
||||
export const AWSStorageGatewayFullAccess: ARN = "arn:aws:iam::aws:policy/AWSStorageGatewayFullAccess";
|
||||
export const AWSStorageGatewayReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSStorageGatewayReadOnlyAccess";
|
||||
export const AWSSupportAccess: ARN = "arn:aws:iam::aws:policy/AWSSupportAccess";
|
||||
export const AWSWAFFullAccess: ARN = "arn:aws:iam::aws:policy/AWSWAFFullAccess";
|
||||
export const AWSWAFReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSWAFReadOnlyAccess";
|
||||
export const AWSXrayFullAccess: ARN = "arn:aws:iam::aws:policy/AWSXrayFullAccess";
|
||||
export const AWSXrayReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSXrayReadOnlyAccess";
|
||||
export const AWSXrayWriteOnlyAccess: ARN = "arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess";
|
||||
export const AdministratorAccess: ARN = "arn:aws:iam::aws:policy/AdministratorAccess";
|
||||
export const AmazonAPIGatewayAdministrator: ARN = "arn:aws:iam::aws:policy/AmazonAPIGatewayAdministrator";
|
||||
export const AmazonAPIGatewayInvokeFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonAPIGatewayInvokeFullAccess";
|
||||
export const AmazonAPIGatewayPushToCloudWatchLogs: ARN = "arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs";
|
||||
export const AmazonAppStreamFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonAppStreamFullAccess";
|
||||
export const AmazonAppStreamReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonAppStreamReadOnlyAccess";
|
||||
export const AmazonAppStreamServiceAccess: ARN = "arn:aws:iam::aws:policy/service-role/AmazonAppStreamServiceAccess";
|
||||
export const AmazonAthenaFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonAthenaFullAccess";
|
||||
export const AmazonCloudDirectoryFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonCloudDirectoryFullAccess";
|
||||
export const AmazonCloudDirectoryReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonCloudDirectoryReadOnlyAccess";
|
||||
export const AmazonCognitoDeveloperAuthenticatedIdentities: ARN = "arn:aws:iam::aws:policy/AmazonCognitoDeveloperAuthenticatedIdentities";
|
||||
export const AmazonCognitoPowerUser: ARN = "arn:aws:iam::aws:policy/AmazonCognitoPowerUser";
|
||||
export const AmazonCognitoReadOnly: ARN = "arn:aws:iam::aws:policy/AmazonCognitoReadOnly";
|
||||
export const AmazonDMSCloudWatchLogsRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole";
|
||||
export const AmazonDMSRedshiftS3Role: ARN = "arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role";
|
||||
export const AmazonDMSVPCManagementRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole";
|
||||
export const AmazonDRSVPCManagement: ARN = "arn:aws:iam::aws:policy/AmazonDRSVPCManagement";
|
||||
export const AmazonDynamoDBFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess";
|
||||
export const AmazonDynamoDBFullAccesswithDataPipeline: ARN = "arn:aws:iam::aws:policy/AmazonDynamoDBFullAccesswithDataPipeline";
|
||||
export const AmazonDynamoDBReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess";
|
||||
export const AmazonEC2ContainerRegistryFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryFullAccess";
|
||||
export const AmazonEC2ContainerRegistryPowerUser: ARN = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPowerUser";
|
||||
export const AmazonEC2ContainerRegistryReadOnly: ARN = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly";
|
||||
export const AmazonEC2ContainerServiceAutoscaleRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceAutoscaleRole";
|
||||
export const AmazonEC2ContainerServiceFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonEC2ContainerServiceFullAccess";
|
||||
export const AmazonEC2ContainerServiceRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceRole";
|
||||
export const AmazonEC2ContainerServiceforEC2Role: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role";
|
||||
export const AmazonEC2FullAccess: ARN = "arn:aws:iam::aws:policy/AmazonEC2FullAccess";
|
||||
export const AmazonEC2ReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonEC2ReadOnlyAccess";
|
||||
export const AmazonEC2ReportsAccess: ARN = "arn:aws:iam::aws:policy/AmazonEC2ReportsAccess";
|
||||
export const AmazonEC2RoleforAWSCodeDeploy: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforAWSCodeDeploy";
|
||||
export const AmazonEC2RoleforDataPipelineRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforDataPipelineRole";
|
||||
export const AmazonEC2RoleforSSM: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM";
|
||||
export const AmazonEC2SpotFleetAutoscaleRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetAutoscaleRole";
|
||||
export const AmazonEC2SpotFleetRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonEC2SpotFleetRole";
|
||||
export const AmazonESFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonESFullAccess";
|
||||
export const AmazonESReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonESReadOnlyAccess";
|
||||
export const AmazonElastiCacheFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonElastiCacheFullAccess";
|
||||
export const AmazonElastiCacheReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonElastiCacheReadOnlyAccess";
|
||||
export const AmazonElasticFileSystemFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonElasticFileSystemFullAccess";
|
||||
export const AmazonElasticFileSystemReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonElasticFileSystemReadOnlyAccess";
|
||||
export const AmazonElasticMapReduceFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonElasticMapReduceFullAccess";
|
||||
export const AmazonElasticMapReduceReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonElasticMapReduceReadOnlyAccess";
|
||||
export const AmazonElasticMapReduceRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceRole";
|
||||
export const AmazonElasticMapReduceforAutoScalingRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforAutoScalingRole";
|
||||
export const AmazonElasticMapReduceforEC2Role: ARN = "arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role";
|
||||
export const AmazonElasticTranscoderFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonElasticTranscoderFullAccess";
|
||||
export const AmazonElasticTranscoderJobsSubmitter: ARN = "arn:aws:iam::aws:policy/AmazonElasticTranscoderJobsSubmitter";
|
||||
export const AmazonElasticTranscoderReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonElasticTranscoderReadOnlyAccess";
|
||||
export const AmazonElasticTranscoderRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonElasticTranscoderRole";
|
||||
export const AmazonGlacierFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonGlacierFullAccess";
|
||||
export const AmazonGlacierReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonGlacierReadOnlyAccess";
|
||||
export const AmazonInspectorFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonInspectorFullAccess";
|
||||
export const AmazonInspectorReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonInspectorReadOnlyAccess";
|
||||
export const AmazonKinesisAnalyticsFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonKinesisAnalyticsFullAccess";
|
||||
export const AmazonKinesisAnalyticsReadOnly: ARN = "arn:aws:iam::aws:policy/AmazonKinesisAnalyticsReadOnly";
|
||||
export const AmazonKinesisFirehoseFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonKinesisFirehoseFullAccess";
|
||||
export const AmazonKinesisFirehoseReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonKinesisFirehoseReadOnlyAccess";
|
||||
export const AmazonKinesisFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonKinesisFullAccess";
|
||||
export const AmazonKinesisReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonKinesisReadOnlyAccess";
|
||||
export const AmazonLexFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonLexFullAccess";
|
||||
export const AmazonLexReadOnly: ARN = "arn:aws:iam::aws:policy/AmazonLexReadOnly";
|
||||
export const AmazonLexRunBotsOnly: ARN = "arn:aws:iam::aws:policy/AmazonLexRunBotsOnly";
|
||||
export const AmazonMachineLearningBatchPredictionsAccess: ARN = "arn:aws:iam::aws:policy/AmazonMachineLearningBatchPredictionsAccess";
|
||||
export const AmazonMachineLearningCreateOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonMachineLearningCreateOnlyAccess";
|
||||
export const AmazonMachineLearningFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonMachineLearningFullAccess";
|
||||
export const AmazonMachineLearningManageRealTimeEndpointOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonMachineLearningManageRealTimeEndpointOnlyAccess";
|
||||
export const AmazonMachineLearningReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonMachineLearningReadOnlyAccess";
|
||||
export const AmazonMachineLearningRealTimePredictionOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonMachineLearningRealTimePredictionOnlyAccess";
|
||||
export const AmazonMachineLearningRoleforRedshiftDataSource: ARN = "arn:aws:iam::aws:policy/service-role/AmazonMachineLearningRoleforRedshiftDataSource";
|
||||
export const AmazonMechanicalTurkFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonMechanicalTurkFullAccess";
|
||||
export const AmazonMechanicalTurkReadOnly: ARN = "arn:aws:iam::aws:policy/AmazonMechanicalTurkReadOnly";
|
||||
export const AmazonMobileAnalyticsFinancialReportAccess: ARN = "arn:aws:iam::aws:policy/AmazonMobileAnalyticsFinancialReportAccess";
|
||||
export const AmazonMobileAnalyticsFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonMobileAnalyticsFullAccess";
|
||||
export const AmazonMobileAnalyticsNonfinancialReportAccess: ARN = "arn:aws:iam::aws:policy/AmazonMobileAnalyticsNon-financialReportAccess";
|
||||
export const AmazonMobileAnalyticsWriteOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonMobileAnalyticsWriteOnlyAccess";
|
||||
export const AmazonPollyFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonPollyFullAccess";
|
||||
export const AmazonPollyReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonPollyReadOnlyAccess";
|
||||
export const AmazonRDSDirectoryServiceAccess: ARN = "arn:aws:iam::aws:policy/service-role/AmazonRDSDirectoryServiceAccess";
|
||||
export const AmazonRDSEnhancedMonitoringRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonRDSEnhancedMonitoringRole";
|
||||
export const AmazonRDSFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonRDSFullAccess";
|
||||
export const AmazonRDSReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonRDSReadOnlyAccess";
|
||||
export const AmazonRedshiftFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonRedshiftFullAccess";
|
||||
export const AmazonRedshiftReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonRedshiftReadOnlyAccess";
|
||||
export const AmazonRekognitionFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonRekognitionFullAccess";
|
||||
export const AmazonRekognitionReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonRekognitionReadOnlyAccess";
|
||||
export const AmazonRoute53DomainsFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonRoute53DomainsFullAccess";
|
||||
export const AmazonRoute53DomainsReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonRoute53DomainsReadOnlyAccess";
|
||||
export const AmazonRoute53FullAccess: ARN = "arn:aws:iam::aws:policy/AmazonRoute53FullAccess";
|
||||
export const AmazonRoute53ReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonRoute53ReadOnlyAccess";
|
||||
export const AmazonS3FullAccess: ARN = "arn:aws:iam::aws:policy/AmazonS3FullAccess";
|
||||
export const AmazonS3ReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess";
|
||||
export const AmazonSESFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonSESFullAccess";
|
||||
export const AmazonSESReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonSESReadOnlyAccess";
|
||||
export const AmazonSNSFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonSNSFullAccess";
|
||||
export const AmazonSNSReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonSNSReadOnlyAccess";
|
||||
export const AmazonSNSRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonSNSRole";
|
||||
export const AmazonSQSFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonSQSFullAccess";
|
||||
export const AmazonSQSReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonSQSReadOnlyAccess";
|
||||
export const AmazonSSMAutomationRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonSSMAutomationRole";
|
||||
export const AmazonSSMFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonSSMFullAccess";
|
||||
export const AmazonSSMMaintenanceWindowRole: ARN = "arn:aws:iam::aws:policy/service-role/AmazonSSMMaintenanceWindowRole";
|
||||
export const AmazonSSMReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonSSMReadOnlyAccess";
|
||||
export const AmazonVPCFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonVPCFullAccess";
|
||||
export const AmazonVPCReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonVPCReadOnlyAccess";
|
||||
export const AmazonWorkMailFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonWorkMailFullAccess";
|
||||
export const AmazonWorkMailReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonWorkMailReadOnlyAccess";
|
||||
export const AmazonWorkSpacesAdmin: ARN = "arn:aws:iam::aws:policy/AmazonWorkSpacesAdmin";
|
||||
export const AmazonWorkSpacesApplicationManagerAdminAccess: ARN = "arn:aws:iam::aws:policy/AmazonWorkSpacesApplicationManagerAdminAccess";
|
||||
export const AmazonZocaloFullAccess: ARN = "arn:aws:iam::aws:policy/AmazonZocaloFullAccess";
|
||||
export const AmazonZocaloReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AmazonZocaloReadOnlyAccess";
|
||||
export const ApplicationAutoScalingForAmazonAppStreamAccess: ARN = "arn:aws:iam::aws:policy/service-role/ApplicationAutoScalingForAmazonAppStreamAccess";
|
||||
export const AutoScalingConsoleFullAccess: ARN = "arn:aws:iam::aws:policy/AutoScalingConsoleFullAccess";
|
||||
export const AutoScalingConsoleReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AutoScalingConsoleReadOnlyAccess";
|
||||
export const AutoScalingFullAccess: ARN = "arn:aws:iam::aws:policy/AutoScalingFullAccess";
|
||||
export const AutoScalingNotificationAccessRole: ARN = "arn:aws:iam::aws:policy/service-role/AutoScalingNotificationAccessRole";
|
||||
export const AutoScalingReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/AutoScalingReadOnlyAccess";
|
||||
export const Billing: ARN = "arn:aws:iam::aws:policy/job-function/Billing";
|
||||
export const CloudFrontFullAccess: ARN = "arn:aws:iam::aws:policy/CloudFrontFullAccess";
|
||||
export const CloudFrontReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/CloudFrontReadOnlyAccess";
|
||||
export const CloudSearchFullAccess: ARN = "arn:aws:iam::aws:policy/CloudSearchFullAccess";
|
||||
export const CloudSearchReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/CloudSearchReadOnlyAccess";
|
||||
export const CloudWatchActionsEC2Access: ARN = "arn:aws:iam::aws:policy/CloudWatchActionsEC2Access";
|
||||
export const CloudWatchEventsBuiltInTargetExecutionAccess: ARN = "arn:aws:iam::aws:policy/service-role/CloudWatchEventsBuiltInTargetExecutionAccess";
|
||||
export const CloudWatchEventsFullAccess: ARN = "arn:aws:iam::aws:policy/CloudWatchEventsFullAccess";
|
||||
export const CloudWatchEventsInvocationAccess: ARN = "arn:aws:iam::aws:policy/service-role/CloudWatchEventsInvocationAccess";
|
||||
export const CloudWatchEventsReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/CloudWatchEventsReadOnlyAccess";
|
||||
export const CloudWatchFullAccess: ARN = "arn:aws:iam::aws:policy/CloudWatchFullAccess";
|
||||
export const CloudWatchLogsFullAccess: ARN = "arn:aws:iam::aws:policy/CloudWatchLogsFullAccess";
|
||||
export const CloudWatchLogsReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/CloudWatchLogsReadOnlyAccess";
|
||||
export const CloudWatchReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/CloudWatchReadOnlyAccess";
|
||||
export const DataScientist: ARN = "arn:aws:iam::aws:policy/job-function/DataScientist";
|
||||
export const DatabaseAdministrator: ARN = "arn:aws:iam::aws:policy/job-function/DatabaseAdministrator";
|
||||
export const IAMFullAccess: ARN = "arn:aws:iam::aws:policy/IAMFullAccess";
|
||||
export const IAMReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/IAMReadOnlyAccess";
|
||||
export const IAMSelfManageServiceSpecificCredentials: ARN = "arn:aws:iam::aws:policy/IAMSelfManageServiceSpecificCredentials";
|
||||
export const IAMUserChangePassword: ARN = "arn:aws:iam::aws:policy/IAMUserChangePassword";
|
||||
export const IAMUserSSHKeys: ARN = "arn:aws:iam::aws:policy/IAMUserSSHKeys";
|
||||
export const NetworkAdministrator: ARN = "arn:aws:iam::aws:policy/job-function/NetworkAdministrator";
|
||||
export const PowerUserAccess: ARN = "arn:aws:iam::aws:policy/PowerUserAccess";
|
||||
export const RDSCloudHsmAuthorizationRole: ARN = "arn:aws:iam::aws:policy/service-role/RDSCloudHsmAuthorizationRole";
|
||||
export const ReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/ReadOnlyAccess";
|
||||
export const ResourceGroupsandTagEditorFullAccess: ARN = "arn:aws:iam::aws:policy/ResourceGroupsandTagEditorFullAccess";
|
||||
export const ResourceGroupsandTagEditorReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/ResourceGroupsandTagEditorReadOnlyAccess";
|
||||
export const SecurityAudit: ARN = "arn:aws:iam::aws:policy/SecurityAudit";
|
||||
export const ServerMigrationConnector: ARN = "arn:aws:iam::aws:policy/ServerMigrationConnector";
|
||||
export const ServerMigrationServiceRole: ARN = "arn:aws:iam::aws:policy/service-role/ServerMigrationServiceRole";
|
||||
export const ServiceCatalogAdminFullAccess: ARN = "arn:aws:iam::aws:policy/ServiceCatalogAdminFullAccess";
|
||||
export const ServiceCatalogAdminReadOnlyAccess: ARN = "arn:aws:iam::aws:policy/ServiceCatalogAdminReadOnlyAccess";
|
||||
export const ServiceCatalogEndUserAccess: ARN = "arn:aws:iam::aws:policy/ServiceCatalogEndUserAccess";
|
||||
export const ServiceCatalogEndUserFullAccess: ARN = "arn:aws:iam::aws:policy/ServiceCatalogEndUserFullAccess";
|
||||
export const SimpleWorkflowFullAccess: ARN = "arn:aws:iam::aws:policy/SimpleWorkflowFullAccess";
|
||||
export const SupportUser: ARN = "arn:aws:iam::aws:policy/job-function/SupportUser";
|
||||
export const SystemAdministrator: ARN = "arn:aws:iam::aws:policy/job-function/SystemAdministrator";
|
||||
export const VMImportExportRoleForAWSConnector: ARN = "arn:aws:iam::aws:policy/service-role/VMImportExportRoleForAWSConnector";
|
||||
export const ViewOnlyAccess: ARN = "arn:aws:iam::aws:policy/job-function/ViewOnlyAccess";
|
|
@ -1,41 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {InlinePolicy, Policy} from "./policy";
|
||||
|
||||
export class Group extends lumi.NamedResource implements GroupArgs {
|
||||
public readonly groupName?: string;
|
||||
public managedPolicies?: Policy[];
|
||||
public path?: string;
|
||||
public policies?: InlinePolicy;
|
||||
|
||||
public static get(id: lumi.ID): Group {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Group[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: GroupArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.groupName = args.groupName;
|
||||
this.managedPolicies = args.managedPolicies;
|
||||
this.path = args.path;
|
||||
this.policies = args.policies;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface GroupArgs {
|
||||
readonly groupName?: string;
|
||||
managedPolicies?: Policy[];
|
||||
path?: string;
|
||||
policies?: InlinePolicy;
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./awsmanagedpolicies";
|
||||
export * from "./group";
|
||||
export * from "./instanceprofile";
|
||||
export * from "./policy";
|
||||
export * from "./role";
|
||||
export * from "./user";
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {ARN} from "../types";
|
||||
import {Role} from "./role";
|
||||
|
||||
export class InstanceProfile extends lumi.NamedResource implements InstanceProfileArgs {
|
||||
public readonly path?: string;
|
||||
public readonly instanceProfileName?: string;
|
||||
public roles: Role[];
|
||||
public arn: ARN;
|
||||
|
||||
public static get(id: lumi.ID): InstanceProfile {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): InstanceProfile[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: InstanceProfileArgs) {
|
||||
super(name);
|
||||
this.path = args.path;
|
||||
this.instanceProfileName = args.instanceProfileName;
|
||||
if (lumirt.defaultIfComputed(args.roles, "") === undefined) {
|
||||
throw new Error("Missing required argument 'roles'");
|
||||
}
|
||||
this.roles = args.roles;
|
||||
}
|
||||
}
|
||||
|
||||
export interface InstanceProfileArgs {
|
||||
readonly path?: string;
|
||||
readonly instanceProfileName?: string;
|
||||
roles: Role[];
|
||||
}
|
||||
|
|
@ -1,55 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Group} from "./group";
|
||||
import {Role} from "./role";
|
||||
import {User} from "./user";
|
||||
|
||||
export interface InlinePolicy {
|
||||
policyDocument: any;
|
||||
policyName: string;
|
||||
}
|
||||
|
||||
export class Policy extends lumi.NamedResource implements PolicyArgs {
|
||||
public policyDocument: any;
|
||||
public policyName: string;
|
||||
public groups?: Group[];
|
||||
public roles?: Role[];
|
||||
public users?: User[];
|
||||
|
||||
public static get(id: lumi.ID): Policy {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Policy[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: PolicyArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.policyDocument, "") === undefined) {
|
||||
throw new Error("Missing required argument 'policyDocument'");
|
||||
}
|
||||
this.policyDocument = args.policyDocument;
|
||||
if (lumirt.defaultIfComputed(args.policyName, "") === undefined) {
|
||||
throw new Error("Missing required argument 'policyName'");
|
||||
}
|
||||
this.policyName = args.policyName;
|
||||
this.groups = args.groups;
|
||||
this.roles = args.roles;
|
||||
this.users = args.users;
|
||||
}
|
||||
}
|
||||
|
||||
export interface PolicyArgs {
|
||||
policyDocument: any;
|
||||
policyName: string;
|
||||
groups?: Group[];
|
||||
roles?: Role[];
|
||||
users?: User[];
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {ARN} from "../types";
|
||||
import {InlinePolicy} from "./policy";
|
||||
|
||||
export class Role extends lumi.NamedResource implements RoleArgs {
|
||||
public assumeRolePolicyDocument: any;
|
||||
public readonly path?: string;
|
||||
public readonly roleName?: string;
|
||||
public managedPolicyARNs?: ARN[];
|
||||
public policies?: InlinePolicy[];
|
||||
public arn: ARN;
|
||||
|
||||
public static get(id: lumi.ID): Role {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): Role[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args: RoleArgs) {
|
||||
super(name);
|
||||
if (lumirt.defaultIfComputed(args.assumeRolePolicyDocument, "") === undefined) {
|
||||
throw new Error("Missing required argument 'assumeRolePolicyDocument'");
|
||||
}
|
||||
this.assumeRolePolicyDocument = args.assumeRolePolicyDocument;
|
||||
this.path = args.path;
|
||||
this.roleName = args.roleName;
|
||||
this.managedPolicyARNs = args.managedPolicyARNs;
|
||||
this.policies = args.policies;
|
||||
}
|
||||
}
|
||||
|
||||
export interface RoleArgs {
|
||||
assumeRolePolicyDocument: any;
|
||||
readonly path?: string;
|
||||
readonly roleName?: string;
|
||||
managedPolicyARNs?: ARN[];
|
||||
policies?: InlinePolicy[];
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
// *** WARNING: this file was generated by the Lumi IDL Compiler (LUMIDL). ***
|
||||
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
||||
|
||||
/* tslint:disable:ordered-imports variable-name */
|
||||
import * as lumi from "@lumi/lumi";
|
||||
import * as lumirt from "@lumi/lumirt";
|
||||
|
||||
import {Group} from "./group";
|
||||
import {InlinePolicy, Policy} from "./policy";
|
||||
|
||||
export interface LoginProfile {
|
||||
password: string;
|
||||
passwordResetRequired?: boolean;
|
||||
}
|
||||
|
||||
export class User extends lumi.NamedResource implements UserArgs {
|
||||
public readonly userName?: string;
|
||||
public groups?: Group[];
|
||||
public loginProfile?: LoginProfile;
|
||||
public managedPolicies?: Policy[];
|
||||
public path?: string;
|
||||
public policies?: InlinePolicy[];
|
||||
|
||||
public static get(id: lumi.ID): User {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
public static query(q: any): User[] {
|
||||
return <any>undefined; // functionality provided by the runtime
|
||||
}
|
||||
|
||||
constructor(name: string, args?: UserArgs) {
|
||||
super(name);
|
||||
if (args !== undefined) {
|
||||
this.userName = args.userName;
|
||||
this.groups = args.groups;
|
||||
this.loginProfile = args.loginProfile;
|
||||
this.managedPolicies = args.managedPolicies;
|
||||
this.path = args.path;
|
||||
this.policies = args.policies;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export interface UserArgs {
|
||||
readonly userName?: string;
|
||||
groups?: Group[];
|
||||
loginProfile?: LoginProfile;
|
||||
managedPolicies?: Policy[];
|
||||
path?: string;
|
||||
policies?: InlinePolicy[];
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
||||
|
||||
export * from "./types";
|
||||
|
||||
import * as apigateway from "./apigateway";
|
||||
import * as cloudwatch from "./cloudwatch";
|
||||
import * as config from "./config";
|
||||
import * as dynamodb from "./dynamodb";
|
||||
import * as ec2 from "./ec2";
|
||||
import * as elasticbeanstalk from "./elasticbeanstalk";
|
||||
import * as iam from "./iam";
|
||||
import * as kms from "./kms";
|
||||
import * as lambda from "./lambda";
|
||||
import * as s3 from "./s3";
|
||||
import * as serverless from "./serverless";
|
||||
import * as sns from "./sns";
|
||||
import * as sqs from "./sqs";
|
||||
export {apigateway, cloudwatch, config, dynamodb, ec2, elasticbeanstalk, iam, kms, lambda, s3, serverless, sns, sqs};
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue