github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dns/v2/resolverrule/results.go (about) 1 package resolverrule 2 3 import "github.com/chnsz/golangsdk" 4 5 type commonResult struct { 6 golangsdk.Result 7 } 8 9 type CreateResult struct { 10 commonResult 11 } 12 13 type UpdateResult struct { 14 commonResult 15 } 16 17 type GetResult struct { 18 commonResult 19 } 20 21 type ListResult struct { 22 commonResult 23 } 24 25 type DeleteResult struct { 26 golangsdk.ErrResult 27 } 28 29 type ResponseBody struct { 30 ResolverRule `json:"resolver_rule"` 31 } 32 33 type ResolverRule struct { 34 ID string `json:"id"` 35 Name string `json:"name"` 36 DomainName string `json:"domain_name"` 37 EndpointID string `json:"endpoint_id"` 38 Status string `json:"status"` 39 RuleType string `json:"rule_type"` 40 IPAddressCount int `json:"ipaddress_count"` 41 IPAddresses []IPAddress `json:"ipaddresses"` 42 Routers []Router `json:"routers"` 43 CreatedAt string `json:"create_time"` 44 UpdatedAt string `json:"update_time"` 45 } 46 47 type Router struct { 48 RouterID string `json:"router_id"` 49 RouterRegion string `json:"router_region"` 50 Status string `json:"status"` 51 } 52 53 func (lr ListResult) Extract() ([]ResolverRule, error) { 54 type Metadata struct { 55 TotalCount int `json:"total_count"` 56 } 57 var l struct { 58 ResolverRules []ResolverRule `json:"resolver_rules"` 59 Metadata `json:"metedata"` 60 } 61 err := lr.Result.ExtractInto(&l) 62 return l.ResolverRules, err 63 } 64 65 func (r commonResult) Extract() (*ResponseBody, error) { 66 var s *ResponseBody 67 err := r.ExtractInto(&s) 68 return s, err 69 }