github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/fgs/v2/reserved/ListConfigs.go (about)

     1  package reserved
     2  
     3  import (
     4  	golangsdk "github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/internal/extract"
     6  )
     7  
     8  type ListConfigOpts struct {
     9  	Marker  string `q:"marker"`
    10  	Limit   string `q:"limit"`
    11  	FuncUrn string `q:"urn"`
    12  }
    13  
    14  func ListReservedInstConfigs(client *golangsdk.ServiceClient, opts ListConfigOpts) (*FuncReservedConfigResp, error) {
    15  	url, err := golangsdk.NewURLBuilder().WithEndpoints("fgs", "functions", "reservedinstanceconfigs").WithQueryParams(&opts).Build()
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	raw, err := client.Get(client.ServiceURL(url.String()), nil, nil)
    21  	if err != nil {
    22  		return nil, err
    23  	}
    24  
    25  	var res FuncReservedConfigResp
    26  	err = extract.Into(raw.Body, &res)
    27  	return &res, err
    28  }
    29  
    30  type FuncReservedConfigResp struct {
    31  	ReservedInstances []FuncReservedInstances `json:"reserved_instances"`
    32  	PageInfo          *PageInfo               `json:"page_info"`
    33  	Count             int                     `json:"count"`
    34  }
    35  
    36  type FuncReservedInstances struct {
    37  	FuncUrn       string        `json:"func_urn"`
    38  	QualifierType string        `json:"qualifier_type"`
    39  	QualifierName string        `json:"qualifier_name"`
    40  	MinCount      int           `json:"min_count"`
    41  	IdleMode      bool          `json:"idle_mode"`
    42  	TacticsConfig TacticsConfig `json:"tactics_config"`
    43  	Count         int           `json:"count"`
    44  }
    45  
    46  type PageInfo struct {
    47  	NextMarker     int `json:"next_marker"`
    48  	PreviousMarker int `json:"previous_marker"`
    49  	CurrentCount   int `json:"current_count"`
    50  }