diff --git a/schema/adminschema/README.md b/schema/adminschema/README.md index cdb7bb89..c16da394 100644 --- a/schema/adminschema/README.md +++ b/schema/adminschema/README.md @@ -20,6 +20,35 @@ __Version:__ v1 } ``` +### ClientCreateRequest + +A request to register a client with dex. + +``` +{ + client: { + client_name: string // OPTIONAL. Name of the Client to be presented to the End-User. If desired, representation of this Claim in different languages and scripts is represented as described in Section 2.1 ( Metadata Languages and Scripts ) ., + client_uri: string // OPTIONAL. URL of the home page of the Client. The value of this field MUST point to a valid Web page. If present, the server SHOULD display this URL to the End-User in a followable fashion. If desired, representation of this Claim in different languages and scripts is represented as described in Section 2.1 ( Metadata Languages and Scripts ) ., + logo_uri: string // OPTIONAL. URL that references a logo for the Client application. If present, the server SHOULD display this image to the End-User during approval. The value of this field MUST point to a valid image file. If desired, representation of this Claim in different languages and scripts is represented as described in Section 2.1 ( Metadata Languages and Scripts ) ., + redirect_uris: [ + string + ] + }, + isAdmin: boolean +} +``` + +### ClientRegistrationResponse + +Upon successful registration, an ID and secret is assigned to the client. + +``` +{ + client_id: string, + client_secret: string +} +``` + ### State @@ -86,6 +115,32 @@ __Version:__ v1 | default | Unexpected error | | +### POST /client + +> __Summary__ + +> Create Client + +> __Description__ + +> Register an OpenID Connect client. + + +> __Parameters__ + +> |Name|Located in|Description|Required|Type| +|:-----|:-----|:-----|:-----|:-----| +| | body | | Yes | [ClientCreateRequest](#clientcreaterequest) | + + +> __Responses__ + +> |Code|Description|Type| +|:-----|:-----|:-----| +| 200 | | [ClientRegistrationResponse](#clientregistrationresponse) | +| default | Unexpected error | | + + ### GET /state > __Summary__ diff --git a/schema/adminschema/v1-gen.go b/schema/adminschema/v1-gen.go index 7e7549aa..8b276158 100644 --- a/schema/adminschema/v1-gen.go +++ b/schema/adminschema/v1-gen.go @@ -46,6 +46,7 @@ func New(client *http.Client) (*Service, error) { } s := &Service{client: client, BasePath: basePath} s.Admin = NewAdminService(s) + s.Client = NewClientService(s) s.State = NewStateService(s) return s, nil } @@ -56,6 +57,8 @@ type Service struct { Admin *AdminService + Client *ClientService + State *StateService } @@ -68,6 +71,15 @@ type AdminService struct { s *Service } +func NewClientService(s *Service) *ClientService { + rs := &ClientService{s: s} + return rs +} + +type ClientService struct { + s *Service +} + func NewStateService(s *Service) *StateService { rs := &StateService{s: s} return rs @@ -85,6 +97,51 @@ type Admin struct { Password string `json:"password,omitempty"` } +type ClientCreateRequest struct { + Client *ClientCreateRequestClient `json:"client,omitempty"` + + IsAdmin bool `json:"isAdmin,omitempty"` +} + +type ClientCreateRequestClient struct { + // Client_name: OPTIONAL. Name of the Client to be presented to the + // End-User. If desired, representation of this Claim in different + // languages and scripts is represented as described in Section 2.1 ( + // Metadata Languages and Scripts ) . + Client_name string `json:"client_name,omitempty"` + + // Client_uri: OPTIONAL. URL of the home page of the Client. The value + // of this field MUST point to a valid Web page. If present, the server + // SHOULD display this URL to the End-User in a followable fashion. If + // desired, representation of this Claim in different languages and + // scripts is represented as described in Section 2.1 ( Metadata + // Languages and Scripts ) . + Client_uri string `json:"client_uri,omitempty"` + + // Logo_uri: OPTIONAL. URL that references a logo for the Client + // application. If present, the server SHOULD display this image to the + // End-User during approval. The value of this field MUST point to a + // valid image file. If desired, representation of this Claim in + // different languages and scripts is represented as described in + // Section 2.1 ( Metadata Languages and Scripts ) . + Logo_uri string `json:"logo_uri,omitempty"` + + // Redirect_uris: REQUIRED. Array of Redirection URI values used by the + // Client. One of these registered Redirection URI values MUST exactly + // match the redirect_uri parameter value used in each Authorization + // Request, with the matching performed as described in Section 6.2.1 of + // [RFC3986] ( Berners-Lee, T., Fielding, R., and L. Masinter, + // “Uniform Resource Identifier (URI): Generic Syntax,” January + // 2005. ) (Simple String Comparison). + Redirect_uris []string `json:"redirect_uris,omitempty"` +} + +type ClientRegistrationResponse struct { + Client_id string `json:"client_id,omitempty"` + + Client_secret string `json:"client_secret,omitempty"` +} + type State struct { AdminUserCreated bool `json:"AdminUserCreated,omitempty"` } @@ -230,6 +287,75 @@ func (c *AdminGetCall) Do() (*Admin, error) { } +// method id "dex.admin.Client.Create": + +type ClientCreateCall struct { + s *Service + clientcreaterequest *ClientCreateRequest + opt_ map[string]interface{} +} + +// Create: Register an OpenID Connect client. +func (r *ClientService) Create(clientcreaterequest *ClientCreateRequest) *ClientCreateCall { + c := &ClientCreateCall{s: r.s, opt_: make(map[string]interface{})} + c.clientcreaterequest = clientcreaterequest + return c +} + +// Fields allows partial responses to be retrieved. +// See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse +// for more information. +func (c *ClientCreateCall) Fields(s ...googleapi.Field) *ClientCreateCall { + c.opt_["fields"] = googleapi.CombineFields(s) + return c +} + +func (c *ClientCreateCall) Do() (*ClientRegistrationResponse, error) { + var body io.Reader = nil + body, err := googleapi.WithoutDataWrapper.JSONReader(c.clientcreaterequest) + if err != nil { + return nil, err + } + ctype := "application/json" + params := make(url.Values) + params.Set("alt", "json") + if v, ok := c.opt_["fields"]; ok { + params.Set("fields", fmt.Sprintf("%v", v)) + } + urls := googleapi.ResolveRelative(c.s.BasePath, "client") + urls += "?" + params.Encode() + req, _ := http.NewRequest("POST", urls, body) + googleapi.SetOpaque(req.URL) + req.Header.Set("Content-Type", ctype) + req.Header.Set("User-Agent", "google-api-go-client/0.5") + res, err := c.s.client.Do(req) + if err != nil { + return nil, err + } + defer googleapi.CloseBody(res) + if err := googleapi.CheckResponse(res); err != nil { + return nil, err + } + var ret *ClientRegistrationResponse + if err := json.NewDecoder(res.Body).Decode(&ret); err != nil { + return nil, err + } + return ret, nil + // { + // "description": "Register an OpenID Connect client.", + // "httpMethod": "POST", + // "id": "dex.admin.Client.Create", + // "path": "client", + // "request": { + // "$ref": "ClientCreateRequest" + // }, + // "response": { + // "$ref": "ClientRegistrationResponse" + // } + // } + +} + // method id "dex.admin.State.Get": type StateGetCall struct { diff --git a/schema/adminschema/v1-json.go b/schema/adminschema/v1-json.go index 67a8d158..f99dfb71 100644 --- a/schema/adminschema/v1-json.go +++ b/schema/adminschema/v1-json.go @@ -50,6 +50,53 @@ const DiscoveryJSON = `{ "type": "boolean" } } + }, + "ClientCreateRequest": { + "id": "ClientCreateRequest", + "type": "object", + "description": "A request to register a client with dex.", + "properties": { + "isAdmin": { + "type": "boolean" + }, + "client": { + "type": "object", + "properties": { + "redirect_uris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "REQUIRED. Array of Redirection URI values used by the Client. One of these registered Redirection URI values MUST exactly match the redirect_uri parameter value used in each Authorization Request, with the matching performed as described in Section 6.2.1 of [RFC3986] ( Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005. ) (Simple String Comparison)." + }, + "client_name": { + "type": "string", + "description": "OPTIONAL. Name of the Client to be presented to the End-User. If desired, representation of this Claim in different languages and scripts is represented as described in Section 2.1 ( Metadata Languages and Scripts ) ." + }, + "logo_uri": { + "type": "string", + "description": "OPTIONAL. URL that references a logo for the Client application. If present, the server SHOULD display this image to the End-User during approval. The value of this field MUST point to a valid image file. If desired, representation of this Claim in different languages and scripts is represented as described in Section 2.1 ( Metadata Languages and Scripts ) ." + }, + "client_uri": { + "type": "string", + "description": "OPTIONAL. URL of the home page of the Client. The value of this field MUST point to a valid Web page. If present, the server SHOULD display this URL to the End-User in a followable fashion. If desired, representation of this Claim in different languages and scripts is represented as described in Section 2.1 ( Metadata Languages and Scripts ) ." + } + } + } + } + }, + "ClientRegistrationResponse": { + "id": "ClientRegistrationResponse", + "type": "object", + "description": "Upon successful registration, an ID and secret is assigned to the client.", + "properties": { + "client_id": { + "type": "string" + }, + "client_secret": { + "type": "string" + } + } } }, "resources": { @@ -101,6 +148,22 @@ const DiscoveryJSON = `{ } } } + }, + "Client": { + "methods": { + "Create": { + "id": "dex.admin.Client.Create", + "description": "Register an OpenID Connect client.", + "httpMethod": "POST", + "path": "client", + "request": { + "$ref": "ClientCreateRequest" + }, + "response": { + "$ref": "ClientRegistrationResponse" + } + } + } } } }