Documentation
¶
Index ¶
- func DeleteInstance(client *golangsdk.ServiceClient, instanceId string) (*string, error)
- func DeleteReplica(client *golangsdk.ServiceClient, instanceId string, nodeId string) (*string, error)
- func ResetPassword(client *golangsdk.ServiceClient, opts ResetPwdOpts) (err error)
- func UpdateName(client *golangsdk.ServiceClient, opts UpdateNameOpts) (*string, error)
- type BackupStrategy
- type ChargeInfo
- type CreateInstanceOpts
- type CreateInstanceResponse
- type CreateNodeOpts
- type CreateNodeResponse
- type Datastore
- type FlavorInfo
- type GetInstanceInfo
- type InstResponse
- type InstanceSpecResponse
- type InstancesListInfo
- type ListInstancesOpts
- type ListInstancesResponse
- type MysqlTags
- type MysqlVolume
- type NodeInfo
- type NodeVolumeInfo
- type Proxies
- type ResetPwdOpts
- type ResizeFlavor
- type TagItem
- type UpdateNameOpts
- type UpdateSpecOpts
- type VolumeInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DeleteInstance ¶
func DeleteInstance(client *golangsdk.ServiceClient, instanceId string) (*string, error)
DeleteInstance return ID of DB instance deletion task
func DeleteReplica ¶
func ResetPassword ¶
func ResetPassword(client *golangsdk.ServiceClient, opts ResetPwdOpts) (err error)
func UpdateName ¶
func UpdateName(client *golangsdk.ServiceClient, opts UpdateNameOpts) (*string, error)
Types ¶
type BackupStrategy ¶
type BackupStrategy struct {
// Automated backup start time. The automated backup will be triggered within one hour after the time specified by this parameter.
// The value cannot be empty. It must be a valid value in the "hh:mm-HH:MM" format. The current time is in the UTC format.
// The HH value must be 1 greater than the hh value.
// The values of mm and MM must be the same and must be set to 00.
// Example value: 21:00-22:00
StartTime string `json:"start_time"`
// Automated backup retention days. The value ranges from 1 to 732.
KeepDays string `json:"keep_days,omitempty"`
}
type ChargeInfo ¶
type CreateInstanceOpts ¶
type CreateInstanceOpts struct {
// Billing mode
ChargeInfo *ChargeInfo `json:"charge_info,omitempty"`
// Region ID The value cannot be empty. To obtain this value, see Regions and Endpoints.
Region string `json:"region" required:"true"`
// Instance name Instances of the same type can have same names under the same tenant.
// The name consists of 4 to 64 characters and starts with a letter.
// It is case-sensitive and can contain only letters, digits, hyphens (-), and underscores (_).
Name string `json:"name" required:"true"`
// Database information
Datastore Datastore `json:"datastore" required:"true"`
// Instance type, which is case-insensitive. Currently, its value can only be Cluster.
Mode string `json:"mode" required:"true"`
// Specification code. For details, see Querying Database Specifications.
FlavorRef string `json:"flavor_ref" required:"true"`
// VPC ID. To obtain this value, use either of the following methods:
// Method 1: Log in to the VPC console and view the VPC ID on the VPC details page.
// Method 2: See section "Querying VPCs" in the Virtual Private Cloud API Reference.
VpcId string `json:"vpc_id" required:"true"`
// Network ID of the subnet. To obtain this value, use either of the following methods:
// Method 1: Log in to the VPC console and click the target subnet on the Subnets page to view the network ID on the displayed page.
// Method 2: See section "Querying Subnets" in the Virtual Private Cloud API Reference.
SubnetId string `json:"subnet_id" required:"true"`
// Security group ID If the network ACL is enabled for the subnet used by the created instance, this parameter is optional.
// If the network ACL is not enabled, this parameter is mandatory.
// Method 1: Log in to VPC console. Choose Access Control > Security Groups in the navigation pane on the left.
// On the displayed page, click the target security group. You can view the security group ID on the displayed page.
// Method 2: See section "Querying Security Groups" in the Virtual Private Cloud API Reference.
SecurityGroupId string `json:"security_group_id,omitempty"`
// Parameter template ID
ConfigurationId string `json:"configuration_id,omitempty"`
// Database password. Value range: The password consists of 8 to 32 characters and contains at least three types of the following:
// uppercase letters, lowercase letters, digits, and special characters (~!@#%^*-_=+?).
// Enter a strong password to improve security, preventing security risks such as brute force cracking.
// If you enter a weak password, the system automatically determines that the password is invalid.
Password string `json:"password" required:"true"`
// Automated backup policy
BackupStrategy *BackupStrategy `json:"backup_strategy,omitempty"`
// UTC time zone. l If this parameter is not specified, UTC is used by default.
// If this parameter is specified, the value ranges from UTC-12:00 to UTC+12:00 at the full hour.
// For example, the parameter can be UTC+08:00 rather than UTC+08:30.
TimeZone string `json:"time_zone,omitempty"`
// AZ type. The value can be Single or multi.
AvailabilityZoneMode string `json:"availability_zone_mode"`
// Primary AZ
MasterAvailabilityZone string `json:"master_availability_zone,omitempty"`
// Number of created read replicas. The value ranges from 1 to 9. An instance contains up to 15 read replicas.
SlaveCount *int `json:"slave_count"`
// Volume information.
// Missing in documentation
Volume *MysqlVolume `json:"volume,omitempty"`
// Tag list. Instances are created based on tag keys and values.
// {key} indicates the tag key. It must be unique and cannot be empty.
// {value} indicates the tag value, which can be empty. To create instances with multiple tag keys and values,
// separate key-value pairs with commas (,). Up to 10 key-value pairs can be added.
Tags []MysqlTags `json:"tags,omitempty"`
// Dedicated resource pool ID. This parameter can be displayed only after the dedicated resource pool is enabled.
DedicatedResourceId string `json:"dedicated_resource_id,omitempty"`
}
type CreateInstanceResponse ¶
type CreateInstanceResponse struct {
// Instance information
Instance InstResponse `json:"instance"`
// Instance creation task ID This parameter is returned only for the creation of pay-per-use instances.
JobId string `json:"job_id"`
}
func CreateInstance ¶
func CreateInstance(client *golangsdk.ServiceClient, opts CreateInstanceOpts) (*CreateInstanceResponse, error)
type CreateNodeOpts ¶
type CreateNodeResponse ¶
type CreateNodeResponse struct {
// Instance ID
InstanceId string `json:"instance_id"`
// Node name list
NodeNames []string `json:"node_names"`
// Instance creation task ID
// This parameter is returned only for the creation of pay-per-use instances.
JobId string `json:"job_id"`
// Order ID. This parameter is returned only for the creation of yearly/monthly instances.
OrderId string `json:"order_id"`
}
func CreateReplica ¶
func CreateReplica(client *golangsdk.ServiceClient, opts CreateNodeOpts) (*CreateNodeResponse, error)
type FlavorInfo ¶
type GetInstanceInfo ¶
type GetInstanceInfo struct {
// Instance ID
Id string `json:"id"`
// Project ID of a tenant in a region
ProjectId string `json:"project_id"`
// DB instance remarks
Alias string `json:"alias"`
// The number of nodes.
NodeCount int `json:"node_count"`
// Instance name
Name string `json:"name"`
// Instance status
Status string `json:"status"`
// Private IP address for write It is a blank string until an ECS is created.
PrivateIps []string `json:"private_ips"`
// Public IP address string
PublicIps string `json:"public_ips"`
// Database port
Port string `json:"port"`
// Instance type. The value is Cluster.
Type string `json:"type"`
// Region where the instance is deployed
Region string `json:"region"`
// Database information
Datastore Datastore `json:"datastore"`
// Used backup space in GB
BackupUsedSpace float64 `json:"backup_used_space"`
// Creation time in the "yyyy-mm-ddThh:mm:ssZ" format.
// T is the separator between the calendar and the hourly notation of time.
// Z indicates the time zone offset. For example, for French Winter Time (FWT), the time offset is shown as +0200.
// The value is empty unless the instance creation is complete.
Created string `json:"created"`
// Update time. The format is the same as that of the created field.
// The value is empty unless the instance creation is complete.
Updated string `json:"updated"`
// Private IP address for write
PrivateWriteIps []string `json:"private_write_ips"`
// Default username
DbUserName string `json:"db_user_name"`
// VPC ID
VpcId string `json:"vpc_id"`
// Network ID of the subnet
SubnetId string `json:"subnet_id"`
// Security group ID
SecurityGroupId string `json:"security_group_id"`
// ID of the parameter template used for creating an instance or ID of the latest parameter template that is applied to an instance.
ConfigurationId string `json:"configuration_id"`
// Specification code
FlavorRef string `json:"flavor_ref"`
// Specification description
FlavorInfo FlavorInfo `json:"flavor_info"`
// Node information
Nodes *[]NodeInfo `json:"nodes"`
// AZ type. It can be single or multi.
AzMode string `json:"az_mode"`
// Primary AZ
MasterAzCode string `json:"master_az_code"`
// Maintenance window in the UTC format
MaintenanceWindow string `json:"maintenance_window"`
// Storage disk information
Volume VolumeInfo `json:"volume"`
// Backup policy
BackupStrategy BackupStrategy `json:"backup_strategy"`
// Time zone
TimeZone string `json:"time_zone"`
// Billing mode, which is yearly/monthly or pay-per-use (default setting).
ChargeInfo ChargeInfo `json:"charge_info"`
// Dedicated resource pool ID. This parameter is returned only when the instance belongs to a dedicated resource pool.
DedicatedResourceId string `json:"dedicated_resource_id"`
// Tag list
Tags []TagItem `json:"tags"`
// Proxy information
Proxies *[]Proxies `json:"proxies"`
}
func GetInstance ¶
func GetInstance(client *golangsdk.ServiceClient, id string) (*GetInstanceInfo, error)
type InstResponse ¶
type InstResponse struct {
// Instance ID
Id string `json:"id"`
// Instance name. Instances of the same type can have same names under the same tenant.
// The name consists of 4 to 64 characters and starts with a letter.
// It is case-insensitive and contains only letters, digits, hyphens (-), and underscores (_).
Name string `json:"name"`
// Instance status Value: creating.
Status string `json:"status"`
// Database information
Datastore Datastore `json:"datastore"`
// Instance type. Currently, only the cluster type is supported.
Mode string `json:"mode"`
// Parameter template ID.
ConfigurationId string `json:"configuration_id"`
// Database port, which is the same as the request parameter.
Port string `json:"port"`
// Automated backup policy
BackupStrategy BackupStrategy `json:"backup_strategy"`
// Region ID, which is the same as the request parameter.
Region string `json:"region"`
// AZ mode, which is the same as the request parameter.
AvailabilityZoneMode string `json:"availability_zone_mode"`
// Primary AZ ID.
MasterAvailabilityZone string `json:"master_availability_zone"`
// VPC ID, which is the same as the request parameter.
VpcId string `json:"vpc_id"`
// Security group ID, which is the same as the request parameter.
SecurityGroupId string `json:"security_group_id"`
// Subnet ID, which is the same as the request parameter.
SubnetId string `json:"subnet_id"`
// Specification code, which is the same as the request parameter.
FlavorRef string `json:"flavor_ref"`
// Billing mode, which is yearly/monthly or pay-per-use (default setting).
ChargeInfo ChargeInfo `json:"charge_info"`
}
type InstanceSpecResponse ¶
type InstanceSpecResponse struct {
// Job ID for changing instance specifications.
// This parameter is returned only when you change the specifications of a pay-per-use instance.
JobId string `json:"job_id"`
// Order ID for changing instance specifications.
// This parameter is returned only when you change the specification of a yearly/monthly instance.
OrderId string `json:"order_id"`
}
func UpdateInstance ¶
func UpdateInstance(client *golangsdk.ServiceClient, opts UpdateSpecOpts) (*InstanceSpecResponse, error)
type InstancesListInfo ¶
type InstancesListInfo struct {
// Instance ID
Id string `json:"id"`
// Project ID of a tenant in a region
ProjectId string `json:"project_id"`
// The number of nodes.
NodeCount int `json:"node_count"`
// Instance name
Name string `json:"name"`
// Instance status
Status string `json:"status"`
// Private IP address for write It is a blank string until an ECS is created.
PrivateIps []string `json:"private_ips"`
// Public IP address list
PublicIps []string `json:"public_ips"`
// Database port
Port string `json:"port"`
// Instance type. The value is Cluster.
Type string `json:"type"`
// Region where the instance is deployed
Region string `json:"region"`
// Database information
Datastore Datastore `json:"datastore"`
// Used backup space in GB
BackupUsedSpace float64 `json:"backup_used_space"`
// Creation time in the "yyyy-mm-ddThh:mm:ssZ" format.
// T is the separator between the calendar and the hourly notation of time.
// Z indicates the time zone offset. For example, for French Winter Time (FWT), the time offset is shown as +0200.
// The value is empty unless the instance creation is complete.
Created string `json:"created"`
// Update time. The format is the same as that of the created field.
// The value is empty unless the instance creation is complete.
Updated string `json:"updated"`
// Private IP address for write
PrivateWriteIps []string `json:"private_write_ips"`
// Default username
DbUserName string `json:"db_user_name"`
// VPC ID
VpcId string `json:"vpc_id"`
// Network ID of the subnet
SubnetId string `json:"subnet_id"`
// Security group ID
SecurityGroupId string `json:"security_group_id"`
// ID of the parameter template used for creating an instance or ID of the latest parameter template that is applied to an instance.
ConfigurationId string `json:"configuration_id"`
// Specification code
FlavorRef string `json:"flavor_ref"`
// Specification description
FlavorInfo FlavorInfo `json:"flavor_info"`
// AZ type. It can be single or multi.
AzMode string `json:"az_mode"`
// Primary AZ
MasterAzCode string `json:"master_az_code"`
// Maintenance window in the UTC format
MaintenanceWindow string `json:"maintenance_window"`
// Storage disk information
Volume VolumeInfo `json:"volume"`
// Backup policy
BackupStrategy BackupStrategy `json:"backup_strategy"`
// Time zone
TimeZone string `json:"time_zone"`
// Billing mode, which is yearly/monthly or pay-per-use (default setting).
ChargeInfo ChargeInfo `json:"charge_info"`
// Dedicated resource pool ID. This parameter is returned only when the instance belongs to a dedicated resource pool.
DedicatedResourceId string `json:"dedicated_resource_id"`
// Tag list
Tags []TagItem `json:"tags"`
}
type ListInstancesOpts ¶
type ListInstancesOpts struct {
// Instance ID The asterisk (*) is reserved for the system. If the instance ID starts with *,
// it indicates that fuzzy match is performed based on the value following *.
// Otherwise, the exact match is performed based on the instance ID. The value cannot contain only asterisks (*).
Id string `json:"id,omitempty"`
// Instance name The asterisk (*) is reserved for the system. If the instance name starts with *,
// it indicates that fuzzy match is performed based on the value following *.
// Otherwise, the exact match is performed based on the instance name. The value cannot contain only asterisks (*).
Name string `json:"name,omitempty"`
// Instance type to be queried. Currently, its value can only be Cluster.
Type string `json:"type,omitempty"`
// DB type. Currently, only gaussdb-mysql is supported.
DatastoreType string `json:"datastore_type,omitempty"`
// VPC ID
// Method 1: Log in to the VPC console and view the VPC ID on the VPC details page.
// Method 2: See section "Querying VPCs" in the Virtual Private Cloud API Reference.
VpcId string `json:"vpc_id,omitempty"`
// Network ID of the subnet
// Method 1: Log in to the VPC console and click the target subnet on the Subnets page to view the network ID on the displayed page.
// Method 2: See section "Querying Subnets" under "APIs" or section "Querying Networks" under "OpenStack Neutron APIs" in the Virtual Private Cloud API Reference.
SubnetId string `json:"subnet_id,omitempty"`
// Private IP address
PrivateIp string `json:"private_ip,omitempty"`
// Index offset. If offset is set to N, the resource query starts from the N+1 piece of data.
// The default value is 0, indicating that the query starts from the first piece of data. The value must be a positive integer.
Offset int `json:"offset,omitempty"`
// Number of records to be queried. The default value is 100. The value must be a positive integer.
// The minimum value is 1 and the maximum value is 100.
Limit int `json:"limit,omitempty"`
// Query based on the instance tag key and value. {key} indicates the tag key, and {value} indicates the tag value.
// To query instances with multiple tag keys and values, separate key-value pairs with commas (,).
// The key must be unique. Multiple keys are in AND relationship.
Tags string `json:"tags,omitempty"`
}
type ListInstancesResponse ¶
type ListInstancesResponse struct {
// Instance list information.
Instances []InstancesListInfo `json:"instances"`
// Total number of records.
TotalCount int `json:"total_count"`
}
func ListInstances ¶
func ListInstances(client *golangsdk.ServiceClient, opts ListInstancesOpts) (*ListInstancesResponse, error)
type MysqlTags ¶
type MysqlTags struct {
// Tag key. The value can contain up to 36 unicode characters. The value cannot be an empty string, a space, or left blank.
// Only uppercase letters, lowercase letters, digits, hyphens (-), and underscores (_) are allowed.
Key string `json:"key"`
// Tag value. It contains up to 43 Unicode characters. The value can be an empty string.
// Only uppercase letters, lowercase letters, digits, periods (.), hyphens (-), and underscores (_) are allowed.
Value string `json:"value"`
}
type MysqlVolume ¶
type MysqlVolume struct {
// Storage space. The default value is 40 in GB.
// The value ranges from 40 GB to 128,000 GB and must be a multiple of 10.
Size string `json:"size"`
}
type NodeInfo ¶
type NodeInfo struct {
// Instance ID
Id string `json:"id"`
// Node name
Name string `json:"name"`
// Node type, which can be master or slave.
Type string `json:"type"`
// Node status
Status string `json:"status"`
// Database port
Port int `json:"port"`
// Private IP address for read of the node
PrivateReadIps []string `json:"private_read_ips"`
// Storage disk information
Volume *NodeVolumeInfo `json:"volume"`
// AZ
AzCode string `json:"az_code"`
// Region where the instance is located
RegionCode string `json:"region_code"`
// Creation time yyyy-mm-ddThh:mm:ssZ
Created string `json:"created"`
// Update time
Updated string `json:"updated"`
// Specification code
FlavorRef string `json:"flavor_ref"`
// Maximum number of connections
MaxConnections string `json:"max_connections"`
// Number of vCPUs
Vcpus string `json:"vcpus"`
// Memory size in GB
Ram string `json:"ram"`
// Whether to reboot the instance for the parameter modifications to take effect.
NeedRestart bool `json:"need_restart"`
// Failover priority
Priority int `json:"priority"`
}
type NodeVolumeInfo ¶
type ResetPwdOpts ¶
type ResetPwdOpts struct {
// Instance ID, which is compliant with the UUID format.
InstanceId string
// Database password.
// Value range:
// The password consists of 8 to 32 characters and contains at least three types of the following:
// uppercase letters, lowercase letters, digits, and special characters (~!@#$%^*-_=+?,()&).
// Enter a strong password to improve security, preventing security risks such as brute force cracking.
// If you enter a weak password, the system automatically determines that the password is invalid.
Password string `json:"password"`
}
type ResizeFlavor ¶
type ResizeFlavor struct {
// Specification code
SpecCode string `json:"spec_code"`
}
type UpdateNameOpts ¶
type UpdateNameOpts struct {
// Instance ID, which is compliant with the UUID format.
InstanceId string
// Instance name
// Instances of the same type can have same names under the same tenant.
// The name consists of 4 to 64 characters and starts with a letter.
// It is case-sensitive and can contain only letters, digits, hyphens (-), and underscores (_).
Name string `json:"name"`
}
type UpdateSpecOpts ¶
type UpdateSpecOpts struct {
// Instance ID, which is compliant with the UUID format.
InstanceId string
// Specification change information.
ResizeFlavor ResizeFlavor `json:"resize_flavor"`
// Whether the order will be automatically paid after yearly/monthly instances are changed.
// true: The order will be automatically paid from your account. The default value is true.
// false: The order will be manually paid.
IsAutoPay *string `json:"is_auto_pay,omitempty"`
}
type VolumeInfo ¶
Click to show internal directories.
Click to hide internal directories.