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  }