github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dms/v1/instances/results.go (about) 1 package instances 2 3 import ( 4 "github.com/chnsz/golangsdk" 5 "github.com/chnsz/golangsdk/pagination" 6 ) 7 8 // InstanceCreate response 9 type InstanceCreate struct { 10 InstanceID string `json:"instance_id"` 11 } 12 13 // CreateResult is a struct that contains all the return parameters of creation 14 type CreateResult struct { 15 golangsdk.Result 16 } 17 18 // Extract from CreateResult 19 func (r CreateResult) Extract() (*InstanceCreate, error) { 20 var s InstanceCreate 21 err := r.Result.ExtractInto(&s) 22 return &s, err 23 } 24 25 // DeleteResult is a struct which contains the result of deletion 26 type DeleteResult struct { 27 golangsdk.ErrResult 28 } 29 30 type ListDmsResponse struct { 31 Instances []Instance `json:"instances"` 32 TotalCount int `json:"instance_num"` 33 } 34 35 // Instance response 36 type Instance struct { 37 Name string `json:"name"` 38 Engine string `json:"engine"` 39 EngineVersion string `json:"engine_version"` 40 Specification string `json:"specification"` 41 PartitionNum string `json:"partition_num"` 42 StorageSpecCode string `json:"storage_spec_code"` 43 StorageSpace int `json:"storage_space"` 44 UsedStorageSpace int `json:"used_storage_space"` 45 TotalStorageSpace int `json:"total_storage_space"` 46 ConnectAddress string `json:"connect_address"` 47 Port int `json:"port"` 48 Nodeum int `json:"node_num"` 49 Status string `json:"status"` 50 SslEnable bool `json:"ssl_enable"` 51 Description string `json:"description"` 52 InstanceID string `json:"instance_id"` 53 ResourceSpecCode string `json:"resource_spec_code"` 54 Type string `json:"type"` 55 ChargingMode int `json:"charging_mode"` 56 VPCID string `json:"vpc_id"` 57 VPCName string `json:"vpc_name"` 58 CreatedAt string `json:"created_at"` 59 ErrorCode string `json:"error_code"` 60 ProductID string `json:"product_id"` 61 SecurityGroupID string `json:"security_group_id"` 62 SecurityGroupName string `json:"security_group_name"` 63 SubnetID string `json:"subnet_id"` 64 SubnetName string `json:"subnet_name"` 65 SubnetCIDR string `json:"subnet_cidr"` 66 AvailableZones []string `json:"available_zones"` 67 UserID string `json:"user_id"` 68 UserName string `json:"user_name"` 69 OrderID string `json:"order_id"` 70 MaintainBegin string `json:"maintain_begin"` 71 MaintainEnd string `json:"maintain_end"` 72 EnableAutoTopic bool `json:"enable_auto_topic"` 73 EnablePublicip bool `json:"enable_publicip"` 74 PublicBandwidth int `json:"public_bandwidth"` 75 PublicipId string `json:"publicip_id"` 76 RetentionPolicy string `json:"retention_policy"` 77 } 78 79 // UpdateResult is a struct from which can get the result of update method 80 type UpdateResult struct { 81 golangsdk.Result 82 } 83 84 // GetResult contains the body of getting detailed 85 type GetResult struct { 86 golangsdk.Result 87 } 88 89 // Extract from GetResult 90 func (r GetResult) Extract() (*Instance, error) { 91 var s Instance 92 err := r.Result.ExtractInto(&s) 93 return &s, err 94 } 95 96 type DmsPage struct { 97 pagination.SinglePageBase 98 } 99 100 func (r DmsPage) IsEmpty() (bool, error) { 101 data, err := ExtractDmsInstances(r) 102 if err != nil { 103 return false, err 104 } 105 return len(data.Instances) == 0, err 106 } 107 108 // ExtractCloudServers is a function that takes a ListResult and returns the services' information. 109 func ExtractDmsInstances(r pagination.Page) (ListDmsResponse, error) { 110 var s ListDmsResponse 111 err := (r.(DmsPage)).ExtractInto(&s) 112 return s, err 113 }