github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/identity/federatedauth/metadatas/requests.go (about)

     1  package metadatas
     2  
     3  import "github.com/chnsz/golangsdk"
     4  
     5  var RequestOpts = golangsdk.RequestOpts{
     6  	MoreHeaders: map[string]string{"Content-Type": "application/json", "X-Language": "en-us"},
     7  }
     8  
     9  type ImportOpts struct {
    10  	DomainID string `json:"domain_id" required:"true"`
    11  	Metadata string `json:"metadata" required:"true"`
    12  	// It is not a required field, but this argument must be present in the parameter.
    13  	XAccountType string `json:"xaccount_type"`
    14  }
    15  
    16  func Import(c *golangsdk.ServiceClient, idpID string, protocolID string, opts ImportOpts) (*MetadataResult, error) {
    17  	b, err := golangsdk.BuildRequestBody(opts, "")
    18  	if err != nil {
    19  		return nil, err
    20  	}
    21  
    22  	var rst golangsdk.Result
    23  	_, err = c.Post(resourceURL(c, idpID, protocolID), b, &rst.Body, &golangsdk.RequestOpts{
    24  		MoreHeaders: RequestOpts.MoreHeaders,
    25  	})
    26  	if err == nil {
    27  		var r MetadataResult
    28  		rst.ExtractInto(&r)
    29  		return &r, nil
    30  	}
    31  	return nil, err
    32  }
    33  
    34  func Get(c *golangsdk.ServiceClient, idpID string, protocolID string) (*Metadata, error) {
    35  	var rst golangsdk.Result
    36  	_, err := c.Get(resourceURL(c, idpID, protocolID), &rst.Body, &golangsdk.RequestOpts{
    37  		MoreHeaders: RequestOpts.MoreHeaders,
    38  	})
    39  	if err == nil {
    40  		var r Metadata
    41  		rst.ExtractInto(&r)
    42  		return &r, nil
    43  	}
    44  	return nil, err
    45  }