<a id="cli-aws-opensearch-upgrade-domain"></a>

# upgrade-domain

## Description

Allows you to either upgrade your Amazon OpenSearch Service domain or perform an upgrade eligibility check to a compatible version of OpenSearch or Elasticsearch.

See also: [AWS API Documentation](https://docs.aws.amazon.com/goto/WebAPI/opensearch-2021-01-01/UpgradeDomain)

## Synopsis

```
  upgrade-domain
--domain-name <value>
--target-version <value>
[--perform-check-only | --no-perform-check-only]
[--advanced-options <value>]
[--deployment-strategy-options <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
[--cli-error-format <value>]
[--help]
```

## Options

`--domain-name` (string) [required]

> Name of the OpenSearch Service domain that you want to upgrade.

> Constraints:

> * min: `3`
> * max: `28`
> * pattern: `[a-z][a-z0-9\-]+`

`--target-version` (string) [required]

> OpenSearch or Elasticsearch version to which you want to upgrade, in the format Opensearch_X.Y or Elasticsearch_X.Y.

> Constraints:

> * min: `14`
> * max: `18`
> * pattern: `^Elasticsearch_[0-9]{1}\.[0-9]{1,2}$|^OpenSearch_[0-9]{1,2}\.[0-9]{1,2}$`

`--perform-check-only` | `--no-perform-check-only` (boolean)

> When true, indicates that an upgrade eligibility check needs to be performed. Does not actually perform the upgrade.

`--advanced-options` (map)

> Only supports the `override_main_response_version` parameter and not other advanced options. You can only include this option when upgrading to an OpenSearch version. Specifies whether the domain reports its version as 7.10 so that it continues to work with Elasticsearch OSS clients and plugins.

> key -> (string)

> value -> (string)

Shorthand Syntax:

```
KeyName1=string,KeyName2=string
```

JSON Syntax:

```json
{"string": "string"
  ...}
```

`--deployment-strategy-options` (structure)

> Overrides the deployment strategy for this upgrade. To run a cloned blue/green upgrade, set `DeploymentStrategy` to `ClonedBlueGreen` .

> DeploymentStrategy -> (string) [required]

> > The deployment strategy to use for this operation. The only valid value is `ClonedBlueGreen` , which creates a cloned cluster on the target version next to the primary cluster so that you can validate it and shift traffic to it before you cut over.

> > Possible values:

> > * `ClonedBlueGreen`

> ClonedBlueGreenOptions -> (structure)

> > Options that apply when `DeploymentStrategy` is `ClonedBlueGreen` .

> > RetentionOptions -> (tagged union structure)

> > > How long to keep the cluster that you cut over from after cutover completes. When you start the upgrade, only `RetentionInHours` is accepted.

> > > #### NOTE
> > > This is a Tagged Union structure. Only one of the following top level keys can be set: `RetentionInHours`, `RetentionAction`.

> > > RetentionInHours -> (integer)

> > > > The number of hours to keep the cluster that you cut over from. The retention period starts when cutover completes. The minimum is 1 hour. In an `UpdateClone` response after cutover completes, this value is the number of hours remaining in the retention period, rounded up.

> > > RetentionAction -> (string)

> > > > Ends the retention period now. Valid only after cutover completes.

> > > > Possible values:

> > > > * `RollbackToPrimaryCluster`
> > > > * `DeletePrimaryCluster`

Shorthand Syntax:

```
DeploymentStrategy=string,ClonedBlueGreenOptions={RetentionOptions={RetentionInHours=integer,RetentionAction=string}}
```

JSON Syntax:

```json
{
  "DeploymentStrategy": "ClonedBlueGreen",
  "ClonedBlueGreenOptions": {
    "RetentionOptions": {
      "RetentionInHours": integer,
      "RetentionAction": "RollbackToPrimaryCluster"|"DeletePrimaryCluster"
    }
  }
}
```

`--cli-input-json` | `--cli-input-yaml` (string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by `--generate-cli-skeleton`. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with `--cli-input-yaml`.

`--generate-cli-skeleton` (string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value `input`, prints a sample input JSON that can be used as an argument for `--cli-input-json`. Similarly, if provided `yaml-input` it will print a sample input YAML that can be used with `--cli-input-yaml`. If provided with the value `output`, it validates the command inputs and returns a sample output JSON for that command. The generated JSON skeleton is not stable between versions of the AWS CLI and there are no backwards compatibility guarantees in the JSON skeleton generated.

## Global Options

`--debug` (boolean)

Turn on debug logging.

`--endpoint-url` (string)

Override command’s default URL with the given URL.

`--no-verify-ssl` (boolean)

By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.

`--no-paginate` (boolean)

Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.

`--output` (string)

The formatting style for command output.

* json
* text
* table
* yaml
* yaml-stream
* off

`--query` (string)

A JMESPath query to use in filtering the response data.

`--profile` (string)

Use a specific profile from your credential file.

`--region` (string)

The region to use. Overrides config/env settings.

`--version` (string)

Display the version of this tool.

`--color` (string)

Turn on/off color output.

* on
* off
* auto

`--no-sign-request` (boolean)

Do not sign requests. Credentials will not be loaded if this argument is provided.

`--ca-bundle` (string)

The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.

`--cli-read-timeout` (int)

The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.

`--cli-connect-timeout` (int)

The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.

`--cli-binary-format` (string)

The formatting style to be used for binary blobs. The default format is base64. The base64 format expects binary blobs to be provided as a base64 encoded string. The raw-in-base64-out format preserves compatibility with AWS CLI V1 behavior and binary values must be passed literally. When providing contents from a file that map to a binary blob `fileb://` will always be treated as binary and use the file contents directly regardless of the `cli-binary-format` setting. When using `file://` the file contents will need to properly formatted for the configured `cli-binary-format`.

* base64
* raw-in-base64-out

`--no-cli-pager` (boolean)

Disable cli pager for output.

`--cli-auto-prompt` (boolean)

Automatically prompt for CLI input parameters.

`--no-cli-auto-prompt` (boolean)

Disable automatically prompt for CLI input parameters.

`--cli-error-format` (string)

The formatting style for error output. By default, errors are displayed in enhanced format.

* legacy
* json
* yaml
* text
* table
* enhanced

`--help` (boolean)

Display help for the command/subcommand.

## Output

UpgradeId -> (string)

> The unique identifier of the domain upgrade.

DomainName -> (string)

> The name of the domain that was upgraded.

> Constraints:

> * min: `3`
> * max: `28`
> * pattern: `[a-z][a-z0-9\-]+`

TargetVersion -> (string)

> OpenSearch or Elasticsearch version that the domain was upgraded to.

> Constraints:

> * min: `14`
> * max: `18`
> * pattern: `^Elasticsearch_[0-9]{1}\.[0-9]{1,2}$|^OpenSearch_[0-9]{1,2}\.[0-9]{1,2}$`

PerformCheckOnly -> (boolean)

> When true, indicates that an upgrade eligibility check was performed.

AdvancedOptions -> (map)

> The advanced options configuration for the domain.

> key -> (string)

> value -> (string)

DeploymentStrategyOptions -> (structure)

> The deployment strategy override used for the upgrade.

> DeploymentStrategy -> (string) [required]

> > The deployment strategy to use for this operation. The only valid value is `ClonedBlueGreen` , which creates a cloned cluster on the target version next to the primary cluster so that you can validate it and shift traffic to it before you cut over.

> > Possible values:

> > * `ClonedBlueGreen`

> ClonedBlueGreenOptions -> (structure)

> > Options that apply when `DeploymentStrategy` is `ClonedBlueGreen` .

> > RetentionOptions -> (tagged union structure)

> > > How long to keep the cluster that you cut over from after cutover completes. When you start the upgrade, only `RetentionInHours` is accepted.

> > > #### NOTE
> > > This is a Tagged Union structure. Only one of the following top level keys can be set: `RetentionInHours`, `RetentionAction`.

> > > RetentionInHours -> (integer)

> > > > The number of hours to keep the cluster that you cut over from. The retention period starts when cutover completes. The minimum is 1 hour. In an `UpdateClone` response after cutover completes, this value is the number of hours remaining in the retention period, rounded up.

> > > RetentionAction -> (string)

> > > > Ends the retention period now. Valid only after cutover completes.

> > > > Possible values:

> > > > * `RollbackToPrimaryCluster`
> > > > * `DeletePrimaryCluster`

ChangeProgressDetails -> (structure)

> Container for information about a configuration change happening on a domain.

> ChangeId -> (string)

> > The ID of the configuration change.

> > Constraints:

> > * min: `36`
> > * max: `36`
> > * pattern: `\p{XDigit}{8}-\p{XDigit}{4}-\p{XDigit}{4}-\p{XDigit}{4}-\p{XDigit}{12}`

> Message -> (string)

> > A message corresponding to the status of the configuration change.

> > Constraints:

> > * min: `0`
> > * max: `1024`

> ConfigChangeStatus -> (string)

> > The current status of the configuration change.

> > Possible values:

> > * `Pending`
> > * `Initializing`
> > * `Validating`
> > * `ValidationFailed`
> > * `ApplyingChanges`
> > * `Completed`
> > * `PendingUserInput`
> > * `Cancelled`

> InitiatedBy -> (string)

> > The IAM principal who initiated the configuration change.

> > Possible values:

> > * `CUSTOMER`
> > * `SERVICE`

> StartTime -> (timestamp)

> > The time that the configuration change was initiated, in Universal Coordinated Time (UTC).

> LastUpdatedTime -> (timestamp)

> > The last time that the configuration change was updated.
