@altostra/core
Version:
Core library for shared types and logic
86 lines (85 loc) • 2.82 kB
TypeScript
import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString";
import type { Arn } from "../../Arn";
import type { AwsResourceCommon, CloudFormationTags } from "../common";
import type { CloudFormationValue } from "../IntrinsicFunctions";
import type { IamPolicyDocument } from "../PolicyDocument";
export declare type OpenSearchType = 'AWS::OpenSearchService::Domain';
export interface OpenSearch extends AwsResourceCommon {
Type: OpenSearchType;
Properties: OpenSearchProperties;
}
export interface OpenSearchProperties {
AccessPolicies?: IamPolicyDocument;
AdvancedOptions?: OpenSearchAdvancedOption;
AdvancedSecurityOptions?: AdvancedSecurityOptionsInput;
ClusterConfig?: ClusterConfig;
CognitoOptions?: CognitoOptions;
DomainEndpointOptions?: DomainEndpointOptions;
DomainName: NonEmptyString;
EBSOptions?: EBSOptions;
EncryptionAtRestOptions?: EncryptionAtRestOptions;
EngineVersion?: NonEmptyString;
NodeToNodeEncryptionOptions?: EnableOption;
Tags?: CloudFormationTags;
VPCOptions?: VPCOptions;
}
interface VPCOptions {
SecurityGroupIds: NonEmptyString[];
SubnetIds: NonEmptyString[];
}
interface EnableOption {
Enabled: boolean;
}
interface EncryptionAtRestOptions extends EnableOption {
KmsKeyId: CloudFormationValue<Arn>;
}
interface EBSOptions {
EBSEnabled: boolean;
Iops?: number;
Throughput?: number;
VolumeSize?: number;
VolumeType?: string;
}
interface DomainEndpointOptions {
CustomEndpoint?: string;
CustomEndpointCertificateArn?: string;
CustomEndpointEnabled: boolean;
EnforceHTTPS?: boolean;
TLSSecurityPolicy?: string;
}
interface CognitoOptions extends EnableOption {
IdentityPoolId?: CloudFormationValue<string>;
RoleArn?: CloudFormationValue<Arn>;
UserPoolId?: CloudFormationValue<string>;
}
interface ClusterConfig {
DedicatedMasterCount?: number;
DedicatedMasterEnabled?: number;
DedicatedMasterType?: string;
InstanceCount?: number;
InstanceType?: string;
WarmCount?: number;
WarmEnabled?: boolean;
WarmType?: string;
ZoneAwarenessConfig?: ZoneAwarenessConfig;
ZoneAwarenessEnabled?: boolean;
}
interface ZoneAwarenessConfig {
AvailabilityZoneCount?: number;
}
interface AdvancedSecurityOptionsInput extends EnableOption {
InternalUserDatabaseEnabled: boolean;
MasterUserOptions?: MasterUserOptions;
}
interface MasterUserOptions {
MasterUserARN?: CloudFormationValue<Arn>;
MasterUserName?: string;
MasterUserPassword?: string;
}
interface OpenSearchAdvancedOption {
'rest.action.multi.allow_explicit_index'?: boolean;
'indices.fielddata.cache.size'?: number;
'indices.query.bool.max_clause_count'?: number;
'override_main_response_version'?: boolean;
}
export {};