github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/identity/federatedauth/providers/requests.go (about) 1 package providers 2 3 import ( 4 "github.com/chnsz/golangsdk" 5 ) 6 7 var RequestOpts = golangsdk.RequestOpts{ 8 MoreHeaders: map[string]string{"Content-Type": "application/json", "X-Language": "en-us"}, 9 } 10 11 type CreateProviderOpts struct { 12 SsoType string `json:"sso_type,omitempty"` 13 Description string `json:"description,omitempty"` 14 Enabled bool `json:"enabled,omitempty"` 15 } 16 17 type responseBody struct { 18 IdentityProvider Provider `json:"identity_provider"` 19 } 20 21 func Create(c *golangsdk.ServiceClient, id string, opts CreateProviderOpts) (*Provider, error) { 22 b, err := golangsdk.BuildRequestBody(opts, "identity_provider") 23 if err != nil { 24 return nil, err 25 } 26 27 var rst golangsdk.Result 28 _, err = c.Put(resourceURL(c, id), b, &rst.Body, &golangsdk.RequestOpts{ 29 MoreHeaders: RequestOpts.MoreHeaders, 30 }) 31 if err == nil { 32 var r responseBody 33 rst.ExtractInto(&r) 34 return &r.IdentityProvider, nil 35 } 36 return nil, err 37 } 38 39 func Get(c *golangsdk.ServiceClient, id string) (*Provider, error) { 40 var rst golangsdk.Result 41 _, err := c.Get(resourceURL(c, id), &rst.Body, &golangsdk.RequestOpts{ 42 MoreHeaders: RequestOpts.MoreHeaders, 43 }) 44 if err == nil { 45 var r responseBody 46 rst.ExtractInto(&r) 47 return &r.IdentityProvider, nil 48 } 49 return nil, err 50 } 51 52 type UpdateOpts struct { 53 Description *string `json:"description,omitempty"` 54 Enabled *bool `json:"enabled,omitempty"` 55 } 56 57 func Update(c *golangsdk.ServiceClient, id string, opts UpdateOpts) (*Provider, error) { 58 b, err := golangsdk.BuildRequestBody(opts, "identity_provider") 59 if err != nil { 60 return nil, err 61 } 62 63 var rst golangsdk.Result 64 _, err = c.Patch(resourceURL(c, id), b, &rst.Body, &golangsdk.RequestOpts{ 65 MoreHeaders: RequestOpts.MoreHeaders, 66 }) 67 if err == nil { 68 var r responseBody 69 rst.ExtractInto(&r) 70 return &r.IdentityProvider, nil 71 } 72 return nil, err 73 } 74 75 func Delete(c *golangsdk.ServiceClient, regionID string) error { 76 _, err := c.Delete(resourceURL(c, regionID), &golangsdk.RequestOpts{ 77 MoreHeaders: RequestOpts.MoreHeaders, 78 }) 79 return err 80 }