updateElasticsearchDomainConfig method

Future<UpdateElasticsearchDomainConfigResponse> updateElasticsearchDomainConfig({
  1. required String domainName,
  2. String? accessPolicies,
  3. Map<String, String>? advancedOptions,
  4. AdvancedSecurityOptionsInput? advancedSecurityOptions,
  5. CognitoOptions? cognitoOptions,
  6. DomainEndpointOptions? domainEndpointOptions,
  7. EBSOptions? eBSOptions,
  8. ElasticsearchClusterConfig? elasticsearchClusterConfig,
  9. Map<LogType, LogPublishingOption>? logPublishingOptions,
  10. SnapshotOptions? snapshotOptions,
  11. VPCOptions? vPCOptions,
})

Modifies the cluster configuration of the specified Elasticsearch domain, setting as setting the instance type and the number of instances.

May throw BaseException. May throw InternalException. May throw InvalidTypeException. May throw LimitExceededException. May throw ResourceNotFoundException. May throw ValidationException.

Parameter domainName : The name of the Elasticsearch domain that you are updating.

Parameter accessPolicies : IAM access policy as a JSON-formatted string.

Parameter advancedOptions : Modifies the advanced option to allow references to indices in an HTTP request body. Must be false when configuring access to individual sub-resources. By default, the value is true. See Configuration Advanced Options for more information.

Parameter advancedSecurityOptions : Specifies advanced security options.

Parameter cognitoOptions : Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see Amazon Cognito Authentication for Kibana.

Parameter domainEndpointOptions : Options to specify configuration that will be applied to the domain endpoint.

Parameter eBSOptions : Specify the type and size of the EBS volume that you want to use.

Parameter elasticsearchClusterConfig : The type and number of instances to instantiate for the domain cluster.

Parameter logPublishingOptions : Map of LogType and LogPublishingOption, each containing options to publish a given type of Elasticsearch log.

Parameter snapshotOptions : Option to set the time, in UTC format, for the daily automated snapshot. Default value is 0 hours.

Parameter vPCOptions : Options to specify the subnets and security groups for VPC endpoint. For more information, see Creating a VPC in VPC Endpoints for Amazon Elasticsearch Service Domains

Implementation

Future<UpdateElasticsearchDomainConfigResponse>
    updateElasticsearchDomainConfig({
  required String domainName,
  String? accessPolicies,
  Map<String, String>? advancedOptions,
  AdvancedSecurityOptionsInput? advancedSecurityOptions,
  CognitoOptions? cognitoOptions,
  DomainEndpointOptions? domainEndpointOptions,
  EBSOptions? eBSOptions,
  ElasticsearchClusterConfig? elasticsearchClusterConfig,
  Map<LogType, LogPublishingOption>? logPublishingOptions,
  SnapshotOptions? snapshotOptions,
  VPCOptions? vPCOptions,
}) async {
  ArgumentError.checkNotNull(domainName, 'domainName');
  _s.validateStringLength(
    'domainName',
    domainName,
    3,
    28,
    isRequired: true,
  );
  final $payload = <String, dynamic>{
    if (accessPolicies != null) 'AccessPolicies': accessPolicies,
    if (advancedOptions != null) 'AdvancedOptions': advancedOptions,
    if (advancedSecurityOptions != null)
      'AdvancedSecurityOptions': advancedSecurityOptions,
    if (cognitoOptions != null) 'CognitoOptions': cognitoOptions,
    if (domainEndpointOptions != null)
      'DomainEndpointOptions': domainEndpointOptions,
    if (eBSOptions != null) 'EBSOptions': eBSOptions,
    if (elasticsearchClusterConfig != null)
      'ElasticsearchClusterConfig': elasticsearchClusterConfig,
    if (logPublishingOptions != null)
      'LogPublishingOptions':
          logPublishingOptions.map((k, e) => MapEntry(k.toValue(), e)),
    if (snapshotOptions != null) 'SnapshotOptions': snapshotOptions,
    if (vPCOptions != null) 'VPCOptions': vPCOptions,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/2015-01-01/es/domain/${Uri.encodeComponent(domainName)}/config',
    exceptionFnMap: _exceptionFns,
  );
  return UpdateElasticsearchDomainConfigResponse.fromJson(response);
}