github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/identity/v3/federation/protocols/requests.go (about)

     1  package protocols
     2  
     3  import (
     4  	"github.com/opentelekomcloud/gophertelekomcloud"
     5  	"github.com/opentelekomcloud/gophertelekomcloud/pagination"
     6  )
     7  
     8  func List(client *golangsdk.ServiceClient, provider string) pagination.Pager {
     9  	pager := pagination.NewPager(client, listURL(client, provider), func(r pagination.PageResult) pagination.Page {
    10  		return ProtocolPage{LinkedPageBase: pagination.LinkedPageBase{PageResult: r}}
    11  	})
    12  	pager.Headers = map[string]string{
    13  		"Content-Type": "application/json",
    14  	}
    15  	return pager
    16  }
    17  
    18  type CreateOptsBuilder interface {
    19  	ToProtocolCreateMap() (map[string]interface{}, error)
    20  }
    21  
    22  type CreateOpts struct {
    23  	MappingID string `json:"mapping_id"`
    24  }
    25  
    26  func (opts CreateOpts) ToProtocolCreateMap() (map[string]interface{}, error) {
    27  	return golangsdk.BuildRequestBody(opts, "protocol")
    28  }
    29  
    30  func Create(client *golangsdk.ServiceClient, provider, protocol string, opts CreateOptsBuilder) (r CreateResult) {
    31  	b, err := opts.ToProtocolCreateMap()
    32  	if err != nil {
    33  		r.Err = err
    34  		return
    35  	}
    36  	url := singleURL(client, provider, protocol)
    37  	_, r.Err = client.Put(url, b, &r.Body, nil)
    38  	return
    39  }
    40  
    41  func Get(client *golangsdk.ServiceClient, provider, protocol string) (r GetResult) {
    42  	_, r.Err = client.Get(singleURL(client, provider, protocol), &r.Body, &golangsdk.RequestOpts{
    43  		MoreHeaders: map[string]string{"Content-Type": "application/json"},
    44  	})
    45  	return
    46  }
    47  
    48  type UpdateOptsBuilder interface {
    49  	ToProtocolUpdateMap() (map[string]interface{}, error)
    50  }
    51  
    52  type UpdateOpts struct {
    53  	MappingID string `json:"mapping_id"`
    54  }
    55  
    56  func (opts UpdateOpts) ToProtocolUpdateMap() (map[string]interface{}, error) {
    57  	return golangsdk.BuildRequestBody(opts, "protocol")
    58  }
    59  
    60  func Update(client *golangsdk.ServiceClient, provider, protocol string, opts UpdateOptsBuilder) (r UpdateResult) {
    61  	b, err := opts.ToProtocolUpdateMap()
    62  	if err != nil {
    63  		r.Err = err
    64  		return
    65  	}
    66  	_, r.Err = client.Patch(singleURL(client, provider, protocol), b, &r.Body, nil)
    67  	return
    68  }
    69  
    70  func Delete(client *golangsdk.ServiceClient, provider, protocol string) (r DeleteResult) {
    71  	_, r.Err = client.Delete(singleURL(client, provider, protocol), nil)
    72  	return
    73  }