import * as core from "@terrascript/core"; export interface EncryptionAtRestArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; kmsKeyId: string | core.StringOut; } export class EncryptionAtRest extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public kmsKeyId!: string | core.StringOut; } export interface AdvancedSecurityOptionsArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; internalUserDatabaseEnabled: boolean | core.BooleanOut; } export class AdvancedSecurityOptions extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public internalUserDatabaseEnabled!: boolean | core.BooleanOut; } export interface CognitoOptionsArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; identityPoolId: string | core.StringOut; roleArn: string | core.StringOut; userPoolId: string | core.StringOut; } export class CognitoOptions extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public identityPoolId!: string | core.StringOut; @core.attr(String, { computed: true }) public roleArn!: string | core.StringOut; @core.attr(String, { computed: true }) public userPoolId!: string | core.StringOut; } export interface NodeToNodeEncryptionArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export class NodeToNodeEncryption extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; } export interface SnapshotOptionsArgs extends core.SchemaArgs { automatedSnapshotStartHour: number | core.NumberOut; } export class SnapshotOptions extends core.Schema { @core.attr(Number, { computed: true }) public automatedSnapshotStartHour!: number | core.NumberOut; } export interface DurationArgs extends core.SchemaArgs { unit: string | core.StringOut; value: number | core.NumberOut; } export class Duration extends core.Schema { @core.attr(String, { computed: true }) public unit!: string | core.StringOut; @core.attr(Number, { computed: true }) public value!: number | core.NumberOut; } export interface MaintenanceScheduleArgs extends core.SchemaArgs { cronExpressionForRecurrence: string | core.StringOut; duration: core.Array | core.ArrayOut; startAt: string | core.StringOut; } export class MaintenanceSchedule extends core.Schema { @core.attr(String, { computed: true }) public cronExpressionForRecurrence!: string | core.StringOut; @core.attr(Duration, { computed: true, kind: "array" }) public duration!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public startAt!: string | core.StringOut; } export interface AutoTuneOptionsArgs extends core.SchemaArgs { desiredState: string | core.StringOut; maintenanceSchedule: | core.Array | core.ArrayOut; rollbackOnDisable: string | core.StringOut; } export class AutoTuneOptions extends core.Schema { @core.attr(String, { computed: true }) public desiredState!: string | core.StringOut; @core.attr(MaintenanceSchedule, { computed: true, kind: "array" }) public maintenanceSchedule!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public rollbackOnDisable!: string | core.StringOut; } export interface VpcOptionsArgs extends core.SchemaArgs { availabilityZones: core.Array | core.ArrayOut; securityGroupIds: core.Array | core.ArrayOut; subnetIds: core.Array | core.ArrayOut; vpcId: string | core.StringOut; } export class VpcOptions extends core.Schema { @core.attr(String, { computed: true, kind: "array" }) public availabilityZones!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public subnetIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; } export interface ZoneAwarenessConfigArgs extends core.SchemaArgs { availabilityZoneCount: number | core.NumberOut; } export class ZoneAwarenessConfig extends core.Schema { @core.attr(Number, { computed: true }) public availabilityZoneCount!: number | core.NumberOut; } export interface ColdStorageOptionsArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; } export class ColdStorageOptions extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; } export interface ClusterConfigArgs extends core.SchemaArgs { coldStorageOptions: | core.Array | core.ArrayOut; dedicatedMasterCount: number | core.NumberOut; dedicatedMasterEnabled: boolean | core.BooleanOut; dedicatedMasterType: string | core.StringOut; instanceCount: number | core.NumberOut; instanceType: string | core.StringOut; warmCount: number | core.NumberOut; warmEnabled: boolean | core.BooleanOut; warmType: string | core.StringOut; zoneAwarenessConfig: | core.Array | core.ArrayOut; zoneAwarenessEnabled: boolean | core.BooleanOut; } export class ClusterConfig extends core.Schema { @core.attr(ColdStorageOptions, { computed: true, kind: "array" }) public coldStorageOptions!: | core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public dedicatedMasterCount!: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public dedicatedMasterEnabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public dedicatedMasterType!: string | core.StringOut; @core.attr(Number, { computed: true }) public instanceCount!: number | core.NumberOut; @core.attr(String, { computed: true }) public instanceType!: string | core.StringOut; @core.attr(Number, { computed: true }) public warmCount!: number | core.NumberOut; @core.attr(Boolean, { computed: true }) public warmEnabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public warmType!: string | core.StringOut; @core.attr(ZoneAwarenessConfig, { computed: true, kind: "array" }) public zoneAwarenessConfig!: | core.Array | core.ArrayOut; @core.attr(Boolean, { computed: true }) public zoneAwarenessEnabled!: boolean | core.BooleanOut; } export interface EbsOptionsArgs extends core.SchemaArgs { ebsEnabled: boolean | core.BooleanOut; iops: number | core.NumberOut; throughput: number | core.NumberOut; volumeSize: number | core.NumberOut; volumeType: string | core.StringOut; } export class EbsOptions extends core.Schema { @core.attr(Boolean, { computed: true }) public ebsEnabled!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public iops!: number | core.NumberOut; @core.attr(Number, { computed: true }) public throughput!: number | core.NumberOut; @core.attr(Number, { computed: true }) public volumeSize!: number | core.NumberOut; @core.attr(String, { computed: true }) public volumeType!: string | core.StringOut; } export interface LogPublishingOptionsArgs extends core.SchemaArgs { cloudwatchLogGroupArn: string | core.StringOut; enabled: boolean | core.BooleanOut; logType: string | core.StringOut; } export class LogPublishingOptions extends core.Schema { @core.attr(String, { computed: true }) public cloudwatchLogGroupArn!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public logType!: string | core.StringOut; } export interface DsDomainArgs { domainName: string | core.StringOut; /** * The tags assigned to the domain. */ tags?: core.Map | core.MapOut; } export class DsDomain extends core.Data { @core.attr(String, { computed: true }) public accessPolicies!: string | core.StringOut; /** * Key-value string pairs to specify advanced configuration options. */ @core.attr(String, { computed: true, kind: "map" }) public advancedOptions!: | core.Map | core.MapOut; /** * Status of the Elasticsearch domain's advanced security options. The block consists of the following * attributes: */ @core.attr(AdvancedSecurityOptions, { computed: true, kind: "array" }) public advancedSecurityOptions!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * Configuration of the Auto-Tune options of the domain. */ @core.attr(AutoTuneOptions, { computed: true, kind: "array" }) public autoTuneOptions!: | core.Array | core.ArrayOut; /** * Cluster configuration of the domain. */ @core.attr(ClusterConfig, { computed: true, kind: "array" }) public clusterConfig!: | core.Array | core.ArrayOut; /** * Domain Amazon Cognito Authentication options for Kibana. */ @core.attr(CognitoOptions, { computed: true, kind: "array" }) public cognitoOptions!: | core.Array | core.ArrayOut; @core.attr(Boolean, { computed: true }) public created!: boolean | core.BooleanOut; @core.attr(Boolean, { computed: true }) public deleted!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public domainId!: string | core.StringOut; @core.attr(String) public domainName!: string | core.StringOut; /** * EBS Options for the instances in the domain. */ @core.attr(EbsOptions, { computed: true, kind: "array" }) public ebsOptions!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public elasticsearchVersion!: string | core.StringOut; /** * Domain encryption at rest related options. */ @core.attr(EncryptionAtRest, { computed: true, kind: "array" }) public encryptionAtRest!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public endpoint!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * Domain-specific endpoint used to access the Kibana application. */ @core.attr(String, { computed: true }) public kibanaEndpoint!: string | core.StringOut; /** * Domain log publishing related options. */ @core.attr(LogPublishingOptions, { computed: true, kind: "array" }) public logPublishingOptions!: | core.Array | core.ArrayOut; /** * Domain in transit encryption related options. */ @core.attr(NodeToNodeEncryption, { computed: true, kind: "array" }) public nodeToNodeEncryption!: | core.Array | core.ArrayOut; @core.attr(Boolean, { computed: true }) public processing!: boolean | core.BooleanOut; @core.attr(SnapshotOptions, { computed: true, kind: "array" }) public snapshotOptions!: | core.Array | core.ArrayOut; /** * The tags assigned to the domain. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * VPC Options for private Elasticsearch domains. */ @core.attr(VpcOptions, { computed: true, kind: "array" }) public vpcOptions!: core.Array | core.ArrayOut; constructor(name: string, args?: DsDomainArgs) { super(name, "aws_elasticsearch_domain", args); } public override getNamespace(): string { return "aws_elasticsearch"; } }