awselasticsearch

package
v1.95.1-devpreview Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CfnDomain_CFN_RESOURCE_TYPE_NAME

func CfnDomain_CFN_RESOURCE_TYPE_NAME() *string

func CfnDomain_IsCfnElement

func CfnDomain_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnDomain_IsCfnResource

func CfnDomain_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnDomain_IsConstruct

func CfnDomain_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func Domain_IsConstruct

func Domain_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func Domain_IsResource

func Domain_IsResource(construct awscdk.IConstruct) *bool

Check whether the given construct is a Resource. Experimental.

func NewCfnDomain_Override

func NewCfnDomain_Override(c CfnDomain, scope awscdk.Construct, id *string, props *CfnDomainProps)

Create a new `AWS::Elasticsearch::Domain`.

func NewDomain_Override

func NewDomain_Override(d Domain, scope constructs.Construct, id *string, props *DomainProps)

Experimental.

Types

type AdvancedSecurityOptions

type AdvancedSecurityOptions struct {
	// ARN for the master user.
	//
	// Only specify this or masterUserName, but not both.
	// Experimental.
	MasterUserArn *string `json:"masterUserArn"`
	// Username for the master user.
	//
	// Only specify this or masterUserArn, but not both.
	// Experimental.
	MasterUserName *string `json:"masterUserName"`
	// Password for the master user.
	//
	// You can use `SecretValue.plainText` to specify a password in plain text or
	// use `secretsmanager.Secret.fromSecretAttributes` to reference a secret in
	// Secrets Manager.
	// Experimental.
	MasterUserPassword awscdk.SecretValue `json:"masterUserPassword"`
}

Specifies options for fine-grained access control. Experimental.

type CapacityConfig

type CapacityConfig struct {
	// The instance type for your data nodes, such as `m3.medium.elasticsearch`. For valid values, see [Supported Instance Types](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-supported-instance-types.html) in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	DataNodeInstanceType *string `json:"dataNodeInstanceType"`
	// The number of data nodes (instances) to use in the Amazon ES domain.
	// Experimental.
	DataNodes *float64 `json:"dataNodes"`
	// The hardware configuration of the computer that hosts the dedicated master node, such as `m3.medium.elasticsearch`. For valid values, see [Supported Instance Types] (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-supported-instance-types.html) in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	MasterNodeInstanceType *string `json:"masterNodeInstanceType"`
	// The number of instances to use for the master node.
	// Experimental.
	MasterNodes *float64 `json:"masterNodes"`
	// The instance type for your UltraWarm node, such as `ultrawarm1.medium.elasticsearch`. For valid values, see [UltraWarm Storage Limits] (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/aes-limits.html#limits-ultrawarm) in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	WarmInstanceType *string `json:"warmInstanceType"`
	// The number of UltraWarm nodes (instances) to use in the Amazon ES domain.
	// Experimental.
	WarmNodes *float64 `json:"warmNodes"`
}

Configures the capacity of the cluster such as the instance type and the number of instances. Experimental.

type CfnDomain

type CfnDomain interface {
	awscdk.CfnResource
	awscdk.IInspectable
	AccessPolicies() interface{}
	SetAccessPolicies(val interface{})
	AdvancedOptions() interface{}
	SetAdvancedOptions(val interface{})
	AdvancedSecurityOptions() interface{}
	SetAdvancedSecurityOptions(val interface{})
	AttrArn() *string
	AttrDomainEndpoint() *string
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	CfnResourceType() *string
	CognitoOptions() interface{}
	SetCognitoOptions(val interface{})
	CreationStack() *[]*string
	DomainEndpointOptions() interface{}
	SetDomainEndpointOptions(val interface{})
	DomainName() *string
	SetDomainName(val *string)
	EbsOptions() interface{}
	SetEbsOptions(val interface{})
	ElasticsearchClusterConfig() interface{}
	SetElasticsearchClusterConfig(val interface{})
	ElasticsearchVersion() *string
	SetElasticsearchVersion(val *string)
	EncryptionAtRestOptions() interface{}
	SetEncryptionAtRestOptions(val interface{})
	LogicalId() *string
	LogPublishingOptions() interface{}
	SetLogPublishingOptions(val interface{})
	Node() awscdk.ConstructNode
	NodeToNodeEncryptionOptions() interface{}
	SetNodeToNodeEncryptionOptions(val interface{})
	Ref() *string
	SnapshotOptions() interface{}
	SetSnapshotOptions(val interface{})
	Stack() awscdk.Stack
	Tags() awscdk.TagManager
	UpdatedProperites() *map[string]interface{}
	VpcOptions() interface{}
	SetVpcOptions(val interface{})
	AddDeletionOverride(path *string)
	AddDependsOn(target awscdk.CfnResource)
	AddMetadata(key *string, value interface{})
	AddOverride(path *string, value interface{})
	AddPropertyDeletionOverride(propertyPath *string)
	AddPropertyOverride(propertyPath *string, value interface{})
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions)
	GetAtt(attributeName *string) awscdk.Reference
	GetMetadata(key *string) interface{}
	Inspect(inspector awscdk.TreeInspector)
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	OverrideLogicalId(newLogicalId *string)
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	ShouldSynthesize() *bool
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Elasticsearch::Domain`.

func NewCfnDomain

func NewCfnDomain(scope awscdk.Construct, id *string, props *CfnDomainProps) CfnDomain

Create a new `AWS::Elasticsearch::Domain`.

type CfnDomainProps

type CfnDomainProps struct {
	// `AWS::Elasticsearch::Domain.AccessPolicies`.
	AccessPolicies interface{} `json:"accessPolicies"`
	// `AWS::Elasticsearch::Domain.AdvancedOptions`.
	AdvancedOptions interface{} `json:"advancedOptions"`
	// `AWS::Elasticsearch::Domain.AdvancedSecurityOptions`.
	AdvancedSecurityOptions interface{} `json:"advancedSecurityOptions"`
	// `AWS::Elasticsearch::Domain.CognitoOptions`.
	CognitoOptions interface{} `json:"cognitoOptions"`
	// `AWS::Elasticsearch::Domain.DomainEndpointOptions`.
	DomainEndpointOptions interface{} `json:"domainEndpointOptions"`
	// `AWS::Elasticsearch::Domain.DomainName`.
	DomainName *string `json:"domainName"`
	// `AWS::Elasticsearch::Domain.EBSOptions`.
	EbsOptions interface{} `json:"ebsOptions"`
	// `AWS::Elasticsearch::Domain.ElasticsearchClusterConfig`.
	ElasticsearchClusterConfig interface{} `json:"elasticsearchClusterConfig"`
	// `AWS::Elasticsearch::Domain.ElasticsearchVersion`.
	ElasticsearchVersion *string `json:"elasticsearchVersion"`
	// `AWS::Elasticsearch::Domain.EncryptionAtRestOptions`.
	EncryptionAtRestOptions interface{} `json:"encryptionAtRestOptions"`
	// `AWS::Elasticsearch::Domain.LogPublishingOptions`.
	LogPublishingOptions interface{} `json:"logPublishingOptions"`
	// `AWS::Elasticsearch::Domain.NodeToNodeEncryptionOptions`.
	NodeToNodeEncryptionOptions interface{} `json:"nodeToNodeEncryptionOptions"`
	// `AWS::Elasticsearch::Domain.SnapshotOptions`.
	SnapshotOptions interface{} `json:"snapshotOptions"`
	// `AWS::Elasticsearch::Domain.Tags`.
	Tags *[]*awscdk.CfnTag `json:"tags"`
	// `AWS::Elasticsearch::Domain.VPCOptions`.
	VpcOptions interface{} `json:"vpcOptions"`
}

Properties for defining a `AWS::Elasticsearch::Domain`.

type CfnDomain_AdvancedSecurityOptionsInputProperty

type CfnDomain_AdvancedSecurityOptionsInputProperty struct {
	// `CfnDomain.AdvancedSecurityOptionsInputProperty.Enabled`.
	Enabled interface{} `json:"enabled"`
	// `CfnDomain.AdvancedSecurityOptionsInputProperty.InternalUserDatabaseEnabled`.
	InternalUserDatabaseEnabled interface{} `json:"internalUserDatabaseEnabled"`
	// `CfnDomain.AdvancedSecurityOptionsInputProperty.MasterUserOptions`.
	MasterUserOptions interface{} `json:"masterUserOptions"`
}

type CfnDomain_CognitoOptionsProperty

type CfnDomain_CognitoOptionsProperty struct {
	// `CfnDomain.CognitoOptionsProperty.Enabled`.
	Enabled interface{} `json:"enabled"`
	// `CfnDomain.CognitoOptionsProperty.IdentityPoolId`.
	IdentityPoolId *string `json:"identityPoolId"`
	// `CfnDomain.CognitoOptionsProperty.RoleArn`.
	RoleArn *string `json:"roleArn"`
	// `CfnDomain.CognitoOptionsProperty.UserPoolId`.
	UserPoolId *string `json:"userPoolId"`
}

type CfnDomain_DomainEndpointOptionsProperty

type CfnDomain_DomainEndpointOptionsProperty struct {
	// `CfnDomain.DomainEndpointOptionsProperty.CustomEndpoint`.
	CustomEndpoint *string `json:"customEndpoint"`
	// `CfnDomain.DomainEndpointOptionsProperty.CustomEndpointCertificateArn`.
	CustomEndpointCertificateArn *string `json:"customEndpointCertificateArn"`
	// `CfnDomain.DomainEndpointOptionsProperty.CustomEndpointEnabled`.
	CustomEndpointEnabled interface{} `json:"customEndpointEnabled"`
	// `CfnDomain.DomainEndpointOptionsProperty.EnforceHTTPS`.
	EnforceHttps interface{} `json:"enforceHttps"`
	// `CfnDomain.DomainEndpointOptionsProperty.TLSSecurityPolicy`.
	TlsSecurityPolicy *string `json:"tlsSecurityPolicy"`
}

type CfnDomain_EBSOptionsProperty

type CfnDomain_EBSOptionsProperty struct {
	// `CfnDomain.EBSOptionsProperty.EBSEnabled`.
	EbsEnabled interface{} `json:"ebsEnabled"`
	// `CfnDomain.EBSOptionsProperty.Iops`.
	Iops *float64 `json:"iops"`
	// `CfnDomain.EBSOptionsProperty.VolumeSize`.
	VolumeSize *float64 `json:"volumeSize"`
	// `CfnDomain.EBSOptionsProperty.VolumeType`.
	VolumeType *string `json:"volumeType"`
}

type CfnDomain_ElasticsearchClusterConfigProperty

type CfnDomain_ElasticsearchClusterConfigProperty struct {
	// `CfnDomain.ElasticsearchClusterConfigProperty.DedicatedMasterCount`.
	DedicatedMasterCount *float64 `json:"dedicatedMasterCount"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.DedicatedMasterEnabled`.
	DedicatedMasterEnabled interface{} `json:"dedicatedMasterEnabled"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.DedicatedMasterType`.
	DedicatedMasterType *string `json:"dedicatedMasterType"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.InstanceCount`.
	InstanceCount *float64 `json:"instanceCount"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.InstanceType`.
	InstanceType *string `json:"instanceType"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.WarmCount`.
	WarmCount *float64 `json:"warmCount"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.WarmEnabled`.
	WarmEnabled interface{} `json:"warmEnabled"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.WarmType`.
	WarmType *string `json:"warmType"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.ZoneAwarenessConfig`.
	ZoneAwarenessConfig interface{} `json:"zoneAwarenessConfig"`
	// `CfnDomain.ElasticsearchClusterConfigProperty.ZoneAwarenessEnabled`.
	ZoneAwarenessEnabled interface{} `json:"zoneAwarenessEnabled"`
}

type CfnDomain_EncryptionAtRestOptionsProperty

type CfnDomain_EncryptionAtRestOptionsProperty struct {
	// `CfnDomain.EncryptionAtRestOptionsProperty.Enabled`.
	Enabled interface{} `json:"enabled"`
	// `CfnDomain.EncryptionAtRestOptionsProperty.KmsKeyId`.
	KmsKeyId *string `json:"kmsKeyId"`
}

type CfnDomain_LogPublishingOptionProperty

type CfnDomain_LogPublishingOptionProperty struct {
	// `CfnDomain.LogPublishingOptionProperty.CloudWatchLogsLogGroupArn`.
	CloudWatchLogsLogGroupArn *string `json:"cloudWatchLogsLogGroupArn"`
	// `CfnDomain.LogPublishingOptionProperty.Enabled`.
	Enabled interface{} `json:"enabled"`
}

type CfnDomain_MasterUserOptionsProperty

type CfnDomain_MasterUserOptionsProperty struct {
	// `CfnDomain.MasterUserOptionsProperty.MasterUserARN`.
	MasterUserArn *string `json:"masterUserArn"`
	// `CfnDomain.MasterUserOptionsProperty.MasterUserName`.
	MasterUserName *string `json:"masterUserName"`
	// `CfnDomain.MasterUserOptionsProperty.MasterUserPassword`.
	MasterUserPassword *string `json:"masterUserPassword"`
}

type CfnDomain_NodeToNodeEncryptionOptionsProperty

type CfnDomain_NodeToNodeEncryptionOptionsProperty struct {
	// `CfnDomain.NodeToNodeEncryptionOptionsProperty.Enabled`.
	Enabled interface{} `json:"enabled"`
}

type CfnDomain_SnapshotOptionsProperty

type CfnDomain_SnapshotOptionsProperty struct {
	// `CfnDomain.SnapshotOptionsProperty.AutomatedSnapshotStartHour`.
	AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour"`
}

type CfnDomain_VPCOptionsProperty

type CfnDomain_VPCOptionsProperty struct {
	// `CfnDomain.VPCOptionsProperty.SecurityGroupIds`.
	SecurityGroupIds *[]*string `json:"securityGroupIds"`
	// `CfnDomain.VPCOptionsProperty.SubnetIds`.
	SubnetIds *[]*string `json:"subnetIds"`
}

type CfnDomain_ZoneAwarenessConfigProperty

type CfnDomain_ZoneAwarenessConfigProperty struct {
	// `CfnDomain.ZoneAwarenessConfigProperty.AvailabilityZoneCount`.
	AvailabilityZoneCount *float64 `json:"availabilityZoneCount"`
}

type CognitoOptions

type CognitoOptions struct {
	// The Amazon Cognito identity pool ID that you want Amazon ES to use for Kibana authentication.
	// Experimental.
	IdentityPoolId *string `json:"identityPoolId"`
	// A role that allows Amazon ES to configure your user pool and identity pool.
	//
	// It must have the `AmazonESCognitoAccess` policy attached to it.
	// See: https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html#es-cognito-auth-prereq
	//
	// Experimental.
	Role awsiam.IRole `json:"role"`
	// The Amazon Cognito user pool ID that you want Amazon ES to use for Kibana authentication.
	// Experimental.
	UserPoolId *string `json:"userPoolId"`
}

Configures Amazon ES to use Amazon Cognito authentication for Kibana. See: https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html

Experimental.

type CustomEndpointOptions

type CustomEndpointOptions struct {
	// The custom domain name to assign.
	// Experimental.
	DomainName *string `json:"domainName"`
	// The certificate to use.
	// Experimental.
	Certificate awscertificatemanager.ICertificate `json:"certificate"`
	// The hosted zone in Route53 to create the CNAME record in.
	// Experimental.
	HostedZone awsroute53.IHostedZone `json:"hostedZone"`
}

Configures a custom domain endpoint for the ES domain. Experimental.

type Domain

type Domain interface {
	awscdk.Resource
	IDomain
	AppLogGroup() awslogs.ILogGroup
	AuditLogGroup() awslogs.ILogGroup
	DomainArn() *string
	DomainEndpoint() *string
	DomainName() *string
	Env() *awscdk.ResourceEnvironment
	MasterUserPassword() awscdk.SecretValue
	Node() awscdk.ConstructNode
	PhysicalName() *string
	SlowIndexLogGroup() awslogs.ILogGroup
	SlowSearchLogGroup() awslogs.ILogGroup
	Stack() awscdk.Stack
	ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
	GeneratePhysicalName() *string
	GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
	GetResourceNameAttribute(nameAttr *string) *string
	GrantIndexRead(index *string, identity awsiam.IGrantable) awsiam.Grant
	GrantIndexReadWrite(index *string, identity awsiam.IGrantable) awsiam.Grant
	GrantIndexWrite(index *string, identity awsiam.IGrantable) awsiam.Grant
	GrantPathRead(path *string, identity awsiam.IGrantable) awsiam.Grant
	GrantPathReadWrite(path *string, identity awsiam.IGrantable) awsiam.Grant
	GrantPathWrite(path *string, identity awsiam.IGrantable) awsiam.Grant
	GrantRead(identity awsiam.IGrantable) awsiam.Grant
	GrantReadWrite(identity awsiam.IGrantable) awsiam.Grant
	GrantWrite(identity awsiam.IGrantable) awsiam.Grant
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricAutomatedSnapshotFailure(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClusterIndexWriteBlocked(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClusterStatusRed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricClusterStatusYellow(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricCPUUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricFreeStorageSpace(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricIndexingLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricJVMMemoryPressure(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricKMSKeyError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricKMSKeyInaccessible(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricMasterCPUUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricMasterJVMMemoryPressure(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricNodes(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricSearchableDocuments(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	MetricSearchLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	OnPrepare()
	OnSynthesize(session constructs.ISynthesisSession)
	OnValidate() *[]*string
	Prepare()
	Synthesize(session awscdk.ISynthesisSession)
	ToString() *string
	Validate() *[]*string
}

Provides an Elasticsearch domain. Experimental.

func NewDomain

func NewDomain(scope constructs.Construct, id *string, props *DomainProps) Domain

Experimental.

type DomainAttributes

type DomainAttributes struct {
	// The ARN of the Elasticsearch domain.
	// Experimental.
	DomainArn *string `json:"domainArn"`
	// The domain endpoint of the Elasticsearch domain.
	// Experimental.
	DomainEndpoint *string `json:"domainEndpoint"`
}

Reference to an Elasticsearch domain. Experimental.

type DomainProps

type DomainProps struct {
	// The Elasticsearch version that your domain will leverage.
	// Experimental.
	Version ElasticsearchVersion `json:"version"`
	// Domain Access policies.
	// Experimental.
	AccessPolicies *[]awsiam.PolicyStatement `json:"accessPolicies"`
	// Additional options to specify for the Amazon ES domain.
	// Experimental.
	AdvancedOptions *map[string]*string `json:"advancedOptions"`
	// The hour in UTC during which the service takes an automated daily snapshot of the indices in the Amazon ES domain.
	//
	// Only applies for Elasticsearch
	// versions below 5.3.
	// Experimental.
	AutomatedSnapshotStartHour *float64 `json:"automatedSnapshotStartHour"`
	// The cluster capacity configuration for the Amazon ES domain.
	// Experimental.
	Capacity *CapacityConfig `json:"capacity"`
	// Configures Amazon ES to use Amazon Cognito authentication for Kibana.
	// Experimental.
	CognitoKibanaAuth *CognitoOptions `json:"cognitoKibanaAuth"`
	// To configure a custom domain configure these options.
	//
	// If you specify a Route53 hosted zone it will create a CNAME record and use DNS validation for the certificate
	// Experimental.
	CustomEndpoint *CustomEndpointOptions `json:"customEndpoint"`
	// Enforces a particular physical domain name.
	// Experimental.
	DomainName *string `json:"domainName"`
	// The configurations of Amazon Elastic Block Store (Amazon EBS) volumes that are attached to data nodes in the Amazon ES domain.
	//
	// For more information, see
	// [Configuring EBS-based Storage]
	// (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)
	// in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	Ebs *EbsOptions `json:"ebs"`
	// To upgrade an Amazon ES domain to a new version of Elasticsearch rather than replacing the entire domain resource, use the EnableVersionUpgrade update policy.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-upgradeelasticsearchdomain
	//
	// Experimental.
	EnableVersionUpgrade *bool `json:"enableVersionUpgrade"`
	// Encryption at rest options for the cluster.
	// Experimental.
	EncryptionAtRest *EncryptionAtRestOptions `json:"encryptionAtRest"`
	// True to require that all traffic to the domain arrive over HTTPS.
	// Experimental.
	EnforceHttps *bool `json:"enforceHttps"`
	// Specifies options for fine-grained access control.
	//
	// Requires Elasticsearch version 6.7 or later. Enabling fine-grained access control
	// also requires encryption of data at rest and node-to-node encryption, along with
	// enforced HTTPS.
	// Experimental.
	FineGrainedAccessControl *AdvancedSecurityOptions `json:"fineGrainedAccessControl"`
	// Configuration log publishing configuration options.
	// Experimental.
	Logging *LoggingOptions `json:"logging"`
	// Specify true to enable node to node encryption.
	//
	// Requires Elasticsearch version 6.0 or later.
	// Experimental.
	NodeToNodeEncryption *bool `json:"nodeToNodeEncryption"`
	// Policy to apply when the domain is removed from the stack.
	// Experimental.
	RemovalPolicy awscdk.RemovalPolicy `json:"removalPolicy"`
	// The minimum TLS version required for traffic to the domain.
	// Experimental.
	TlsSecurityPolicy TLSSecurityPolicy `json:"tlsSecurityPolicy"`
	// Configures the domain so that unsigned basic auth is enabled.
	//
	// If no master user is provided a default master user
	// with username `admin` and a dynamically generated password stored in KMS is created. The password can be retrieved
	// by getting `masterUserPassword` from the domain instance.
	//
	// Setting this to true will also add an access policy that allows unsigned
	// access, enable node to node encryption, encryption at rest. If conflicting
	// settings are encountered (like disabling encryption at rest) enabling this
	// setting will cause a failure.
	// Experimental.
	UseUnsignedBasicAuth *bool `json:"useUnsignedBasicAuth"`
	// The virtual private cloud (VPC) configuration for the Amazon ES domain.
	//
	// For
	// more information, see [VPC Support for Amazon Elasticsearch Service
	// Domains](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html)
	// in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	VpcOptions *VpcOptions `json:"vpcOptions"`
	// The cluster zone awareness configuration for the Amazon ES domain.
	// Experimental.
	ZoneAwareness *ZoneAwarenessConfig `json:"zoneAwareness"`
}

Properties for an AWS Elasticsearch Domain. Experimental.

type EbsOptions

type EbsOptions struct {
	// Specifies whether Amazon EBS volumes are attached to data nodes in the Amazon ES domain.
	// Experimental.
	Enabled *bool `json:"enabled"`
	// The number of I/O operations per second (IOPS) that the volume supports.
	//
	// This property applies only to the Provisioned IOPS (SSD) EBS
	// volume type.
	// Experimental.
	Iops *float64 `json:"iops"`
	// The size (in GiB) of the EBS volume for each data node.
	//
	// The minimum and
	// maximum size of an EBS volume depends on the EBS volume type and the
	// instance type to which it is attached.  For more information, see
	// [Configuring EBS-based Storage]
	// (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)
	// in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	VolumeSize *float64 `json:"volumeSize"`
	// The EBS volume type to use with the Amazon ES domain, such as standard, gp2, io1.
	//
	// For more information, see[Configuring EBS-based Storage]
	// (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs)
	// in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	VolumeType awsec2.EbsDeviceVolumeType `json:"volumeType"`
}

The configurations of Amazon Elastic Block Store (Amazon EBS) volumes that are attached to data nodes in the Amazon ES domain.

For more information, see [Configuring EBS-based Storage] (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-ebs) in the Amazon Elasticsearch Service Developer Guide. Experimental.

type ElasticsearchVersion

type ElasticsearchVersion interface {
	Version() *string
}

Elasticsearch version. Experimental.

func ElasticsearchVersion_Of

func ElasticsearchVersion_Of(version *string) ElasticsearchVersion

Custom Elasticsearch version. Experimental.

func ElasticsearchVersion_V1_5

func ElasticsearchVersion_V1_5() ElasticsearchVersion

func ElasticsearchVersion_V2_3

func ElasticsearchVersion_V2_3() ElasticsearchVersion

func ElasticsearchVersion_V5_1

func ElasticsearchVersion_V5_1() ElasticsearchVersion

func ElasticsearchVersion_V5_3

func ElasticsearchVersion_V5_3() ElasticsearchVersion

func ElasticsearchVersion_V5_5

func ElasticsearchVersion_V5_5() ElasticsearchVersion

func ElasticsearchVersion_V5_6

func ElasticsearchVersion_V5_6() ElasticsearchVersion

func ElasticsearchVersion_V6_0

func ElasticsearchVersion_V6_0() ElasticsearchVersion

func ElasticsearchVersion_V6_2

func ElasticsearchVersion_V6_2() ElasticsearchVersion

func ElasticsearchVersion_V6_3

func ElasticsearchVersion_V6_3() ElasticsearchVersion

func ElasticsearchVersion_V6_4

func ElasticsearchVersion_V6_4() ElasticsearchVersion

func ElasticsearchVersion_V6_5

func ElasticsearchVersion_V6_5() ElasticsearchVersion

func ElasticsearchVersion_V6_7

func ElasticsearchVersion_V6_7() ElasticsearchVersion

func ElasticsearchVersion_V6_8

func ElasticsearchVersion_V6_8() ElasticsearchVersion

func ElasticsearchVersion_V7_1

func ElasticsearchVersion_V7_1() ElasticsearchVersion

func ElasticsearchVersion_V7_4

func ElasticsearchVersion_V7_4() ElasticsearchVersion

func ElasticsearchVersion_V7_7

func ElasticsearchVersion_V7_7() ElasticsearchVersion

func ElasticsearchVersion_V7_8

func ElasticsearchVersion_V7_8() ElasticsearchVersion

func ElasticsearchVersion_V7_9

func ElasticsearchVersion_V7_9() ElasticsearchVersion

type EncryptionAtRestOptions

type EncryptionAtRestOptions struct {
	// Specify true to enable encryption at rest.
	// Experimental.
	Enabled *bool `json:"enabled"`
	// Supply if using KMS key for encryption at rest.
	// Experimental.
	KmsKey awskms.IKey `json:"kmsKey"`
}

Whether the domain should encrypt data at rest, and if so, the AWS Key Management Service (KMS) key to use.

Can only be used to create a new domain, not update an existing one. Requires Elasticsearch version 5.1 or later. Experimental.

type IDomain

type IDomain interface {
	awscdk.IResource
	// Grant read permissions for an index in this domain to an IAM principal (Role/Group/User).
	// Experimental.
	GrantIndexRead(index *string, identity awsiam.IGrantable) awsiam.Grant
	// Grant read/write permissions for an index in this domain to an IAM principal (Role/Group/User).
	// Experimental.
	GrantIndexReadWrite(index *string, identity awsiam.IGrantable) awsiam.Grant
	// Grant write permissions for an index in this domain to an IAM principal (Role/Group/User).
	// Experimental.
	GrantIndexWrite(index *string, identity awsiam.IGrantable) awsiam.Grant
	// Grant read permissions for a specific path in this domain to an IAM principal (Role/Group/User).
	// Experimental.
	GrantPathRead(path *string, identity awsiam.IGrantable) awsiam.Grant
	// Grant read/write permissions for a specific path in this domain to an IAM principal (Role/Group/User).
	// Experimental.
	GrantPathReadWrite(path *string, identity awsiam.IGrantable) awsiam.Grant
	// Grant write permissions for a specific path in this domain to an IAM principal (Role/Group/User).
	// Experimental.
	GrantPathWrite(path *string, identity awsiam.IGrantable) awsiam.Grant
	// Grant read permissions for this domain and its contents to an IAM principal (Role/Group/User).
	// Experimental.
	GrantRead(identity awsiam.IGrantable) awsiam.Grant
	// Grant read/write permissions for this domain and its contents to an IAM principal (Role/Group/User).
	// Experimental.
	GrantReadWrite(identity awsiam.IGrantable) awsiam.Grant
	// Grant write permissions for this domain and its contents to an IAM principal (Role/Group/User).
	// Experimental.
	GrantWrite(identity awsiam.IGrantable) awsiam.Grant
	// Return the given named metric for this Domain.
	// Experimental.
	Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for automated snapshot failures.
	// Experimental.
	MetricAutomatedSnapshotFailure(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for the cluster blocking index writes.
	// Experimental.
	MetricClusterIndexWriteBlocked(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for the time the cluster status is red.
	// Experimental.
	MetricClusterStatusRed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for the time the cluster status is yellow.
	// Experimental.
	MetricClusterStatusYellow(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for CPU utilization.
	// Experimental.
	MetricCPUUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for the storage space of nodes in the cluster.
	// Experimental.
	MetricFreeStorageSpace(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for indexing latency.
	// Experimental.
	MetricIndexingLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for JVM memory pressure.
	// Experimental.
	MetricJVMMemoryPressure(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for KMS key errors.
	// Experimental.
	MetricKMSKeyError(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for KMS key being inaccessible.
	// Experimental.
	MetricKMSKeyInaccessible(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for master CPU utilization.
	// Experimental.
	MetricMasterCPUUtilization(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for master JVM memory pressure.
	// Experimental.
	MetricMasterJVMMemoryPressure(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for the number of nodes.
	// Experimental.
	MetricNodes(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for number of searchable documents.
	// Experimental.
	MetricSearchableDocuments(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Metric for search latency.
	// Experimental.
	MetricSearchLatency(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
	// Arn of the Elasticsearch domain.
	// Experimental.
	DomainArn() *string
	// Endpoint of the Elasticsearch domain.
	// Experimental.
	DomainEndpoint() *string
	// Domain name of the Elasticsearch domain.
	// Experimental.
	DomainName() *string
}

An interface that represents an Elasticsearch domain - either created with the CDK, or an existing one. Experimental.

func Domain_FromDomainAttributes

func Domain_FromDomainAttributes(scope constructs.Construct, id *string, attrs *DomainAttributes) IDomain

Creates a Domain construct that represents an external domain. Experimental.

func Domain_FromDomainEndpoint

func Domain_FromDomainEndpoint(scope constructs.Construct, id *string, domainEndpoint *string) IDomain

Creates a Domain construct that represents an external domain via domain endpoint. Experimental.

type LoggingOptions

type LoggingOptions struct {
	// Specify if Elasticsearch application logging should be set up.
	//
	// Requires Elasticsearch version 5.1 or later.
	// Experimental.
	AppLogEnabled *bool `json:"appLogEnabled"`
	// Log Elasticsearch application logs to this log group.
	// Experimental.
	AppLogGroup awslogs.ILogGroup `json:"appLogGroup"`
	// Specify if Elasticsearch audit logging should be set up.
	//
	// Requires Elasticsearch version 6.7 or later and fine grained access control to be enabled.
	// Experimental.
	AuditLogEnabled *bool `json:"auditLogEnabled"`
	// Log Elasticsearch audit logs to this log group.
	// Experimental.
	AuditLogGroup awslogs.ILogGroup `json:"auditLogGroup"`
	// Specify if slow index logging should be set up.
	//
	// Requires Elasticsearch version 5.1 or later.
	// Experimental.
	SlowIndexLogEnabled *bool `json:"slowIndexLogEnabled"`
	// Log slow indices to this log group.
	// Experimental.
	SlowIndexLogGroup awslogs.ILogGroup `json:"slowIndexLogGroup"`
	// Specify if slow search logging should be set up.
	//
	// Requires Elasticsearch version 5.1 or later.
	// Experimental.
	SlowSearchLogEnabled *bool `json:"slowSearchLogEnabled"`
	// Log slow searches to this log group.
	// Experimental.
	SlowSearchLogGroup awslogs.ILogGroup `json:"slowSearchLogGroup"`
}

Configures log settings for the domain. Experimental.

type TLSSecurityPolicy

type TLSSecurityPolicy string

The minimum TLS version required for traffic to the domain. Experimental.

const (
	TLSSecurityPolicy_TLS_1_0 TLSSecurityPolicy = "TLS_1_0"
	TLSSecurityPolicy_TLS_1_2 TLSSecurityPolicy = "TLS_1_2"
)

type VpcOptions

type VpcOptions struct {
	// The list of security groups that are associated with the VPC endpoints for the domain.
	//
	// If you don't provide a security group ID, Amazon ES uses
	// the default security group for the VPC. To learn more, see [Security Groups for your VPC]
	// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) in the Amazon VPC
	// User Guide.
	// Experimental.
	SecurityGroups *[]awsec2.ISecurityGroup `json:"securityGroups"`
	// Provide one subnet for each Availability Zone that your domain uses.
	//
	// For
	// example, you must specify three subnet IDs for a three Availability Zone
	// domain. To learn more, see [VPCs and Subnets]
	// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) in the
	// Amazon VPC User Guide.
	// Experimental.
	Subnets *[]awsec2.ISubnet `json:"subnets"`
}

The virtual private cloud (VPC) configuration for the Amazon ES domain.

For more information, see [VPC Support for Amazon Elasticsearch Service Domains](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html) in the Amazon Elasticsearch Service Developer Guide. Experimental.

type ZoneAwarenessConfig

type ZoneAwarenessConfig struct {
	// If you enabled multiple Availability Zones (AZs), the number of AZs that you want the domain to use.
	//
	// Valid values are 2 and 3.
	// Experimental.
	AvailabilityZoneCount *float64 `json:"availabilityZoneCount"`
	// Indicates whether to enable zone awareness for the Amazon ES domain.
	//
	// When you enable zone awareness, Amazon ES allocates the nodes and replica
	// index shards that belong to a cluster across two Availability Zones (AZs)
	// in the same region to prevent data loss and minimize downtime in the event
	// of node or data center failure. Don't enable zone awareness if your cluster
	// has no replica index shards or is a single-node cluster. For more information,
	// see [Configuring a Multi-AZ Domain]
	// (https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-managedomains-multiaz)
	// in the Amazon Elasticsearch Service Developer Guide.
	// Experimental.
	Enabled *bool `json:"enabled"`
}

Specifies zone awareness configuration options. Experimental.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL