- delay_after: 0
  description: Transition cluster from NOT_EXIST to CREATING
  expect: |-
    {
      "status_code": 200,
      "cel_expr": "body.state == \"CREATING\""
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "method": "POST",
      "path": "/clusters",
      "body": {
        "displayName": "manual-scenario",
        "regionId": "{regionId}",
        "labels": {
          "tidb.cloud/project": "{projectId}"
        },
        "tidbNodeSetting": {
          "nodeSpecKey": "8C16G",
          "tidbNodeGroups": [
            {
              "nodeCount": 2
            }
          ]
        },
        "tikvNodeSetting": {
          "nodeCount": 3,
          "nodeSpecKey": "8C32G",
          "storageSizeGi": 200,
          "storageType": "BASIC"
        },
        "port": 4000,
        "rootPassword": "31415926"
      },
      "body_params": {
        "regionId": "region_id",
        "projectId": "project_id"
      }
    }
  max_retries: 0
  name: create_cluster_cluster_NOT_EXIST_to_CREATING
  operation: ClusterService_CreateCluster
  request_type: http
  case_id: c37f522f5754a26096985d8962f63afe
  step_type: generated
  order: 0.0
  generation_id: abcf522f5754a26096985d8962f63abc
  save: |-
    {
      "placeholder": [
        {
          "key": "cluster_1",
          "eval": "body.clusterId"
        }
      ]
    }
- delay_after: 0
  description: Successfully get a specified dedicated cluster by id.
  expect: |-
    {
      "status_code": 200
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "method": "GET",
      "path": "/clusters/{clusterId}",
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  max_retries: 0
  name: ClusterService_GetCluster_c37f522f
  operation: ClusterService_GetCluster
  request_type: http
  case_id: c37f522f5754a26096985d8962f63aaa
  step_type: defined
  order: 1.0
  generation_id: abcf522f5754a26096985d8962f63abc
- delay_after: 0
  description: Successfully get a specified dedicated cluster by id.
  expect: |-
    {
      "status_code": 200
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "method": "GET",
      "path": "/clusters/{clusterId}",
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  max_retries: 0
  name: ClusterService_GetCluster_c37f522f
  operation: ClusterService_GetCluster
  request_type: http
  case_id: c37f522f5754a26096985d8962f63aaa
  step_type: defined
  order: 2.0
  generation_id: abcf522f5754a26096985d8962f63abc
- delay_after: 60
  description: Transition cluster from CREATING to AVAILABLE
  expect: |-
    {
      "status_code": 200,
      "cel_expr": "body.state == \"ACTIVE\""
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "method": "GET",
      "path": "/clusters/{clusterId}",
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  max_retries: 10
  name: wait_for_cluster_available_cluster_CREATING_to_AVAILABLE
  operation: ClusterService_GetCluster
  request_type: http
  case_id: c37f522f5754a26096985d8962f63aab
  step_type: generated
  order: 3.0
  generation_id: abcf522f5754a26096985d8962f63abc
- delay_after: 0
  description: Transition nodegroup from NOT_EXIST to CREATING
  expect: |-
    {
      "status_code": 200
    }
  request: |-
    {
      "auth": {
        "type": "digest",
        "content": {
            "public_key": "placeholder",
            "private_key": "placeholder"
        }
      },
      "method": "POST",
      "path": "/clusters/{clusterId}/tidbNodeGroups",
      "path_params": {
        "clusterId": "cluster_1"
      },
      "body": {
        "displayName": "newnodegroup",
        "nodeCount": 2
      }
    }
  max_retries: 0
  name: create_nodegroup_nodegroup_NOT_EXIST_to_CREATING
  operation: NodeGroupService_CreateNodeGroup
  request_type: http
  case_id: c37f522f5754a26096985d8962f65cfe
  save: |-
    {
      "placeholder": [
        {
          "key": "nodegroup_1",
          "eval": "body.tidbNodeGroupId"
        }
      ]
    }
  step_type: generated
  order: 4.0
  generation_id: abcf522f5754a26096985d8962f63abc
- delay_after: 60
  description: Transition nodegroup from CREATING to AVAILABLE
  expect: |-
    {
      "status_code": 200,
      "cel_expr": "body.state == \"ACTIVE\""
    }
  request: |-
    {
      "auth": {
        "type": "digest",
        "content": {
            "public_key": "placeholder",
            "private_key": "placeholder"
        }
      },
      "method": "GET",
      "path": "/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}",
      "path_params": {
        "clusterId": "cluster_1",
        "tidbNodeGroupId": "nodegroup_1"
      }
    }
  max_retries: 10
  name: wait_for_nodegroup_available_nodegroup_CREATING_to_AVAILABLE
  operation: NodeGroupService_GetNodeGroup
  request_type: http
  case_id: c37f522f5754a26096985d8962f65eff
  step_type: generated
  order: 5.0
  generation_id: abcf522f5754a26096985d8962f63abc
- delay_after: 60
  description: Wait privateLinkServiceReady
  expect: |-
    {
      "status_code": 200,
      "cel_expr": "body.state == \"ACTIVE\""
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "method": "GET",
      "path": "/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}/privateLinkService",
      "path_params": {
        "clusterId": "cluster_1",
        "tidbNodeGroupId": "nodegroup_1"
      }
    }
  max_retries: 10
  name: wait_for_privatelinkservice_available_privatelink_CREATING_to_AVAILABLE
  operation: PrivateEndpointConnectionService_GetPrivateEndpointConnection
  request_type: http
  case_id: c37f522f5754a26096985d8962f66bfd
  step_type: generated
  order: 8.0
  generation_id: abcf522f5754a26096985d8962f63abc
  save: |-
    {
      "placeholder": [
        {
          "key": "tidb_pls_name",
          "eval": "body.serviceName"
        }
      ]
    }
- delay_after: 0
  description: Create VPC Endpoint
  expect: |-
    {
      "exist_code": 0
    }
  request: |-
    {
      "name": "az",
      "args": [
        "network", "private-endpoint", "create",
        "--resource-group", "e2e-fuzzy-openapi-eastus2",
        "--name", "e2e-scenario-private-endpoint-foo",
        "--subnet", "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/e2e-fuzzy-openapi-eastus2/providers/Microsoft.Network/virtualNetworks/e2e-fuzzy-openapi-eastus2/subnets/default",
        "--private-connection-resource-id", "{tidb_pls_name}",
        "--connection-name", "e2e-scenario-private-endpoint-foo-conn",
        "--nic-name", "e2e-scenario-private-endpoint-foo-nic",
        "--location", "eastus2"
      ],
      "args_params": {
        "tidb_pls_name": "placeholder"
      }
    }
  max_retries: 0
  name: create_vpcEndpoint
  operation: AZURE_CreatePrivateEndpoint
  request_type: cmd_azure
  case_id: create_private_endpoint_in_azure
  step_type: generated
  order: 8.1
  generation_id: abcf522f5754a26096985d8962f63abc
  save: |-
    {
      "placeholder": [
        {
          "key": "customer_endpoint_id",
          "eval": "output.id"
        }
      ]
    }
- delay_after: 0
  description: Get PrivateIPAddress
  expect: |-
    {
      "exist_code": 0
    }
  request: |-
    {
      "name": "az",
      "args": [
        "network", "nic", "show",
        "--resource-group", "e2e-fuzzy-openapi-eastus2",
        "--name", "e2e-scenario-private-endpoint-foo-nic",
        "--query", "ipConfigurations[0]"
      ]
    }
  max_retries: 0
  name: get_private_ip_address
  operation: AZURE_GetPrivateIPAddress
  request_type: cmd_azure
  case_id: get_private_ip_address_in_azure
  step_type: generated
  order: 8.1
  generation_id: abcf522f5754a26096985d8962f63abc
  save: |-
    {
      "placeholder": [
        {
          "key": "customer_private_ip_addr",
          "eval": "output.privateIpAddress"
        }
      ]
    }
- delay_after: 0
  description: Successfully create a private endpoint connection of a specified
    TiDB Node Group.
  expect: |-
    {
      "status_code": 200
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "body": {
        "endpointId": "{endpointId}",
        "privateIpAddress": "{privateIpAddress}"
      },
      "body_params": {
        "endpointId": "customer_endpoint_id",
        "privateIpAddress": "customer_private_ip_addr"
      },
      "method": "POST",
      "path": "/clusters/{clusterId}/tidbNodeGroups/{tidbNodeGroupId}/privateEndpointConnections",
      "path_params": {
        "clusterId": "cluster_1",
        "tidbNodeGroupId": "nodegroup_1"
      }
    }
  max_retries: 0
  name: PrivateEndpointConnectionService_CreatePrivateEndpointConnection_c37f522f
  operation: PrivateEndpointConnectionService_CreatePrivateEndpointConnection
  request_type: http
  case_id: c37f522f5754a26096985d8962f66bfe
  step_type: defined
  order: 8.2
  generation_id: abcf522f5754a26096985d8962f63abc
- delay_after: 0
  description: Transition cluster from AVAILABLE to DELETED
  expect: |-
    {
      "status_code": 200
    }
  request: |-
    {
      "auth": {
        "content": {
          "private_key": "placeholder",
          "public_key": "placeholder"
        },
        "type": "digest"
      },
      "method": "DELETE",
      "path": "/clusters/{clusterId}",
      "path_params": {
        "clusterId": "cluster_1"
      }
    }
  max_retries: 0
  name: delete_cluster_cluster_AVAILABLE_to_DELETED
  operation: ClusterService_DeleteCluster
  request_type: http
  case_id: c37f522f5754a26096985d8962f63abb
  step_type: generated
  order: 9.0
  generation_id: abcf522f5754a26096985d8962f63abc
# az network private-endpoint create xxx
# {
#   "customDnsConfigs": [],
#   "customNetworkInterfaceName": "",
#   "etag": "W/\"cfa7676a-3f5c-432c-81a6-a9191ddbc40a\"",
#   "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/privateEndpoints/foo",
#   "ipConfigurations": [],
#   "location": "eastus2",
#   "manualPrivateLinkServiceConnections": [],
#   "name": "foo",
#   "networkInterfaces": [
#     {
#       "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/networkInterfaces/foo.nic.fee73fdf-b7ea-464f-ae36-fa460b993bed",
#       "resourceGroup": "shenjun-test"
#     }
#   ],
#   "privateLinkServiceConnections": [
#     {
#       "etag": "W/\"cfa7676a-3f5c-432c-81a6-a9191ddbc40a\"",
#       "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/privateEndpoints/foo/privateLinkServiceConnections/foo-conn",
#       "name": "foo-conn",
#       "privateLinkServiceConnectionState": {
#         "actionsRequired": "None",
#         "description": "Auto Approved",
#         "status": "Approved"
#       },
#       "privateLinkServiceId": "/subscriptions/99549169-6cee-4263-8491-924a3011ee31/resourceGroups/dedicated-staging-eastus2-7851c4cbc364963dfd9271-41a66ec2/providers/Microsoft.Network/privateLinkServices/1867096593472163840",
#       "provisioningState": "Succeeded",
#       "resourceGroup": "shenjun-test",
#       "type": "Microsoft.Network/privateEndpoints/privateLinkServiceConnections"
#     }
#   ],
#   "provisioningState": "Succeeded",
#   "resourceGroup": "shenjun-test",
#   "subnet": {
#     "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/virtualNetworks/shenjun-test-eastus2/subnets/default",
#     "resourceGroup": "shenjun-test"
#   },
#   "type": "Microsoft.Network/privateEndpoints"
# }
    #
# az network nic show --ids /subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/networkInterfaces/foo.nic.fee73fdf-b7ea-464f-ae36-fa460b993bed
# {
#   "auxiliaryMode": "None",
#   "auxiliarySku": "None",
#   "disableTcpStateTracking": false,
#   "dnsSettings": {
#     "appliedDnsServers": [],
#     "dnsServers": [],
#     "internalDomainNameSuffix": "l0zkbed4krleheg3u0wwzohpof.cx.internal.cloudapp.net"
#   },
#   "enableAcceleratedNetworking": false,
#   "enableIPForwarding": false,
#   "etag": "W/\"a1e7410d-dec4-4f6d-ac52-d047da2d1c10\"",
#   "hostedWorkloads": [],
#   "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/networkInterfaces/foo.nic.fee73fdf-b7ea-464f-ae36-fa460b993bed",
#   "ipConfigurations": [
#     {
#       "etag": "W/\"a1e7410d-dec4-4f6d-ac52-d047da2d1c10\"",
#       "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/networkInterfaces/foo.nic.fee73fdf-b7ea-464f-ae36-fa460b993bed/ipConfigurations/privateEndpointIpConfig.4fd4c583-627a-43bc-8777-a1b346b23389",
#       "name": "privateEndpointIpConfig.4fd4c583-627a-43bc-8777-a1b346b23389",
#       "primary": true,
#       "privateIPAddress": "172.22.0.4",
#       "privateIPAddressVersion": "IPv4",
#       "privateIPAllocationMethod": "Dynamic",
#       "privateLinkConnectionProperties": {
#         "fqdns": [],
#         "groupId": "",
#         "requiredMemberName": ""
#       },
#       "provisioningState": "Succeeded",
#       "resourceGroup": "shenjun-test",
#       "subnet": {
#         "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/virtualNetworks/shenjun-test-eastus2/subnets/default",
#         "resourceGroup": "shenjun-test"
#       },
#       "type": "Microsoft.Network/networkInterfaces/ipConfigurations"
#     }
#   ],
#   "location": "eastus2",
#   "macAddress": "",
#   "name": "foo.nic.fee73fdf-b7ea-464f-ae36-fa460b993bed",
#   "nicType": "Standard",
#   "privateEndpoint": {
#     "id": "/subscriptions/85b598b9-a080-4476-bc96-ba89e64f92d1/resourceGroups/shenjun-test/providers/Microsoft.Network/privateEndpoints/foo",
#     "resourceGroup": "shenjun-test"
#   },
#   "provisioningState": "Succeeded",
#   "resourceGroup": "shenjun-test",
#   "resourceGuid": "4597592f-1a4f-405a-b2f0-fa5b96ed2017",
#   "tapConfigurations": [],
#   "type": "Microsoft.Network/networkInterfaces",
#   "vnetEncryptionSupported": false
# }
