func elasticsearchTopologySchema()

in ec/ecdatasource/deploymentdatasource/schema_elasticsearch.go [82:130]


func elasticsearchTopologySchema() schema.Attribute {
	return schema.ListNestedAttribute{
		Description: "Node topology element definition.",
		Computed:    true,
		Validators:  []validator.List{listvalidator.SizeAtMost(1)},
		NestedObject: schema.NestedAttributeObject{
			Attributes: map[string]schema.Attribute{
				"instance_configuration_id": schema.StringAttribute{
					Description: "Controls the allocation of this topology element as well as allowed sizes and node_types. It needs to match the ID of an existing instance configuration.",
					Computed:    true,
				},
				"size": schema.StringAttribute{
					Description: `Amount of "size_resource" per topology element in Gigabytes. For example "4g".`,
					Computed:    true,
				},
				"size_resource": schema.StringAttribute{
					Description: "Type of resource (\"memory\" or \"storage\")",
					Computed:    true,
				},
				"zone_count": schema.Int64Attribute{
					Description: "Number of zones in which nodes will be placed.",
					Computed:    true,
				},
				"node_type_data": schema.BoolAttribute{
					Description: "Defines whether this node can hold data (<8.0).",
					Computed:    true,
				},
				"node_type_master": schema.BoolAttribute{
					Description: "Defines whether this node can be elected master (<8.0).",
					Computed:    true,
				},
				"node_type_ingest": schema.BoolAttribute{
					Description: "Defines whether this node can run an ingest pipeline (<8.0).",
					Computed:    true,
				},
				"node_type_ml": schema.BoolAttribute{
					Description: "Defines whether this node can run ML jobs (<8.0).",
					Computed:    true,
				},
				"node_roles": schema.SetAttribute{
					ElementType: types.StringType,
					Description: "Defines the list of Elasticsearch node roles assigned to the topology element. This is supported from v7.10, and required from v8.",
					Computed:    true,
				},
				"autoscaling": elasticsearchAutoscalingSchema(),
			},
		},
	}
}