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 }