# Go API client for client

TiDB Cloud Console API.

## Overview
This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.  By using the [OpenAPI-spec](https://www.openapis.org/) from a remote server, you can easily generate an API client.

- API version: v1beta1
- Package version: 1.0.0
- Generator version: 7.12.0
- Build package: org.openapitools.codegen.languages.GoClientCodegen

## Installation

Install the following dependencies:

```sh
go get github.com/stretchr/testify/assert
go get golang.org/x/net/context
```

Put the package under your project folder and add the following in import:

```go
import client "github.com/GIT_USER_ID/GIT_REPO_ID"
```

To use a proxy, set the environment variable `HTTP_PROXY`:

```go
os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")
```

## Configuration of Server URL

Default configuration comes with `Servers` field that contains server objects as defined in the OpenAPI specification.

### Select Server Configuration

For using other server than the one defined on index 0 set context value `client.ContextServerIndex` of type `int`.

```go
ctx := context.WithValue(context.Background(), client.ContextServerIndex, 1)
```

### Templated Server URL

Templated server URL is formatted using default variables from configuration or from context value `client.ContextServerVariables` of type `map[string]string`.

```go
ctx := context.WithValue(context.Background(), client.ContextServerVariables, map[string]string{
	"basePath": "v2",
})
```

Note, enum values are always validated and all unused variables are silently ignored.

### URLs Configuration per Operation

Each operation can use different server URL defined using `OperationServers` map in the `Configuration`.
An operation is uniquely identified by `"{classname}Service.{nickname}"` string.
Similar rules for overriding default operation server index and variables applies by using `client.ContextOperationServerIndices` and `client.ContextOperationServerVariables` context maps.

```go
ctx := context.WithValue(context.Background(), client.ContextOperationServerIndices, map[string]int{
	"{classname}Service.{nickname}": 2,
})
ctx = context.WithValue(context.Background(), client.ContextOperationServerVariables, map[string]map[string]string{
	"{classname}Service.{nickname}": {
		"port": "8443",
	},
})
```

## Documentation for API Endpoints

All URIs are relative to */api/v2023/clusterManagement/v1beta1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*ClusterServiceAPI* | [**ClusterServiceAdvancedModifyDedicatedCluster**](docs/ClusterServiceAPI.md#clusterserviceadvancedmodifydedicatedcluster) | **Post** /api/v2023/clusterManagement/v1beta1/clusters/{clusterId}:dedicatedAdvancedModify | 
*ClusterServiceAPI* | [**ClusterServiceCheckModificationRisks**](docs/ClusterServiceAPI.md#clusterservicecheckmodificationrisks) | **Post** /api/v2023/clusterManagement/v1beta1/clusters/{clusterId}:checkModificationRisks | Check if the modification will affect the stability of the cluster
*ClusterServiceAPI* | [**ClusterServiceEstimatePrice**](docs/ClusterServiceAPI.md#clusterserviceestimateprice) | **Post** /api/v2023/clusterManagement/v1beta1/clusters:estimatePrice | Estimate the price for the wanted cluster
*ClusterServiceAPI* | [**ClusterServiceGetCluster**](docs/ClusterServiceAPI.md#clusterservicegetcluster) | **Get** /api/v2023/clusterManagement/v1beta1/clusters/{clusterId} | 
*ClusterServiceAPI* | [**ClusterServiceListClusters**](docs/ClusterServiceAPI.md#clusterservicelistclusters) | **Get** /api/v2023/clusterManagement/v1beta1/clusters | 


## Documentation For Models

 - [AdvancedModifyDedicatedClusterRequestTidbNodeGroupCreate](docs/AdvancedModifyDedicatedClusterRequestTidbNodeGroupCreate.md)
 - [AdvancedModifyDedicatedClusterRequestTidbNodeGroupUpdate](docs/AdvancedModifyDedicatedClusterRequestTidbNodeGroupUpdate.md)
 - [BffclusterManagementv1beta1Cluster](docs/BffclusterManagementv1beta1Cluster.md)
 - [BffclusterManagementv1beta1ListClustersResponse](docs/BffclusterManagementv1beta1ListClustersResponse.md)
 - [CheckModificationRisksResponseRisk](docs/CheckModificationRisksResponseRisk.md)
 - [ClusterClusterType](docs/ClusterClusterType.md)
 - [ClusterManagementv1beta1EstimatePriceRequest](docs/ClusterManagementv1beta1EstimatePriceRequest.md)
 - [ClusterManagementv1beta1EstimatePriceResponse](docs/ClusterManagementv1beta1EstimatePriceResponse.md)
 - [ClusterNodeChangingProgress](docs/ClusterNodeChangingProgress.md)
 - [ClusterServiceAdvancedModifyDedicatedClusterRequest](docs/ClusterServiceAdvancedModifyDedicatedClusterRequest.md)
 - [ClusterServiceCheckModificationRisksBody](docs/ClusterServiceCheckModificationRisksBody.md)
 - [ClusterSpendingLimit](docs/ClusterSpendingLimit.md)
 - [ClusterStorageNodeSettingStorageType](docs/ClusterStorageNodeSettingStorageType.md)
 - [Commonv1beta1ClusterState](docs/Commonv1beta1ClusterState.md)
 - [Commonv1beta1Region](docs/Commonv1beta1Region.md)
 - [Commonv1beta1ServicePlan](docs/Commonv1beta1ServicePlan.md)
 - [Dedicatedv1beta1ClusterPausePlan](docs/Dedicatedv1beta1ClusterPausePlan.md)
 - [Dedicatedv1beta1ClusterPausePlanType](docs/Dedicatedv1beta1ClusterPausePlanType.md)
 - [Dedicatedv1beta1ComponentType](docs/Dedicatedv1beta1ComponentType.md)
 - [Dedicatedv1beta1TidbNodeGroup](docs/Dedicatedv1beta1TidbNodeGroup.md)
 - [Dedicatedv1beta1TidbNodeGroupEndpoint](docs/Dedicatedv1beta1TidbNodeGroupEndpoint.md)
 - [Dedicatedv1beta1TidbNodeGroupState](docs/Dedicatedv1beta1TidbNodeGroupState.md)
 - [Dedicatedv1beta1TidbNodeGroupTiProxySetting](docs/Dedicatedv1beta1TidbNodeGroupTiProxySetting.md)
 - [EndpointsPrivate](docs/EndpointsPrivate.md)
 - [EndpointsPublic](docs/EndpointsPublic.md)
 - [EndpointsPublicAuthorizedNetwork](docs/EndpointsPublicAuthorizedNetwork.md)
 - [EstimatePriceResponsePrice](docs/EstimatePriceResponsePrice.md)
 - [GooglerpcStatus](docs/GooglerpcStatus.md)
 - [PrivateALICLOUD](docs/PrivateALICLOUD.md)
 - [PrivateAWS](docs/PrivateAWS.md)
 - [PrivateGCP](docs/PrivateGCP.md)
 - [ProtobufAny](docs/ProtobufAny.md)
 - [Serverlessv1beta1ClusterHighAvailabilityType](docs/Serverlessv1beta1ClusterHighAvailabilityType.md)
 - [TidbCloudOpenApidedicatedv1beta1Cluster](docs/TidbCloudOpenApidedicatedv1beta1Cluster.md)
 - [TidbCloudOpenApiserverlessv1beta1Cluster](docs/TidbCloudOpenApiserverlessv1beta1Cluster.md)
 - [V1beta1AdvancedModifyDedicatedClusterRequestCluster](docs/V1beta1AdvancedModifyDedicatedClusterRequestCluster.md)
 - [V1beta1AdvancedModifyDedicatedClusterRequestTidbNodeSetting](docs/V1beta1AdvancedModifyDedicatedClusterRequestTidbNodeSetting.md)
 - [V1beta1CheckModificationRisksResponse](docs/V1beta1CheckModificationRisksResponse.md)
 - [V1beta1ClusterAuditLogConfig](docs/V1beta1ClusterAuditLogConfig.md)
 - [V1beta1ClusterAutoScaling](docs/V1beta1ClusterAutoScaling.md)
 - [V1beta1ClusterAutomatedBackupPolicy](docs/V1beta1ClusterAutomatedBackupPolicy.md)
 - [V1beta1ClusterEncryptionConfig](docs/V1beta1ClusterEncryptionConfig.md)
 - [V1beta1ClusterEndpoints](docs/V1beta1ClusterEndpoints.md)
 - [V1beta1ClusterStorageNodeSetting](docs/V1beta1ClusterStorageNodeSetting.md)
 - [V1beta1ClusterTidbNodeSetting](docs/V1beta1ClusterTidbNodeSetting.md)
 - [V1beta1RegionCloudProvider](docs/V1beta1RegionCloudProvider.md)
 - [V1beta1TidbNodeGroupEndpointConnectionType](docs/V1beta1TidbNodeGroupEndpointConnectionType.md)
 - [V1beta1UpdateClusterRequestStorageNodeSetting](docs/V1beta1UpdateClusterRequestStorageNodeSetting.md)


## Documentation For Authorization

Endpoints do not require authorization.


## Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains
a number of utility functions to easily obtain pointers to values of basic types.
Each of these functions takes a value of the given basic type and returns a pointer to it:

* `PtrBool`
* `PtrInt`
* `PtrInt32`
* `PtrInt64`
* `PtrFloat`
* `PtrFloat32`
* `PtrFloat64`
* `PtrString`
* `PtrTime`

## Author



