github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/identity/federatedauth/oidcconfig/requests.go (about) 1 package oidcconfig 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 CreateOpts struct { 10 AccessMode string `json:"access_mode" required:"true"` 11 IdpURL string `json:"idp_url" required:"true"` 12 ClientID string `json:"client_id" required:"true"` 13 SigningKey string `json:"signing_key" required:"true"` 14 AuthorizationEndpoint string `json:"authorization_endpoint,omitempty"` 15 Scope string `json:"scope,omitempty"` 16 ResponseType string `json:"response_type,omitempty"` 17 ResponseMode string `json:"response_mode,omitempty"` 18 } 19 20 type responseBody struct { 21 Config OpenIDConnectConfig `json:"openid_connect_config"` 22 } 23 24 func Create(c *golangsdk.ServiceClient, idpID string, opts CreateOpts) (*OpenIDConnectConfig, error) { 25 b, err := golangsdk.BuildRequestBody(opts, "openid_connect_config") 26 if err != nil { 27 return nil, err 28 } 29 30 var rst golangsdk.Result 31 _, err = c.Post(resourceURL(c, idpID), b, &rst.Body, &golangsdk.RequestOpts{ 32 MoreHeaders: RequestOpts.MoreHeaders, 33 }) 34 if err == nil { 35 var r responseBody 36 rst.ExtractInto(&r) 37 return &r.Config, nil 38 } 39 return nil, err 40 } 41 42 func Get(c *golangsdk.ServiceClient, idpID string) (*OpenIDConnectConfig, error) { 43 var rst golangsdk.Result 44 _, err := c.Get(resourceURL(c, idpID), &rst.Body, &golangsdk.RequestOpts{ 45 MoreHeaders: RequestOpts.MoreHeaders, 46 }) 47 48 if err == nil { 49 var r responseBody 50 rst.ExtractInto(&r) 51 return &r.Config, nil 52 } 53 return nil, err 54 } 55 56 type UpdateOpenIDConnectConfigOpts struct { 57 AccessMode string `json:"access_mode" required:"true"` 58 IdpURL string `json:"idp_url" required:"true"` 59 ClientID string `json:"client_id" required:"true"` 60 SigningKey string `json:"signing_key" required:"true"` 61 AuthorizationEndpoint string `json:"authorization_endpoint,omitempty"` 62 Scope string `json:"scope,omitempty"` 63 ResponseType string `json:"response_type,omitempty"` 64 ResponseMode string `json:"response_mode,omitempty"` 65 } 66 67 func Update(c *golangsdk.ServiceClient, idpID string, opts UpdateOpenIDConnectConfigOpts) (*OpenIDConnectConfig, error) { 68 b, err := golangsdk.BuildRequestBody(opts, "openid_connect_config") 69 if err != nil { 70 return nil, err 71 } 72 73 var rst golangsdk.Result 74 _, err = c.Put(resourceURL(c, idpID), b, &rst.Body, &golangsdk.RequestOpts{ 75 MoreHeaders: RequestOpts.MoreHeaders, 76 }) 77 if err == nil { 78 var r responseBody 79 rst.ExtractInto(&r) 80 return &r.Config, nil 81 } 82 return nil, err 83 }