scenario:
  id: 332a2656-47a7-4107-a1c6-0ddf5d36f3d0
  context:
    auth:
      type: digest
    base_path: /v1beta1
    host: null
  description: Run canceled and completed SQL imports against a TiDB Cloud Starter cluster.
  name: starter_import
steps:
- operation_id: ClusterService_ListRegions
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/regions",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.regions.size() > 0"
    }
  save: null
  description: ''
  max_retries: 10
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 0
- operation_id: ClusterService_ListClusters
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/clusters",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.totalSize >= 0"
    }
  save: null
  description: ''
  max_retries: 10
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 1
# region name unmatched `string^regions/(aws|alicloud)-(.+)$` is OK too
- operation_id: ClusterService_CreateCluster
  request_type: http
  request: |-
    {
      "method": "POST",
      "path": "/clusters",
      "headers": {},
      "query_params": {},
      "body": {
        "displayName": "e2e-starter-import",
        "region": {
          "name": "{regionId}"
        },
        "rootPassword": "pi31415926536",
        "endpoints": {
          "public": {
            "authorizedNetworks": [
              {
                "startIpAddress": "0.0.0.0",
                "endIpAddress": "255.255.255.255",
                "displayName": "AllowAll"
              }
            ]
          }
        },
        "labels": {
          "tidb.cloud/project": "{projectId}"
        }
      },
      "body_params": {
        "projectId": "project_id",
        "regionId": "region_id"
      },
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "cluster_1",
          "eval": "body.clusterId"
        }
      ]
    }
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 2
- operation_id: ClusterService_GetCluster
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/clusters/{clusterId}?view=FULL",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == 'ACTIVE' && body.servicePlan == 'Starter' && body.endpoints.public.host != '' && body.userPrefix != ''"
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "user_prefix",
          "eval": "body.userPrefix"
        },
        {
          "key": "public_endpoint",
          "eval": "body.endpoints.public.host"
        },
        {
          "key": "public_port",
          "eval": "body.endpoints.public.port"
        }
      ]
    }
  description: ''
  max_retries: 10
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 3
- operation_id: ClusterService_ListImports
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/clusters/{clusterId}/imports",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.totalSize == 0"
    }
  save: null
  description: ''
  max_retries: 10
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 4
- operation_id: ImportService_CreateImport
  request_type: http
  request: |-
    {
      "method": "POST",
      "path": "/clusters/{clusterId}/imports",
      "headers": {},
      "query_params": {},
      "body": {
        "importOptions": {
          "fileType": "SQL"
        },
        "source": {
          "type": "S3",
          "s3": {
            "uri": "s3://llm-operated/import/",
            "authType": "ROLE_ARN",
            "roleArn": "arn:aws:iam::024848481520:role/autonomous-llm-e2e"
          }
        }
      },
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "import_1",
          "eval": "body.importId"
        }
      ]
    }
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 5
- operation_id: ImportService_CancelImport
  request_type: http
  request: |-
    {
      "method": "POST",
      "path": "/clusters/{clusterId}/imports/{importId}:cancel",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1",
        "importId": "import_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: 6
- operation_id: ImportService_GetImport
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/clusters/{clusterId}/imports/{importId}",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1",
        "importId": "import_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == 'CANCELED'"
    }
  save: null
  description: ''
  max_retries: 20
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 7
- operation_id: ImportService_CreateImport
  request_type: http
  request: |-
    {
      "method": "POST",
      "path": "/clusters/{clusterId}/imports",
      "headers": {},
      "query_params": {},
      "body": {
        "importOptions": {
          "fileType": "SQL"
        },
        "source": {
          "type": "S3",
          "s3": {
            "uri": "s3://llm-operated/import/",
            "authType": "ROLE_ARN",
            "roleArn": "arn:aws:iam::024848481520:role/autonomous-llm-e2e"
          }
        }
      },
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": ""
    }
  save: |-
    {
      "placeholder": [
        {
          "key": "import_2",
          "eval": "body.importId"
        }
      ]
    }
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 8
- operation_id: ImportService_GetImport
  request_type: http
  request: |-
    {
      "method": "GET",
      "path": "/clusters/{clusterId}/imports/{importId}",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "cluster_1",
        "importId": "import_2"
      }
    }
  expect: |-
    {
      "status_code": 200,
      "cel": "body.state == 'COMPLETED'"
    }
  save: null
  description: ''
  max_retries: 20
  delay_after: 30
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 9
- operation_id: ExecuteSQL
  request_type: cmd_mysqlsh
  request: |-
    {
      "args": [
        "mysql://{user_prefix}.root:pi31415926536@{public_endpoint}:{public_port}/test",
        "--sql",
        "--result-format=json",
        "-e",
        "SELECT value FROM tt WHERE name = 'test1';",
        "--quiet-start=2"
      ],
      "args_params": {
        "user_prefix": "user_prefix",
        "public_endpoint": "public_endpoint",
        "public_port": "public_port"
      },
      "name": "mysqlsh"
    }
  expect: |-
    {
      "exit_code": 0,
      "cel": "output.value == 100"
    }
  save: null
  description: ''
  max_retries: 0
  delay_after: 0
  name: ''
  continue_on_unexpected: false
  stage: ''
  meta: '{}'
  generation_id: ''
  order: 10
- operation_id: ClusterService_DeleteCluster
  request_type: http
  request: |-
    {
      "method": "DELETE",
      "path": "/clusters/{clusterId}",
      "headers": {},
      "query_params": {},
      "body": {},
      "auth": {
        "auth_type": "digest",
        "content": {
          "public_key": "placeholder",
          "private_key": "placeholder"
        }
      },
      "path_params": {
        "clusterId": "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: 11
