scenario:
  id: 2c8b5b1e-6cdc-4d57-8236-35dae49b490c
  context:
    auth:
      type: digest
    base_path: /v1beta2
    host: null
  description: create_next_gen_cluster
  name: create_next_gen_cluster
steps:
- operation_id: CustomerManagedEncryptionKeyService_GetCmekAccessIamPrincipal
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/cmeks:principal?orgId={orgId}&servicePlan=Premium&regionId={regionId}",
      "path_params": {
        "regionId": "region_id",
        "orgId": "org_id"
      },
      "headers": {},
      "query_params": {},
      "body": {},
      "body_params": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "account_id",
          "eval": "body.aws.accountId"
        }
      ]
    }
  description: ""
  max_retries: 0
  delay_after: 0
  name: ""
  continue_on_unexpected: false
  stage: ""
  meta: "{}"
  generation_id: ""
  order: 0
- operation_id: CustomerManagedEncryptionKeyService_VerifyCmekAccessIamPrincipal
  request_type: http
  request: |-
    {
      "method": "POST",
      "path": "/cmeks:verifyPrincipal?orgId={orgId}&servicePlan=Premium&regionId={regionId}",
      "path_params": {
        "regionId": "region_id",
        "orgId": "org_id"
      },
      "headers": {},
      "query_params": {},
      "body": {
        "awsKms": {
          "kmsKeyArn": "arn:aws:kms:us-west-2:024848481520:key/mrk-3c88142c0d5c4820882ce61445130059"
        },
        "awsPrincipal": {
          "accountId": "{account_id}"
        },
        "servicePlan": "Premium",
        "regionId": "{regionId}"
      },
      "body_params": {
         "regionId": "region_id",
         "account_id": "account_id"
       },
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.valid == true"
    }
  save: null
  description: ""
  max_retries: 0
  delay_after: 0
  name: ""
  continue_on_unexpected: false
  stage: ""
  meta: "{}"
  generation_id: ""
  order: 0
- operation_id: TidbService_CreateTidb
  request_type: http
  request: |-
    {
      "method": "POST",
      "path": "/tidbs",
      "headers": {},
      "query_params": {},
      "body": {
        "displayName": "sce-ng-cmek-cluster-crud",
        "regionId": "{regionId}",
        "minRcu": "5000",
        "maxRcu": "6000",
        "servicePlan": "Premium",
        "cloudProvider": "{cloud_provider}",
        "dualLayerDataEncryption": {
          "cmek": {
            "servicePlan": "Premium",
            "regionId": "{regionId}",
            "awsKms": {
                "kmsKeyArn": "arn:aws:kms:us-west-2:024848481520:key/mrk-3c88142c0d5c4820882ce61445130059"
            },
            "awsPrincipal": {
                "accountId": "{account_id}"
            }
          } 
        }
      },
      "body_params": {
        "regionId": "region_id",
        "cloud_provider": "cloud_provider",
        "account_id": "account_id"
      },
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "cluster_1",
          "eval": "body.tidbId"
        }
      ]
    }
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 0
- operation_id: PrivateEndpointConnectionService_GetPrivateLinkService
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/tidbs/{tidbId}/privateLinkService",
      "headers": {},
      "query_params": {},
      "body": {},
      "path_params": {
        "tidbId": "cluster_1"
      },
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == 'ACTIVE'"
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "private_link_service_1",
          "eval": "body.serviceName"
        }
      ]
    }
  description: ''
  max_retries: 120
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 0.5
- operation_id: TidbService_GetTidb
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/tidbs/{tidbId}",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      },
      "path_params": {
        "tidbId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == 'ACTIVE'"
    }
  save: null
  description: ''
  max_retries: 120
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 1
- operation_id: TidbService_ListTidbs
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/tidbs",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      },
      "path_params": {}
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.totalSize > 0"
    }
  save: null
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 1.5
- operation_id: ClusterService_GetCluster
  generation_id: 09198df8-3eef-4d82-a5a4-31eb9b0db7de
  order: 1.6
  case_type: supplimental_positive
  request_type: http
  request: |-
    {
      "auth": {
        "auth_type": "digest",
        "content": {"private_key": "placeholder","public_key": "placeholder"}
      },
      "method": "GET",
      "path": "/tidbs/{tidbId}",
      "path_params": {
        "tidbId": "cluster_1"
      },
      "query_params": {},
      "headers": {},
      "body": {}
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == \"ABC\""
    }
  description: Poll the cluster state until it becomes ACTIVE.
  max_retries: 18
  delay_after: 10
  step_type: defined
  name: force_wait_privatelink_create
  save: null
  continue_on_unexpected: true
  stage: prepare
  meta: "{}"
- operation_id: TidbService_UpdateTidb
  request_type: http
  request: |-
    {
      "method": "PATCH",
      "path": "/tidbs/{tidbId}",
      "headers": {},
      "query_params": {},
      "body": {
        "displayName": "sce-ng-cluster-crud-updated",
        "maxRcu": "6500"
      },
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      },
      "path_params": {
        "tidbId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: null
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 2
- operation_id: TidbService_GetTidb
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/tidbs/{tidbId}",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      },
      "path_params": {
        "tidbId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == 'ACTIVE' && body.maxRcu == '6500' && body.displayName.contains('sce-ng-cluster-crud-updated')"
    }
  save: null
  description: ''
  max_retries: 120
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 3
- operation_id: TidbService_DeleteTidb
  request_type: http
  request: |-
    {
      "method": "DELETE",
      "path": "/tidbs/{tidbId}",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        }
      },
      "path_params": {
        "tidbId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: null
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 5
