Documentation
¶
Index ¶
- func Create(client *golangsdk.ServiceClient, opts CreateOps) (string, error)
- func Delete(client *golangsdk.ServiceClient, id string) (err error)
- func Extend(client *golangsdk.ServiceClient, id string, opts ExtendOpts) (err error)
- func Update(client *golangsdk.ServiceClient, id string, opts UpdateOpts) (err error)
- type BackupPolicy
- type BatchDeleteBody
- type BatchDeleteOpts
- type BatchOpsResult
- type CreateOps
- type ExtendOpts
- type Instance
- type InstanceBackupPolicy
- type ListDcsInstanceOpts
- type ListDcsResponse
- type PeriodicalBackupPlan
- type UpdateOpts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Extend ¶
func Extend(client *golangsdk.ServiceClient, id string, opts ExtendOpts) (err error)
Extend is extending for a dcs instance
func Update ¶
func Update(client *golangsdk.ServiceClient, id string, opts UpdateOpts) (err error)
Update is a method which can be able to update the instance via accessing to the service with Put method and parameters
Types ¶
type BackupPolicy ¶
type BackupPolicy struct {
BackupPolicyId string `json:"backup_policy_id"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
Policy InstanceBackupPolicy `json:"policy"`
TenantId string `json:"tenant_id"`
}
type BatchDeleteBody ¶
type BatchDeleteBody struct {
// IDs of DCS instances to be deleted.
// This parameter is set only when the allFailure parameter in the URI is set to false or another value.
// A maximum of 50 instances can be deleted at a time.
Instances []string `json:"instances,omitempty"`
}
type BatchDeleteOpts ¶
type BatchDeleteOpts struct {
// An indicator of whether all DCS instances failed to be created will be deleted. Options:
// Options:
// true: all instances that fail to be created are deleted. In this case, the instances parameter in the request can be empty.
// false or other values: The DCS instances specified by the instances parameter in the API request will be deleted.
AllFailure *bool `q:"allFailure"`
Body BatchDeleteBody
}
type BatchOpsResult ¶
type BatchOpsResult struct {
// Instance deletion result. Options: success and failed
Result string `json:"result,omitempty"`
// DCS instance ID.
Instance string `json:"instance,omitempty"`
}
func BatchDelete ¶
func BatchDelete(client *golangsdk.ServiceClient, opts BatchDeleteOpts) ([]BatchOpsResult, error)
type CreateOps ¶
type CreateOps struct {
// DCS instance name.
// An instance name is a string of 4–64 characters
// that contain letters, digits, underscores (_), and hyphens (-).
// An instance name must start with letters.
Name string `json:"name" required:"true"`
// Brief description of the DCS instance.
// The description supports up to 1024 characters.
// The backslash (\) and quotation mark (") are special characters for JSON messages.
// When using these characters in a parameter value,
// add the escape character (\) before the characters, for example, \\ and \".
Description string `json:"description,omitempty"`
// Cache engine, which is Redis.
Engine string `json:"engine" required:"true"`
// Cache engine version. If the cache engine is Redis, the value can be 3.0, 4.0, or 5.0.
EngineVersion string `json:"engine_version" required:"true"`
// DCS instance specification code.
// To obtain the value, go to the instance creation page on the DCS console,
// and view Flavor Name in the Instance Specification table.
SpecCode string `json:"spec_code" required:"true"`
// Cache capacity. Unit: GB.
// For a single-node or master/standby DCS Redis 3.0 instance,
// the value can be 2, 4, 8, 16, 32, or 64. For a Proxy Cluster DCS Redis 3.0 instance,
// the value can be 64, 128, 256, 512, or 1024.
// For a single-node or master/standby DCS Redis 4.0 or 5.0 instance,
// the value can be 0.125, 0.25, 0.5, 1, 2, 4, 8, 16, 32, 24, 48, or 64.
// For a Redis Cluster DCS Redis 4.0 or 5.0 instance,
// the value can be 4, 8, 16, 24, 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, or 1024.
Capacity float64 `json:"capacity" required:"true"`
// Password of a DCS instance.
// The password of a DCS Redis instance must meet the following complexity requirements:
// Must be a string consisting of 8 to 32 characters.
// Must be different from the old password.
// Contains at least three of the following character types:
// Lowercase letters
// Uppercase letters
// Digits
// Special characters (`~!@#$^&*()-_=+\|{}:,<.>/?)
Password string `json:"password,omitempty"`
// VPC ID.
// Obtain the value by using either of the following methods:
// Method 1: Log in to VPC console and view the VPC ID in the VPC details.
// Method 2: Call the API for querying VPCs.
// For details, see the "Querying VPCs" section in the Virtual Private Cloud API Reference.
VPCId string `json:"vpc_id" required:"true"`
// ID of the security group which the instance belongs to.
// This parameter is mandatory when the engine is Redis and engine_version is 3.0.
// DCS Redis 3.0 instances support security group access control.
// This parameter is optional when the engine is Redis and engine_version is 4.0 or 5.0.
// DCS Redis 4.0 and 5.0 instances do not support security groups.
// Obtain the value by using either of the following methods:
// Method 1: Log in to the VPC console and view the security group ID on the security group details page.
// Method 2: Call the API for querying security groups. For details,
// see the "Querying Security Groups" section in the Virtual Private Cloud API Reference.
SecurityGroupID string `json:"security_group_id,omitempty"`
// Network ID of the subnet.
// Obtain the value by using either of the following methods:
// Method 1: Log in to VPC console and click the target subnet on the Subnets tab page.
// You can view the network ID on the displayed page.
// Method 2: Call the API for querying subnets.
// For details, see the "Querying Subnets" section in the Virtual Private Cloud API Reference.
SubnetID string `json:"subnet_id" required:"true"`
// ID of the AZ where the cache node resides and which has available resources.
// For details on how to obtain the value, see Querying AZ Information.
// Check whether the AZ has available resources.
// Master/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment.
// You can specify an AZ for the standby node. When specifying AZs for nodes,
// use commas (,) to separate multiple AZs. For details, see the example request.
AvailableZones []string `json:"available_zones" required:"true"`
// Backup policy.
// This parameter is available for master/standby and cluster DCS instances.
InstanceBackupPolicy *InstanceBackupPolicy `json:"instance_backup_policy,omitempty"`
// An indicator of whether to enable public access for a DCS Redis instance.
EnablePublicIp *bool `json:"enable_publicip,omitempty"`
// ID of the elastic IP address bound to a DCS Redis instance.
// This parameter is mandatory if public access is enabled (that is, enable_publicip is set to true).
PublicIpId string `json:"publicip_id,omitempty"`
// IP address that is manually specified for a DCS instance.
PrivateIps []string `json:"private_ips,omitempty"`
// An indicator of whether to enable SSL for public access to a DCS Redis instance.
EnableSsl *bool `json:"enable_ssl,omitempty"`
// Time at which the maintenance time window starts.
// Format: hh:mm:ss.
// The start time and end time of the maintenance time window
// must indicate the time segment of a supported maintenance time window.
// For details on how to query the time segments of supported maintenance time windows,
// see Querying Maintenance Time Window.
// The start time must be set to 22:00:00, 02:00:00, 06:00:00, 10:00:00, 14:00:00, or 18:00: 00.
// Parameters maintain_begin and maintain_end must be set in pairs.
// If parameter maintain_start is left blank, parameter maintain_end is also blank.
// In this case, the system automatically set the start time to 02:00:00.
MaintainBegin string `json:"maintain_begin,omitempty"`
// The end time is four hours later than the start time.
// For example, if the start time is 22:00:00, the end time is 02:00:00.
// ...In this case, the system automatically set the end time to 06:00:00.
MaintainEnd string `json:"maintain_end,omitempty"`
// Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances and not by Redis 3.0 instances.
// If this parameter is not sent or is left empty when you create a Redis 4.0 or 5.0 instance,
// the default port 6379 will be used. To customize a port, specify a port number in the range from 1 to 65535.
Port int32 `json:"port,omitempty"`
// Critical command renaming, which is supported only by Redis 4.0 and Redis 5.0 instances and not by Redis 3.0 instances.
// If this parameter is not sent or is left empty when you create a Redis 4.0 or 5.0 instance, no critical command will be renamed.
// Currently, only COMMAND, KEYS, FLUSHDB, FLUSHALL, and HGETALL commands can be renamed.
RenameCommands *interface{} `json:"rename_commands,omitempty"`
// An indicator of whether a DCS instance can be accessed in password-free mode.
// true: indicates that a DCS instance can be accessed without a password.
// false: indicates that a DCS instance can be accessed only after password authentication.
NoPasswordAccess string `json:"no_password_access"`
// Tags
Tags []tags.ResourceTag `json:"tags,omitempty"`
}
type ExtendOpts ¶
type ExtendOpts struct {
// New specification (memory space) of the DCS instance.
// The new specification to which the DCS instance will be scaled up must be greater than the current specification.
// Unit: GB.
NewCapacity int `json:"new_capacity" required:"true"`
// DCS instance specification code.
// This parameter is optional for DCS Redis 3.0 instances.
// This parameter is mandatory for DCS Redis 4.0 and Redis 5.0 instances.
SpecCode string `json:"spec_code" required:"true"`
}
ExtendOpts is a struct which represents the parameters of extend function
type Instance ¶
type Instance struct {
// DCS instance name.
Name string `json:"name"`
// DCS instance engine.
Engine string `json:"engine"`
// DCS instance cache capacity. Unit: GB.
Capacity int `json:"capacity"`
// Cache capacity of a small-scale, single-node DCS instance.
CapacityMinor string `json:"capacity_minor"`
// IP address for connecting to the DCS instance For a cluster instance,
// multiple IP addresses are returned and separated by commas (,).
// For example, 192.168.0.1,192.168.0.2.
IP string `json:"ip"`
// Port number of the cache node.
Port int `json:"port"`
// Cache instance status.
Status string `json:"status"`
// true: This instance is a libos instance.
// false: This instance is not a libos instance.
Libos bool `json:"libos"`
// Brief description of the DCS instance.
Description string `json:"description"`
// Total memory size.
// Unit: MB.
MaxMemory int `json:"max_memory"`
// Size of the used memory.
// Unit: MB.
UsedMemory int `json:"used_memory"`
// DCS instance ID.
InstanceID string `json:"instance_id"`
// Resource specifications.
// For example:
// dcs.single_node: indicates a DCS instance in single-node mode.
// dcs.master_standby: indicates a DCS instance in master/standby mode.
// dcs.cluster: indicates a DCS instance in cluster mode.
ResourceSpecCode string `json:"resource_spec_code"`
// Cache engine version.
EngineVersion string `json:"engine_version"`
// Internal DCS version.
InternalVersion string `json:"internal_version"`
// Billing mode. 0: pay-per-use.
ChargingMode int `json:"charging_mode"`
// VPC ID.
VPCID string `json:"vpc_id"`
// VPC name.
VPCName string `json:"vpc_name"`
// Time at which the DCS instance is created.
// For example, 2017-03-31T12:24:46.297Z.
CreatedAt string `json:"created_at"`
// Error code returned when the DCS instance fails to be created or is abnormal.
ErrorCode string `json:"error_code"`
// User ID.
UserID string `json:"user_id"`
// Username.
UserName string `json:"user_name"`
// Time at which the maintenance time window starts.
// Format: hh:mm:ss.
MaintainBegin string `json:"maintain_begin"`
// Time at which the maintenance time window ends.
// Format: hh:mm:ss.
MaintainEnd string `json:"maintain_end"`
// An indicator of whether a DCS instance can be accessed in password-free mode.
// true: indicates that a DCS instance can be accessed without a password.
// false: indicates that a DCS instance can be accessed only after password authentication.
NoPasswordAccess string `json:"no_password_access"`
// Username used for accessing a DCS instance with password authentication.
AccessUser string `json:"access_user"`
// An indicator of whether public access is enabled for a DCS Redis instance. Options:
EnablePublicIp bool `json:"enable_publicip"`
// ID of the elastic IP address bound to a DCS Redis instance.
// The parameter value is null if public access is disabled.
PublicIpId string `json:"publicip_id"`
// Elastic IP address bound to a DCS Redis instance.
// The parameter value is null if public access is disabled.
PublicIpAddress string `json:"publicip_address"`
// An indicator of whether to enable SSL for public access to a DCS Redis instance.
EnableSsl bool `json:"enable_ssl"`
// An indicator of whether an upgrade task has been created for a DCS instance.
ServiceUpgrade bool `json:"service_upgrade"`
// Upgrade task ID.
// If the value of service_upgrade is set to true, the value of this parameter is the ID of the upgrade task.
// If the value of service_upgrade is set to false, the value of this parameter is empty.
ServiceTaskId string `json:"service_task_id"`
// Edition of DCS for Redis. Options:
// generic: standard edition
// libos: high-performance edition
ProductType string `json:"product_type"`
// CPU architecture. Options: x86_64 and aarch_64.
CpuType string `json:"cpu_type"`
// Memory type. Options: DRAM and SCM.
StorageType string `json:"storage_type"`
// DCS instance type. Options:
// single: single-node
// ha: master/standby
// cluster: Redis Cluster
// proxy: Proxy Cluster
CacheMode string `json:"cache_mode"`
// Time when the instance started running. 2022-07-06T09:32:16.502Z
LaunchedAt string `json:"launched_at"`
// AZ where a cache node resides. The value of this parameter in the response contains an AZ ID.
AvailableZones []string `json:"available_zones"`
// Subnet ID.
SubnetID string `json:"subnet_id"`
// Security group ID.
SecurityGroupID string `json:"security_group_id"`
// Backend address of a cluster instance.
BackendAddrs string `json:"backend_addrs"`
// Cloud service type code.
CloudServiceTypeCode string `json:"cloud_service_type_code"`
// Cloud resource type code.
CloudResourceTypeCode string `json:"cloud_resource_type_code"`
// Security group name.
SecurityGroupName string `json:"security_group_name"`
// Subnet name.
SubnetName string `json:"subnet_name"`
// Subnet segment.
SubnetCIDR string `json:"subnet_cidr"`
// Order ID.
OrderID string `json:"order_id"`
// Backup policy.
// This parameter is available for master/standby and cluster DCS instances.
InstanceBackupPolicy BackupPolicy `json:"instance_backup_policy"`
// Instance tag key and value.
Tags []tags.ResourceTag `json:"tags"`
// Product specification code.
SpecCode string `json:"spec_code"`
// Domain name of the instance.
DomainName string `json:"domain_name"`
// Read-only domain name.
ReadonlyDomainName string `json:"readonly_domain_name"`
// Scenario where the instance is frozen.
FreezeScene string `json:"freeze_scene"`
// Update time. 2022-07-06T09:32:16.502Z
UpdateAt string `json:"update_at"`
// Task status.
TaskStatus string `json:"task_status"`
// Whether the instance is free of charge.
IsFree bool `json:"is_free"`
// AZs with available resources.
AzCodes []string `json:"az_codes"`
// Role in cross-region DR.
CrrRole string `json:"crr_role"`
// Product specification code.
InQuerySpecCode string `json:"inquery_spec_code"`
// Whether slow query logs are supported.
SupportSlowLogFlag string `json:"support_slow_log_flag"`
// IPv6 address.
Ipv6 string `json:"ipv6"`
// Whether IPv6 is enabled.
EnableIpv6 bool `json:"enable_ipv6"`
// Number of databases in the instance.
DbNumber int `json:"db_number"`
// Whether ACL is supported.
SupportAcl bool `json:"support_acl"`
// Task response.
Task string `json:"task"`
// Number of shards.
ShardingCount int `json:"sharding_count"`
}
type InstanceBackupPolicy ¶
type InstanceBackupPolicy struct {
// Retention time.
// Unit: day.
// Range: 1–7.
SaveDays int `json:"save_days"`
// Backup type. Options:
// auto: automatic backup.
// manual: manual backup.
BackupType string `json:"backup_type"`
// Backup plan.
PeriodicalBackupPlan PeriodicalBackupPlan `json:"periodical_backup_plan" required:"true"`
}
type ListDcsInstanceOpts ¶
type ListDcsInstanceOpts struct {
// Instance ID.
Id string `q:"id"`
// DCS instance name.
Name string `q:"name"`
// Number of DCS instances displayed on each page.
// Minimum value: 1
// Maximum value: 2000
// If this parameter is left unspecified, a maximum of 1000 DCS instances are displayed on each page.
Limit int `q:"limit"`
// Start number for querying DCS instances. It cannot be lower than 1.
// By default, the start number is 1.
Start int `q:"start"`
// DCS instance status.
Status string `q:"status"`
// An indicator of whether to perform an exact or fuzzy match based on instance name.
// Options:
// true: exact match
// false: fuzzy match
// Default value: false.
IsExactMatchName bool `q:"isExactMatchName"`
// IP address for connecting to the DCS instance
Ip string `q:"ip"`
// 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 (,).
Tags map[string]string `q:"tags"`
}
type ListDcsResponse ¶
type ListDcsResponse struct {
// Array of DCS instance details.
Instances []Instance `json:"instances"`
// Number of DCS instances.
TotalCount int `json:"instance_num"`
}
func List ¶
func List(client *golangsdk.ServiceClient, opts ListDcsInstanceOpts) (*ListDcsResponse, error)
type PeriodicalBackupPlan ¶
type PeriodicalBackupPlan struct {
// Time at which backup starts.
// "00:00-01:00" indicates that backup starts at 00:00:00.
BeginAt string `json:"begin_at" required:"true"`
// Interval at which backup is performed.
// Currently, only weekly backup is supported.
PeriodType string `json:"period_type" required:"true"`
// Day in a week on which backup starts.
// Range: 1–7. Where: 1 indicates Monday; 7 indicates Sunday.
BackupAt []int `json:"backup_at" required:"true"`
// Time zone in which backup is performed.
// Value range: GMT–12:00 to GMT+12:00. If this parameter is left blank,
// the current time zone of the DCS-Server VM is used by default.
TimezoneOffset string `json:"timezone_offset,omitempty"`
}
type UpdateOpts ¶
type UpdateOpts struct {
// DCS instance name.
// An instance name is a string of 4–64 characters
// that contain letters, digits, underscores (_), and hyphens (-).
// An instance name must start with letters.
Name string `json:"name,omitempty"`
// Brief description of the DCS instance.
// A brief description supports up to 1024 characters.
Description string `json:"description,omitempty"`
// Backup policy.
// This parameter is available for master/standby DCS instances.
InstanceBackupPolicy *InstanceBackupPolicy `json:"instance_backup_policy,omitempty"`
// Time at which the maintenance time window starts.
// Format: HH:mm:ss
MaintainBegin string `json:"maintain_begin,omitempty"`
// Time at which the maintenance time window ends.
// Format: HH:mm:ss
MaintainEnd string `json:"maintain_end,omitempty"`
// Security group ID.
SecurityGroupID string `json:"security_group_id,omitempty"`
}
UpdateOpts is a struct which represents the parameters of update function
Click to show internal directories.
Click to hide internal directories.