Create deployment template

  • POST /deployments/templates
Auth

Creates a deployment template.

Query parameters

validate_only boolean · default: false

If true, the deployment template definition will be validated but the template will not be created.

region string required

Region of the deployment template

Request body

The deployment template definition.

name string required

A human readable name for the template.

description string

An optional description for the template.

deployment_template object required

A request for creating a new Deployment consisting of multiple clusters

name string

A name for the deployment; otherwise this will be the generated deployment id

resources object

Describes the resources that will belong to a Deployment

elasticsearch object[]

A list of payloads for Elasticsearch cluster creation.

ref_id string required

A locally-unique user-specified id for this Elasticsearch cluster

display_name string

The human readable name for the cluster (defaults to the generated cluster id if not specified)

region string required

The region where this resource exists

plan object required

The plan for the Elasticsearch cluster.

cluster_topology object[] required
id string

Unique identifier of this topology element

node_type object

Controls the combinations of Elasticsearch node types. TIP: By default, the Elasticsearch node is master eligible, can hold data, and run ingest pipelines. WARNING: Do not set for tiebreaker topologies.

master boolean

Defines whether this node can be elected master (default: false)

data boolean

Defines whether this node can hold data (default: false)

ingest boolean

Defines whether this node can run an ingest pipeline (default: false)

ml boolean

Defines whether this node can run ml jobs, valid only for versions 5.4.0 or greater (default: false)

node_roles enum[]

The list of node roles for this topology element (ES version >= 7.10). Allowable values are: master, ingest, ml, data_hot, data_content, data_warm, data_cold, data_frozen, remote_cluster_client, transform

Values: master ingest ml data_hot data_content data_warm data_cold data_frozen remote_cluster_client transform
memory_per_node integer · format: int32

The memory capacity in MB for each node of this type built in each zone.

node_count_per_zone integer · format: int32

The number of nodes of this type that are allocated within each zone. (i.e. total capacity per zone = node_count_per_zone * memory_per_node in MB). Cannot be set for tiebreaker topologies. For dedicated master nodes, must be 1 if an entry exists.

zone_count integer · format: int32

The default number of zones in which data nodes will be placed

elasticsearch object

The Elasticsearch cluster settings. When specified at the top level, provides a field-by-field default. When specified at the topology level, provides the override settings.

version string

The version of the Elasticsearch cluster (must be one of the ECE supported versions). Currently cannot be different across the topology (and is generally specified in the globals). Defaults to the latest version if not specified.

docker_image string

A docker URI that allows overriding of the default docker image specified for this version

system_settings object

A subset of Elasticsearch settings. TIP: To define the complete set of Elasticsearch settings, use ElasticsearchSystemSettings with user_settings_override* and user_settings*.

scripting object

Controls the languages supported by the Elasticsearch cluster, such as Painless, Mustache, and Expressions. Controls how the languages are used, such as file, index, and inline. TIP: For complex configurations, leave these blank and configure these settings in the user YAML or JSON.

painless_enabled boolean

(5.x+ only) If enabled (the default) then the painless scripting engine is allowed as a sandboxed language. Sandboxed languages are the only ones allowed if 'sandbox_mode' is set to true. NOTES: (Corresponds to the parameters 'script.engine.painless.[file|stored|inline]')

mustache_enabled boolean

(5.x+ only) If enabled (the default) then the mustache scripting engine is allowed as a sandboxed language. Sandboxed languages are the only ones allowed if 'sandbox_mode' is set to true. NOTES: (Corresponds to the parameters 'script.engine.mustache.[file|stored|inline]')

expressions_enabled boolean

(5.x+ only) If enabled (the default) then the expressions scripting engine is allowed as a sandboxed language. Sandboxed languages are the only ones allowed if 'sandbox_mode' is set to true. NOTES: (Corresponds to the parameters 'script.engine.expression.[file|stored|inline]')

stored object

Enables scripting for the specified type and controls other parameters. Store scripts in indexes (stored), upload in file bundles (file), or use in API requests (inline).

enabled boolean

If enabled (default: true) then scripts are enabled, either for sandboxing languages (by default), or for all installed languages if 'sandbox_mode' is disabled (or for 6.x). NOTES: (Corresponds to the parameter 'script.file|stored/indexed|inline')

sandbox_mode boolean

If enabled (default: true) and this script type is enabled, then only the sandbox languages are allowed. By default the sandbox languages are painless, expressions and mustache, but this can be restricted via the 'painless_enabled', 'mustache_enabled' 'expression_enabled' settings.NOTES: Not supported in 6.x. (Corresponds to the parameters 'script.engine.[painless|mustache|expressions].[file|stored|inline]')

file object

Enables scripting for the specified type and controls other parameters. Store scripts in indexes (stored), upload in file bundles (file), or use in API requests (inline).

enabled boolean

If enabled (default: true) then scripts are enabled, either for sandboxing languages (by default), or for all installed languages if 'sandbox_mode' is disabled (or for 6.x). NOTES: (Corresponds to the parameter 'script.file|stored/indexed|inline')

sandbox_mode boolean

If enabled (default: true) and this script type is enabled, then only the sandbox languages are allowed. By default the sandbox languages are painless, expressions and mustache, but this can be restricted via the 'painless_enabled', 'mustache_enabled' 'expression_enabled' settings.NOTES: Not supported in 6.x. (Corresponds to the parameters 'script.engine.[painless|mustache|expressions].[file|stored|inline]')

inline object

Enables scripting for the specified type and controls other parameters. Store scripts in indexes (stored), upload in file bundles (file), or use in API requests (inline).

enabled boolean

If enabled (default: true) then scripts are enabled, either for sandboxing languages (by default), or for all installed languages if 'sandbox_mode' is disabled (or for 6.x). NOTES: (Corresponds to the parameter 'script.file|stored/indexed|inline')

sandbox_mode boolean

If enabled (default: true) and this script type is enabled, then only the sandbox languages are allowed. By default the sandbox languages are painless, expressions and mustache, but this can be restricted via the 'painless_enabled', 'mustache_enabled' 'expression_enabled' settings.NOTES: Not supported in 6.x. (Corresponds to the parameters 'script.engine.[painless|mustache|expressions].[file|stored|inline]')

reindex_whitelist string[]

Limits remote Elasticsearch clusters that can be used as the source for '_reindex' API commands

auto_create_index boolean

If true (the default), then any write operation on an index that does not currently exist will create it. NOTES: (Corresponds to the parameter 'action.auto_create_index')

enable_close_index boolean

Defaults to false on versions <= 7.2.0, true otherwise. If false, then the API commands to close indices are disabled. This is important because Elasticsearch does not snapshot or migrate close indices on versions under 7.2.0, therefore standard Elastic Cloud configuration operations will cause irretrievable loss of indices' data. NOTES: (Corresponds to the parameter 'cluster.indices.close.enable')

destructive_requires_name boolean

If true (default is false) then the index deletion API will not support wildcards or '_all'. NOTES: (Corresponds to the parameter 'action.destructive_requires_name')

watcher_trigger_engine string

The trigger engine for Watcher, defaults to 'scheduler' - see the xpack documentation for more information. NOTES: (Corresponds to the parameter '(xpack.)watcher.trigger.schedule.engine', depending on version. Ignored from 6.x onwards.)

default_shards_per_index integer · format: int32

(2.x only - to get the same result in 5.x template mappings must be used) Sets the default number of shards per index, defaulting to 1 if not specified. (Corresponds to the parameter 'index.number_of_shards' in 2.x, not supported in 5.x)

monitoring_collection_interval integer · format: int32

The default interval at which monitoring information from the cluster if collected, if monitoring is enabled. NOTES: (Corresponds to the parameter 'marvel.agent.interval' in 2.x and 'xpack.monitoring.collection.interval' in 5.x)

monitoring_history_duration string

The duration for which monitoring history is stored (format '(NUMBER)d' eg '3d' for 3 days). NOTES: ('Corresponds to the parameter xpack.monitoring.history.duration' in 5.x, defaults to '7d')

user_settings_json object

An arbitrary JSON object allowing cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided the parameters arey are on the allowlist and not on the denylist. NOTES: (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Elasticsearch settings)

user_settings_yaml string

An arbitrary YAML object allowing cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided the parameters arey are on the allowlist and not on the denylist. NOTES: (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Elasticsearch settings)

user_settings_override_json object

An arbitrary JSON object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), ie in addition to the documented 'system_settings'. NOTES: (This field together with 'system_settings' and 'user_settings*' defines the total set of Elasticsearch settings)

user_settings_override_yaml string

An arbitrary YAML object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), ie in addition to the documented 'system_settings'. NOTES: (This field together with 'system_settings' and 'user_settings*' defines the total set of Elasticsearch settings)

enabled_built_in_plugins string[]

A list of plugin names from the Elastic-supported subset that are bundled with the version images. NOTES: (Users should consult the Elastic stack objects to see what plugins are available, this is currently only available from the UI)

user_plugins object[]

A list of admin-uploaded plugin objects that are available for this user.

name string required

The name of the plugin

url string required

The URL of the plugin (must be accessible from the ECE infrastructure)

elasticsearch_version string required

The supported Elasticsearch version (must match the version in the plan)

user_bundles object[]

A list of admin-uploaded bundle objects (eg scripts, synonym files) that are available for this user.

name string required

The name of the bundle

url string required

The URL of the bundle, which must be accessible from the ECE infrastructure. This URL could be cached by platform, make sure to change it when updating the bundle

elasticsearch_version string required

The supported Elasticsearch version (must match the version in the plan)

curation object

The structure that defines the routing settings for index curation.

from_instance_configuration_id string required

The source instance configuration

to_instance_configuration_id string required

The destination instance configuration

node_attributes map string to string

Defines the Elasticsearch node attributes for the instances in the topology

instance_configuration_id string

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.

instance_configuration_version integer · format: int32

The version of the Instance Configuration Id. If it is unset, the meaning depends on read vs writes. For deployment reads, it is equivalent to version 0 (or the IC is unversioned); for deployment creates and deployment template use, it is equivalent to 'the latest version'; and for deployment updates, it is equivalent to 'retain the current version'.

size object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
autoscaling_min object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
autoscaling_max object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
autoscaling_policy_override_json object

An arbitrary JSON object overriding the default autoscaling policy. Don't set unless you really know what you are doing.

topology_element_control object

Controls for the topology element. Only used as part of the deployment template. Ignored if included as part of a deployment.

min object required

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
autoscaling_tier_override boolean

Set to true to enable autoscaling for this topology element, even if the cluster-level 'autoscaling_enabled' field is false. Note that 'autoscaling_tier_override' cannot be set to false if cluster-level 'autoscaling_enabled' is true. Currently only supported for the 'ml' tier

elasticsearch object required

The Elasticsearch cluster settings. When specified at the top level, provides a field-by-field default. When specified at the topology level, provides the override settings.

Same fields as elasticsearch in cluster_topology
deployment_template object

Specifies the deployment template used to create the plan.

id string required

The unique identifier of the deployment template

version string

A version identifier to disambiguate multiple revisions of the same template

transient object

Defines the configuration parameters that control how the plan is applied. For example, the Elasticsearch cluster topology and Elasticsearch settings.

strategy object

The options for performing a plan change. Specify only one property each time. The default is grow_and_shrink.

rolling object

Performs inline, rolling configuration changes that mutate existing containers. TIP: This is the fastest way to update a plan, but can fail for complex plan changes, such as topology changes. Also, this is less safe for configuration changes that leave a cluster in a non running state. NOTE: When you perform a major version upgrade, and 'group_by' is set to 'pass:macros[all]';, rolling is required.

group_by string

Specifies the grouping attribute to use when rolling several instances. Instances that share the same value for the provided attribute key are rolled together as a unit. Examples that make sense to use are '__all__' (roll all instances as a single unit), 'logical_zone_name' (roll instances by zone), '__name__' (roll one instance at a time, the default if not specified). Note that '__all__' is required when performing a major version upgrade

allow_inline_resize boolean

Whether we allow changing the capacity of instances (default false). This is currently implemented by stopping, re-creating then starting the affected instance on its associated allocator when performing the changes. NOTES: This requires a round-trip through the allocation infrastructure of the active constructor, as it has to reserve the target capacity without over-committing

skip_synced_flush boolean

Whether to skip attempting to do a synced flush on the filesystem of the container (default: false), which is less safe but may be required if the container is unhealthy

shard_init_wait_time integer · format: int64

The time, in seconds, to wait for shards that show no progress of initializing before rolling the next group (default: 10 minutes)

grow_and_shrink object

A strategy that creates instances with the new plan, migrates data from the old instances, then shuts down the old instances. GrowShrinkStrategyConfig is safer than 'rolling' and ensures single node availability during a plan change, but can be a lot slower on larger clusters.

rolling_grow_and_shrink object

A strategy that creates new Elasticsearch instances, Kibana instances, and APM Servers with the new plan, then migrates the node data to minimize the amount of spare capacity.

autodetect object

A strategy that lets constructor choose the most optimal way to execute the plan.

plan_configuration object

The configuration settings for the timeout and fallback parameters.

timeout integer · format: int64

The total timeout in seconds after which the plan is cancelled even if it is not complete. Defaults to 4x the max memory capacity per node (in MB). NOTES: A 3 zone cluster with 2 nodes of 2048 each would have a timeout of 4*2048=8192 seconds. Timeout does not include time required to run rollback actions.

calm_wait_time integer · format: int64

This timeout determines how long to give a cluster after it responds to API calls before performing actual operations on it. It defaults to 5s

move_instances object[]
from string required

The instance id that is going to be moved

to string[]

An optional list of allocator ids to which the instance should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

instance_down boolean

Tells the infrastructure that the instance should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will automatically decide (currently: will treat the instances as up)

move_allocators object[]
from string required

The allocator id off which all instances in the cluster should be moved

to string[]

An optional list of allocator ids to which the instance(s) should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

allocator_down boolean

Tells the infrastructure that all instances on the allocator should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will auto-decide (currently: will treat the allocator as up)

move_only boolean

If true (default: false) only move_instances and move_allocators instructions will be executed, all other changes will be ignored

reallocate_instances boolean

If true (default: false) does not allow re-using any existing instances currently in the cluster, ie even unchanged instances will be re-created

preferred_allocators string[]

List of allocators on which instances are placed if possible (if not possible/not specified then any available allocator with space is used)

preferred_allocator_tags map string to string

Map containing allocators tags in form of key value pairs, increasing the likelihood during move requests for allocators with matching tags, to be selected as target allocators

skip_snapshot boolean

If true (default: false), does not take (or require) a successful snapshot to be taken before performing any potentially destructive changes to this cluster

max_snapshot_attempts integer · format: int32

If taking a snapshot (ie unless 'skip_snapshots': true) then will retry on failure at most this number of times (default: 5)

max_snapshot_age integer · format: int64

When you take a snapshot and 'skip_snapshots' is false, specifies the maximum age in seconds of the most recent snapshot before a new snapshot is created. Default is 300

extended_maintenance boolean

If true (default false), does not clear the maintenance flag (which prevents its API from being accessed except by the constructor) on new instances added until after a snapshot has been restored, otherwise, the maintenance flag is cleared once the new instances successfully join the new cluster

cluster_reboot enum

Set to 'forced' to force a reboot as part of the upgrade plan. NOTES: (ie taking an existing plan and leaving it alone except for setting 'transient.plan_configuration.cluster_reboot': 'forced' will reboot the cluster)

Values: forced
override_failsafe boolean

If false (the default) then the plan will fail out if it believes the requested sequence of operations can result in data loss - this flag will override some of these restraints

skip_data_migration boolean

If true (default: false) then the plan will not wait for data to be migrated from old instances to new instances before continuing the plan (potentially deleting the old instances and losing data)

skip_upgrade_checker boolean

If false, the cluster is checked for issues that should be resolved before migration (eg contains old Lucene segments), if true this is bypassed

skip_post_upgrade_steps boolean

If false (the default), the cluster will run (currently) 2.x->5.x operations for any plan change ending with a 5.x cluster (eg apply a cluster license, ensure Monitoring is configured)

skip_snapshot_post_major_upgrade boolean

If false (the default), the cluster will perform a snapshot after a major version upgrade takes place

restore_snapshot object

Restores a snapshot from a local or remote repository.

repository_name string

If specified, contains the name of the snapshot repository - else will default to the Elastic Cloud system repo ('found-snapshots')

snapshot_name string required

The name of the snapshot to restore. Use '__latest_success__' to get the most recent snapshot from the specified repository

repository_config object

Configures the location of a remote repository. The default is the system repository.

raw_settings object

The remote snapshot settings raw JSON - see the Elasticsearch '_snapshot' documentation for more details on supported formats

restore_payload object

The configuration for the restore command, such as which indices you want to restore.

indices string[]

The list of indices to restore (supports +ve and -ve selection and wildcarding - see the default Elasticsearch index format documentation)

raw_settings object

This JSON object (merged with the 'indices' field (if present) is passed untouched into the restore command - see the Elasticsearch '_snapshot' documentation for more details on supported formats

strategy enum

The restore strategy to use. Defaults to a full restore. Partial restore will attempt to restore unavailable indices only

Values: partial full recovery
source_cluster_id string

If specified, contains the name of the source cluster id. Do not send this if you are sending repository_config

remote_clusters object

The list of resources used as remote clusters

resources object[] required

The remote resources

deployment_id string required

The id of the deployment

elasticsearch_ref_id string required

The locally-unique user-specified id of an Elasticsearch Resource

alias string required

The alias for this remote cluster. Aliases must only contain letters, digits, dashes and underscores

skip_unavailable boolean

If true, skip this cluster during search if it is disconnected. Default: false

info object

Information about a Remote Cluster.

healthy boolean required

Whether or not the remote cluster is healthy

connected boolean required

Whether or not there is at least one connection to the remote cluster.

compatible boolean required

Whether or not the remote cluster version is compatible with this cluster version.

trusted boolean required

Whether or not the remote cluster is trusted by this cluster.

trusted_back boolean required

Whether or not the remote cluster trusts this cluster back.

cluster_settings_json object

If specified, contains transient settings to be applied to an Elasticsearch cluster during changes,default values shown below applied. These can be overridden by specifying them in the map (or null to unset). Additional settings can also be set. Settings will be cleared after the plan has finished. If not specified, no settings will be applied. NOTE: These settings are only explicitly cleared for 5.x+ clusters, they must be hand-reset to their defaults in 2.x- (or a cluster reboot will clear them).

  • indices.store.throttle.max_bytes_per_sec: 120Mb
  • indices.recovery.max_bytes_per_sec: 120Mb
  • cluster.routing.allocation.cluster_concurrent_rebalance: 5
  • cluster.routing.allocation.node_initial_primaries_recoveries: 5
  • cluster.routing.allocation.node_concurrent_incoming_recoveries: 5 For version 8.1 and later no defaults are provided through this mechanism, but instead hardware dependent settings are provided to each instance.
autoscaling_enabled boolean

Enable autoscaling for this Elasticsearch cluster.

settings object

The settings for an Elasticsearch cluster.

snapshot object

The snapshot configuration settings for an Elasticsearch cluster.

repository object

Information about the Elasticsearch cluster snapshot repository.

static object

The static object for the Elasticsearch cluster snapshot repository.

repository_type string

Type of snapshot repository, ie: S3

settings object

Settings associated with snapshot repository

reference object

The reference object for the Elasticsearch cluster snapshot repository.

repository_name string

ECE snapshot repository name, from the '/platform/configuration/snapshots/repositories' endpoint

default object

The default object for the Elasticsearch cluster snapshot repository.

interval string

Interval between snapshots, with the format 'length unit' (space is optional), where unit can be one of: d (day), h (hour), min (minute). Default is 30 minutes

pending_interval string

Interval between snapshot progress checks, with the format 'length unit' (space is optional), where unit can be one of: d (day), h (hour), min (minute). Default is 1 minute

wait_time_after_snapshotting string

The time to wait between snapshot phases (snapshot, purge), with the format 'length unit' (space is optional), where unit can be one of: d (day), h (hour), min (minute). Default is 10 minutes

enabled boolean

Indicates if Snapshotting is enabled

suspended string[]

List of temporary snapshot suspensions

retention object

Information about the Elasticsearch cluster snapshot retention.

snapshots integer · format: int32

Number of snapshots to retain

max_age string

Total retention period for all snapshots, with the format 'length unit' (space is optional), where unit can be one of: d (day), h (hour), min (minute)

cron_expression string

Cron expression indicating when should snapshots be taken. This can be enabled only if SLM is enabled for the deployment and 'interval' is not present

monitoring object

The settings for sending monitoring information to another cluster.

target_cluster_id string required

The Id of the target cluster to which to send monitoring information

metadata object

The top-level configuration settings for the Elasticsearch cluster.

name string

The display name of the cluster

owner_id string

The user id (referencing whatever user database is in use) of the cluster owner

subscription_level string

Subscription level of the cluster

system_owned boolean

Indicates if a cluster is system owned (restricts the set of operations that can be performed on it)

contact_email string

Contact email for the cluster

resources object

The top-level configuration settings for the Elasticsearch cluster resources.

cpu object

Specifies the CPU resource settings for the Elasticsearch cluster.

boost boolean

Indicates if the CPU boost flag is enabled or not.

hard_limit boolean

Indicates if the CPU hard limit flag is enabled or not. When set to true (default), allocates CPU timeshare based on the total CPU time multiplied by the relative RAM capacity of the instance on a given host. When set to false, delegates CPU allocation to the operating system to schedule CPU timeshares.

curation object

The index curation settings for an Elasticsearch cluster.

specs object[] required

Specifications for curation

index_pattern string required

Index matching pattern

trigger_interval_seconds integer · format: int32 required

Number of seconds after index creation to trigger this spec

dedicated_masters_threshold integer · format: int32

Threshold starting from which the number of instances in the cluster results in the introduction of dedicated masters. If the cluster is downscaled to a number of nodes below this one, dedicated masters will be removed. Limit is inclusive. When provided the threshold setting is updated. A null value removes the field. Otherwise, the setting remains as it was set previously.

traffic_filter object

The configuration settings for the traffic filter.

rulesets string[] required

IDs of the traffic filter rulesets

trust object

Configuration of trust with other clusters.

accounts object[]

The list of trust relationships with different accounts

account_id string required

the ID of the Account

name string

A human readable name of the trust relationship

trust_all boolean required

If true, all clusters in this account will by default be trusted and the trust_allowlist is ignored.

trust_allowlist string[]

The list of clusters to trust. Only used when trust_all is false.

external object[]

The list of trust relationships with external entities

trust_relationship_id string required

The ID of the external trust relationship

name string

The name of the external trust relationship. Retrieved from the TrustRelationship and ignored on write.

trust_all boolean required

If true, all clusters in this external entity will be trusted and the trust_allowlist is ignored.

trust_allowlist string[]

The list of clusters to trust. Only used when trust_all is false.

direct object[]

The list of trust relationships where the certificate is bundled with the trust setting. Allows configuring trust for clusters running outside of an Elastic Cloud managed environment or in an Elastic Cloud environment without an environment level trust established.

uid string

Auto generated identifier for this trust, allows distinguishing between update vs remove and add.

name string required

a human readable name of the trust relationship

type enum

The type can either be ESS, ECE, generic or proxy. If none is specified, then generic is assumed. If proxy is specified, trust_all should be false and trust_allowlist, scope_id and additional_node_names should be omitted.

Values: ECE ESS generic proxy
trust_all boolean required

If true, scope_id is required and the trust_allowlist is ignored and all clusters matching the scope id will be trusted.

trust_allowlist string[]

The list of clusters with matching scope to trust. Only used when trust_all is false. Providing one or more clusters makes scope_id mandatory.

scope_id string

A lowercase alphanumerical string of max 32 characters. Usually an organization id or an environment id, but could really be any suitable suffix for clusters using the CA certificate of this trust. Required unless trust_all is false and trust_allowlist is empty.

additional_node_names string[]

A list of node names trusted in addition to those deducible from trust_allowlist and scope id. Allows trusting nodes that don't have a scoped name at the cost of maintaining the list. Mandatory if scope id is not defined. Wildcards are not allowed.

certificates object[] required

The public ca certificate(s) to trust. Only one is required, but it is possible to specify multiple certificates in order to facilitate key rotation.

pem string required

The public ca certificate as string in PEM format.

metadata object

The certificate MetaData

fingerprint string required

The fingerprint of the certificate

valid_to string · format: date-time required

The expiry date of the certificate in UTC

valid_from string · format: date-time required

The valid from date of the certificate in UTC

also_trusted_by string[]

Other deployments also trusting this certificate

keystore_contents object

The contents of the Elasticsearch keystore.

secrets map string to object required

List of secrets

<string> object
value object

Value of this setting. This can either be a string or a JSON object that is stored as a JSON string in the keystore. NOTE: When the keystore secret is unspecified, it is removed.

as_file boolean

Stores the keystore secret as a file. The default is false, which stores the keystore secret as string when value is a plain string, or true when value is an object.

kibana object[]

A list of payloads for Kibana creation.

ref_id string required

A locally-unique user-specified id for Kibana

elasticsearch_cluster_ref_id string required

Alias to the Elasticsearch Cluster to attach Kibana to

display_name string

The human readable name for the Kibana cluster (default: takes the name of its Elasticsearch cluster)

region string required

The region where this resource exists

plan object required

The plan for the Kibana instance.

cluster_topology object[]
memory_per_node integer · format: int32

The memory capacity in MB for each node of this type built in each zone.

node_count_per_zone integer · format: int32

The number of nodes of this type that are allocated within each zone (i.e. total capacity per zone = node_count_per_zone * memory_per_node in MB).

instance_configuration_id string

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.

instance_configuration_version integer · format: int32

The version of the Instance Configuration Id. If it is unset, the meaning depends on read vs writes. For deployment reads, it is equivalent to version 0 (or the IC is unversioned); for deployment creates and deployment template use, it is equivalent to 'the latest version'; and for deployment updates, it is equivalent to 'retain the current version'.

size object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
zone_count integer · format: int32

number of zones in which nodes will be placed

kibana object

The Kibana instance settings. When specified at the top level, provides a field-by-field default. When specified at the topology level, provides the override settings.

version string

The version of the Kibana cluster (must be one of the ECE supported versions, and won't work unless it matches the Elasticsearch version. Leave blank to auto-detect version.)

docker_image string

A docker URI that allows overriding of the default docker image specified for this version

system_settings object

A subset of Kibana settings. TIP: To define the complete set of Elasticsearch settings, use KibanaSystemSettings with user_settings_override_ and user_settings_.

elasticsearch_url string
Warning

Scheduled for removal in a future version of the API.

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

elasticsearch_username string

Optionally override the account within Elasticsearch - defaults to a system account that always exists (if specified, the password must also be specified). Note that this field is never returned from the API, it is write only.

elasticsearch_password string

Optionally override the account within Elasticsearch - defaults to a system account that always exists (if specified, the username must also be specified). Note that this field is never returned from the API, it is write only.

user_settings_json object

An arbitrary JSON object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided the parameters are on the allowlist and not on the denylist. (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Kibana settings)

user_settings_yaml string

An arbitrary YAML object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided the parameters are on the allowlist and not on the denylist. (These field together with 'user_settings_override*' and 'system_settings' defines the total set of Kibana settings)

user_settings_override_json object

An arbitrary JSON object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Kibana settings)

user_settings_override_yaml string

An arbitrary YAML object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Kibana settings)

kibana object required

The Kibana instance settings. When specified at the top level, provides a field-by-field default. When specified at the topology level, provides the override settings.

Same fields as kibana in cluster_topology
transient object

Defines the configuration parameters that control how the plan is applied. For example, the Elasticsearch cluster topology and Kibana instance settings.

strategy object

The options for performing a plan change. Specify only one property each time. The default is grow_and_shrink.

rolling object

Performs inline, rolling configuration changes that mutate existing containers. TIP: This is the fastest way to update a plan, but can fail for complex plan changes, such as topology changes. Also, this is less safe for configuration changes that leave a cluster in a non running state. NOTE: When you perform a major version upgrade, and 'group_by' is set to 'pass:macros[all]';, rolling is required.

group_by string

Specifies the grouping attribute to use when rolling several instances. Instances that share the same value for the provided attribute key are rolled together as a unit. Examples that make sense to use are '__all__' (roll all instances as a single unit), 'logical_zone_name' (roll instances by zone), '__name__' (roll one instance at a time, the default if not specified). Note that '__all__' is required when performing a major version upgrade

allow_inline_resize boolean

Whether we allow changing the capacity of instances (default false). This is currently implemented by stopping, re-creating then starting the affected instance on its associated allocator when performing the changes. NOTES: This requires a round-trip through the allocation infrastructure of the active constructor, as it has to reserve the target capacity without over-committing

skip_synced_flush boolean

Whether to skip attempting to do a synced flush on the filesystem of the container (default: false), which is less safe but may be required if the container is unhealthy

shard_init_wait_time integer · format: int64

The time, in seconds, to wait for shards that show no progress of initializing before rolling the next group (default: 10 minutes)

grow_and_shrink object

A strategy that creates instances with the new plan, migrates data from the old instances, then shuts down the old instances. GrowShrinkStrategyConfig is safer than 'rolling' and ensures single node availability during a plan change, but can be a lot slower on larger clusters.

rolling_grow_and_shrink object

A strategy that creates new Elasticsearch instances, Kibana instances, and APM Servers with the new plan, then migrates the node data to minimize the amount of spare capacity.

autodetect object

A strategy that lets constructor choose the most optimal way to execute the plan.

plan_configuration object

The configuration settings for the timeout and fallback parameters.

timeout integer · format: int64

The total timeout in seconds after which the plan is cancelled even if it is not complete. Defaults to 4x the max memory capacity per node (in MB)

calm_wait_time integer · format: int64

This timeout determines how long to give a cluster after it responds to API calls before performing actual operations on it. It defaults to 5s

move_instances object[]
from string required

The instance id that is going to be moved

to string[]

An optional list of allocator ids to which the instance should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

instance_down boolean

Tells the infrastructure that the instance should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will automatically decide (currently: will treat the instances as up)

move_allocators object[]
from string required

The allocator id off which all instances in the cluster should be moved

to string[]

An optional list of allocator ids to which the instance(s) should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

allocator_down boolean

Tells the infrastructure that all instances on the allocator should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will auto-decide (currently: will treat the allocator as up)

reallocate_instances boolean

If true (default: false) does not allow re-using any existing instances currently in the cluster, ie even unchanged instances will be re-created

preferred_allocators string[]

List of allocators on which instances are placed if possible (if not possible/not specified then any available allocator with space is used)

preferred_allocator_tags map string to string

Map containing allocators tags in form of key value pairs, increasing the likelihood during move requests for allocators with matching tags, to be selected as target allocators

extended_maintenance boolean

If true (default false), does not clear the maintenance flag (which prevents its API from being accessed except by the constructor) on new instances added until after a snapshot has been restored, otherwise, the maintenance flag is cleared once the new instances successfully join the new cluster

cluster_reboot enum

Set to 'forced' to force a reboot as part of the upgrade plan

Values: forced
override_failsafe boolean

If false (the default), the plan fails if it determines that the request can result in unsafe operations. Setting this flag overrides some of these check restraints.

settings object

The settings for multiple Kibana instances.

metadata object

The top-level configuration settings for the Elasticsearch cluster.

name string

The display name of the cluster

owner_id string

The user id (referencing whatever user database is in use) of the cluster owner

subscription_level string

Subscription level of the cluster

system_owned boolean

Indicates if a cluster is system owned (restricts the set of operations that can be performed on it)

contact_email string

Contact email for the cluster

resources object

The top-level configuration settings for the Elasticsearch cluster resources.

cpu object

Specifies the CPU resource settings for the Elasticsearch cluster.

boost boolean

Indicates if the CPU boost flag is enabled or not.

hard_limit boolean

Indicates if the CPU hard limit flag is enabled or not. When set to true (default), allocates CPU timeshare based on the total CPU time multiplied by the relative RAM capacity of the instance on a given host. When set to false, delegates CPU allocation to the operating system to schedule CPU timeshares.

apm object[]

A list of payloads for APM creation. WARNING: For stack versions 8.0.0 and higher the integrations_server payload should be used instead, as this field becomes deprecated.

ref_id string required

A locally-unique user-specified id for APM

elasticsearch_cluster_ref_id string required

Alias to the Elasticsearch Cluster to attach APM to

display_name string

The human readable name for the APM cluster (default: takes the name of its Elasticsearch cluster)

region string required

The region where this resource exists

plan object required

The plan for the APM Server.

cluster_topology object[]
instance_configuration_id string

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.

instance_configuration_version integer · format: int32

The version of the Instance Configuration Id. If it is unset, the meaning depends on read vs writes. For deployment reads, it is equivalent to version 0 (or the IC is unversioned); for deployment creates and deployment template use, it is equivalent to 'the latest version'; and for deployment updates, it is equivalent to 'retain the current version'.

size object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
zone_count integer · format: int32

number of zones in which nodes will be placed

apm object

The configuration options for the APM Server.

version string

The version of the Apm cluster (must be one of the ECE supported versions, and won't work unless it matches the APM version. Leave blank to auto-detect version.)

docker_image string

A docker URI that allows overriding of the default docker image specified for this version

system_settings object

A structure that defines a curated subset of the APM Server settings. TIP: To define the complete set of APM Server setting, use ApmSystemSettings with user_settings_override_ and user_settings_.

elasticsearch_url string
Warning

Scheduled for removal in a future version of the API.

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

kibana_url string
Warning

Scheduled for removal in a future version of the API.

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

elasticsearch_username string

Optionally override the account within APM - defaults to a system account that always exists (if specified, the password must also be specified). Note that this field is never returned from the API, it is write only.

elasticsearch_password string

Optionally override the account within APM - defaults to a system account that always exists (if specified, the username must also be specified). Note that this field is never returned from the API, it is write only.

secret_token string

Optionally override the secret token within APM - defaults to the previously existing secretToken

debug_enabled boolean

Optionally enable debug mode for APM servers - defaults false

user_settings_json object

An arbitrary JSON object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided the parameters are on the allowlist and not on the denylist. (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Apm settings)

user_settings_yaml string

An arbitrary YAML object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided the parameters are on the allowlist and not on the denylist. (These field together with 'user_settings_override*' and 'system_settings' defines the total set of Apm settings)

user_settings_override_json object

An arbitrary JSON object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Apm settings)

user_settings_override_yaml string

An arbitrary YAML object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Apm settings)

apm object required

The configuration options for the APM Server.

Same fields as apm in cluster_topology
transient object

Defines the configuration parameters that control how the plan is applied. For example, the Elasticsearch cluster topology and APM Server settings.

strategy object

The options for performing a plan change. Specify only one property each time. The default is grow_and_shrink.

rolling object

Performs inline, rolling configuration changes that mutate existing containers. TIP: This is the fastest way to update a plan, but can fail for complex plan changes, such as topology changes. Also, this is less safe for configuration changes that leave a cluster in a non running state. NOTE: When you perform a major version upgrade, and 'group_by' is set to 'pass:macros[all]';, rolling is required.

group_by string

Specifies the grouping attribute to use when rolling several instances. Instances that share the same value for the provided attribute key are rolled together as a unit. Examples that make sense to use are '__all__' (roll all instances as a single unit), 'logical_zone_name' (roll instances by zone), '__name__' (roll one instance at a time, the default if not specified). Note that '__all__' is required when performing a major version upgrade

allow_inline_resize boolean

Whether we allow changing the capacity of instances (default false). This is currently implemented by stopping, re-creating then starting the affected instance on its associated allocator when performing the changes. NOTES: This requires a round-trip through the allocation infrastructure of the active constructor, as it has to reserve the target capacity without over-committing

skip_synced_flush boolean

Whether to skip attempting to do a synced flush on the filesystem of the container (default: false), which is less safe but may be required if the container is unhealthy

shard_init_wait_time integer · format: int64

The time, in seconds, to wait for shards that show no progress of initializing before rolling the next group (default: 10 minutes)

grow_and_shrink object

A strategy that creates instances with the new plan, migrates data from the old instances, then shuts down the old instances. GrowShrinkStrategyConfig is safer than 'rolling' and ensures single node availability during a plan change, but can be a lot slower on larger clusters.

rolling_grow_and_shrink object

A strategy that creates new Elasticsearch instances, Kibana instances, and APM Servers with the new plan, then migrates the node data to minimize the amount of spare capacity.

autodetect object

A strategy that lets constructor choose the most optimal way to execute the plan.

plan_configuration object

The plan control configuration options for the APM Server.

timeout integer · format: int64

The total timeout in seconds after which the plan is cancelled even if it is not complete. Defaults to 4x the max memory capacity per node (in MB)

calm_wait_time integer · format: int64

This timeout determines how long to give a cluster after it responds to API calls before performing actual operations on it. It defaults to 5s

move_instances object[]
from string required

The instance id that is going to be moved

to string[]

An optional list of allocator ids to which the instance should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

instance_down boolean

Tells the infrastructure that the instance should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will automatically decide (currently: will treat the instances as up)

move_allocators object[]
from string required

The allocator id off which all instances in the cluster should be moved

to string[]

An optional list of allocator ids to which the instance(s) should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

allocator_down boolean

Tells the infrastructure that all instances on the allocator should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will auto-decide (currently: will treat the allocator as up)

reallocate_instances boolean

If true (default: false) does not allow re-using any existing instances currently in the cluster, ie even unchanged instances will be re-created

preferred_allocators string[]

List of allocators on which instances are placed if possible (if not possible/not specified then any available allocator with space is used)

preferred_allocator_tags map string to string

Map containing allocators tags in form of key value pairs, increasing the likelihood during move requests for allocators with matching tags, to be selected as target allocators

extended_maintenance boolean

If true (default false), does not clear the maintenance flag (which prevents its API from being accessed except by the constructor) on new instances added until after a snapshot has been restored, otherwise, the maintenance flag is cleared once the new instances successfully join the new cluster

cluster_reboot enum

Set to 'forced' to force a reboot as part of the upgrade plan

Values: forced
override_failsafe boolean

If false (the default), the plan fails if it determines that the request can result in unsafe operations. Setting this flag overrides some of these check restraints.

settings object

The settings for the APM Server.

metadata object

The top-level configuration settings for the Elasticsearch cluster.

name string

The display name of the cluster

owner_id string

The user id (referencing whatever user database is in use) of the cluster owner

subscription_level string

Subscription level of the cluster

system_owned boolean

Indicates if a cluster is system owned (restricts the set of operations that can be performed on it)

contact_email string

Contact email for the cluster

resources object

The top-level configuration settings for the Elasticsearch cluster resources.

cpu object

Specifies the CPU resource settings for the Elasticsearch cluster.

boost boolean

Indicates if the CPU boost flag is enabled or not.

hard_limit boolean

Indicates if the CPU hard limit flag is enabled or not. When set to true (default), allocates CPU timeshare based on the total CPU time multiplied by the relative RAM capacity of the instance on a given host. When set to false, delegates CPU allocation to the operating system to schedule CPU timeshares.

appsearch object[]

A list of payloads for AppSearch updates. AppSearch has been replaced by Enterprise Search in the Elastic Stack 7.7 and higher.

ref_id string required

A locally-unique user-specified id for AppSearch

elasticsearch_cluster_ref_id string required

Alias to the Elasticsearch Cluster to attach AppSearch to

display_name string

The human readable name for the AppSearch cluster (default: takes the name of its Elasticsearch cluster)

region string required

The region where this resource exists

plan object required

The plan for the App Search cluster.

cluster_topology object[]
node_type object

Node types to enable for an AppSearch instance

appserver boolean required

Defines whether this instance should run as Application/API server

worker boolean required

Defines whether this instance should run as background worker

instance_configuration_id string

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.

instance_configuration_version integer · format: int32

The version of the Instance Configuration Id. If it is unset, the meaning depends on read vs writes. For deployment reads, it is equivalent to version 0 (or the IC is unversioned); for deployment creates and deployment template use, it is equivalent to 'the latest version'; and for deployment updates, it is equivalent to 'retain the current version'.

size object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
zone_count integer · format: int32

number of zones in which nodes will be placed

appsearch object
version string

The version of the AppSearch cluster (must be one of the ECE supported versions, and won't work unless it matches the Elasticsearch version. Leave blank to auto-detect version.)

docker_image string

A docker URI that allows overriding of the default docker image specified for this version

system_settings object

This structure defines a curated subset of the AppSearch settings. (This field together with 'user_settings_override*' and 'user_settings*' defines the total set of AppSearch settings)

elasticsearch_url string

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

elasticsearch_username string

Optionally override the account within App Search - defaults to a system account that always exists (if specified, the password must also be specified). Note that this field is never returned from the API, it is write only.

elasticsearch_password string

Optionally override the account within App Search - defaults to a system account that always exists (if specified, the username must also be specified). Note that this field is never returned from the API, it is write only.

secret_session_key string

Optionally override the secret session key within App Search - defaults to the previously existing secretSession. Note that this field is never returned from the API, it is write only.

user_settings_json object

An arbitrary JSON object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided the parameters are on the allowlist and not on the denylist. (This field together with 'user_settings_override*' and 'system_settings' defines the total set of AppSearch settings)

user_settings_yaml string

An arbitrary YAML object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided the parameters are on the allowlist and not on the denylist. (These field together with 'user_settings_override*' and 'system_settings' defines the total set of AppSearch settings)

user_settings_override_json object

An arbitrary JSON object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of AppSearch settings)

user_settings_override_yaml string

An arbitrary YAML object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of AppSearch settings)

appsearch object required
Same fields as appsearch in cluster_topology
transient object

Defines configuration parameters that control how the plan (ie consisting of the cluster topology and AppSearch settings) is applied

strategy object

The options for performing a plan change. Specify only one property each time. The default is grow_and_shrink.

rolling object

Performs inline, rolling configuration changes that mutate existing containers. TIP: This is the fastest way to update a plan, but can fail for complex plan changes, such as topology changes. Also, this is less safe for configuration changes that leave a cluster in a non running state. NOTE: When you perform a major version upgrade, and 'group_by' is set to 'pass:macros[all]';, rolling is required.

group_by string

Specifies the grouping attribute to use when rolling several instances. Instances that share the same value for the provided attribute key are rolled together as a unit. Examples that make sense to use are '__all__' (roll all instances as a single unit), 'logical_zone_name' (roll instances by zone), '__name__' (roll one instance at a time, the default if not specified). Note that '__all__' is required when performing a major version upgrade

allow_inline_resize boolean

Whether we allow changing the capacity of instances (default false). This is currently implemented by stopping, re-creating then starting the affected instance on its associated allocator when performing the changes. NOTES: This requires a round-trip through the allocation infrastructure of the active constructor, as it has to reserve the target capacity without over-committing

skip_synced_flush boolean

Whether to skip attempting to do a synced flush on the filesystem of the container (default: false), which is less safe but may be required if the container is unhealthy

shard_init_wait_time integer · format: int64

The time, in seconds, to wait for shards that show no progress of initializing before rolling the next group (default: 10 minutes)

grow_and_shrink object

A strategy that creates instances with the new plan, migrates data from the old instances, then shuts down the old instances. GrowShrinkStrategyConfig is safer than 'rolling' and ensures single node availability during a plan change, but can be a lot slower on larger clusters.

rolling_grow_and_shrink object

A strategy that creates new Elasticsearch instances, Kibana instances, and APM Servers with the new plan, then migrates the node data to minimize the amount of spare capacity.

autodetect object

A strategy that lets constructor choose the most optimal way to execute the plan.

plan_configuration object
timeout integer · format: int64

The total timeout in seconds after which the plan is cancelled even if it is not complete. Defaults to 4x the max memory capacity per node (in MB)

calm_wait_time integer · format: int64

This timeout determines how long to give a cluster after it responds to API calls before performing actual operations on it. It defaults to 5s

move_instances object[]
from string required

The instance id that is going to be moved

to string[]

An optional list of allocator ids to which the instance should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

instance_down boolean

Tells the infrastructure that the instance should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will automatically decide (currently: will treat the instances as up)

move_allocators object[]
from string required

The allocator id off which all instances in the cluster should be moved

to string[]

An optional list of allocator ids to which the instance(s) should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

allocator_down boolean

Tells the infrastructure that all instances on the allocator should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will auto-decide (currently: will treat the allocator as up)

reallocate_instances boolean

If true (default: false) does not allow re-using any existing instances currently in the cluster, ie even unchanged instances will be re-created

preferred_allocators string[]

List of allocators on which instances are placed if possible (if not possible/not specified then any available allocator with space is used)

preferred_allocator_tags map string to string

Map containing allocators tags in form of key value pairs, increasing the likelihood during move requests for allocators with matching tags, to be selected as target allocators

extended_maintenance boolean

If true (default false), does not clear the maintenance flag (which prevents its API from being accessed except by the constructor) on new instances added until after a snapshot has been restored, otherwise, the maintenance flag is cleared once the new instances successfully join the new cluster

cluster_reboot enum

Set to 'forced' to force a reboot as part of the upgrade plan

Values: forced
override_failsafe boolean

If false (the default), the plan fails if it determines that the request can result in unsafe operations. Setting this flag overrides some of these check restraints.

settings object

The settings for the App Search.

metadata object

The top-level configuration settings for the Elasticsearch cluster.

name string

The display name of the cluster

owner_id string

The user id (referencing whatever user database is in use) of the cluster owner

subscription_level string

Subscription level of the cluster

system_owned boolean

Indicates if a cluster is system owned (restricts the set of operations that can be performed on it)

contact_email string

Contact email for the cluster

resources object

The top-level configuration settings for the Elasticsearch cluster resources.

cpu object

Specifies the CPU resource settings for the Elasticsearch cluster.

boost boolean

Indicates if the CPU boost flag is enabled or not.

hard_limit boolean

Indicates if the CPU hard limit flag is enabled or not. When set to true (default), allocates CPU timeshare based on the total CPU time multiplied by the relative RAM capacity of the instance on a given host. When set to false, delegates CPU allocation to the operating system to schedule CPU timeshares.

A list of payloads for Enterprise Search creation.

ref_id string required

A locally-unique user-specified id for Enterprise Search

elasticsearch_cluster_ref_id string required

Alias to the Elasticsearch Cluster to attach Enterprise Search to

display_name string

The human readable name for the Enterprise Search cluster (default: takes the name of its Elasticsearch cluster)

region string required

The region where this resource exists

plan object required

The plan for the Enterprise Search cluster.

cluster_topology object[]
node_type object

Node types to enable for an Enterprise Search instance

appserver boolean required

Defines whether this instance should run as Application/API server

worker boolean required

Defines whether this instance should run as background worker

connector boolean required

Defines whether this instance should run as Connector

instance_configuration_id string

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.

instance_configuration_version integer · format: int32

The version of the Instance Configuration Id. If it is unset, the meaning depends on read vs writes. For deployment reads, it is equivalent to version 0 (or the IC is unversioned); for deployment creates and deployment template use, it is equivalent to 'the latest version'; and for deployment updates, it is equivalent to 'retain the current version'.

size object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
zone_count integer · format: int32

number of zones in which nodes will be placed

version string

The version of the Enterprise Search cluster (must be one of the ECE supported versions, and won't work unless it matches the Elasticsearch version. Leave blank to auto-detect version.)

docker_image string

A docker URI that allows overriding of the default docker image specified for this version

system_settings object

This structure defines a curated subset of the Enterprise Search settings. (This field together with 'user_settings_override*' and 'user_settings*' defines the total set of Enterprise Search settings)

elasticsearch_url string
Warning

Scheduled for removal in a future version of the API.

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

elasticsearch_username string

Optionally override the account within Enterprise Search - defaults to a system account that always exists (if specified, the password must also be specified). Note that this field is never returned from the API, it is write only.

elasticsearch_password string

Optionally override the account within Enterprise Search - defaults to a system account that always exists (if specified, the username must also be specified). Note that this field is never returned from the API, it is write only.

secret_session_key string

Optionally override the secret session key within Enterprise Search - defaults to the previously existing secretSession. Note that this field is never returned from the API, it is write only.

user_settings_json object

An arbitrary JSON object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided the parameters are on the allowlist and not on the denylist. (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Enterprise Search settings)

user_settings_yaml string

An arbitrary YAML object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided the parameters are on the allowlist and not on the denylist. (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Enterprise Search settings)

user_settings_override_json object

An arbitrary JSON object allowing ECE admins to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), i.e. in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Enterprise Search settings)

user_settings_override_yaml string

An arbitrary YAML object allowing ECE admins to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), i.e. in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Enterprise Search settings)

allocator_filter object
node_configuration string
memory_per_node object
node_count_per_zone object
Same fields as enterprise_search in cluster_topology
transient object

Defines configuration parameters that control how the plan (i.e. consisting of the cluster topology and Enterprise Search settings) is applied

strategy object

The options for performing a plan change. Specify only one property each time. The default is grow_and_shrink.

rolling object

Performs inline, rolling configuration changes that mutate existing containers. TIP: This is the fastest way to update a plan, but can fail for complex plan changes, such as topology changes. Also, this is less safe for configuration changes that leave a cluster in a non running state. NOTE: When you perform a major version upgrade, and 'group_by' is set to 'pass:macros[all]';, rolling is required.

group_by string

Specifies the grouping attribute to use when rolling several instances. Instances that share the same value for the provided attribute key are rolled together as a unit. Examples that make sense to use are '__all__' (roll all instances as a single unit), 'logical_zone_name' (roll instances by zone), '__name__' (roll one instance at a time, the default if not specified). Note that '__all__' is required when performing a major version upgrade

allow_inline_resize boolean

Whether we allow changing the capacity of instances (default false). This is currently implemented by stopping, re-creating then starting the affected instance on its associated allocator when performing the changes. NOTES: This requires a round-trip through the allocation infrastructure of the active constructor, as it has to reserve the target capacity without over-committing

skip_synced_flush boolean

Whether to skip attempting to do a synced flush on the filesystem of the container (default: false), which is less safe but may be required if the container is unhealthy

shard_init_wait_time integer · format: int64

The time, in seconds, to wait for shards that show no progress of initializing before rolling the next group (default: 10 minutes)

grow_and_shrink object

A strategy that creates instances with the new plan, migrates data from the old instances, then shuts down the old instances. GrowShrinkStrategyConfig is safer than 'rolling' and ensures single node availability during a plan change, but can be a lot slower on larger clusters.

rolling_grow_and_shrink object

A strategy that creates new Elasticsearch instances, Kibana instances, and APM Servers with the new plan, then migrates the node data to minimize the amount of spare capacity.

autodetect object

A strategy that lets constructor choose the most optimal way to execute the plan.

plan_configuration object
timeout integer · format: int64

The total timeout in seconds after which the plan is cancelled even if it is not complete. Defaults to 4x the max memory capacity per node (in MB)

calm_wait_time integer · format: int64

This timeout determines how long to give a cluster after it responds to API calls before performing actual operations on it. It defaults to 5s

move_instances object[]
from string required

The instance id that is going to be moved

to string[]

An optional list of allocator ids to which the instance should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

instance_down boolean

Tells the infrastructure that the instance should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will automatically decide (currently: will treat the instances as up)

move_allocators object[]
from string required

The allocator id off which all instances in the cluster should be moved

to string[]

An optional list of allocator ids to which the instance(s) should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

allocator_down boolean

Tells the infrastructure that all instances on the allocator should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will auto-decide (currently: will treat the allocator as up)

reallocate_instances boolean

If true (default: false) does not allow re-using any existing instances currently in the cluster, i.e. even unchanged instances will be re-created

preferred_allocators string[]

List of allocators on which instances are placed if possible (if not possible/not specified then any available allocator with space is used)

preferred_allocator_tags map string to string

Map containing allocators tags in form of key value pairs, increasing the likelihood during move requests for allocators with matching tags, to be selected as target allocators

extended_maintenance boolean

If true (default false), does not clear the maintenance flag (which prevents its API from being accessed except by the constructor) on new instances added until after a snapshot has been restored, otherwise, the maintenance flag is cleared once the new instances successfully join the new cluster

cluster_reboot enum

Set to 'forced' to force a reboot as part of the upgrade plan

Values: forced
override_failsafe boolean

If false (the default), the plan fails if it determines that the request can result in unsafe operations. Setting this flag overrides some of these check restraints.

settings object

The settings for the Enterprise Search.

metadata object

The top-level configuration settings for the Elasticsearch cluster.

name string

The display name of the cluster

owner_id string

The user id (referencing whatever user database is in use) of the cluster owner

subscription_level string

Subscription level of the cluster

system_owned boolean

Indicates if a cluster is system owned (restricts the set of operations that can be performed on it)

contact_email string

Contact email for the cluster

resources object

The top-level configuration settings for the Elasticsearch cluster resources.

cpu object

Specifies the CPU resource settings for the Elasticsearch cluster.

boost boolean

Indicates if the CPU boost flag is enabled or not.

hard_limit boolean

Indicates if the CPU hard limit flag is enabled or not. When set to true (default), allocates CPU timeshare based on the total CPU time multiplied by the relative RAM capacity of the instance on a given host. When set to false, delegates CPU allocation to the operating system to schedule CPU timeshares.

integrations_server object[]

A list of payloads for Integrations Server creation.

ref_id string required

A locally-unique user-specified id for the Integrations Server

elasticsearch_cluster_ref_id string required

Alias to the Elasticsearch Cluster to attach the Integrations Server to

display_name string

The human readable name for the Integrations Server cluster (default: takes the name of its Elasticsearch cluster)

region string required

The region where this resource exists

plan object required

The plan for the Integrations Server.

cluster_topology object[]
instance_configuration_id string

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.

instance_configuration_version integer · format: int32

The version of the Instance Configuration Id. If it is unset, the meaning depends on read vs writes. For deployment reads, it is equivalent to version 0 (or the IC is unversioned); for deployment creates and deployment template use, it is equivalent to 'the latest version'; and for deployment updates, it is equivalent to 'retain the current version'.

size object

Measured by the amount of a resource. The final cluster size is calculated using multipliers from the topology instance configuration.

value integer · format: int32 required

Amount of resource

resource enum required

Type of resource. In ESS the resource used should always be memory.

Values: memory storage
zone_count integer · format: int32

number of zones in which nodes will be placed

integrations_server object

The configuration options for the Integrations Server.

version string

The version of the Integrations Server cluster (must be one of the ECE supported versions, and won't work unless it matches the Integrations Server version. Leave blank to auto-detect version.)

docker_image string

A docker URI that allows overriding of the default docker image specified for this version

system_settings object

A structure that defines a curated subset of the Integrations Server settings. TIP: To define the complete set of Integrations Server setting, use IntegrationsSystemSettings with user_settings_override_ and user_settings_.

elasticsearch_url string
Warning

Scheduled for removal in a future version of the API.

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

kibana_url string
Warning

Scheduled for removal in a future version of the API.

Optionally override the URL to which to send data (for advanced users only, if unspecified the system selects an internal URL)

elasticsearch_username string

Optionally override the account within Integrations Server - defaults to a system account that always exists (if specified, the password must also be specified). Note that this field is never returned from the API, it is write only.

elasticsearch_password string

Optionally override the account within Integrations Server - defaults to a system account that always exists (if specified, the username must also be specified). Note that this field is never returned from the API, it is write only.

secret_token string

Optionally override the secret token within Integrations Server - defaults to the previously existing secretToken

debug_enabled boolean

Optionally enable debug mode for Integrations Server - defaults false

user_settings_json object

An arbitrary JSON object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_yaml' is allowed), provided the parameters are on the allowlist and not on the denylist. (This field together with 'user_settings_override*' and 'system_settings' defines the total set of Integrations Server settings)

user_settings_yaml string

An arbitrary YAML object allowing (non-admin) cluster owners to set their parameters (only one of this and 'user_settings_json' is allowed), provided the parameters are on the allowlist and not on the denylist. (These field together with 'user_settings_override*' and 'system_settings' defines the total set of Integrations Server settings)

user_settings_override_json object

An arbitrary JSON object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_yaml' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Integrations Server settings)

user_settings_override_yaml string

An arbitrary YAML object allowing ECE admins owners to set clusters' parameters (only one of this and 'user_settings_override_json' is allowed), ie in addition to the documented 'system_settings'. (This field together with 'system_settings' and 'user_settings*' defines the total set of Integrations Server settings)

mode enum

The mode the Integrations Server is operating in.

Values: standalone managed
integrations_server object required

The configuration options for the Integrations Server.

Same fields as integrations_server in cluster_topology
transient object

Defines the configuration parameters that control how the plan is applied. For example, the Elasticsearch cluster topology and Integrations Server settings.

strategy object

The options for performing a plan change. Specify only one property each time. The default is grow_and_shrink.

rolling object

Performs inline, rolling configuration changes that mutate existing containers. TIP: This is the fastest way to update a plan, but can fail for complex plan changes, such as topology changes. Also, this is less safe for configuration changes that leave a cluster in a non running state. NOTE: When you perform a major version upgrade, and 'group_by' is set to 'pass:macros[all]';, rolling is required.

group_by string

Specifies the grouping attribute to use when rolling several instances. Instances that share the same value for the provided attribute key are rolled together as a unit. Examples that make sense to use are '__all__' (roll all instances as a single unit), 'logical_zone_name' (roll instances by zone), '__name__' (roll one instance at a time, the default if not specified). Note that '__all__' is required when performing a major version upgrade

allow_inline_resize boolean

Whether we allow changing the capacity of instances (default false). This is currently implemented by stopping, re-creating then starting the affected instance on its associated allocator when performing the changes. NOTES: This requires a round-trip through the allocation infrastructure of the active constructor, as it has to reserve the target capacity without over-committing

skip_synced_flush boolean

Whether to skip attempting to do a synced flush on the filesystem of the container (default: false), which is less safe but may be required if the container is unhealthy

shard_init_wait_time integer · format: int64

The time, in seconds, to wait for shards that show no progress of initializing before rolling the next group (default: 10 minutes)

grow_and_shrink object

A strategy that creates instances with the new plan, migrates data from the old instances, then shuts down the old instances. GrowShrinkStrategyConfig is safer than 'rolling' and ensures single node availability during a plan change, but can be a lot slower on larger clusters.

rolling_grow_and_shrink object

A strategy that creates new Elasticsearch instances, Kibana instances, and APM Servers with the new plan, then migrates the node data to minimize the amount of spare capacity.

autodetect object

A strategy that lets constructor choose the most optimal way to execute the plan.

plan_configuration object

The plan control configuration options for the Integrations Server.

timeout integer · format: int64

The total timeout in seconds after which the plan is cancelled even if it is not complete. Defaults to 4x the max memory capacity per node (in MB)

calm_wait_time integer · format: int64

This timeout determines how long to give a cluster after it responds to API calls before performing actual operations on it. It defaults to 5s

move_instances object[]
from string required

The instance id that is going to be moved

to string[]

An optional list of allocator ids to which the instance should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

instance_down boolean

Tells the infrastructure that the instance should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will automatically decide (currently: will treat the instances as up)

move_allocators object[]
from string required

The allocator id off which all instances in the cluster should be moved

to string[]

An optional list of allocator ids to which the instance(s) should be moved. If not specified then any available allocator can be used (including the current one if it is healthy)

allocator_down boolean

Tells the infrastructure that all instances on the allocator should be considered as permanently down when deciding how to migrate data to new nodes. If left blank then the system will auto-decide (currently: will treat the allocator as up)

reallocate_instances boolean

If true (default: false) does not allow re-using any existing instances currently in the cluster, ie even unchanged instances will be re-created

preferred_allocators string[]

List of allocators on which instances are placed if possible (if not possible/not specified then any available allocator with space is used)

preferred_allocator_tags map string to string

Map containing allocators tags in form of key value pairs, increasing the likelihood during move requests for allocators with matching tags, to be selected as target allocators

extended_maintenance boolean

If true (default false), does not clear the maintenance flag (which prevents its API from being accessed except by the constructor) on new instances added until after a snapshot has been restored, otherwise, the maintenance flag is cleared once the new instances successfully join the new cluster

cluster_reboot enum

Set to 'forced' to force a reboot as part of the upgrade plan

Values: forced
override_failsafe boolean

If false (the default), the plan fails if it determines that the request can result in unsafe operations. Setting this flag overrides some of these check restraints.

settings object

The settings for the Integrations Server.

metadata object

The top-level configuration settings for the Elasticsearch cluster.

name string

The display name of the cluster

owner_id string

The user id (referencing whatever user database is in use) of the cluster owner

subscription_level string

Subscription level of the cluster

system_owned boolean

Indicates if a cluster is system owned (restricts the set of operations that can be performed on it)

contact_email string

Contact email for the cluster

resources object

The top-level configuration settings for the Elasticsearch cluster resources.

cpu object

Specifies the CPU resource settings for the Elasticsearch cluster.

boost boolean

Indicates if the CPU boost flag is enabled or not.

hard_limit boolean

Indicates if the CPU hard limit flag is enabled or not. When set to true (default), allocates CPU timeshare based on the total CPU time multiplied by the relative RAM capacity of the instance on a given host. When set to false, delegates CPU allocation to the operating system to schedule CPU timeshares.

settings object

Additional configuration for the new deployment object.

traffic_filter_settings object

The configuration settings for the traffic filter.

rulesets string[] required

IDs of the traffic filter rulesets

observability object

The observability settings for a deployment

logging object

The logging settings for a deployment

destination object required

The destination to send logs and metrics to

deployment_id string required

The deployment to send logs and/or metrics to. Contains either the deployment's ID or 'self'.

ref_id string

RefId of the Elasticsearch cluster to send logs and/or metrics to. If not specified, refId is resolved automatically as long as the destination deployment contains a single Elasticsearch resource.

metrics object

The metrics settings for a deployment

destination object required

The destination to send logs and metrics to

deployment_id string required

The deployment to send logs and/or metrics to. Contains either the deployment's ID or 'self'.

ref_id string

RefId of the Elasticsearch cluster to send logs and/or metrics to. If not specified, refId is resolved automatically as long as the destination deployment contains a single Elasticsearch resource.

force_legacy_monitoring boolean

Set to true to force the deployment to use legacy monitoring instead of Metricbeat-based monitoring.

byok object

Information required to create a Bring Your Own Key (BYOK) deployment.

key_resource_path string required

Key path (i.e arn:aws:kms:us-east-1:1234567890:key/12345678-0000-0000-0000-000000000000).

autoscaling_enabled boolean

Enable autoscaling for this deployment.

solution_type string

An optional string that declares the deployment's expected application. Example supported values are: elasticsearch, observability, security.

metadata object

Additional information about the new deployment object.

system_owned boolean

Indicates if a deployment is system owned (restricts the set of operations that can be performed on it)

tags object[]

Arbitrary user-defined metadata associated with this deployment

key string required

The metadata field name

value string required

The metadata value

alias string

A user-defined alias to use in place of Cluster IDs for user-friendly URLs

region string

Identifier of the region to be used as the default for all the resources of the deployment

version string

The version for all the resources of the deployment (must be one of the supported versions). Defaults to the latest version if not specified.

system_owned boolean

Whether or not if this is system owned template.

metadata object[]

Optional arbitrary metadata to associate with this template.

key string required

The metadata field name

value string required

The metadata value

order integer · format: int32

Determines the order in which this template should be returned when listed. Templates are returned in ascending order. If not specified, then the template willbe appended to the end of the list.

hidden boolean

Whether or not the deployment template is hidden by default.

min_version string

Minimum stack version required by this template, if any.

template_category_id string

Provider and version agnostic template identifier used for grouping related template types.

The Kibana Deeplink for this type of deployment.

Responses

The request was valid (used when validate_only is true).

application/json
id string required

The ID

The deployment definition was valid and the template has been created.

application/json
id string required

The ID

The requested region is not supported. (code: templates.region_not_found)

application/json
errors object[] required

A list of errors that occurred in the failing request

code string required

A structured code representing the error type that occurred

message string required

A human readable message describing the error that occurred

fields string[]

If the error can be tied to a specific field or fields in the user request, this lists those fields

Response headers

x-cloud-error-codes enum

The error codes associated with the response

The user is not authorized to access requested region. (code: templates.region_not_allowed)

application/json
errors object[] required

A list of errors that occurred in the failing request

code string required

A structured code representing the error type that occurred

message string required

A human readable message describing the error that occurred

fields string[]

If the error can be tied to a specific field or fields in the user request, this lists those fields

Response headers

x-cloud-error-codes enum

The error codes associated with the response