diff --git a/main/config/navigation/generated/myaccount.en.json b/main/config/navigation/generated/myaccount.en.json index eff4d22490..64aa7806bb 100644 --- a/main/config/navigation/generated/myaccount.en.json +++ b/main/config/navigation/generated/myaccount.en.json @@ -26,6 +26,12 @@ "docs/api/myaccount/connected-accounts/get-connected-accounts-connections", "docs/api/myaccount/connected-accounts/delete-connected-account" ] + }, + { + "group": "Profile", + "pages": [ + "docs/api/myaccount/profile/get-profile" + ] } ] } diff --git a/main/config/navigation/generated/myaccount.fr-ca.json b/main/config/navigation/generated/myaccount.fr-ca.json index b3c04e2df8..715caa781b 100644 --- a/main/config/navigation/generated/myaccount.fr-ca.json +++ b/main/config/navigation/generated/myaccount.fr-ca.json @@ -26,6 +26,12 @@ "docs/fr-ca/api/myaccount/connected-accounts/get-connected-accounts-connections", "docs/fr-ca/api/myaccount/connected-accounts/delete-connected-account" ] + }, + { + "group": "Profile", + "pages": [ + "docs/fr-ca/api/myaccount/profile/get-profile" + ] } ] } diff --git a/main/config/navigation/generated/myaccount.ja-jp.json b/main/config/navigation/generated/myaccount.ja-jp.json index 2bc6181aef..a36cab81c5 100644 --- a/main/config/navigation/generated/myaccount.ja-jp.json +++ b/main/config/navigation/generated/myaccount.ja-jp.json @@ -26,6 +26,12 @@ "docs/ja-jp/api/myaccount/connected-accounts/get-connected-accounts-connections", "docs/ja-jp/api/myaccount/connected-accounts/delete-connected-account" ] + }, + { + "group": "Profile", + "pages": [ + "docs/ja-jp/api/myaccount/profile/get-profile" + ] } ] } diff --git a/main/docs/api/myaccount/_metadata.json b/main/docs/api/myaccount/_metadata.json index aa2e9dba31..4476a882e5 100644 --- a/main/docs/api/myaccount/_metadata.json +++ b/main/docs/api/myaccount/_metadata.json @@ -1,4 +1,4 @@ { - "oasVersion": "1.606.0", + "oasVersion": "1.610.0", "snippetVersion": "0.0.5" } diff --git a/main/docs/api/myaccount/profile/get-profile.mdx b/main/docs/api/myaccount/profile/get-profile.mdx new file mode 100644 index 0000000000..a03808f0d0 --- /dev/null +++ b/main/docs/api/myaccount/profile/get-profile.mdx @@ -0,0 +1,11 @@ +--- +openapi: /docs/oas/myaccount/myaccount-api-oas.json GET /profile +playground: simple +deprecated: false +--- + +import { ApiReleaseLifecycle } from "/snippets/ApiReleaseLifecycle.jsx"; +import { Scopes } from "/snippets/ApiScopes.jsx"; + + + \ No newline at end of file diff --git a/main/docs/fr-ca/api/myaccount/profile/get-profile.mdx b/main/docs/fr-ca/api/myaccount/profile/get-profile.mdx new file mode 100644 index 0000000000..a03808f0d0 --- /dev/null +++ b/main/docs/fr-ca/api/myaccount/profile/get-profile.mdx @@ -0,0 +1,11 @@ +--- +openapi: /docs/oas/myaccount/myaccount-api-oas.json GET /profile +playground: simple +deprecated: false +--- + +import { ApiReleaseLifecycle } from "/snippets/ApiReleaseLifecycle.jsx"; +import { Scopes } from "/snippets/ApiScopes.jsx"; + + + \ No newline at end of file diff --git a/main/docs/ja-jp/api/myaccount/profile/get-profile.mdx b/main/docs/ja-jp/api/myaccount/profile/get-profile.mdx new file mode 100644 index 0000000000..a03808f0d0 --- /dev/null +++ b/main/docs/ja-jp/api/myaccount/profile/get-profile.mdx @@ -0,0 +1,11 @@ +--- +openapi: /docs/oas/myaccount/myaccount-api-oas.json GET /profile +playground: simple +deprecated: false +--- + +import { ApiReleaseLifecycle } from "/snippets/ApiReleaseLifecycle.jsx"; +import { Scopes } from "/snippets/ApiScopes.jsx"; + + + \ No newline at end of file diff --git a/main/docs/oas/myaccount/myaccount-api-oas.json b/main/docs/oas/myaccount/myaccount-api-oas.json index 7cab1423a4..decc3d6c4b 100644 --- a/main/docs/oas/myaccount/myaccount-api-oas.json +++ b/main/docs/oas/myaccount/myaccount-api-oas.json @@ -42,6 +42,11 @@ "name": "organizations", "description": "Organizations", "x-displayName": "Organizations" + }, + { + "name": "profile", + "description": "Profile", + "x-displayName": "Profile" } ], "paths": { @@ -2036,6 +2041,76 @@ "x-operation-name": "list", "x-codeSamples": [] } + }, + "/profile": { + "get": { + "description": "Retrieve the authenticated user's profile attributes available for self-service management, with a per-field access policy indicating read/write eligibility.", + "operationId": "getProfile", + "parameters": [ + { + "$ref": "#/components/parameters/HeaderCorrelationId" + }, + { + "$ref": "#/components/parameters/HeaderTraceparent" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetProfileResponseContent" + } + } + }, + "description": "Successfully retrieved profile.", + "headers": { + "x-ratelimit-limit": { + "$ref": "#/components/headers/XRateLimitLimitHeader" + }, + "x-ratelimit-reset": { + "$ref": "#/components/headers/XRateLimitResetHeader" + }, + "x-ratelimit-remaining": { + "$ref": "#/components/headers/XRateLimitRemainingHeader" + }, + "x-correlation-id": { + "$ref": "#/components/headers/CorrelationIdHeader" + }, + "traceparent": { + "$ref": "#/components/headers/TraceparentHeader" + } + } + }, + "401": { + "$ref": "#/components/responses/Unauthorized" + }, + "403": { + "$ref": "#/components/responses/Forbidden" + }, + "404": { + "$ref": "#/components/responses/NotFound" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + } + }, + "security": [ + { + "Bearer-DPoP": [ + "read:me:profile" + ] + } + ], + "tags": [ + "profile" + ], + "summary": "Get the authenticated user's profile.", + "x-release-lifecycle": "beta", + "x-operation-group": "Profile", + "x-operation-name": "get", + "x-codeSamples": [] + } } }, "components": { @@ -4890,6 +4965,118 @@ "organizations" ], "additionalProperties": false + }, + "UserMetadata": { + "type": "object", + "description": "Data related to the user that does not affect the application's core functionality. Only the subset of keys accessible for self-service management is returned.", + "additionalProperties": true + }, + "ProfileFieldAccessEnum": { + "type": "string", + "enum": [ + "read_write", + "read_only" + ], + "description": "Whether the authenticated user may write this field." + }, + "ProfileFieldSourceEnum": { + "type": "string", + "enum": [ + "user", + "idp", + "system" + ], + "description": "Who is the authoritative source for this field's value." + }, + "ProfilePolicyEntry": { + "type": "object", + "description": "Write-eligibility descriptor for a single profile field.", + "required": [ + "label", + "access", + "source" + ], + "additionalProperties": false, + "properties": { + "label": { + "type": "string", + "description": "Human-readable field name." + }, + "access": { + "$ref": "#/components/schemas/ProfileFieldAccessEnum" + }, + "source": { + "$ref": "#/components/schemas/ProfileFieldSourceEnum" + }, + "reason": { + "type": "string", + "description": "Present only when access is read_only. Explains why the field is not writable." + } + } + }, + "ProfilePolicy": { + "type": "object", + "description": "Per-field write-eligibility keyed by RFC 6901 JSON Pointer (e.g. /email).", + "additionalProperties": { + "$ref": "#/components/schemas/ProfilePolicyEntry" + } + }, + "GetProfileResponseContent": { + "type": "object", + "description": "The authenticated user's profile attributes available for self-service management, with a per-field access policy indicating read/write eligibility.", + "required": [], + "additionalProperties": false, + "properties": { + "given_name": { + "type": "string", + "description": "Given name/first name/forename of this user." + }, + "family_name": { + "type": "string", + "description": "Family name/last name/surname of this user." + }, + "name": { + "type": "string", + "description": "Name of this user." + }, + "nickname": { + "type": "string", + "description": "Preferred nickname or alias of this user." + }, + "picture": { + "type": "string", + "description": "URL to picture, photo, or avatar of this user." + }, + "email": { + "type": "string", + "format": "email", + "description": "Email address of this user." + }, + "phone_number": { + "type": "string", + "description": "Phone number for this user. Follows the E.164 recommendation." + }, + "username": { + "type": "string", + "description": "Username of this user." + }, + "user_metadata": { + "$ref": "#/components/schemas/UserMetadata" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "Date and time when this user was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "Date and time when this user was last updated/modified." + }, + "profile_policy": { + "$ref": "#/components/schemas/ProfilePolicy" + } + } } }, "responses": {