openapi: 3.2.0 info: title: Gridx Ai Users API version: 2.0.0 contact: name: gridX url: https://www.gridx.ai/module/api email: developer-community@gridx.de license: name: All rights reserved. url: https://www.gridx.ai/ x-api-id: ba9d6a25-ae1a-4ac8-af7a-70b76db17021 x-audience: public-external description: 'Operations tagged Users across 2 of this provider''s published API definitions: gridx-api.json, gridx-ai-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.gridx.de description: Production tags: - name: Users x-displayName: Users paths: /users/{userID}: get: operationId: getUser summary: Retrieve a User by ID description: Retrieves the details of a user by its ID. tags: - Users security: - HeaderAuth: - ReadUser parameters: - name: userID description: 'Unique identifier used to access a user. ' in: path required: true schema: type: string format: uuid example: 97874c1b-d073-4b06-bf01-a1497fbe1146 responses: '200': description: Ok. content: application/vnd.gridx.v2+json: schema: title: User description: Represents a user of the Xenon platform. type: object properties: id: description: Unique identifier of the user. type: string format: uuid example: 43a4f165-8233-426b-a1a4-e569665a25dd readOnly: true accountID: description: Unique identifier of the account that the user belongs to. type: string format: uuid example: 6dd0a658-5828-4d30-bc65-a03c6d6e425f readOnly: true newPassword: description: Used to set a new password for the user. type: string writeOnly: true loginsCount: description: Number of user logins. type: integer readOnly: true mfaEnabled: description: Indicates whether MFA (Multi-Factor Authentication) is enabled. type: boolean readOnly: true mfaReset: description: Can be set to true if MFA (Multi-Factor Authentication) needs to to be reset. This will remove the MFA. type: boolean writeOnly: true createdAt: description: Time at which the user was created in UTC using the RFC3339 format. type: string format: date-time example: '2009-11-10T23:20:50Z' readOnly: true updatedAt: description: Time at which the user was last updated in UTC using the RFC3339 format. type: string format: date-time example: '2009-11-10T23:20:50Z' readOnly: true fullName: description: Full name of the user typically consisting of first name and last name. type: string example: John Doe email: description: The email address of the user that is used for login. type: string format: email example: john@doe.com groups: description: Policy groups attached to this user which determine the effective permissions through policies. type: array items: title: Policy Group type: object allOf: - title: Policy Group description: 'A policy group describes the permissions of a group. This is the base type for the more concrete usages and not used directly within operations. ' type: object properties: name: type: string description: Name of the policy group. example: group name description: type: string description: Description of the group, omitted if empty example: Group provides read-access to accounts x-readme-ref-name: AbstractPolicyGroup - properties: id: type: string format: uuid description: Unique identifier of the policy group. example: 97874c1b-d073-4b06-bf01-a1497fbe1146 readOnly: true accountID: type: string format: uuid description: Unique identifier of the creator account. example: 97874c1b-d073-4b06-bf01-a1497fbe1146 readOnly: true createdAt: description: Time at which the policy group was created in UTC (RFC 3339 format). type: string format: date-time example: '2019-11-06T15:33:00Z' readOnly: true updatedAt: description: Time at which the policy group was last updated in UTC (RFC 3339 format). type: string format: date-time example: '2019-11-08T23:20:50Z' readOnly: true userCount: type: integer description: Amount of users that are in this group. example: 10 readOnly: true required: - id - name - accountID - createdAt - updatedAt x-readme-ref-name: PolicyGroup mainAddress: title: Address description: Represents a physical address of a customer. allOf: - type: object properties: city: description: The city of the location. type: string example: Aachen country: description: The country of the location. type: string example: Germany addressLine1: description: "First line of the location's address, typically containing the \nmain information such as the street name and house number.\n" type: string example: Oppenhoffallee 143 addressLine2: description: "Second line of the location's address, typically containing additional \ninformation such as apartment numbers, suite numbers, or other details \nthat can help in identifying the exact location of the address.\n" type: string addressLine3: description: "Third line of the location's address, typically containing any other \ndetails that can help in identifying the exact location of the address.\n" type: string addressLine4: description: "Fourth line of the location's address, typically containing any other \ndetails that can help in identifying the exact location of the address.\n" type: string timeZone: description: The TZ Identifier of the location's timezone. type: string example: Europe/Berlin readOnly: true x-readme-ref-name: AbstractLocation - type: object properties: postalcode: description: The postal code of the location. type: string example: '52062' region: description: The region of the address. type: string telephone: description: The telephone number of the customer. type: string x-readme-ref-name: Address language: title: Language description: The language information of the user. type: object required: - tag - name - nameNative properties: tag: type: string description: 'Tag is the IETF language tag''s primary identifier for this language. See [here](https://tools.ietf.org/rfc/bcp/bcp47.txt) and the example below for more information. ' example: de_DE name: type: string description: The name of the language in English. example: German readOnly: true nameNative: type: string description: The name of the language in the language itself. example: Deutsch readOnly: true x-readme-ref-name: Language required: - auth - id - email - createdAt - updatedAt x-readme-ref-name: User '400': description: Validation failed. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Validation description: 'Validation indicates that the request body contains fields which does not pass the validation. ' type: object required: - message - details example: message: Validation failed details: - email is not valid x-readme-ref-name: InvalidException '403': description: Forbidden. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: UnauthorizedError - Forbidden Error description: Forbidden Error example: message: Bad credentials x-readme-ref-name: ForbiddenException '404': description: Requested entity not found. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Not Found description: Not Found indicates that the entity was not found. example: message: Not Found x-readme-ref-name: NotFoundException '500': description: There has been an internal error on our side. We're looking into it. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ServerSideError - Internal Server Error description: Internal Server Error example: message: Internal Server Error x-readme-ref-name: InternalException x-code-samples: - lang: python label: Python source: 'import requests url = "https://api.gridx.de/users/userID" headers = {"accept": "application/vnd.gridx.v2+json"} response = requests.get(url, headers=headers) print(response.text)' - lang: shell label: Shell source: "curl --request GET \\\n --url https://api.gridx.de/users/userID \\\n --header 'accept: application/vnd.gridx.v2+json'" - lang: go label: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io\"\n)\n\nfunc main() {\n\n\turl := \"https://api.gridx.de/users/userID\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"accept\", \"application/vnd.gridx.v2+json\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n\n}" - lang: javascript label: Javascript source: "const options = {method: 'GET', headers: {accept: 'application/vnd.gridx.v2+json'}};\n\nfetch('https://api.gridx.de/users/userID', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err));" - lang: java label: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://api.gridx.de/users/userID\")\n .get()\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: java label: Kotlin source: "val client = OkHttpClient()\n\nval request = Request.Builder()\n .url(\"https://api.gridx.de/users/userID\")\n .get()\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build()\n\nval response = client.newCall(request).execute()" - lang: javascript label: Swift source: 'import Foundation let url = URL(string: "https://api.gridx.de/users/userID")! var request = URLRequest(url: url) request.httpMethod = "GET" request.timeoutInterval = 10 request.allHTTPHeaderFields = ["accept": "application/vnd.gridx.v2+json"] let (data, _) = try await URLSession.shared.data(for: request) print(String(decoding: data, as: UTF8.self))' - lang: csharp label: C# source: 'using RestSharp; var options = new RestClientOptions("https://api.gridx.de/users/userID"); var client = new RestClient(options); var request = new RestRequest(""); request.AddHeader("accept", "application/vnd.gridx.v2+json"); var response = await client.GetAsync(request); Console.WriteLine("{0}", response.Content); ' servers: - url: https://api.gridx.de description: Production components: securitySchemes: HeaderAuth: type: apiKey name: Authorization in: header description: Enter either the JWT token with the prefix `Bearer ` or an API token with the prefix `Token ` x-refined-from: - gridx-api.json - gridx-ai-openapi.yml