diff --git a/content/rest/enterprise-admin/scim.md b/content/rest/enterprise-admin/scim.md index c0ac6ac9fe..a95eb461b5 100644 --- a/content/rest/enterprise-admin/scim.md +++ b/content/rest/enterprise-admin/scim.md @@ -1,6 +1,6 @@ --- title: SCIM -intro: '' +intro: 'You can automate user creation and team memberships using the SCIM API.' versions: ghes: '>=3.6' topics: @@ -8,3 +8,70 @@ topics: miniTocMaxHeadingLevel: 3 --- +{% note %} + +**Note:** The SCIM API for {% data variables.product.product_name %} is currently in private beta and subject to change. To access the private beta and test the API, contact your account manager on {% data variables.contact.contact_enterprise_sales %}. + +{% endnote %} + +## About the SCIM API + +{% data variables.product.product_name %} provides a SCIM API for use by SCIM-enabled Identity Providers (IdPs). An integration on the IdP can use the API to automatically provision, manage, or deprovision user accounts on a {% data variables.product.product_name %} instance that uses SAML single sign-on (SSO) for authentication. For more information about SAML SSO, see "[About SAML for enterprise IAM](/admin/identity-and-access-management/using-saml-for-enterprise-iam/about-saml-for-enterprise-iam)." + +The SCIM API is based on SCIM 2.0. For more information, see the [specification](https://www.simplecloud.info/#Specification). + +### SCIM endpoint URLs + +An IdP can use the following root URL to communicate with the SCIM API for a {% data variables.product.product_name %} instance. + +``` +{% data variables.product.api_url_code %}/scim/v2/ +``` + +Endpoint URLs for the SCIM API are case-sensitive. For example, the first letter in the `Users` endpoint must be capitalized. + +```shell +GET /scim/v2/Users/{scim_user_id} +``` + +### Authenticating calls to the SCIM API + +The SCIM integration on the IdP performs actions on behalf of an enterprise owner for the {% data variables.product.product_name %} instance. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise#enterprise-owners)." + +To authenticate requests to the API, the person who configures SCIM on the IdP must use a personal access token (classic) with `admin:enterprise` scope, which the IdP must provide in the request's `Authorization` header. For more information about personal access tokens (classic), see "[Creating a personal access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)". + +{% note %} + +**Note:** Enterprise owners must generate and use a personal access token (classic) for authentication of requests to the SCIM API. {% ifversion ghes > 3.8 %}Fine-grained personal access tokens and {% endif %}GitHub app callers are not supported at this time. + +{% endnote %} + +### About mapping of SAML and SCIM data + +The {% data variables.product.product_name %} instance links each user who authenticates successfully with SAML SSO to a SCIM identity. To link the identities successfully, the SAML IdP and the SCIM integration must use matching SAML `NameID` and SCIM `userName` values for each user. + +{% ifversion ghes > 3.7 %} +{% note %} + +**Note:** If the {% data variables.product.product_name %} uses Azure AD as a SAML IdP, {% data variables.product.product_name %} will also check the SCIM `externalId` claim and SAML `http://schemas.microsoft.com/identity/claims/objectidentifier` claim to match users first, instead of using `NameID` and `userName`. + +{% endnote %} +{% endif %} + +### Supported SCIM user attributes + +The SCIM API's `User` endpoints support the following attributes within a request's parameters. + +| Name | Type | Description | +| :- | :- | :- | +| `displayName` | String | Human-readable name for a user. | +| `name.formatted` | String | The user's full name, including all middle names, titles, and suffixes, formatted for display. +| `name.givenName` | String | The first name of the user. | +| `name.familyName` | String | The last name of the user. | +| `userName` | String | The username for the user, generated by the IdP. Undergoes [normalization](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#about-username-normalization) before being used. +| `emails` | Array | List of the user's emails. | +| `roles` | Array | List of the user's roles. | +| `externalId` | String | This identifier is generated by an IdP provider. You can find the `externalId` for a user either on the IdP, or by using the [List SCIM provisioned identities](#list-scim-provisioned-identities-for-an-enterprise) endpoint and filtering on other known attributes, such as a user's username or email address on the {% data variables.product.product_name %} instance. | +| `id` | String | Identifier generated by the instance's SCIM endpoint. | +| `active` | Boolean | Indicates whether the identity is active (`true`) or should be suspended (`false`). | + diff --git a/data/release-notes/enterprise-server/3-3/12.yml b/data/release-notes/enterprise-server/3-3/12.yml index 6f96ac3ca8..e3c6861f08 100644 --- a/data/release-notes/enterprise-server/3-3/12.yml +++ b/data/release-notes/enterprise-server/3-3/12.yml @@ -20,3 +20,4 @@ sections: - Resource limits that are specific to processing pre-receive hooks may cause some pre-receive hooks to fail. - '{% data variables.product.prodname_actions %} storage settings cannot be validated and saved in the {% data variables.enterprise.management_console %} when "Force Path Style" is selected, and must instead be configured with the `ghe-actions-precheck` command line utility.' - '{% data reusables.release-notes.ghas-3.4-secret-scanning-known-issue %}' + - The [file finder](/search-github/searching-on-github/finding-files-on-github) does not return any results. To restore functionality, reinstall the 3.3.12 patch release using a full upgrade package. For more information, see "[Upgrading GitHub Enterprise Server](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#upgrading-with-an-upgrade-package)." \ No newline at end of file diff --git a/lib/redirects/static/client-side-rest-api-redirects.json b/lib/redirects/static/client-side-rest-api-redirects.json index 8ab3164436..d75ec4af2d 100644 --- a/lib/redirects/static/client-side-rest-api-redirects.json +++ b/lib/redirects/static/client-side-rest-api-redirects.json @@ -956,8 +956,8 @@ "/rest/teams#unlink-external-idp-group-team-connection": "/rest/teams/external-groups#unlink-external-idp-group-team-connection", "/rest/teams#list-idp-groups-for-a-team": "/rest/teams/team-sync#list-idp-groups-for-a-team", "/rest/teams#create-or-update-idp-group-connections": "/rest/teams/team-sync#create-or-update-idp-group-connections", - "/rest/actions/oidc#get-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository": "/rest/actions/oidc#get-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository", - "/rest/actions/oidc#set-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository": "/rest/actions/oidc#set-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository", + "/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository": "/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository", + "/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository": "/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository", "/rest/teams#list-idp-groups-for-a-team-legacy": "/rest/teams/team-sync#list-idp-groups-for-a-team-legacy", "/rest/teams#create-or-update-idp-group-connections-legacy": "/rest/teams/team-sync#create-or-update-idp-group-connections-legacy", "/rest/enterprise-admin#list-global-webhooks": "/rest/enterprise-admin/global-webhooks#list-global-webhooks", diff --git a/lib/rest/static/apps/enabled-for-apps.json b/lib/rest/static/apps/enabled-for-apps.json index 99cfddf6a9..82ee78c553 100644 --- a/lib/rest/static/apps/enabled-for-apps.json +++ b/lib/rest/static/apps/enabled-for-apps.json @@ -4115,13 +4115,13 @@ "requestPath": "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" }, { - "slug": "get-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository", + "slug": "get-the-customization-template-for-an-oidc-subject-claim-for-a-repository", "subcategory": "oidc", "verb": "get", "requestPath": "/repos/{owner}/{repo}/actions/oidc/customization/sub" }, { - "slug": "set-the-opt-in-flag-of-an-oidc-subject-claim-customization-for-a-repository", + "slug": "set-the-customization-template-for-an-oidc-subject-claim-for-a-repository", "subcategory": "oidc", "verb": "put", "requestPath": "/repos/{owner}/{repo}/actions/oidc/customization/sub" @@ -22133,7 +22133,7 @@ "requestPath": "/scim/v2/enterprises/{enterprise}/Groups" }, { - "slug": "provision-a-scim-enterprise-group-and-invite-users", + "slug": "provision-a-scim-enterprise-group", "subcategory": "scim", "verb": "post", "requestPath": "/scim/v2/enterprises/{enterprise}/Groups" @@ -22169,7 +22169,7 @@ "requestPath": "/scim/v2/enterprises/{enterprise}/Users" }, { - "slug": "provision-and-invite-a-scim-enterprise-user", + "slug": "provision-a-scim-enterprise-user", "subcategory": "scim", "verb": "post", "requestPath": "/scim/v2/enterprises/{enterprise}/Users" diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index d0072d1f3d..693fcb7afd 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -88571,6 +88571,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -241395,6 +241399,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "limit": "collaborators_only", + "expiry": "one_month" + }, "parameters": { "org": "ORG" } @@ -383879,7 +383887,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "
Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -383890,11 +383898,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -441091,7 +441103,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -448469,6 +448488,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/decorated/ghec.json b/lib/rest/static/decorated/ghec.json index 1292b14f5f..667c5585ba 100644 --- a/lib/rest/static/decorated/ghec.json +++ b/lib/rest/static/decorated/ghec.json @@ -1757,6 +1757,7 @@ "type": "object", "properties": { "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", "type": "array", "items": { "type": "string" @@ -1802,7 +1803,7 @@ "type": "array of strings", "name": "include_claim_keys", "in": "body", - "description": "", + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.
", "isRequired": true } ], @@ -1860,7 +1861,7 @@ "serverUrl": "https://api.github.com", "verb": "get", "requestPath": "/repos/{owner}/{repo}/actions/oidc/customization/sub", - "title": "Get the opt-out flag of an OIDC subject claim customization for a repository", + "title": "Get the customization template for an OIDC subject claim for a repository", "category": "actions", "subcategory": "oidc", "parameters": [ @@ -1901,15 +1902,27 @@ "contentType": "application/json", "description": "Status response
", "example": { - "use_default": false + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] }, "schema": { - "title": "The json payload enables/disables the use of sub claim customization", - "description": "OIDC Customer Subject", + "title": "Actions OIDC subject customization for a repository", + "description": "Actions OIDC subject customization for a repository", "type": "object", "properties": { "use_default": { + "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", "type": "boolean" + }, + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ @@ -1920,7 +1933,7 @@ } ], "previews": [], - "descriptionHTML": "Gets the opt-out flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository.\nYou must authenticate using an access token with the repo scope to use this\nendpoint. GitHub Apps must have the organization_administration:read permission to use this endpoint.
Gets the customization template for an OpenID Connect (OIDC) subject claim.\nYou must authenticate using an access token with the repo scope to use this\nendpoint. GitHub Apps must have the organization_administration:read permission to use this endpoint.
Whether to use the default template or not. If true, the include_claim_keys field is ignored.
Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.
" } ], "enabledForGitHubApps": true, @@ -1981,7 +2000,11 @@ "description": "Example", "acceptHeader": "application/vnd.github.v3+json", "bodyParameters": { - "use_default": false + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] }, "parameters": { "owner": "OWNER", @@ -1995,7 +2018,7 @@ } ], "previews": [], - "descriptionHTML": "Sets the opt-in or opt-out flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository.\nYou must authenticate using an access token with the repo scope to use this\nendpoint. GitHub Apps must have the actions:write permission to use this endpoint.
Sets the customization template and opt-in or opt-out flag for an OpenID Connect (OIDC) subject claim for a repository.\nYou must authenticate using an access token with the repo scope to use this\nendpoint. GitHub Apps must have the actions:write permission to use this endpoint.
Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -385825,11 +385856,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -443026,7 +443061,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -450404,6 +450446,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -457679,7 +457726,7 @@ }, { "httpStatusCode": "400", - "description": "Bad Request
" + "description": "Bad request
" }, { "httpStatusCode": "403", @@ -457691,7 +457738,7 @@ }, { "httpStatusCode": "429", - "description": "Too Many Requests
" + "description": "Too many requests
" } ], "subcategory": "scim" @@ -458081,7 +458128,7 @@ } ], "previews": [], - "descriptionHTML": "Provision organization membership for a user, and send an activation email to the email address.
", + "descriptionHTML": "Provisions organization membership for a user, and sends an activation email to the email address. If the user was previously a member of the organization, the invitation will reinstate any former privileges that the user had. For more information about reinstating former members, see \"Reinstating a former member of your organization.\"
", "statusCodes": [ { "httpStatusCode": "201", @@ -458093,7 +458140,7 @@ }, { "httpStatusCode": "400", - "description": "Bad Request
" + "description": "Bad request
" }, { "httpStatusCode": "403", @@ -458109,7 +458156,7 @@ }, { "httpStatusCode": "500", - "description": "Internal Error
" + "description": "Internal server error
" } ], "subcategory": "scim" @@ -459210,7 +459257,7 @@ }, { "httpStatusCode": "400", - "description": "Bad Request
" + "description": "Bad request
" }, { "httpStatusCode": "403", diff --git a/lib/rest/static/decorated/ghes-3.2.json b/lib/rest/static/decorated/ghes-3.2.json index f4dcb0ae4e..9cd75241ce 100644 --- a/lib/rest/static/decorated/ghes-3.2.json +++ b/lib/rest/static/decorated/ghes-3.2.json @@ -77648,6 +77648,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -308952,7 +308956,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -308963,11 +308967,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -370012,7 +370020,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -376822,6 +376837,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/decorated/ghes-3.3.json b/lib/rest/static/decorated/ghes-3.3.json index f24c059a86..cfbbda055d 100644 --- a/lib/rest/static/decorated/ghes-3.3.json +++ b/lib/rest/static/decorated/ghes-3.3.json @@ -78007,6 +78007,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -310268,7 +310272,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -310279,11 +310283,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -365813,7 +365821,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -373046,6 +373061,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/decorated/ghes-3.4.json b/lib/rest/static/decorated/ghes-3.4.json index e509bbf031..76938b81f1 100644 --- a/lib/rest/static/decorated/ghes-3.4.json +++ b/lib/rest/static/decorated/ghes-3.4.json @@ -80092,6 +80092,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -328469,7 +328473,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -328480,11 +328484,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -384164,7 +384172,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -391397,6 +391412,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/decorated/ghes-3.5.json b/lib/rest/static/decorated/ghes-3.5.json index afa50afe08..b46620b183 100644 --- a/lib/rest/static/decorated/ghes-3.5.json +++ b/lib/rest/static/decorated/ghes-3.5.json @@ -85748,6 +85748,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -335631,7 +335635,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -335642,11 +335646,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -391451,7 +391459,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -398696,6 +398711,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/decorated/ghes-3.6.json b/lib/rest/static/decorated/ghes-3.6.json index 313e4cc2a9..95bc9d95e0 100644 --- a/lib/rest/static/decorated/ghes-3.6.json +++ b/lib/rest/static/decorated/ghes-3.6.json @@ -88004,6 +88004,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -189961,47 +189965,68 @@ "category": "enterprise-admin", "subcategory": "scim", "parameters": [ - { - "name": "enterprise", - "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.
", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "startIndex", - "description": "Used for pagination: the index of the first result to return.
", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "count", - "description": "Used for pagination: the number of results to return.
", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, { "name": "filter", - "description": "filter results
", + "description": "If specified, only results that match the specified filter will be returned. Multiple filters are not supported. Possible filters are externalId, id, and displayName. For example, ?filter=\"externalId eq '9138790-10932-109120392-12321'\".
attributes to exclude
", + "description": "Excludes the specified attribute from being returned in the results. Using this parameter can speed up response time.
", "in": "query", "required": false, + "schema": { + "type": "string", + "examples": [ + "members" + ] + } + }, + { + "name": "startIndex", + "description": "Used for pagination: the starting index of the first result to return when paginating through values.
", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 1, + "format": "int32", + "examples": [ + 1 + ] + } + }, + { + "name": "count", + "description": "Used for pagination: the number of results to return per page.
", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 30, + "format": "int32", + "examples": [ + 1 + ] + } + }, + { + "name": "enterprise", + "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.
", + "in": "path", + "required": true, "schema": { "type": "string" } @@ -190022,164 +190047,262 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Success, either groups were found or not found
", "example": { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, + "totalResults": 1, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], - "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "id": "927fa2c08dcb4a7fae9e", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:00", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "id": "5e75bbbb-aa1a-11ea-8644-75ff655cdddd", - "externalId": null, - "displayName": "octo-docs-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" - } - ], - "meta": { - "resourceType": "Group", - "created": "2020-06-09T16:28:01.000+10:00", - "lastModified": "2020-06-09T16:28:01.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/5e75bbbb-aa1a-11ea-8644-75ff655cdddd" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" } } - ] + ], + "startIndex": 1, + "itemsPerPage": 20 }, "schema": { "type": "object", + "required": [ + "schemas", + "totalResults", + "Resources", + "startIndex", + "itemsPerPage" + ], "properties": { "schemas": { "type": "array", + "description": "The URIs that are used to indicate the namespaces of the list SCIM schemas.", "items": { - "type": "string" - } + "type": "string", + "enum": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] + }, + "examples": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] }, "totalResults": { - "type": "number" - }, - "itemsPerPage": { - "type": "number" - }, - "startIndex": { - "type": "number" + "type": "integer", + "description": "Number of results found", + "examples": [ + 1 + ] }, "Resources": { "type": "array", + "description": "Information about each provisioned group.", "items": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } + }, + "startIndex": { + "type": "integer", + "description": "A starting index for the returned page", + "examples": [ + 1 + ] + }, + "itemsPerPage": { + "type": "integer", + "description": "Number of objects per page", + "examples": [ + 20 + ] } - }, - "required": [ - "schemas", - "totalResults", - "itemsPerPage", - "startIndex", - "Resources" - ] + } } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nLists provisioned SCIM groups in an enterprise.
\nYou can improve query search time by using the excludedAttributes query parameter with a value of members to exclude members from the response.
OK
" + "description": "Success, either groups were found or not found
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -190187,7 +190310,7 @@ "serverUrl": "http(s)://HOSTNAME/api/v3", "verb": "post", "requestPath": "/scim/v2/enterprises/{enterprise}/Groups", - "title": "Provision a SCIM enterprise group and invite users", + "title": "Provision a SCIM enterprise group", "category": "enterprise-admin", "subcategory": "scim", "parameters": [ @@ -190206,26 +190329,40 @@ "type": "array of strings", "name": "schemas", "in": "body", - "description": "The SCIM schema URIs.
", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.
", + "isRequired": true + }, + { + "type": "string", + "name": "externalId", + "in": "body", + "description": "A unique identifier for the resource as defined by the provisioning client.
", "isRequired": true }, { "type": "string", "name": "displayName", "in": "body", - "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to.
", + "description": "A human-readable name for a security group.
", "isRequired": true }, { "type": "array of objects", "name": "members", "in": "body", - "description": "", + "description": "The group members.
", + "isRequired": true, "childParamsGroups": [ { "type": "string", "name": "value", - "description": "The SCIM user ID for a user.
", + "description": "The local unique identifier for the member
", + "isRequired": true + }, + { + "type": "string", + "name": "displayName", + "description": "The display name associated with the member
", "isRequired": true } ] @@ -190234,7 +190371,7 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "group", "request": { "contentType": "application/json", "description": "Example", @@ -190243,15 +190380,8 @@ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - }, - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" - } - ] + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering" }, "parameters": { "enterprise": "ENTERPRISE" @@ -190260,103 +190390,206 @@ "response": { "statusCode": "201", "contentType": "application/json", - "description": "Response
", + "description": "Group has been created
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nProvision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nCreates a SCIM group for an enterprise.
\nIf members are included as part of the group provisioning payload, they will be created as external group members. It is up to a provider to store a mapping between the externalId and id of each user.
Created
" + "description": "Group has been created
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "409", + "description": "Duplicate record detected
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -190379,20 +190612,14 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.
", + "description": "A unique identifier of the SCIM group.
", "in": "path", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "excludedAttributes", - "description": "Attributes to exclude.
", - "in": "query", - "required": false, - "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], @@ -190412,103 +190639,206 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Success, a group was found
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nGets information about a SCIM group.
", "statusCodes": [ { "httpStatusCode": "200", - "description": "OK
" + "description": "Success, a group was found
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -190531,11 +190861,14 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.
", + "description": "A unique identifier of the SCIM group.
", "in": "path", "required": true, "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], @@ -190544,26 +190877,40 @@ "type": "array of strings", "name": "schemas", "in": "body", - "description": "The SCIM schema URIs.
", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.
", + "isRequired": true + }, + { + "type": "string", + "name": "externalId", + "in": "body", + "description": "A unique identifier for the resource as defined by the provisioning client.
", "isRequired": true }, { "type": "string", "name": "displayName", "in": "body", - "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to.
", + "description": "A human-readable name for a security group.
", "isRequired": true }, { "type": "array of objects", "name": "members", "in": "body", - "description": "", + "description": "The group members.
", + "isRequired": true, "childParamsGroups": [ { "type": "string", "name": "value", - "description": "The SCIM user ID for a user.
", + "description": "The local unique identifier for the member
", + "isRequired": true + }, + { + "type": "string", + "name": "displayName", + "description": "The display name associated with the member
", "isRequired": true } ] @@ -190572,22 +190919,215 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "group", "request": { "contentType": "application/json", - "description": "Example", + "description": "Group", "acceptHeader": "application/vnd.github.v3+json", "bodyParameters": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering" + }, + "parameters": { + "enterprise": "ENTERPRISE", + "scim_group_id": "SCIM_GROUP_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Group was updated
", + "example": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ], + "meta": { + "resourceType": "Group", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + }, + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta", + "members" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + } + } + }, + { + "key": "groupWithMembers", + "request": { + "contentType": "application/json", + "description": "Group with member", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", + "members": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ] }, @@ -190599,103 +191139,210 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Group was updated
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nReplaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the Update an attribute for a SCIM enterprise group endpoint instead.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nReplaces an existing provisioned group’s information.
\nYou must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the Update an attribute for a SCIM enterprise group endpoint instead.
", "statusCodes": [ { "httpStatusCode": "200", - "description": "OK
" + "description": "Group was updated
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "409", + "description": "Duplicate record detected
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -190718,27 +191365,23 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.
", + "description": "A unique identifier of the SCIM group.
", "in": "path", "required": true, "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], "bodyParameters": [ - { - "type": "array of strings", - "name": "schemas", - "in": "body", - "description": "The SCIM schema URIs.
", - "isRequired": true - }, { "type": "array of objects", "name": "Operations", "in": "body", - "description": "Array of SCIM operations.
", + "description": "patch operations list
", "isRequired": true, "childParamsGroups": [ { @@ -190748,11 +191391,8 @@ "isRequired": true, "enum": [ "add", - "Add", - "remove", - "Remove", "replace", - "Replace" + "remove" ] }, { @@ -190761,20 +191401,27 @@ "description": "" }, { - "type": "", + "type": "string", "name": "value", - "description": "Can be any value - string, number, array or object.
" + "description": "Corresponding 'value' of that field specified by 'path'
" } ] + }, + { + "type": "array of strings", + "name": "schemas", + "in": "body", + "description": "", + "isRequired": true } ], "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "updateGroup", "request": { "contentType": "application/json", - "description": "Example", + "description": "Update Group", "acceptHeader": "application/vnd.github.v3+json", "bodyParameters": { "schemas": [ @@ -190782,11 +191429,209 @@ ], "Operations": [ { - "op": "remove", + "op": "replace", + "path": "displayName", + "value": "Employees" + } + ] + }, + "parameters": { + "enterprise": "ENTERPRISE", + "scim_group_id": "SCIM_GROUP_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Success, group was updated
", + "example": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", + "members": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ], + "meta": { + "resourceType": "Group", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + }, + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta", + "members" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + } + } + }, + { + "key": "addMembers", + "request": { + "contentType": "application/json", + "description": "Add Members", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "add", "path": "members", "value": [ { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" + "value": "879db59-3bdf-4490-ad68-ab880a2694745" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685" } ] } @@ -190800,98 +191645,210 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Success, group was updated
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:00", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nAllows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nUpdate a provisioned group’s individual attributes.
\nTo change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification. Update can also be used to add group memberships.
\nGroup memberships can be sent one at a time or in batches for faster performance. Note: The memberships are referenced through a local user id, and the user will need to be created before they are referenced here.
OK
" + "description": "Success, group was updated
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "409", + "description": "Duplicate record detected
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -190914,11 +191871,14 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.
", + "description": "A unique identifier of the SCIM group.
", "in": "path", "required": true, "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], @@ -190937,16 +191897,40 @@ }, "response": { "statusCode": "204", - "description": "Response
" + "description": "Group was deleted, no content
" } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nDeletes a SCIM group from an enterprise.
", "statusCodes": [ { "httpStatusCode": "204", - "description": "No Content
" + "description": "Group was deleted, no content
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -190959,37 +191943,67 @@ "subcategory": "scim", "parameters": [ { - "name": "enterprise", - "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.
", - "in": "path", - "required": true, + "name": "filter", + "description": "If specified, only results that match the specified filter will be returned. Multiple filters are not supported. Possible filters are userName, externalId, id, and displayName. For example, ?filter=\"externalId eq '9138790-10932-109120392-12321'\".
Excludes the specified attribute from being returned in the results. Using this parameter can speed up response time.
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "examples": [ + "members" + ] } }, { "name": "startIndex", - "description": "Used for pagination: the index of the first result to return.
", + "description": "Used for pagination: the starting index of the first result to return when paginating through values.
", "in": "query", "required": false, "schema": { - "type": "integer" + "type": "integer", + "default": 1, + "format": "int32", + "examples": [ + 1 + ] } }, { "name": "count", - "description": "Used for pagination: the number of results to return.
", + "description": "Used for pagination: the number of results to return per page.
", "in": "query", "required": false, "schema": { - "type": "integer" + "type": "integer", + "default": 30, + "format": "int32", + "examples": [ + 1 + ] } }, { - "name": "filter", - "description": "filter results
", - "in": "query", - "required": false, + "name": "enterprise", + "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.
", + "in": "path", + "required": true, "schema": { "type": "string" } @@ -191010,197 +192024,343 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Success, either users were found or not found
", "example": { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, + "totalResults": 1, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "octocat@github.com", - "name": { - "givenName": "Mona", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "octocat@github.com", - "primary": true, - "type": "work" - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], + "externalId": "E012345", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", "active": true, - "meta": { - "resourceType": "User", - "created": "2020-05-30T04:02:34.000+10:00", - "lastModified": "2020-05-30T04:05:04.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5", - "externalId": "sdfoiausdofiua", - "userName": "hubot@example.com", + "userName": "E012345", "name": { - "givenName": "hu", - "familyName": "bot" + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "hubot@example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [], - "active": true, - "meta": { - "resourceType": "User", - "created": "2020-06-05T08:29:40.000+10:00", - "lastModified": "2020-06-05T08:30:19.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5" - } + "roles": [ + { + "value": "User", + "primary": false + } + ] } - ] + ], + "startIndex": 1, + "itemsPerPage": 20 }, "schema": { "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "totalResults": { - "type": "number" - }, - "itemsPerPage": { - "type": "number" - }, - "startIndex": { - "type": "number" - }, - "Resources": { - "type": "array", - "items": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "primary": { - "type": "boolean" - }, - "type": { - "type": "string" - } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } - } - } - }, - "required": [ - "schemas", - "id" - ] - } - } - }, "required": [ "schemas", "totalResults", - "itemsPerPage", + "Resources", "startIndex", - "Resources" - ] + "itemsPerPage" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the list SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] + }, + "examples": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] + }, + "totalResults": { + "type": "integer", + "description": "Number of results found", + "examples": [ + 1 + ] + }, + "Resources": { + "type": "array", + "description": "Information about each provisioned account.", + "items": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + } + }, + "startIndex": { + "type": "integer", + "description": "A starting index for the returned page", + "examples": [ + 1 + ] + }, + "itemsPerPage": { + "type": "integer", + "description": "Number of objects per page", + "examples": [ + 20 + ] + } + } } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nRetrieves a paginated list of all provisioned enterprise members, including pending invitations.
\nWhen a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub Enterprise Server. This can happen in certain cases where an external identity associated with an organization will not match an organization member:
\nThe returned list of external identities can include an entry for a null user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub Enterprise Server account after completing SSO:
The user is granted access by the IdP and is not a member of the GitHub Enterprise Server enterprise.
\nThe user attempts to access the GitHub Enterprise Server enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub Enterprise Server account.
\nAfter successfully authenticating with the SAML SSO IdP, the null external identity entry is created and the user is prompted to sign in to their GitHub Enterprise Server account:
null entry remains in place.Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nLists provisioned SCIM enterprise members.
\nWhen a user with a SCIM-provisioned external identity is removed from an enterprise through a patch with active flag set to false, the account's metadata is preserved to allow the user to re-join the enterprise in the future. However, the user's account will be suspended and the user will not be able to sign-in. In order to permanently suspend the users account with no ability to re-join the enterprise in the future, use the delete request. Users that were not permanently deleted will be visible in the returned results.
You can improve query search time by using the excludedAttributes query parameter with a value of groups to exclude groups from the response.
OK
" + "description": "Success, either users were found or not found
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -191208,7 +192368,7 @@ "serverUrl": "http(s)://HOSTNAME/api/v3", "verb": "post", "requestPath": "/scim/v2/enterprises/{enterprise}/Users", - "title": "Provision and invite a SCIM enterprise user", + "title": "Provision a SCIM enterprise user", "category": "enterprise-admin", "subcategory": "scim", "parameters": [ @@ -191227,7 +192387,21 @@ "type": "array of strings", "name": "schemas", "in": "body", - "description": "The SCIM schema URIs.
", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.
", + "isRequired": true + }, + { + "type": "string", + "name": "externalId", + "in": "body", + "description": "A unique identifier for the resource as defined by the provisioning client.
", + "isRequired": true + }, + { + "type": "boolean", + "name": "active", + "in": "body", + "description": "Whether the user active in the IdP.
", "isRequired": true }, { @@ -191242,27 +192416,43 @@ "name": "name", "in": "body", "description": "", - "isRequired": true, "childParamsGroups": [ { "type": "string", - "name": "givenName", - "description": "The first name of the user.
", - "isRequired": true + "name": "formatted", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.
" }, { "type": "string", "name": "familyName", - "description": "The last name of the user.
", + "description": "The family name of the user.
", "isRequired": true + }, + { + "type": "string", + "name": "givenName", + "description": "The given name of the user.
", + "isRequired": true + }, + { + "type": "string", + "name": "middleName", + "description": "The middle name(s) of the user.
" } ] }, + { + "type": "string", + "name": "displayName", + "in": "body", + "description": "A human-readable name for the user.
", + "isRequired": true + }, { "type": "array of objects", "name": "emails", "in": "body", - "description": "List of user emails.
", + "description": "The emails for the user.
", "isRequired": true, "childParamsGroups": [ { @@ -191287,14 +192477,24 @@ }, { "type": "array of objects", - "name": "groups", + "name": "roles", "in": "body", - "description": "List of SCIM group IDs the user is a member of.
", + "description": "The roles assigned to the user.
", "childParamsGroups": [ { "type": "string", "name": "value", - "description": "" + "description": "The role value representing a user role in GitHub.
", + "isRequired": true, + "enum": [ + "User", + "Enterprise Owner" + ] + }, + { + "type": "boolean", + "name": "primary", + "description": "Is the role a primary role for the user.
" } ] } @@ -191302,30 +192502,36 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "user", "request": { "contentType": "application/json", - "description": "Example", + "description": "User", "acceptHeader": "application/vnd.github.v3+json", "bodyParameters": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "userName": "mona.octocat@okta.example.com", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", "familyName": "Octocat", - "givenName": "Mona" + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ] }, @@ -191336,130 +192542,590 @@ "response": { "statusCode": "201", "contentType": "application/json", - "description": "Response
", + "description": "User has been created
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", "givenName": "Mona", - "familyName": "Octocat" + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ], - "active": true, "meta": { "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { + "allOf": [ + { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { - "givenName": { - "type": "string" + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } } } } }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } + ] + } + } + }, + { + "key": "enterpriseOwner", + "request": { + "contentType": "application/json", + "description": "Enterprise Owner", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" }, - "required": [ - "schemas", - "id" + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "Enterprise Owner", + "primary": false + } + ] + }, + "parameters": { + "enterprise": "ENTERPRISE" + } + }, + "response": { + "statusCode": "201", + "contentType": "application/json", + "description": "User has been created
", + "example": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + }, + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nProvision enterprise membership for a user, and send organization invitation emails to the email address.
\nYou can optionally include the groups a user will be invited to join. If you do not provide a list of groups, the user is provisioned for the enterprise, but no organization invitation emails will be sent.
Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nCreates an external identity for a new SCIM enterprise user.
\nSCIM does not authenticate users, it only provisions them. The authentication of users is done by SAML. However, when SCIM is enabled, all users need to be provisioned through SCIM before a user can sign in through SAML. The matching of a user to a SCIM provisioned user is done when the SAML assertion is consumed. The user will be matched on SAML response NameID to SCIM userName.
When converting existing enterprise to use SCIM, the user handle (userName) from the SCIM payload will be used to match the provisioned user to an already existing user in the enterprise. Since the new identity record is created for newly provisioned users the matching for those records is done using a user's handle. Currently the matching will be performed to all of the users no matter if they were SAML JIT provisioned or created as local users.
Created
" + "description": "User has been created
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "409", + "description": "Duplicate record detected
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -191506,130 +193172,293 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Success, a user was found
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", "givenName": "Mona", - "familyName": "Octocat" + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ], - "active": true, "meta": { "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { + "allOf": [ + { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { - "givenName": { - "type": "string" + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } } } } }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nGets information about a SCIM user.
", "statusCodes": [ { "httpStatusCode": "200", - "description": "OK
" + "description": "Success, a user was found
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -191665,7 +193494,21 @@ "type": "array of strings", "name": "schemas", "in": "body", - "description": "The SCIM schema URIs.
", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.
", + "isRequired": true + }, + { + "type": "string", + "name": "externalId", + "in": "body", + "description": "A unique identifier for the resource as defined by the provisioning client.
", + "isRequired": true + }, + { + "type": "boolean", + "name": "active", + "in": "body", + "description": "Whether the user active in the IdP.
", "isRequired": true }, { @@ -191680,27 +193523,43 @@ "name": "name", "in": "body", "description": "", - "isRequired": true, "childParamsGroups": [ { "type": "string", - "name": "givenName", - "description": "The first name of the user.
", - "isRequired": true + "name": "formatted", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.
" }, { "type": "string", "name": "familyName", - "description": "The last name of the user.
", + "description": "The family name of the user.
", "isRequired": true + }, + { + "type": "string", + "name": "givenName", + "description": "The given name of the user.
", + "isRequired": true + }, + { + "type": "string", + "name": "middleName", + "description": "The middle name(s) of the user.
" } ] }, + { + "type": "string", + "name": "displayName", + "in": "body", + "description": "A human-readable name for the user.
", + "isRequired": true + }, { "type": "array of objects", "name": "emails", "in": "body", - "description": "List of user emails.
", + "description": "The emails for the user.
", "isRequired": true, "childParamsGroups": [ { @@ -191725,14 +193584,24 @@ }, { "type": "array of objects", - "name": "groups", + "name": "roles", "in": "body", - "description": "List of SCIM group IDs the user is a member of.
", + "description": "The roles assigned to the user.
", "childParamsGroups": [ { "type": "string", "name": "value", - "description": "" + "description": "The role value representing a user role in GitHub.
", + "isRequired": true, + "enum": [ + "User", + "Enterprise Owner" + ] + }, + { + "type": "boolean", + "name": "primary", + "description": "Is the role a primary role for the user.
" } ] } @@ -191740,30 +193609,36 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "user", "request": { "contentType": "application/json", - "description": "Example", + "description": "User", "acceptHeader": "application/vnd.github.v3+json", "bodyParameters": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "userName": "mona.octocat@okta.example.com", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", "familyName": "Octocat", - "givenName": "Mona" + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ] }, @@ -191775,130 +193650,297 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "User was updated
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", "givenName": "Mona", - "familyName": "Octocat" + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ], - "active": true, "meta": { "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { + "allOf": [ + { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { - "givenName": { - "type": "string" + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } } } } }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nReplaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the Update an attribute for a SCIM user endpoint instead.
\nYou must at least provide the required values for the user: userName, name, and emails.
Warning: Setting active: false removes the user from the enterprise, deletes the external identity, and deletes the associated {scim_user_id}.
Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nReplaces an existing provisioned user's information.
\nYou must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the Update an attribute for a SCIM user endpoint instead.
\nWarning: Setting active: false will suspend a user and obfuscate the user handle and user email. Since the implementation is a generic SCIM implementation and does not differentiate yet between different IdP providers, for Okta, the user GDPR data will not be purged and the credentials will not be removed.
OK
" + "description": "User was updated
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "409", + "description": "Duplicate record detected
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] }, @@ -191930,28 +193972,51 @@ } ], "bodyParameters": [ - { - "type": "array of strings", - "name": "schemas", - "in": "body", - "description": "The SCIM schema URIs.
", - "isRequired": true - }, { "type": "array of objects", "name": "Operations", "in": "body", - "description": "Array of SCIM operations.
", + "description": "patch operations list
", + "isRequired": true, + "childParamsGroups": [ + { + "type": "string", + "name": "op", + "description": "", + "isRequired": true, + "enum": [ + "add", + "replace", + "remove" + ] + }, + { + "type": "string", + "name": "path", + "description": "" + }, + { + "type": "string", + "name": "value", + "description": "Corresponding 'value' of that field specified by 'path'
" + } + ] + }, + { + "type": "array of strings", + "name": "schemas", + "in": "body", + "description": "", "isRequired": true } ], "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "userMultiValuedProperties", "request": { "contentType": "application/json", - "description": "Example", + "description": "Multi Valued Property", "acceptHeader": "application/vnd.github.v3+json", "bodyParameters": { "schemas": [ @@ -191959,19 +194024,14 @@ ], "Operations": [ { - "op": "add", - "path": "emails", - "value": [ - { - "value": "monalisa@octocat.github.com", - "type": "home" - } - ] + "op": "replace", + "path": "emails[type eq 'work'].value", + "value": "updatedEmail@microsoft.com" }, { "op": "replace", - "path": "name.givenName", - "value": "Monalisa" + "path": "name.familyName", + "value": "updatedFamilyName" } ] }, @@ -191983,123 +194043,827 @@ "response": { "statusCode": "200", "contentType": "application/json", - "description": "Response
", + "description": "Success, user was updated
", "example": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { - "givenName": "Monalisa", - "familyName": "Octocat" + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true - }, - { - "value": "monalisa@octocat.github.com", - "type": "home" } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ], - "active": true, "meta": { "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" } }, "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { + "allOf": [ + { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { - "givenName": { - "type": "string" + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } } } } }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } + ] + } + } + }, + { + "key": "userSingleValuedProperties", + "request": { + "contentType": "application/json", + "description": "Single Valued Property", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "replace", + "path": "userName", + "value": "5b50642d-79fc-4410-9e90-4c077cdd1a59@testuser.com" + }, + { + "op": "replace", + "path": "displayName", + "value": "Monalisa Octocat" + } + ] + }, + "parameters": { + "enterprise": "ENTERPRISE", + "scim_user_id": "SCIM_USER_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Success, user was updated
", + "example": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" }, - "required": [ - "schemas", - "id" + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + }, + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + } + } + }, + { + "key": "disableUser", + "request": { + "contentType": "application/json", + "description": "Disable User", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "replace", + "path": "active", + "value": false + } + ] + }, + "parameters": { + "enterprise": "ENTERPRISE", + "scim_user_id": "SCIM_USER_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Success, user was updated
", + "example": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + }, + "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } ] } } @@ -192109,10 +194873,38 @@ "statusCodes": [ { "httpStatusCode": "200", - "description": "OK
" + "description": "Success, user was updated
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "409", + "description": "Duplicate record detected
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
\nAllows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification.
Note: Complicated SCIM path selectors that include filters are not supported. For example, a path selector defined as \"path\": \"emails[type eq \\\"work\\\"]\" will not work.
Warning: If you set active:false using the replace operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated :scim_user_id.
{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n"
+ "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nUpdate a provisioned user's individual attributes.
\nTo change a user's values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the SCIM specification.
Note: Complicated SCIM path selectors that include filters are not supported. For example, a path selector defined as \"path\": \"emails[type eq \\\"work\\\"]\" will not work.
Warning: Setting active: false will suspend a user and obfuscate the user handle and user email. Since the implementation is a generic SCIM implementation and does not differentiate yet between different IdP providers, for Okta, the user GDPR data will not be purged and the credentials will not be removed.
{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n"
},
{
"serverUrl": "http(s)://HOSTNAME/api/v3",
@@ -192156,16 +194948,40 @@
},
"response": {
"statusCode": "204",
- "description": "Response
" + "description": "User was deleted, no content
" } } ], "previews": [], - "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.
", + "descriptionHTML": "Note: The SCIM API endpoints for enterprise accounts are currently in private beta and are subject to change.
\nPermanently suspends a SCIM user from an enterprise, removes all data for the user, obfuscates the login, email, and display name of the user, removes all external-identity SCIM attributes, and deletes the emails, avatar, PATs, SSH keys, OAuth authorizations credentials, GPG keys, and SAML mappings for the user. You will not be able to undo this action.
", "statusCodes": [ { "httpStatusCode": "204", - "description": "No Content
" + "description": "User was deleted, no content
" + }, + { + "httpStatusCode": "400", + "description": "Bad request
" + }, + { + "httpStatusCode": "401", + "description": "Authorization failure
" + }, + { + "httpStatusCode": "403", + "description": "Permission denied
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "429", + "description": "Too many requests
" + }, + { + "httpStatusCode": "500", + "description": "Internal server error
" } ] } @@ -342485,7 +345301,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -342496,11 +345312,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -399513,7 +402333,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -406852,6 +409679,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/decorated/github.ae.json b/lib/rest/static/decorated/github.ae.json index b3793610a0..db52f35cb5 100644 --- a/lib/rest/static/decorated/github.ae.json +++ b/lib/rest/static/decorated/github.ae.json @@ -55033,6 +55033,10 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "subscribed": true, + "ignored": false + }, "parameters": { "owner": "OWNER", "repo": "REPO" @@ -286134,7 +286138,7 @@ "type": "string", "name": "merge_method", "in": "body", - "description": "Merge method to use. Possible values are merge, squash or rebase. Default is merge.
The merge method to use.
", "enum": [ "merge", "squash", @@ -286145,11 +286149,15 @@ "enabledForGitHubApps": true, "codeExamples": [ { - "key": "default", + "key": "response-if-merge-was-successful", "request": { "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + }, "parameters": { "owner": "OWNER", "repo": "REPO", @@ -339637,7 +339645,14 @@ "request": { "contentType": "application/json", "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } }, "response": { "statusCode": "201", @@ -346899,6 +346914,11 @@ "contentType": "application/json", "description": "Example", "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + }, "parameters": { "owner": "OWNER", "repo": "REPO" diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index 70a1a96448..328a6920ee 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -86436,6 +86436,14 @@ "required": [ "limit" ] + }, + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } } } } @@ -260806,6 +260814,15 @@ "description": "When forking from an existing repository, fork with only the default branch." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -382646,7 +382663,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -382654,6 +382671,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -411487,6 +411512,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -484971,6 +485004,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/ghec.deref.json b/lib/rest/static/dereferenced/ghec.deref.json index b804462f88..3a9140d170 100644 --- a/lib/rest/static/dereferenced/ghec.deref.json +++ b/lib/rest/static/dereferenced/ghec.deref.json @@ -58897,6 +58897,7 @@ "type": "object", "properties": { "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", "type": "array", "items": { "type": "string" @@ -58960,6 +58961,7 @@ "type": "object", "properties": { "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", "type": "array", "items": { "type": "string" @@ -88639,6 +88641,14 @@ "required": [ "limit" ] + }, + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } } } } @@ -153839,15 +153849,15 @@ }, "/repos/{owner}/{repo}/actions/oidc/customization/sub": { "get": { - "summary": "Get the opt-out flag of an OIDC subject claim customization for a repository", - "description": "Gets the `opt-out` flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository.\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint. GitHub Apps must have the `organization_administration:read` permission to use this endpoint.", + "summary": "Get the customization template for an OIDC subject claim for a repository", + "description": "Gets the customization template for an OpenID Connect (OIDC) subject claim.\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint. GitHub Apps must have the `organization_administration:read` permission to use this endpoint.", "tags": [ "actions" ], "operationId": "actions/get-custom-oidc-sub-claim-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/enterprise-cloud@latest//rest/actions/oidc#get-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository" + "url": "https://docs.github.com/enterprise-cloud@latest//rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository" }, "parameters": [ { @@ -153875,12 +153885,20 @@ "content": { "application/json": { "schema": { - "title": "The json payload enables/disables the use of sub claim customization", - "description": "OIDC Customer Subject", + "title": "Actions OIDC subject customization for a repository", + "description": "Actions OIDC subject customization for a repository", "type": "object", "properties": { "use_default": { + "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", "type": "boolean" + }, + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ @@ -153890,7 +153908,11 @@ "examples": { "default": { "value": { - "use_default": false + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] } } } @@ -154003,15 +154025,15 @@ } }, "put": { - "summary": "Set the opt-in flag of an OIDC subject claim customization for a repository", - "description": "Sets the `opt-in` or `opt-out` flag of a GitHub Actions OpenID Connect (OIDC) subject claim customization for a repository.\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", + "summary": "Set the customization template for an OIDC subject claim for a repository", + "description": "Sets the customization template and `opt-in` or `opt-out` flag for an OpenID Connect (OIDC) subject claim for a repository.\nYou must authenticate using an access token with the `repo` scope to use this\nendpoint. GitHub Apps must have the `actions:write` permission to use this endpoint.", "tags": [ "actions" ], "operationId": "actions/set-custom-oidc-sub-claim-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/enterprise-cloud@latest//rest/actions/oidc#set-the-opt-out-flag-of-an-oidc-subject-claim-customization-for-a-repository" + "url": "https://docs.github.com/enterprise-cloud@latest//rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository" }, "parameters": [ { @@ -154038,12 +154060,20 @@ "content": { "application/json": { "schema": { - "title": "The json payload enables/disables the use of sub claim customization", - "description": "OIDC Customer Subject", + "title": "Actions OIDC subject customization for a repository", + "description": "Actions OIDC subject customization for a repository", "type": "object", "properties": { "use_default": { + "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", "type": "boolean" + }, + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "type": "array", + "items": { + "type": "string" + } } }, "required": [ @@ -154053,7 +154083,11 @@ "examples": { "default": { "value": { - "use_default": false + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] } } } @@ -264265,6 +264299,15 @@ "description": "When forking from an existing repository, fork with only the default branch." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -386105,7 +386148,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -386113,6 +386156,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -414946,6 +414997,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -422062,7 +422121,7 @@ } }, "400": { - "description": "Bad Request", + "description": "Bad request", "content": { "application/json": { "schema": { @@ -422151,7 +422210,7 @@ } }, "429": { - "description": "Too Many Requests", + "description": "Too many requests", "content": { "application/json": { "schema": { @@ -422249,7 +422308,7 @@ }, "post": { "summary": "Provision and invite a SCIM user", - "description": "Provision organization membership for a user, and send an activation email to the email address.", + "description": "Provisions organization membership for a user, and sends an activation email to the email address. If the user was previously a member of the organization, the invitation will reinstate any former privileges that the user had. For more information about reinstating former members, see \"[Reinstating a former member of your organization](https://docs.github.com/enterprise-cloud@latest//organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization).\"", "tags": [ "scim" ], @@ -422722,7 +422781,7 @@ } }, "500": { - "description": "Internal Error", + "description": "Internal server error", "content": { "application/json": { "schema": { @@ -422900,7 +422959,7 @@ } }, "400": { - "description": "Bad Request", + "description": "Bad request", "content": { "application/json": { "schema": { @@ -424670,7 +424729,7 @@ } }, "400": { - "description": "Bad Request", + "description": "Bad request", "content": { "application/json": { "schema": { @@ -492607,6 +492666,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.2.deref.json b/lib/rest/static/dereferenced/ghes-3.2.deref.json index 6a5fb3a77f..024db26869 100644 --- a/lib/rest/static/dereferenced/ghes-3.2.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.2.deref.json @@ -214906,6 +214906,15 @@ "description": "Optional parameter to specify the organization name if forking into an organization." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -329415,7 +329424,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -329423,6 +329432,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -356784,6 +356801,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -401099,6 +401124,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.3.deref.json b/lib/rest/static/dereferenced/ghes-3.3.deref.json index d0eacd68b6..c5e379c6a5 100644 --- a/lib/rest/static/dereferenced/ghes-3.3.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.3.deref.json @@ -216831,6 +216831,15 @@ "description": "Optional parameter to specify the organization name if forking into an organization." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -331519,7 +331528,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -331527,6 +331536,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -359289,6 +359306,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -403466,6 +403491,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.4.deref.json b/lib/rest/static/dereferenced/ghes-3.4.deref.json index 6f4f7ccf30..a669766fc1 100644 --- a/lib/rest/static/dereferenced/ghes-3.4.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.4.deref.json @@ -232058,6 +232058,15 @@ "description": "Optional parameter to specify the organization name if forking into an organization." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -346738,7 +346747,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -346746,6 +346755,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -374707,6 +374724,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -423939,6 +423964,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.5.deref.json b/lib/rest/static/dereferenced/ghes-3.5.deref.json index e9604c1654..1ccbeea2c0 100644 --- a/lib/rest/static/dereferenced/ghes-3.5.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.5.deref.json @@ -239447,6 +239447,15 @@ "description": "Optional parameter to specify the organization name if forking into an organization." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -354145,7 +354154,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -354153,6 +354162,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -382128,6 +382145,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -431836,6 +431861,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/ghes-3.6.deref.json b/lib/rest/static/dereferenced/ghes-3.6.deref.json index 633f5a8a7a..45e1fba7b3 100644 --- a/lib/rest/static/dereferenced/ghes-3.6.deref.json +++ b/lib/rest/static/dereferenced/ghes-3.6.deref.json @@ -244106,6 +244106,15 @@ "description": "Optional parameter to specify the organization name if forking into an organization." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -360048,7 +360057,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -360056,6 +360065,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -388938,6 +388955,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -394560,7 +394585,7 @@ "/scim/v2/enterprises/{enterprise}/Groups": { "get": { "summary": "List provisioned SCIM groups for an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nLists provisioned SCIM groups in an enterprise.\n\nYou can improve query search time by using the `excludedAttributes` query parameter with a value of `members` to exclude members from the response.", "operationId": "enterprise-admin/list-provisioned-groups-enterprise", "tags": [ "enterprise-admin" @@ -394570,6 +394595,63 @@ "url": "https://docs.github.com/enterprise-server@3.6/rest/reference/enterprise-admin#list-provisioned-scim-groups-for-an-enterprise" }, "parameters": [ + { + "name": "filter", + "description": "If specified, only results that match the specified filter will be returned. Multiple filters are not supported. Possible filters are `externalId`, `id`, and `displayName`. For example, `?filter=\"externalId eq '9138790-10932-109120392-12321'\"`.", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "examples": { + "displayName": { + "value": "Engineering" + }, + "externalId": { + "value": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + } + } + }, + { + "name": "excludedAttributes", + "description": "Excludes the specified attribute from being returned in the results. Using this parameter can speed up response time.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "examples": [ + "members" + ] + } + }, + { + "name": "startIndex", + "description": "Used for pagination: the starting index of the first result to return when paginating through values.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 1, + "format": "int32", + "examples": [ + 1 + ] + } + }, + { + "name": "count", + "description": "Used for pagination: the number of results to return per page.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 30, + "format": "int32", + "examples": [ + 1 + ] + } + }, { "name": "enterprise", "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.", @@ -394578,139 +394660,202 @@ "schema": { "type": "string" } - }, - { - "name": "startIndex", - "description": "Used for pagination: the index of the first result to return.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "count", - "description": "Used for pagination: the number of results to return.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "filter", - "description": "filter results", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "excludedAttributes", - "description": "attributes to exclude", - "in": "query", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { "200": { - "description": "Response", + "description": "Success, either groups were found or not found", "content": { "application/json": { "schema": { "type": "object", + "required": [ + "schemas", + "totalResults", + "Resources", + "startIndex", + "itemsPerPage" + ], "properties": { "schemas": { "type": "array", + "description": "The URIs that are used to indicate the namespaces of the list SCIM schemas.", "items": { - "type": "string" - } + "type": "string", + "enum": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] + }, + "examples": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] }, "totalResults": { - "type": "number" - }, - "itemsPerPage": { - "type": "number" - }, - "startIndex": { - "type": "number" + "type": "integer", + "description": "Number of results found", + "examples": [ + 1 + ] }, "Resources": { "type": "array", + "description": "Information about each provisioned group.", "items": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] } + }, + "startIndex": { + "type": "integer", + "description": "A starting index for the returned page", + "examples": [ + 1 + ] + }, + "itemsPerPage": { + "type": "integer", + "description": "Number of objects per page", + "examples": [ + 20 + ] } - }, - "required": [ - "schemas", - "totalResults", - "itemsPerPage", - "startIndex", - "Resources" - ] + } }, "examples": { "default": { @@ -394718,58 +394863,310 @@ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, + "totalResults": 1, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], - "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "id": "927fa2c08dcb4a7fae9e", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:00", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:Group" - ], - "id": "5e75bbbb-aa1a-11ea-8644-75ff655cdddd", - "externalId": null, - "displayName": "octo-docs-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" - } - ], - "meta": { - "resourceType": "Group", - "created": "2020-06-09T16:28:01.000+10:00", - "lastModified": "2020-06-09T16:28:01.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/5e75bbbb-aa1a-11ea-8644-75ff655cdddd" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" } } + ], + "startIndex": 1, + "itemsPerPage": 20 + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } } } } @@ -394785,8 +395182,8 @@ } }, "post": { - "summary": "Provision a SCIM enterprise group and invite users", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nProvision an enterprise group, and invite users to the group. This sends invitation emails to the email address of the invited users to join the GitHub organization that the SCIM group corresponds to.", + "summary": "Provision a SCIM enterprise group", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nCreates a SCIM group for an enterprise.\n\nIf members are included as part of the group provisioning payload, they will be created as external group members. It is up to a provider to store a mapping between the `externalId` and `id` of each user.", "operationId": "enterprise-admin/provision-and-invite-enterprise-group", "tags": [ "enterprise-admin" @@ -394812,54 +395209,77 @@ "application/json": { "schema": { "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], "properties": { "schemas": { "type": "array", - "description": "The SCIM schema URIs.", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", "items": { - "type": "string" - } + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] }, "displayName": { "type": "string", - "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to." + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] }, "members": { "type": "array", + "description": "The group members.", "items": { "type": "object", + "required": [ + "value", + "displayName" + ], "properties": { "value": { "type": "string", - "description": "The SCIM user ID for a user." + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] } - }, - "required": [ - "value" - ] + } } } - }, - "required": [ - "schemas", - "displayName" - ] + } }, "examples": { - "default": { + "group": { "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], - "displayName": "octo-org", - "members": [ - { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - }, - { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" - } - ] + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering" } } } @@ -394868,96 +395288,451 @@ }, "responses": { "201": { - "description": "Response", + "description": "Group has been created", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] }, "examples": { - "default": { + "group": { "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "409": { + "description": "Duplicate record detected" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -394977,7 +395752,7 @@ "/scim/v2/enterprises/{enterprise}/Groups/{scim_group_id}": { "get": { "summary": "Get SCIM provisioning information for an enterprise group", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nGets information about a SCIM group.", "operationId": "enterprise-admin/get-provisioning-information-for-enterprise-group", "tags": [ "enterprise-admin" @@ -394998,87 +395773,160 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.", + "description": "A unique identifier of the SCIM group.", "in": "path", "required": true, "schema": { - "type": "string" - } - }, - { - "name": "excludedAttributes", - "description": "Attributes to exclude.", - "in": "query", - "required": false, - "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], "responses": { "200": { - "description": "Response", + "description": "Success, a group was found", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] }, "examples": { @@ -395088,25 +395936,324 @@ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -395124,7 +396271,7 @@ }, "put": { "summary": "Set SCIM information for a provisioned enterprise group", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nReplaces an existing provisioned group’s information. You must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nReplaces an existing provisioned group’s information.\n\nYou must provide all the information required for the group as if you were provisioning it for the first time. Any existing group information that you don't provide will be removed, including group membership. If you want to only update a specific attribute, use the [Update an attribute for a SCIM enterprise group](#update-an-attribute-for-a-scim-enterprise-group) endpoint instead.", "operationId": "enterprise-admin/set-information-for-provisioned-enterprise-group", "tags": [ "enterprise-admin" @@ -395145,11 +396292,14 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.", + "description": "A unique identifier of the SCIM group.", "in": "path", "required": true, "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], @@ -395159,52 +396309,96 @@ "application/json": { "schema": { "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], "properties": { "schemas": { "type": "array", - "description": "The SCIM schema URIs.", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", "items": { - "type": "string" - } + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] }, "displayName": { "type": "string", - "description": "The name of the SCIM group. This must match the GitHub organization that the group maps to." + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] }, "members": { "type": "array", + "description": "The group members.", "items": { "type": "object", + "required": [ + "value", + "displayName" + ], "properties": { "value": { "type": "string", - "description": "The SCIM user ID for a user." + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] } - }, - "required": [ - "value" - ] + } } } - }, - "required": [ - "schemas", - "displayName" - ] + } }, "examples": { - "default": { + "group": { + "summary": "Group", "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering" + } + }, + "groupWithMembers": { + "summary": "Group with member", + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ] } @@ -395215,96 +396409,505 @@ }, "responses": { "200": { - "description": "Response", + "description": "Group was updated", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] }, "examples": { - "default": { + "group": { "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" }, { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5", - "display": "hubot@example.com" + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:0", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + } + }, + "groupWithMembers": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", + "members": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ], + "meta": { + "resourceType": "Group", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "Duplicate record detected" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -395322,7 +396925,7 @@ }, "patch": { "summary": "Update an attribute for a SCIM enterprise group", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nAllows you to change a provisioned group’s individual attributes. To change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nUpdate a provisioned group’s individual attributes.\n\nTo change a group’s values, you must provide a specific Operations JSON format that contains at least one of the add, remove, or replace operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2). Update can also be used to add group memberships.\n\nGroup memberships can be sent one at a time or in batches for faster performance. **Note**: The memberships are referenced through a local user `id`, and the user will need to be created before they are referenced here.", "operationId": "enterprise-admin/update-attribute-for-enterprise-group", "tags": [ "enterprise-admin" @@ -395343,11 +396946,14 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.", + "description": "A unique identifier of the SCIM group.", "in": "path", "required": true, "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], @@ -395357,63 +396963,81 @@ "application/json": { "schema": { "type": "object", + "required": [ + "Operations", + "schemas" + ], "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } - }, "Operations": { "type": "array", - "description": "Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2).", - "minItems": 1, + "description": "patch operations list", "items": { "type": "object", + "required": [ + "op" + ], "properties": { "op": { "type": "string", "enum": [ "add", - "Add", - "remove", - "Remove", "replace", - "Replace" + "remove" ] }, "path": { "type": "string" }, "value": { - "description": "Can be any value - string, number, array or object." + "type": "string", + "description": "Corresponding 'value' of that field specified by 'path'" } - }, - "required": [ - "op" + } + } + }, + "schemas": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] } } - }, - "required": [ - "schemas", - "Operations" - ] + } }, "examples": { - "default": { + "updateGroup": { + "summary": "Update Group", "value": { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { - "op": "remove", + "op": "replace", + "path": "displayName", + "value": "Employees" + } + ] + } + }, + "addMembers": { + "summary": "Add Members", + "value": { + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "add", "path": "members", "value": [ { - "value": "aaaa8c34-a6b2-11ea-9d70-bbbbbd1c8fd5" + "value": "879db59-3bdf-4490-ad68-ab880a2694745" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685" } ] } @@ -395426,91 +397050,505 @@ }, "responses": { "200": { - "description": "Response", + "description": "Success, group was updated", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": [ - "string", - "null" - ] - }, - "displayName": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "displayName", + "members" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] }, - "$ref": { - "type": "string" - }, - "display": { - "type": "string" + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159" + ] + }, + "displayName": { + "type": "string", + "description": "A human-readable name for a security group.", + "examples": [ + "Engineering" + ] + }, + "members": { + "type": "array", + "description": "The group members.", + "items": { + "type": "object", + "required": [ + "value", + "displayName" + ], + "properties": { + "value": { + "type": "string", + "description": "The local unique identifier for the member", + "examples": [ + "23a35c27-23d3-4c03-b4c5-6443c09e7173" + ] + }, + "displayName": { + "type": "string", + "description": "The display name associated with the member", + "examples": [ + "Monalisa Octocat" + ] + } + } } } } }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta", + "members" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the group object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "members": { + "type": "array", + "description": "The security group members.", + "examples": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ] }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] }, "examples": { - "default": { + "updateGroup": { "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:Group" ], "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", - "externalId": null, - "displayName": "octo-org", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", "members": [ { - "value": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "$ref": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "display": "octocat@github.com" + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" } ], "meta": { "resourceType": "Group", - "created": "2020-06-09T03:10:17.000+10:00", - "lastModified": "2020-06-09T03:10:17.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Groups/abcd27f8-a9aa-11ea-8221-f59b2be9cccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + } + }, + "addMembers": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "id": "abcd27f8-a9aa-11ea-8221-f59b2be9cccc", + "externalId": "8aa1a0c0-c4c3-4bc0-b4a5-2ef676900159", + "displayName": "Engineering", + "members": [ + { + "value": "879db59-3bdf-4490-ad68-ab880a2694745", + "$+ref": "https://api.github.localhost/scim/v2/Users/879db59-3bdf-4490-ad68-ab880a2694745", + "displayName": "User 1" + }, + { + "value": "0db508eb-91e2-46e4-809c-30dcbda0c685", + "$+ref": "https://api.github.localhost/scim/v2/Users/0db508eb-91e2-46e4-809c-30dcbda0c685", + "displayName": "User 2" + } + ], + "meta": { + "resourceType": "Group", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Groups/927fa2c08dcb4a7fae9e" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "Duplicate record detected" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -395528,7 +397566,7 @@ }, "delete": { "summary": "Delete a SCIM group from an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\n Deletes a SCIM group from an enterprise.", "operationId": "enterprise-admin/delete-scim-group-from-enterprise", "tags": [ "enterprise-admin" @@ -395549,17 +397587,319 @@ }, { "name": "scim_group_id", - "description": "Identifier generated by the GitHub SCIM endpoint.", + "description": "A unique identifier of the SCIM group.", "in": "path", "required": true, "schema": { - "type": "string" + "type": "string", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] } } ], "responses": { "204": { - "description": "Response" + "description": "Group was deleted, no content" + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } } }, "x-github": { @@ -395573,7 +397913,7 @@ "/scim/v2/enterprises/{enterprise}/Users": { "get": { "summary": "List SCIM provisioned identities for an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nRetrieves a paginated list of all provisioned enterprise members, including pending invitations.\n\nWhen a user with a SAML-provisioned external identity leaves (or is removed from) an enterprise, the account's metadata is immediately removed. However, the returned list of user accounts might not always match the organization or enterprise member list you see on GitHub Enterprise Server. This can happen in certain cases where an external identity associated with an organization will not match an organization member:\n - When a user with a SCIM-provisioned external identity is removed from an enterprise, the account's metadata is preserved to allow the user to re-join the organization in the future.\n - When inviting a user to join an organization, you can expect to see their external identity in the results before they accept the invitation, or if the invitation is cancelled (or never accepted).\n - When a user is invited over SCIM, an external identity is created that matches with the invitee's email address. However, this identity is only linked to a user account when the user accepts the invitation by going through SAML SSO.\n\nThe returned list of external identities can include an entry for a `null` user. These are unlinked SAML identities that are created when a user goes through the following Single Sign-On (SSO) process but does not sign in to their GitHub Enterprise Server account after completing SSO:\n\n1. The user is granted access by the IdP and is not a member of the GitHub Enterprise Server enterprise.\n\n1. The user attempts to access the GitHub Enterprise Server enterprise and initiates the SAML SSO process, and is not currently signed in to their GitHub Enterprise Server account.\n\n1. After successfully authenticating with the SAML SSO IdP, the `null` external identity entry is created and the user is prompted to sign in to their GitHub Enterprise Server account:\n - If the user signs in, their GitHub Enterprise Server account is linked to this entry.\n - If the user does not sign in (or does not create a new account when prompted), they are not added to the GitHub Enterprise Server enterprise, and the external identity `null` entry remains in place.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nLists provisioned SCIM enterprise members.\n\nWhen a user with a SCIM-provisioned external identity is removed from an enterprise through a `patch` with `active` flag set to `false`, the account's metadata is preserved to allow the user to re-join the enterprise in the future. However, the user's account will be suspended and the user will not be able to sign-in. In order to permanently suspend the users account with no ability to re-join the enterprise in the future, use the `delete` request. Users that were not permanently deleted will be visible in the returned results.\n\nYou can improve query search time by using the `excludedAttributes` query parameter with a value of `groups` to exclude groups from the response.", "operationId": "enterprise-admin/list-provisioned-identities-enterprise", "tags": [ "enterprise-admin" @@ -395583,6 +397923,63 @@ "url": "https://docs.github.com/enterprise-server@3.6/rest/reference/enterprise-admin#list-scim-provisioned-identities-for-an-enterprise" }, "parameters": [ + { + "name": "filter", + "description": "If specified, only results that match the specified filter will be returned. Multiple filters are not supported. Possible filters are `userName`, `externalId`, `id`, and `displayName`. For example, `?filter=\"externalId eq '9138790-10932-109120392-12321'\"`.", + "in": "query", + "required": false, + "schema": { + "type": "string" + }, + "examples": { + "userName": { + "value": "userName eq 'E012345'" + }, + "externalId": { + "value": "externalId eq 'E012345'" + } + } + }, + { + "name": "excludedAttributes", + "description": "Excludes the specified attribute from being returned in the results. Using this parameter can speed up response time.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "examples": [ + "members" + ] + } + }, + { + "name": "startIndex", + "description": "Used for pagination: the starting index of the first result to return when paginating through values.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 1, + "format": "int32", + "examples": [ + 1 + ] + } + }, + { + "name": "count", + "description": "Used for pagination: the number of results to return per page.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "default": 30, + "format": "int32", + "examples": [ + 1 + ] + } + }, { "name": "enterprise", "description": "The slug version of the enterprise name. You can also substitute this value with the enterprise id.", @@ -395591,152 +397988,280 @@ "schema": { "type": "string" } - }, - { - "name": "startIndex", - "description": "Used for pagination: the index of the first result to return.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "count", - "description": "Used for pagination: the number of results to return.", - "in": "query", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "filter", - "description": "filter results", - "in": "query", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { "200": { - "description": "Response", + "description": "Success, either users were found or not found", "content": { "application/json": { "schema": { "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "totalResults": { - "type": "number" - }, - "itemsPerPage": { - "type": "number" - }, - "startIndex": { - "type": "number" - }, - "Resources": { - "type": "array", - "items": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "primary": { - "type": "boolean" - }, - "type": { - "type": "string" - } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } - } - } - }, - "required": [ - "schemas", - "id" - ] - } - } - }, "required": [ "schemas", "totalResults", - "itemsPerPage", + "Resources", "startIndex", - "Resources" - ] + "itemsPerPage" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the list SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] + }, + "examples": [ + "urn:ietf:params:scim:api:messages:2.0:ListResponse" + ] + }, + "totalResults": { + "type": "integer", + "description": "Number of results found", + "examples": [ + 1 + ] + }, + "Resources": { + "type": "array", + "description": "Information about each provisioned account.", + "items": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + } + }, + "startIndex": { + "type": "integer", + "description": "A starting index for the returned page", + "examples": [ + 1 + ] + }, + "itemsPerPage": { + "type": "integer", + "description": "Number of objects per page", + "examples": [ + 20 + ] + } + } }, "examples": { "default": { @@ -395744,71 +398269,313 @@ "schemas": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ], - "totalResults": 2, - "itemsPerPage": 2, - "startIndex": 1, + "totalResults": 1, "Resources": [ { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "octocat@github.com", - "name": { - "givenName": "Mona", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "octocat@github.com", - "primary": true, - "type": "work" - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], + "externalId": "E012345", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", "active": true, - "meta": { - "resourceType": "User", - "created": "2020-05-30T04:02:34.000+10:00", - "lastModified": "2020-05-30T04:05:04.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" - } - }, - { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5", - "externalId": "sdfoiausdofiua", - "userName": "hubot@example.com", + "userName": "E012345", "name": { - "givenName": "hu", - "familyName": "bot" + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "hubot@example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ - - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2020-06-05T08:29:40.000+10:00", - "lastModified": "2020-06-05T08:30:19.000+10:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/e18b8c34-a6b2-11ea-9d70-54abbd1c8fd5" - } + "roles": [ + { + "value": "User", + "primary": false + } + ] } + ], + "startIndex": 1, + "itemsPerPage": 20 + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } } } } @@ -395824,8 +398591,8 @@ } }, "post": { - "summary": "Provision and invite a SCIM enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nProvision enterprise membership for a user, and send organization invitation emails to the email address.\n\nYou can optionally include the groups a user will be invited to join. If you do not provide a list of `groups`, the user is provisioned for the enterprise, but no organization invitation emails will be sent.", + "summary": "Provision a SCIM enterprise user", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nCreates an external identity for a new SCIM enterprise user.\n\nSCIM does not authenticate users, it only provisions them. The authentication of users is done by SAML. However, when SCIM is enabled, all users need to be provisioned through SCIM before a user can sign in through SAML. The matching of a user to a SCIM provisioned user is done when the SAML assertion is consumed. The user will be matched on SAML response `NameID` to SCIM `userName`.\n\nWhen converting existing enterprise to use SCIM, the user handle (`userName`) from the SCIM payload will be used to match the provisioned user to an already existing user in the enterprise. Since the new identity record is created for newly provisioned users the matching for those records is done using a user's handle. Currently the matching will be performed to all of the users no matter if they were SAML JIT provisioned or created as local users.", "operationId": "enterprise-admin/provision-and-invite-enterprise-user", "tags": [ "enterprise-admin" @@ -395851,102 +398618,219 @@ "application/json": { "schema": { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { "schemas": { "type": "array", - "description": "The SCIM schema URIs.", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", "items": { - "type": "string" - } + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] }, "userName": { "type": "string", - "description": "The username for the user." + "description": "The username for the user.", + "examples": [ + "E012345" + ] }, "name": { "type": "object", + "required": [ + "familyName", + "givenName" + ], "properties": { - "givenName": { + "formatted": { "type": "string", - "description": "The first name of the user." + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] }, "familyName": { "type": "string", - "description": "The last name of the user." + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] } - }, - "required": [ - "givenName", - "familyName" + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" ] }, "emails": { "type": "array", - "description": "List of user emails.", + "description": "The emails for the user.", "items": { "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The email address." - }, - "type": { - "type": "string", - "description": "The type of email address." - }, - "primary": { - "type": "boolean", - "description": "Whether this email address is the primary address." - } - }, "required": [ "value", "type", "primary" - ] - } - }, - "groups": { - "type": "array", - "description": "List of SCIM group IDs the user is a member of.", - "items": { - "type": "object", + ], "properties": { "value": { - "type": "string" + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] } } } } - }, - "required": [ - "schemas", - "userName", - "name", - "emails" - ] + } }, "examples": { - "default": { + "user": { + "summary": "User", "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "userName": "mona.octocat@okta.example.com", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", "familyName": "Octocat", - "givenName": "Mona" + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false + } + ] + } + }, + "enterpriseOwner": { + "summary": "Enterprise Owner", + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "Enterprise Owner", + "primary": false } ] } @@ -395957,123 +398841,575 @@ }, "responses": { "201": { - "description": "Response", + "description": "User has been created", "content": { "application/json": { "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + }, + "examples": { + "user": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + }, + "enterpriseOwner": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", "type": "object", "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, "schemas": { "type": "array", "items": { "type": "string" } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] }, - "id": { - "type": "string" + "documentation_url": { + "type": [ + "string", + "null" + ] }, - "externalId": { - "type": "string" + "detail": { + "type": [ + "string", + "null" + ] }, - "userName": { - "type": "string" + "status": { + "type": "integer" }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } + "scimType": { + "type": [ + "string", + "null" + ] }, - "emails": { + "schemas": { "type": "array", "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } + "type": "string" } } - }, - "required": [ - "schemas", - "id" - ] - }, - "examples": { - "default": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", - "name": { - "givenName": "Mona", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "409": { + "description": "Duplicate record detected" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -396093,7 +399429,7 @@ "/scim/v2/enterprises/{enterprise}/Users/{scim_user_id}": { "get": { "summary": "Get SCIM provisioning information for an enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nGets information about a SCIM user.", "operationId": "enterprise-admin/get-provisioning-information-for-enterprise-user", "tags": [ "enterprise-admin" @@ -396124,90 +399460,225 @@ ], "responses": { "200": { - "description": "Response", + "description": "Success, a user was found", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "schemas": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "string" - }, - "externalId": { - "type": "string" - }, - "userName": { - "type": "string" - }, - "name": { + "allOf": [ + { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { - "givenName": { - "type": "string" + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] }, - "familyName": { - "type": "string" - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } } } } }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { + { "type": "object", + "required": [ + "id", + "meta" + ], "properties": { - "resourceType": { - "type": "string" + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] }, - "created": { - "type": "string" + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } } } } - }, - "required": [ - "schemas", - "id" ] }, "examples": { @@ -396216,31 +399687,334 @@ "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", "givenName": "Mona", - "familyName": "Octocat" + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ], - "active": true, "meta": { "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -396258,7 +400032,7 @@ }, "put": { "summary": "Set SCIM information for a provisioned enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nReplaces an existing provisioned user's information. You must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-an-enterprise-scim-user) endpoint instead.\n\nYou must at least provide the required values for the user: `userName`, `name`, and `emails`.\n\n**Warning:** Setting `active: false` removes the user from the enterprise, deletes the external identity, and deletes the associated `{scim_user_id}`.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nReplaces an existing provisioned user's information.\n\nYou must provide all the information required for the user as if you were provisioning them for the first time. Any existing user information that you don't provide will be removed. If you want to only update a specific attribute, use the [Update an attribute for a SCIM user](#update-an-attribute-for-a-scim-enterprise-user) endpoint instead.\n\n**Warning:** Setting `active: false` will suspend a user and obfuscate the user handle and user email. Since the implementation is a generic SCIM implementation and does not differentiate yet between different IdP providers, for Okta, the user GDPR data will not be purged and the credentials will not be removed.", "operationId": "enterprise-admin/set-information-for-provisioned-enterprise-user", "tags": [ "enterprise-admin" @@ -396293,102 +400067,188 @@ "application/json": { "schema": { "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], "properties": { "schemas": { "type": "array", - "description": "The SCIM schema URIs.", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", "items": { - "type": "string" - } + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] }, "userName": { "type": "string", - "description": "The username for the user." + "description": "The username for the user.", + "examples": [ + "E012345" + ] }, "name": { "type": "object", + "required": [ + "familyName", + "givenName" + ], "properties": { - "givenName": { + "formatted": { "type": "string", - "description": "The first name of the user." + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] }, "familyName": { "type": "string", - "description": "The last name of the user." + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] } - }, - "required": [ - "givenName", - "familyName" + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" ] }, "emails": { "type": "array", - "description": "List of user emails.", + "description": "The emails for the user.", "items": { "type": "object", - "properties": { - "value": { - "type": "string", - "description": "The email address." - }, - "type": { - "type": "string", - "description": "The type of email address." - }, - "primary": { - "type": "boolean", - "description": "Whether this email address is the primary address." - } - }, "required": [ "value", "type", "primary" - ] - } - }, - "groups": { - "type": "array", - "description": "List of SCIM group IDs the user is a member of.", - "items": { - "type": "object", + ], "properties": { "value": { - "type": "string" + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] } } } } - }, - "required": [ - "schemas", - "userName", - "name", - "emails" - ] + } }, "examples": { - "default": { + "user": { + "summary": "User", "value": { "schemas": [ "urn:ietf:params:scim:schemas:core:2.0:User" ], - "userName": "mona.octocat@okta.example.com", + "externalId": "E012345", + "active": true, + "userName": "E012345", "name": { + "formatted": "Ms. Mona Lisa Octocat", "familyName": "Octocat", - "givenName": "Mona" + "givenName": "Mona", + "middleName": "Lisa" }, + "displayName": "Mona Lisa", "emails": [ { - "value": "mona.octocat@okta.example.com", + "value": "mlisa@example.com", "type": "work", "primary": true } ], - "groups": [ + "roles": [ { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" + "value": "User", + "primary": false } ] } @@ -396399,123 +400259,564 @@ }, "responses": { "200": { - "description": "Response", + "description": "User was updated", "content": { "application/json": { "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + }, + "examples": { + "user": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", "type": "object", "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, "schemas": { "type": "array", "items": { "type": "string" } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] }, - "id": { - "type": "string" + "documentation_url": { + "type": [ + "string", + "null" + ] }, - "externalId": { - "type": "string" + "detail": { + "type": [ + "string", + "null" + ] }, - "userName": { - "type": "string" + "status": { + "type": "integer" }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } + "scimType": { + "type": [ + "string", + "null" + ] }, - "emails": { + "schemas": { "type": "array", "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } + "type": "string" } } - }, - "required": [ - "schemas", - "id" - ] - }, - "examples": { - "default": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", - "name": { - "givenName": "Mona", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "Duplicate record detected" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -396533,7 +400834,7 @@ }, "patch": { "summary": "Update an attribute for a SCIM enterprise user", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.\n\nAllows you to change a provisioned user's individual attributes. To change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).\n\n**Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `\"path\": \"emails[type eq \\\"work\\\"]\"` will not work.\n\n**Warning:** If you set `active:false` using the `replace` operation (as shown in the JSON example below), it removes the user from the enterprise, deletes the external identity, and deletes the associated `:scim_user_id`.\n\n```\n{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n```", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nUpdate a provisioned user's individual attributes.\n\nTo change a user's values, you must provide a specific `Operations` JSON format that contains at least one of the `add`, `remove`, or `replace` operations. For examples and more information on the SCIM operations format, see the [SCIM specification](https://tools.ietf.org/html/rfc7644#section-3.5.2).\n\n**Note:** Complicated SCIM `path` selectors that include filters are not supported. For example, a `path` selector defined as `\"path\": \"emails[type eq \\\"work\\\"]\"` will not work.\n\n**Warning:** Setting `active: false` will suspend a user and obfuscate the user handle and user email. Since the implementation is a generic SCIM implementation and does not differentiate yet between different IdP providers, for Okta, the user GDPR data will not be purged and the credentials will not be removed.\n```\n{\n \"Operations\":[{\n \"op\":\"replace\",\n \"value\":{\n \"active\":false\n }\n }]\n}\n```", "operationId": "enterprise-admin/update-attribute-for-enterprise-user", "tags": [ "enterprise-admin" @@ -396568,48 +400869,101 @@ "application/json": { "schema": { "type": "object", + "required": [ + "Operations", + "schemas" + ], "properties": { - "schemas": { - "type": "array", - "description": "The SCIM schema URIs.", - "items": { - "type": "string" - } - }, "Operations": { "type": "array", - "description": "Array of [SCIM operations](https://tools.ietf.org/html/rfc7644#section-3.5.2).", + "description": "patch operations list", "items": { - "type": "object" + "type": "object", + "required": [ + "op" + ], + "properties": { + "op": { + "type": "string", + "enum": [ + "add", + "replace", + "remove" + ] + }, + "path": { + "type": "string" + }, + "value": { + "type": "string", + "description": "Corresponding 'value' of that field specified by 'path'" + } + } + } + }, + "schemas": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ] } } - }, - "required": [ - "schemas", - "Operations" - ] + } }, "examples": { - "default": { + "userMultiValuedProperties": { + "summary": "Multi Valued Property", "value": { "schemas": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ], "Operations": [ { - "op": "add", - "path": "emails", - "value": [ - { - "value": "monalisa@octocat.github.com", - "type": "home" - } - ] + "op": "replace", + "path": "emails[type eq 'work'].value", + "value": "updatedEmail@microsoft.com" }, { "op": "replace", - "path": "name.givenName", - "value": "Monalisa" + "path": "name.familyName", + "value": "updatedFamilyName" + } + ] + } + }, + "userSingleValuedProperties": { + "summary": "Single Valued Property", + "value": { + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "replace", + "path": "userName", + "value": "5b50642d-79fc-4410-9e90-4c077cdd1a59@testuser.com" + }, + { + "op": "replace", + "path": "displayName", + "value": "Monalisa Octocat" + } + ] + } + }, + "disableUser": { + "summary": "Disable User", + "value": { + "schemas": [ + "urn:ietf:params:scim:api:messages:2.0:PatchOp" + ], + "Operations": [ + { + "op": "replace", + "path": "active", + "value": false } ] } @@ -396620,127 +400974,638 @@ }, "responses": { "200": { - "description": "Response", + "description": "Success, user was updated", "content": { "application/json": { "schema": { + "allOf": [ + { + "type": "object", + "required": [ + "schemas", + "externalId", + "userName", + "active", + "displayName", + "emails" + ], + "properties": { + "schemas": { + "type": "array", + "description": "The URIs that are used to indicate the namespaces of the SCIM schemas.", + "items": { + "type": "string", + "enum": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "examples": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ] + }, + "externalId": { + "type": "string", + "description": "A unique identifier for the resource as defined by the provisioning client.", + "examples": [ + "E012345" + ] + }, + "active": { + "type": "boolean", + "description": "Whether the user active in the IdP.", + "examples": [ + true + ] + }, + "userName": { + "type": "string", + "description": "The username for the user.", + "examples": [ + "E012345" + ] + }, + "name": { + "type": "object", + "required": [ + "familyName", + "givenName" + ], + "properties": { + "formatted": { + "type": "string", + "description": "The full name, including all middle names, titles, and suffixes as appropriate, formatted for display.", + "examples": [ + "Ms. Mona Lisa Octocat" + ] + }, + "familyName": { + "type": "string", + "description": "The family name of the user.", + "examples": [ + "Octocat" + ] + }, + "givenName": { + "type": "string", + "description": "The given name of the user.", + "examples": [ + "Mona" + ] + }, + "middleName": { + "type": "string", + "description": "The middle name(s) of the user.", + "examples": [ + "Lisa" + ] + } + } + }, + "displayName": { + "type": "string", + "description": "A human-readable name for the user.", + "examples": [ + "Mona Lisa" + ] + }, + "emails": { + "type": "array", + "description": "The emails for the user.", + "items": { + "type": "object", + "required": [ + "value", + "type", + "primary" + ], + "properties": { + "value": { + "type": "string", + "description": "The email address.", + "examples": [ + "mlisa@example.com" + ] + }, + "type": { + "type": "string", + "description": "The type of email address.", + "examples": [ + "work" + ] + }, + "primary": { + "type": "boolean", + "description": "Whether this email address is the primary address.", + "examples": [ + true + ] + } + } + } + }, + "roles": { + "type": "array", + "description": "The roles assigned to the user.", + "items": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string", + "description": "The role value representing a user role in GitHub.", + "enum": [ + "User", + "Enterprise Owner" + ], + "examples": [ + "User" + ] + }, + "primary": { + "type": "boolean", + "description": "Is the role a primary role for the user.", + "examples": [ + false + ] + } + } + } + } + } + }, + { + "type": "object", + "required": [ + "id", + "meta" + ], + "properties": { + "id": { + "type": "string", + "description": "The internally generated id for the user object.", + "examples": [ + "7fce0092-d52e-4f76-b727-3955bd72c939" + ] + }, + "groups": { + "type": "array", + "description": "Provisioned SCIM groups that the user is a member of." + }, + "meta": { + "type": "object", + "description": "The metadata associated with the creation/updates to the user.", + "required": [ + "resourceType" + ], + "properties": { + "resourceType": { + "type": "string", + "description": "A type of a resource", + "enum": [ + "User", + "Group" + ], + "examples": [ + "User" + ] + }, + "created": { + "type": "string", + "description": "A date and time when the user was created.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "lastModified": { + "type": "string", + "description": "A data and time when the user was last modified.", + "examples": [ + "2022-03-27T19:59:26.000Z" + ] + }, + "location": { + "type": "string", + "description": "A URL location of an object" + } + } + } + } + } + ] + }, + "examples": { + "userMultiValuedProperties": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + }, + "userSingleValuedProperties": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + }, + "disableUser": { + "value": { + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "7fce0092-d52e-4f76-b727-3955bd72c939", + "externalId": "E012345", + "active": true, + "userName": "E012345", + "name": { + "formatted": "Ms. Mona Lisa Octocat", + "familyName": "Octocat", + "givenName": "Mona", + "middleName": "Lisa" + }, + "displayName": "Mona Lisa", + "emails": [ + { + "value": "mlisa@example.com", + "type": "work", + "primary": true + } + ], + "roles": [ + { + "value": "User", + "primary": false + } + ], + "meta": { + "resourceType": "User", + "created": "2012-03-27T19:59:26.000Z", + "lastModified": "2018-03-27T19:59:26.000Z", + "location": "https://api.github.localhost/scim/v2/Users/7fce0092-d52e-4f76-b727-3955bd72c939" + } + } + } + } + } + } + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", "type": "object", "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, "schemas": { "type": "array", "items": { "type": "string" } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] }, - "id": { - "type": "string" + "documentation_url": { + "type": [ + "string", + "null" + ] }, - "externalId": { - "type": "string" + "detail": { + "type": [ + "string", + "null" + ] }, - "userName": { - "type": "string" + "status": { + "type": "integer" }, - "name": { - "type": "object", - "properties": { - "givenName": { - "type": "string" - }, - "familyName": { - "type": "string" - } - } + "scimType": { + "type": [ + "string", + "null" + ] }, - "emails": { + "schemas": { "type": "array", "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "type": { - "type": "string" - }, - "primary": { - "type": "boolean" - } - } - } - }, - "groups": { - "type": "array", - "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - } - } - } - }, - "active": { - "type": "boolean" - }, - "meta": { - "type": "object", - "properties": { - "resourceType": { - "type": "string" - }, - "created": { - "type": "string" - }, - "lastModified": { - "type": "string" - }, - "location": { - "type": "string" - } + "type": "string" } } - }, - "required": [ - "schemas", - "id" - ] - }, - "examples": { - "default": { - "value": { - "schemas": [ - "urn:ietf:params:scim:schemas:core:2.0:User" - ], - "id": "92b58aaa-a1d6-11ea-8227-b9ce9e023ccc", - "externalId": "00dowz5dr9oSfDFRA0h7", - "userName": "mona.octocat@okta.example.com", - "name": { - "givenName": "Monalisa", - "familyName": "Octocat" - }, - "emails": [ - { - "value": "mona.octocat@okta.example.com", - "type": "work", - "primary": true - }, - { - "value": "monalisa@octocat.github.com", - "type": "home" - } - ], - "groups": [ - { - "value": "468dd3fa-a1d6-11ea-9031-15a1f0d7811d" - } - ], - "active": true, - "meta": { - "resourceType": "User", - "created": "2017-03-09T16:11:13-05:00", - "lastModified": "2017-03-09T16:11:13-05:00", - "location": "https://api.github.com/scim/v2/enterprises/octo-corp/Users/92b58aaa-a1d6-11ea-8227-b9ce9e023ccc" + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "Duplicate record detected" + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" } } } @@ -396758,7 +401623,7 @@ }, "delete": { "summary": "Delete a SCIM user from an enterprise", - "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in beta and are subject to change.", + "description": "**Note:** The SCIM API endpoints for enterprise accounts are currently in *private* beta and are subject to change.\n\nPermanently suspends a SCIM user from an enterprise, removes all data for the user, obfuscates the login, email, and display name of the user, removes all external-identity SCIM attributes, and deletes the emails, avatar, PATs, SSH keys, OAuth authorizations credentials, GPG keys, and SAML mappings for the user. You will not be able to undo this action.", "operationId": "enterprise-admin/delete-user-from-enterprise", "tags": [ "enterprise-admin" @@ -396789,7 +401654,306 @@ ], "responses": { "204": { - "description": "Response" + "description": "User was deleted, no content" + }, + "400": { + "description": "Bad request", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "401": { + "description": "Authorization failure" + }, + "403": { + "description": "Permission denied" + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "429": { + "description": "Too many requests", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error", + "content": { + "application/json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "application/scim+json": { + "schema": { + "title": "Scim Error", + "description": "Scim Error", + "type": "object", + "properties": { + "message": { + "type": [ + "string", + "null" + ] + }, + "documentation_url": { + "type": [ + "string", + "null" + ] + }, + "detail": { + "type": [ + "string", + "null" + ] + }, + "status": { + "type": "integer" + }, + "scimType": { + "type": [ + "string", + "null" + ] + }, + "schemas": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } } }, "x-github": { @@ -441686,6 +446850,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/lib/rest/static/dereferenced/github.ae.deref.json b/lib/rest/static/dereferenced/github.ae.deref.json index 4ff820fb5e..f73cdc0ee7 100644 --- a/lib/rest/static/dereferenced/github.ae.deref.json +++ b/lib/rest/static/dereferenced/github.ae.deref.json @@ -200536,6 +200536,15 @@ "description": "Optional parameter to specify the organization name if forking into an organization." } } + }, + "examples": { + "default": { + "value": { + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true + } + } } } } @@ -314993,7 +315002,7 @@ }, "merge_method": { "type": "string", - "description": "Merge method to use. Possible values are `merge`, `squash` or `rebase`. Default is `merge`.", + "description": "The merge method to use.", "enum": [ "merge", "squash", @@ -315001,6 +315010,14 @@ ] } } + }, + "examples": { + "response-if-merge-was-successful": { + "value": { + "commit_title": "Expand enum", + "commit_message": "Add a new value to the merge_method enum" + } + } } } } @@ -342454,6 +342471,14 @@ "description": "Determines if all notifications should be blocked from this repository." } } + }, + "examples": { + "default": { + "value": { + "subscribed": true, + "ignored": false + } + } } } } @@ -386544,6 +386569,17 @@ "name" ], "type": "object" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } diff --git a/translations/log/msft-cn-resets.csv b/translations/log/msft-cn-resets.csv index b0a21a4b82..b5e4f2d3ca 100644 --- a/translations/log/msft-cn-resets.csv +++ b/translations/log/msft-cn-resets.csv @@ -299,6 +299,7 @@ translations/zh-CN/content/admin/github-actions/getting-started-with-github-acti translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/zh-CN/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md,broken liquid tags +translations/zh-CN/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md,broken liquid tags translations/zh-CN/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md,broken liquid tags @@ -344,6 +345,7 @@ translations/zh-CN/content/billing/managing-billing-for-your-github-account/view translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts.md,rendering error translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql.md,rendering error translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md,rendering error +translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages.md,broken liquid tags translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository.md,rendering error translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container.md,broken liquid tags translations/zh-CN/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository.md,rendering error @@ -453,6 +455,7 @@ translations/zh-CN/content/developers/apps/guides/creating-ci-tests-with-the-che translations/zh-CN/content/developers/apps/guides/using-the-github-api-in-your-app.md,rendering error translations/zh-CN/content/developers/overview/about-githubs-apis.md,broken liquid tags translations/zh-CN/content/developers/overview/managing-deploy-keys.md,broken liquid tags +translations/zh-CN/content/developers/overview/secret-scanning-partner-program.md,broken liquid tags translations/zh-CN/content/developers/webhooks-and-events/events/issue-event-types.md,broken liquid tags translations/zh-CN/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md,rendering error translations/zh-CN/content/discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions.md,broken liquid tags @@ -612,6 +615,8 @@ translations/zh-CN/data/reusables/advanced-security/secret-scanning-push-protect translations/zh-CN/data/reusables/audit_log/audit-log-events-workflows.md,rendering error translations/zh-CN/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md,rendering error translations/zh-CN/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md,rendering error +translations/zh-CN/data/reusables/code-scanning/analyze-go.md,broken liquid tags +translations/zh-CN/data/reusables/code-scanning/autobuild-add-build-steps.md,broken liquid tags translations/zh-CN/data/reusables/code-scanning/codeql-languages-bullets.md,rendering error translations/zh-CN/data/reusables/code-scanning/codeql-languages-keywords.md,rendering error translations/zh-CN/data/reusables/code-scanning/enterprise-enable-code-scanning.md,broken liquid tags diff --git a/translations/log/msft-pt-resets.csv b/translations/log/msft-pt-resets.csv index 60ac8602d7..a446af695b 100644 --- a/translations/log/msft-pt-resets.csv +++ b/translations/log/msft-pt-resets.csv @@ -302,6 +302,7 @@ translations/pt-BR/content/admin/github-actions/getting-started-with-github-acti translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise.md,rendering error translations/pt-BR/content/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise.md,rendering error translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise.md,broken liquid tags +translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md,broken liquid tags translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md,broken liquid tags translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-support-for-your-idps-conditional-access-policy.md,broken liquid tags translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/migrating-from-saml-to-oidc.md,broken liquid tags @@ -341,6 +342,7 @@ translations/pt-BR/content/billing/managing-billing-for-your-github-account/conn translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts.md,rendering error translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-with-codeql.md,rendering error translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning.md,rendering error +translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages.md,broken liquid tags translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/managing-code-scanning-alerts-for-your-repository.md,rendering error translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/running-codeql-code-scanning-in-a-container.md,broken liquid tags translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/setting-up-code-scanning-for-a-repository.md,rendering error @@ -365,7 +367,7 @@ translations/pt-BR/content/code-security/dependabot/working-with-dependabot/mana translations/pt-BR/content/code-security/getting-started/github-security-features.md,rendering error translations/pt-BR/content/code-security/getting-started/securing-your-repository.md,rendering error translations/pt-BR/content/code-security/secret-scanning/about-secret-scanning.md,rendering error -translations/pt-BR/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md,broken liquid tags +translations/pt-BR/content/code-security/secret-scanning/configuring-secret-scanning-for-your-repositories.md,rendering error translations/pt-BR/content/code-security/secret-scanning/defining-custom-patterns-for-secret-scanning.md,rendering error translations/pt-BR/content/code-security/secret-scanning/managing-alerts-from-secret-scanning.md,rendering error translations/pt-BR/content/code-security/secret-scanning/protecting-pushes-with-secret-scanning.md,rendering error @@ -442,11 +444,12 @@ translations/pt-BR/content/desktop/contributing-and-collaborating-using-github-d translations/pt-BR/content/developers/apps/building-github-apps/authenticating-with-github-apps.md,rendering error translations/pt-BR/content/developers/apps/building-github-apps/managing-allowed-ip-addresses-for-a-github-app.md,rendering error translations/pt-BR/content/developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps.md,broken liquid tags -translations/pt-BR/content/developers/apps/getting-started-with-apps/setting-up-your-development-environment-to-create-a-github-app.md,broken liquid tags -translations/pt-BR/content/developers/apps/guides/creating-ci-tests-with-the-checks-api.md,broken liquid tags -translations/pt-BR/content/developers/apps/guides/using-the-github-api-in-your-app.md,broken liquid tags +translations/pt-BR/content/developers/apps/getting-started-with-apps/setting-up-your-development-environment-to-create-a-github-app.md,rendering error +translations/pt-BR/content/developers/apps/guides/creating-ci-tests-with-the-checks-api.md,rendering error +translations/pt-BR/content/developers/apps/guides/using-the-github-api-in-your-app.md,rendering error translations/pt-BR/content/developers/overview/about-githubs-apis.md,broken liquid tags translations/pt-BR/content/developers/overview/managing-deploy-keys.md,broken liquid tags +translations/pt-BR/content/developers/overview/secret-scanning-partner-program.md,broken liquid tags translations/pt-BR/content/developers/webhooks-and-events/events/issue-event-types.md,broken liquid tags translations/pt-BR/content/developers/webhooks-and-events/webhooks/webhook-events-and-payloads.md,rendering error translations/pt-BR/content/discussions/collaborating-with-your-community-using-discussions/collaborating-with-maintainers-using-discussions.md,broken liquid tags @@ -616,6 +619,8 @@ translations/pt-BR/data/reusables/advanced-security/secret-scanning-push-protect translations/pt-BR/data/reusables/audit_log/audit-log-events-workflows.md,rendering error translations/pt-BR/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md,rendering error translations/pt-BR/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md,rendering error +translations/pt-BR/data/reusables/code-scanning/analyze-go.md,broken liquid tags +translations/pt-BR/data/reusables/code-scanning/autobuild-add-build-steps.md,broken liquid tags translations/pt-BR/data/reusables/code-scanning/codeql-languages-bullets.md,rendering error translations/pt-BR/data/reusables/code-scanning/codeql-languages-keywords.md,rendering error translations/pt-BR/data/reusables/code-scanning/enterprise-enable-code-scanning.md,broken liquid tags @@ -638,7 +643,7 @@ translations/pt-BR/data/reusables/codespaces/your-codespaces-procedure-step.md,b translations/pt-BR/data/reusables/dependabot/beta-security-and-version-updates.md,rendering error translations/pt-BR/data/reusables/dependabot/default-dependencies-allow-ignore.md,broken liquid tags translations/pt-BR/data/reusables/dependabot/enabling-disabling-dependency-graph-private-repo.md,rendering error -translations/pt-BR/data/reusables/dependabot/enterprise-enable-dependabot.md,broken liquid tags +translations/pt-BR/data/reusables/dependabot/enterprise-enable-dependabot.md,rendering error translations/pt-BR/data/reusables/dotcom_billing/actions-packages-report-download-org-account.md,broken liquid tags translations/pt-BR/data/reusables/enterprise-accounts/actions-packages-report-download-enterprise-accounts.md,broken liquid tags translations/pt-BR/data/reusables/enterprise-accounts/billing-microsoft-ea-overview.md,broken liquid tags @@ -678,7 +683,7 @@ translations/pt-BR/data/reusables/secret-scanning/partner-secret-list-private-re translations/pt-BR/data/reusables/secret-scanning/push-protection-web-ui-choice.md,broken liquid tags translations/pt-BR/data/reusables/secret-scanning/secret-list-private-push-protection.md,rendering error translations/pt-BR/data/reusables/security-overview/permissions.md,rendering error -translations/pt-BR/data/reusables/support/help_resources.md,broken liquid tags +translations/pt-BR/data/reusables/support/help_resources.md,rendering error translations/pt-BR/data/reusables/user-settings/access_applications.md,rendering error translations/pt-BR/data/reusables/user-settings/account_settings.md,rendering error translations/pt-BR/data/reusables/user-settings/appearance-settings.md,rendering error diff --git a/translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md b/translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md index 42f22a311c..822f11384e 100644 --- a/translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md +++ b/translations/pt-BR/content/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication.md @@ -1,7 +1,7 @@ --- -title: Considerações de nome de usuário para autenticação externa +title: Username considerations for external authentication shortTitle: Username considerations -intro: '{% ifversion ghes or ghec %}Quando você usa {% ifversion ghes %}CAS, LDAP ou SAML para autenticação{% elsif ghec %}{% data variables.product.prodname_emus %}{% endif %}, {% endif %}{% data variables.product.product_name %} segue certas regras para determinar o nome de usuário para cada conta de usuário {% ifversion ghec or ghae %}em sua empresa{% elsif ghes %}em sua instância{% endif %}.' +intro: '{% ifversion ghes or ghec %}When you use {% ifversion ghes %}CAS, LDAP, or SAML for authentication{% elsif ghec %}{% data variables.product.prodname_emus %}{% endif %}, {% endif %}{% data variables.product.product_name %} follows certain rules to determine the username for each user account {% ifversion ghec or ghae %}in your enterprise{% elsif ghes %}on your instance{% endif %}.' miniTocMaxHeadingLevel: 3 versions: ghec: '*' @@ -14,141 +14,144 @@ topics: - Enterprise - Identity - SSO -ms.openlocfilehash: 72f83b870e2c0ea13d95511ce4fc000b3ccfcfc5 -ms.sourcegitcommit: 478f2931167988096ae6478a257f492ecaa11794 -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/09/2022 -ms.locfileid: '147717993' --- -{% ifversion ghec %} {% note %} -**Observação:** este artigo se aplica somente ao {% data variables.product.prodname_emus %}. Se você usar {% data variables.product.prodname_ghe_cloud %} sem {% data variables.product.prodname_emus %}, os nomes de usuário serão criados pelos usuários, e não {% data variables.product.prodname_dotcom %}. +{% ifversion ghec %} +{% note %} -{% endnote %} {% endif %} +**Note:** This article only applies to {% data variables.product.prodname_emus %}. If you use {% data variables.product.prodname_ghe_cloud %} without {% data variables.product.prodname_emus %}, usernames are created by users, not {% data variables.product.prodname_dotcom %}. -## Sobre nomes de usuário com autenticação externa +{% endnote %} +{% endif %} + +## About usernames with external authentication {% ifversion ghes %} -Você pode configurar a autenticação externa para {% data variables.product.product_name %} usando CAS, LDAP ou SAML. Para obter mais informações, confira "[Sobre a autenticação em sua empresa](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)". +You can configure external authentication for {% data variables.product.product_name %} using CAS, LDAP, or SAML. For more information, see "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)." -Quando você usa a autenticação externa, o {% data variables.product.product_location %} cria automaticamente um nome de usuário para cada pessoa quando ela entra no {% data variables.product.product_location %} por meio do sistema de autenticação externa pela primeira vez. +When you use external authentication, {% data variables.product.product_location %} automatically creates a username for each person when the person signs into {% data variables.product.product_location %} through your external authentication system for the first time. {% elsif ghec %} -Se você usar uma empresa com {% data variables.product.prodname_emus %}, os membros da sua empresa se autenticarão para acessar dados do {% data variables.product.prodname_dotcom %} por meio de seu IdP (provedor de identidade) do SAML. Para obter mais informações, confira "[Sobre {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)" e "[Sobre a autenticação para sua empresa](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)". +If you use an enterprise with {% data variables.product.prodname_emus %}, members of your enterprise authenticate to access {% data variables.product.prodname_dotcom %} through your SAML identity provider (IdP). For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-and-saml-for-iam/about-enterprise-managed-users)" and "[About authentication for your enterprise](/admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise#authentication-methods-for-github-enterprise-server)." -O {% data variables.product.product_name %} cria automaticamente um nome de usuário para cada pessoa quando a conta de usuário é provisionada via SCIM, normalizando um identificador fornecido pelo IdP. Se vários identificadores forem normalizados no mesmo nome de usuário, ocorrerá um conflito de nomes de usuário e somente a primeira conta de usuário será criada. Resolva conflitos de nomes de usuário fazendo uma alteração no IdP para que os nomes de usuário normalizados sejam exclusivos. +{% data variables.product.product_name %} automatically creates a username for each person when their user account is provisioned via SCIM, by normalizing an identifier provided by your IdP. If multiple identifiers are normalized into the same username, a username conflict occurs, and only the first user account is created. {% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %} You can resolve username conflicts by making a change in your IdP so that the normalized usernames will be unique. {% elsif ghae %} -O {% data variables.product.product_name %} usa o SSO do SAML para autenticação e cria automaticamente um nome de usuário para cada pessoa quando a ela entra por meio de seu IdP (provedor de identidade) pela primeira vez. +{% data variables.product.product_name %} uses SAML SSO for authentication, and automatically creates a username for each person when the person signs in through your identity provider (IdP) for the first time. {% endif %} {% ifversion ghec %} -## Sobre nomes de usuário no {% data variables.product.prodname_managed_users %} +## About usernames for {% data variables.product.prodname_managed_users %} -Quando o {% data variables.product.prodname_emu_enterprise %} for criado, você escolherá um código curto que será usado como sufixo para os nomes de usuários dos membros da sua empresa. {% data reusables.enterprise-accounts.emu-shortcode %} O usuário de instalação que configura o SSO do SAML tem um nome de usuário no formato **@SHORT-CODE_admin**. +When your {% data variables.product.prodname_emu_enterprise %} is created, you will choose a short code that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} The setup user who configures SAML SSO has a username in the format of **@SHORT-CODE_admin**. -Quando você provisiona um novo usuário do provedor de identidade, o novo {% data variables.product.prodname_managed_user %} terá um nome de usuário {% data variables.product.prodname_dotcom %} no formato **@IDP-USERNAME_ SHORT-CODE** . O componente IDP-USERNAME é formado pela normalização do valor do atributo `userName` do SCIM enviado pelo IdP. +When you provision a new user from your identity provider, the new {% data variables.product.prodname_managed_user %} will have a {% data variables.product.prodname_dotcom %} username in the format of **@IDP-USERNAME_SHORT-CODE**. The IDP-USERNAME component is formed by normalizing the SCIM `userName` attribute value sent from the IdP. -| Provedor de identidade | Nome de usuário de {% data variables.product.prodname_dotcom %} | +| Identity provider | {% data variables.product.prodname_dotcom %} username | |-----------------------------------|----------------------| -| Active Directory do Azure (Azure AD) | O _IDP-USERNAME_ é formado pela normalização dos caracteres anteriores ao caractere `@` no UPN (nome UPN), que não inclui o `#EXT#` para contas de convidado. | -| Okta | __IDP-USERNAME__ é o atributo de nome de usuário normalizado fornecido pelo IdP. | +| Azure Active Directory (Azure AD) | _IDP-USERNAME_ is formed by normalizing the characters preceding the `@` character in the UPN (User Principal Name), which does not include the `#EXT#` for guest accounts. | +| Okta | _IDP-USERNAME_ is the normalized username attribute provided by the IdP. | -Essas regras podem fazer com que seu IdP forneça o mesmo _IDP-USERNAME_ para vários usuários. Por exemplo, no Azure AD, os seguintes UPNs resultarão no mesmo nome de usuário: +These rules may result in your IdP providing the same _IDP-USERNAME_ for multiple users. For example, for Azure AD, the following UPNs will result in the same username: - `bob@contoso.com` - `bob@fabrikam.com` - `bob#EXT#fabrikamcom@contoso.com` -Isso causará um conflito de nome de usuário e somente o primeiro usuário será provisionado. Para obter mais informações, confira "[Resolvendo conflitos de nome de usuário](#resolving-username-conflicts)". +This will cause a username conflict, and only the first user will be provisioned. For more information, see "[Resolving username conflicts](#resolving-username-conflicts)." {% endif %} -Nomes de usuário{% ifversion ghec %}, incluindo sublinhado e código curto,{% endif %} não devem exceder 39 caracteres. +Usernames{% ifversion ghec %}, including underscore and short code,{% endif %} must not exceed 39 characters. -## Sobre a normalização de nome de usuário +## About username normalization -Nomes de usuário de contas de usuário no {% ifversion ghes or ghae %}{% data variables.product.product_name %}{% elsif ghec %}{% data variables.product.prodname_dotcom_the_website %}{% endif %} só podem conter caracteres alfanuméricos e traços (`-`). - -{% ifversion ghec %} Quando você configura a autenticação SAML, o {% data variables.product.product_name %} usa o valor do atributo `userName` do SCIM enviado do IdP para determinar o nome de usuário da conta de usuário correspondente no {% data variables.product.prodname_dotcom_the_website %}. Se esse valor incluir caracteres sem suporte, o {% data variables.product.product_name %} normalizará o nome de usuário de acordo com as regras a seguir. -{% elsif ghes %} Quando você configura a autenticação por CAS, LDAP ou SAML, o {% data variables.product.product_name %} usa um identificador da conta de usuário em seu provedor de autenticação externo para determinar o nome de usuário da conta de usuário correspondente no {% data variables.product.product_name %}. Se o identificador incluir caracteres sem suporte, o {% data variables.product.product_name %} normalizará o nome de usuário de acordo com as regras a seguir. -{% elsif ghae %} Quando você configura a autenticação por SAML, o {% data variables.product.product_name %} usa um identificador da conta de usuário em seu IdP para determinar o nome de usuário da conta de usuário correspondente no {% data variables.product.product_name %}. Se o identificador incluir caracteres sem suporte, o {% data variables.product.product_name %} normalizará o nome de usuário de acordo com as regras a seguir. -{% endif %} - -1. O {% data variables.product.product_name %} normalizará qualquer caractere não alfanumérico do nome de usuário da sua conta em um traço. Por exemplo, um nome de usuário `mona.the.octocat` será normalizado como `mona-the-octocat`. Observe que nomes de usuários normalizados também não podem iniciar ou terminar com um traço. Eles também não podem conter dois traços consecutivos. - -1. Nomes de usuário criados com base em endereços de email são criados com caracteres normalizados que precedem o caractere `@`. - -1. Se várias contas forem normalizadas no mesmo nome de usuário do {% data variables.product.product_name %} apenas a primeira conta de usuário será criada. Usuários subsequentes com o mesmo nome de usuário não serão capazes de fazer o login. {% ifversion ghec %}Para obter mais informações, confira "[Resolvendo conflitos de nome de usuário](#resolving-username-conflicts)". {% endif %} - -### Exemplos de normalização de nome de usuário - -| Identificador no provedor | Nome de usuário normalizado no {% data variables.product.prodname_dotcom %} | Result | -| :- | :- | :- | -| The.Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Nome de usuário criado com sucesso. | -| !The.Octocat | `-the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Este nome de usuário não é criado, porque começa com um traço. | -| The.Octocat! | `the-octocat-{% ifversion ghec %}_SHORT-CODE{% endif %}` | Este nome de usuário não é criado, porque termina com um traço. | -| The!!Octocat | `the--octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Este nome de usuário não é criado, porque contém dois traços consecutivos. | -| The!Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Este nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe. | -| `The.Octocat@example.com` | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | Este nome de usuário não é criado. Embora o nome de usuário normalizado seja válido, ele já existe. | -| `mona.lisa.the.octocat.from.github.united.states@example.com` | `mona-lisa-the-octocat-from-github-united-states{% ifversion ghec %}_SHORT-CODE{% endif %}` | Esse nome de usuário não é criado, pois excede o limite de 39 caracteres. | - -{% ifversion not ghec %} -### Sobre a normalização de nome de usuário com o SAML - -{% ifversion ghes %}Se você configurar a autenticação do SAML para {% data variables.product.product_location %}, o {% endif %}{% data variables.product.product_name %} determinará o nome de usuário de cada pessoa por uma das seguintes declarações na resposta SAML, ordenada por prioridade decrescente. - -1. O atributo personalizado `username`, se definido e estiver presente -1. Uma declaração `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`, se presente -1. Uma declaração `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`, se presente -1. O elemento `NameID` - -O {% data variables.product.product_name %} exige o elemento `NameID` mesmo se outros atributos estiverem presentes. Para obter mais informações, confira "[Referência de configuração do SAML](/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference#saml-attributes)". - -O {% data variables.product.product_name %} cria um mapeamento entre o `NameID` do IdP e o nome de usuário {% ifversion ghae %}in{% else %}on{% endif %} {% data variables.product.product_location %}, portanto, a `NameID` devem ser persistente, exclusiva e não sujeita a alterações no ciclo de vida do usuário. - -{% ifversion ghes %} {% note %} - -**Observação**: se a `NameID` de um usuário mudar no IdP, a pessoa verá uma mensagem de erro ao entrar no {% data variables.product.product_location %}. Para restaurar o acesso da pessoa, atualize o mapeamento da `NameID` da conta do usuário. Para obter mais informações, confira "[Como atualizar a `NameID` do SAML de um usuário](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid)". - -{% endnote %} {% endif %} {% endif %} +Usernames for user accounts on {% ifversion ghes or ghae %}{% data variables.product.product_name %}{% elsif ghec %}{% data variables.product.prodname_dotcom_the_website %}{% endif %} can only contain alphanumeric characters and dashes (`-`). {% ifversion ghec %} -## Resolvendo conflitos de nome de usuário +When you configure SAML authentication, {% data variables.product.product_name %} uses the SCIM `userName` attribute value sent from the IdP to determine the username for the corresponding user account on {% data variables.product.prodname_dotcom_the_website %}. If this value includes unsupported characters, {% data variables.product.product_name %} will normalize the username per the following rules. +{% elsif ghes %} +When you configure CAS, LDAP, or SAML authentication, {% data variables.product.product_name %} uses an identifier from the user account on your external authentication provider to determine the username for the corresponding user account on {% data variables.product.product_name %}. If the identifier includes unsupported characters, {% data variables.product.product_name %} will normalize the username per the following rules. +{% elsif ghae %} +When you configure SAML authentication, {% data variables.product.product_name %} uses an identifier from the user account on your IdP to determine the username for the corresponding user account on {% data variables.product.product_name %}. If the identifier includes unsupported characters, {% data variables.product.product_name %} will normalize the username per the following rules. +{% endif %} -Quando um novo usuário está sendo provisionado e o nome de usuário normalizado entrar em conflito com um usuário existente na empresa, a tentativa de provisionamento falhará com um erro `409`. +1. {% data variables.product.product_name %} will normalize any non-alphanumeric character in your account's username into a dash. For example, a username of `mona.the.octocat` will be normalized to `mona-the-octocat`. Note that normalized usernames also can't start or end with a dash. They also can't contain two consecutive dashes. -Para resolver esse problema, você deve fazer uma alteração no IdP para que os nomes de usuário normalizados sejam exclusivos. Se você não puder alterar o identificador que está sendo normalizado, poderá alterar o mapeamento de atributo para o atributo `userName`. Se você alterar o mapeamento de atributo, os nomes de usuário dos {% data variables.product.prodname_managed_users %} serão atualizados, mas nada mais relativo às contas será alterado, incluindo o histórico de atividades. +1. Usernames created from email addresses are created from the normalized characters that precede the `@` character. + +1. If multiple accounts are normalized into the same {% data variables.product.product_name %} username, only the first user account is created. Subsequent users with the same username won't be able to sign in. {% ifversion ghec %}For more information, see "[Resolving username conflicts](#resolving-username-conflicts)."{% endif %} + +### Examples of username normalization + +| Identifier on provider | Normalized username on {% data variables.product.prodname_dotcom %} | Result | +| :- | :- | :- | +| The.Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is created successfully. | +| !The.Octocat | `-the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it starts with a dash. | +| The.Octocat! | `the-octocat-{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it ends with a dash. | +| The!!Octocat | `the--octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it contains two consecutive dashes. | +| The!Octocat | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created. Although the normalized username is valid, it already exists. | +| `The.Octocat@example.com` | `the-octocat{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created. Although the normalized username is valid, it already exists. | +| `mona.lisa.the.octocat.from.github.united.states@example.com` | `mona-lisa-the-octocat-from-github-united-states{% ifversion ghec %}_SHORT-CODE{% endif %}` | This username is not created, because it exceeds the 39-character limit. | + +{% ifversion not ghec %} +### About username normalization with SAML + +{% ifversion ghes %}If you configure SAML authentication for {% data variables.product.product_location %}, {% endif %}{% data variables.product.product_name %} determines each person's username by one of the following assertions in the SAML response, ordered by descending priority. + +1. The custom `username` attribute, if defined and present +1. An `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name` assertion, if present +1. An `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress` assertion, if present +1. The `NameID` element + +{% data variables.product.product_name %} requires the `NameID` element even if other attributes are present. For more information, see "[SAML configuration reference](/admin/identity-and-access-management/using-saml-for-enterprise-iam/saml-configuration-reference#saml-attributes)." + +{% data variables.product.product_name %} creates a mapping between the `NameID` from the IdP and the username {% ifversion ghae %}in{% else %}on{% endif %} {% data variables.product.product_location %}, so the `NameID` should be persistent, unique, and not subject to change for the lifecycle of the user. + +{% ifversion ghes %} +{% note %} + +**Note**: If the `NameID` for a user does change on the IdP, the person will see an error message when signing into {% data variables.product.product_location %}. To restore the person's access, you'll need to update the user account's `NameID` mapping. For more information, see "[Updating a user's SAML `NameID`](/admin/identity-and-access-management/using-saml-for-enterprise-iam/updating-a-users-saml-nameid)." + +{% endnote %} +{% endif %} +{% endif %} + +{% ifversion ghec %} +## Resolving username conflicts + +When a new user is being provisioned, if the user's normalized username conflicts with an existing user in the enterprise, the provisioning attempt will fail with a `409` error. + +To resolve this problem, you must make a change in your IdP so that the normalized usernames will be unique. If you cannot change the identifier that's being normalized, you can change the attribute mapping for the `userName` attribute. If you change the attribute mapping, usernames of existing {% data variables.product.prodname_managed_users %} will be updated, but nothing else about the accounts will change, including activity history. {% note %} -**Observação:** {% data variables.contact.github_support %} não pode fornecer assistência para personalizar mapeamentos de atributo nem configurar expressões personalizadas. Entre em contato com seu IdP com qualquer pergunta. +**Note:** {% data variables.contact.github_support %} cannot provide assistance with customizing attribute mappings or configuring custom expressions. You can contact your IdP with any questions. {% endnote %} -### Resolvendo conflitos de nome de usuário com o Azure AD +### Resolving username conflicts with Azure AD -Para resolver conflitos de nome de usuário no Azure AD, modifique o valor do nome UPN do usuário conflitante ou modifique o mapeamento de atributo para o atributo `userName`. Se você modificar o mapeamento de atributo, poderá escolher um atributo existente ou usar uma expressão para garantir que todos os usuários provisionados tenham um alias normalizado exclusivo. +To resolve username conflicts in Azure AD, either modify the User Principal Name value for the conflicting user or modify the attribute mapping for the `userName` attribute. If you modify the attribute mapping, you can choose an existing attribute or use an expression to ensure that all provisioned users have a unique normalized alias. -1. No Azure AD, abra o aplicativo {% data variables.product.prodname_emu_idp_application %}. -1. Na barra lateral esquerda, clique em **Provisionamento**. -1. Clique em **Editar Provisionamento**. -1. Expanda **Mapeamentos** e clique em **Provisionar Usuários do Azure Active Directory**. -1. Clique no mapeamento do atributo `userName` {% data variables.product.prodname_dotcom %}. -1. Altere o mapeamento de atributos. - - Para mapear um atributo existente no Azure AD para o atributo `userName` no {% data variables.product.prodname_dotcom %}, clique no campo de atributo desejado. Em seguida, salve e aguarde um ciclo de provisionamento que vai ocorrer em cerca de 40 minutos. - - Para usar uma expressão em vez de um atributo existente, altere o tipo de mapeamento para "Expressão" e adicione uma expressão personalizada que tornará esse valor exclusivo para todos os usuários. Por exemplo, você pode usar `[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]`. Para saber mais, confira [Referência para escrever expressões para mapeamentos de atributo no Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/functions-for-customizing-application-data) no Microsoft Docs. +1. In Azure AD, open the {% data variables.product.prodname_emu_idp_application %} application. +1. In the left sidebar, click **Provisioning**. +1. Click **Edit Provisioning**. +1. Expand **Mappings**, then click **Provision Azure Active Directory Users**. +1. Click the {% data variables.product.prodname_dotcom %} `userName` attribute mapping. +1. Change the attribute mapping. + - To map an existing attribute in Azure AD to the `userName` attribute in {% data variables.product.prodname_dotcom %}, click your desired attribute field. Then, save and wait for a provisioning cycle to occur within about 40 minutes. + - To use an expression instead of an existing attribute, change the Mapping type to "Expression", then add a custom expression that will make this value unique for all users. For example, you could use `[FIRST NAME]-[LAST NAME]-[EMPLOYEE ID]`. For more information, see [Reference for writing expressions for attribute mappings in Azure Active Directory](https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/functions-for-customizing-application-data) in Microsoft Docs. -### Resolvendo conflitos de nome de usuário com o Okta +### Resolving username conflicts with Okta -Para resolver conflitos de nome de usuário no Okta, atualize as configurações de mapeamento de atributo para o aplicativo {% data variables.product.prodname_emu_idp_application %}. +To resolve username conflicts in Okta, update the attribute mapping settings for the {% data variables.product.prodname_emu_idp_application %} application. -1. No Okta, abra o aplicativo {% data variables.product.prodname_emu_idp_application %}. -1. Clique em **Entrar**. -1. Na seção "Configurações", clique em **Editar**. -1. Atualize o "Formato de nome de usuário do aplicativo". +1. In Okta, open the {% data variables.product.prodname_emu_idp_application %} application. +1. Click **Sign On**. +1. In the "Settings" section, click **Edit**. +1. Update the "Application username format." {% endif %} diff --git a/translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md b/translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md index 53c70ca269..1444925cd5 100644 --- a/translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md +++ b/translations/pt-BR/content/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users.md @@ -135,7 +135,7 @@ By default, when an unauthenticated user attempts to access an enterprise that u {% data variables.product.product_name %} automatically creates a username for each person by normalizing an identifier provided by your IdP. For more information, see "[Username considerations for external authentication](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication)." -A conflict may occur when provisioning users if the unique parts of the identifier provided by your IdP are removed during normalization. If you're unable to provision a user due to a username conflict, you should modify the username provided by your IdP. For more information, see "[Resolving username conflicts](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#resolving-username-conflicts)." +A conflict may occur when provisioning users if the unique parts of the identifier provided by your IdP are removed during normalization. {% data reusables.enterprise-accounts.emu-only-emails-within-the-enterprise-can-conflict %} If you're unable to provision a user due to a username conflict, you should modify the username provided by your IdP. For more information, see "[Resolving username conflicts](/admin/identity-and-access-management/managing-iam-for-your-enterprise/username-considerations-for-external-authentication#resolving-username-conflicts)." The profile name and email address of a {% data variables.product.prodname_managed_user %} is also provided by the IdP. {% data variables.product.prodname_managed_users_caps %} cannot change their profile name or email address on {% data variables.product.prodname_dotcom %}, and the IdP can only provide a single email address. diff --git a/translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages.md b/translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages.md index 896c018da7..9135c91197 100644 --- a/translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages.md +++ b/translations/pt-BR/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages.md @@ -1,7 +1,7 @@ --- -title: Configuração do fluxo de trabalho do CodeQL para linguagens compiladas +title: Configuring the CodeQL workflow for compiled languages shortTitle: Configure compiled languages -intro: 'Você pode configurar como o {% data variables.product.prodname_dotcom %} usa o {% data variables.product.prodname_codeql_workflow %} para varrer o código escrito em linguagens compiladas para obter vulnerabilidades e erros.' +intro: 'You can configure how {% data variables.product.prodname_dotcom %} uses the {% data variables.product.prodname_codeql_workflow %} to scan code written in compiled languages for vulnerabilities and errors.' product: '{% data reusables.gated-features.code-scanning %}' permissions: 'If you have write permissions to a repository, you can configure {% data variables.product.prodname_code_scanning %} for that repository.' redirect_from: @@ -25,87 +25,89 @@ topics: - C/C++ - C# - Java -ms.openlocfilehash: c8256eea83b6a30879effc4d7797f2afcbc82e15 -ms.sourcegitcommit: fcf3546b7cc208155fb8acdf68b81be28afc3d2d -ms.translationtype: HT -ms.contentlocale: pt-BR -ms.lasthandoff: 09/10/2022 -ms.locfileid: '147875685' --- -{% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning-actions %} -## Sobre o {% data variables.product.prodname_codeql_workflow %} e linguagens compiladas -Você configurou {% data variables.product.prodname_dotcom %} para executar {% data variables.product.prodname_code_scanning %} para o seu repositório, adicionando um fluxo de trabalho de {% data variables.product.prodname_actions %} ao repositório. Para {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}, você adiciona o {% data variables.product.prodname_codeql_workflow %}. Para obter mais informações, confira "[Como configurar a {% data variables.product.prodname_code_scanning %} para um repositório](/code-security/secure-coding/setting-up-code-scanning-for-a-repository)". +{% data reusables.code-scanning.beta %} +{% data reusables.code-scanning.enterprise-enable-code-scanning-actions %} -{% data reusables.code-scanning.edit-workflow %} Para obter informações gerais sobre como configurar a {% data variables.product.prodname_code_scanning %} e editar arquivos de fluxo de trabalho, confira "[Como configurar a {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning)" e "[Aprenda a usar o {% data variables.product.prodname_actions %}](/actions/learn-github-actions)". +## About the {% data variables.product.prodname_codeql_workflow %} and compiled languages -## Sobre a autobuild para {% data variables.product.prodname_codeql %} +You set up {% data variables.product.prodname_dotcom %} to run {% data variables.product.prodname_code_scanning %} for your repository by adding a {% data variables.product.prodname_actions %} workflow to the repository. For {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %}, you add the {% data variables.product.prodname_codeql_workflow %}. For more information, see "[Setting up {% data variables.product.prodname_code_scanning %} for a repository](/code-security/secure-coding/setting-up-code-scanning-for-a-repository)." -A varredura de código funciona executando consultas contra um ou mais bancos de dados. Cada banco de dados contém uma representação de todo o código em uma linguagem única no seu repositório. Para as linguagens compiladas de C/C++, C#, e Java, o processo de preenchimento deste banco de dados envolve a construção do código e extração de dados. {% data reusables.code-scanning.analyze-go %} +{% data reusables.code-scanning.edit-workflow %} +For general information about configuring {% data variables.product.prodname_code_scanning %} and editing workflow files, see "[Configuring {% data variables.product.prodname_code_scanning %}](/code-security/secure-coding/configuring-code-scanning)" and "[Learn {% data variables.product.prodname_actions %}](/actions/learn-github-actions)." + +## About autobuild for {% data variables.product.prodname_codeql %} + +{% data variables.product.prodname_code_scanning_capc %} works by running queries against one or more databases. Each database contains a representation of all of the code in a single language in your repository. +For the compiled languages C/C++, C#, and Java, the process of populating this database involves building the code and extracting data. {% data reusables.code-scanning.analyze-go %} {% data reusables.code-scanning.autobuild-compiled-languages %} -Se o fluxo de trabalho usar uma matriz `language`, `autobuild` tentará criar cada uma das linguagens compiladas listadas na matriz. Sem uma matriz, `autobuild` tentará criar a linguagem compilada compatível que tem mais arquivos de origem no repositório. Com exceção de Go, a análise de outras linguagens compatíveis no repositório irá falhar, a menos que você forneça comandos de criação explícitos. +If your workflow uses a `language` matrix, `autobuild` attempts to build each of the compiled languages listed in the matrix. Without a matrix `autobuild` attempts to build the supported compiled language that has the most source files in the repository. With the exception of Go, analysis of other compiled languages in your repository will fail unless you supply explicit build commands. {% note %} -{% ifversion ghae %} **Observação**: {% data reusables.actions.self-hosted-runners-software %} {% else %} **Observação**: caso você use executores auto-hospedados para o {% data variables.product.prodname_actions %}, talvez seja necessário instalar um software adicional para usar o processo `autobuild`. Além disso, se seu repositório precisar de uma versão específica de uma ferramenta de criação, talvez seja necessário instalá-lo manualmente. Para obter mais informações, confira "[Especificações para os executores hospedados no {% data variables.product.prodname_dotcom %}](/actions/reference/specifications-for-github-hosted-runners/#supported-software)". +{% ifversion ghae %} +**Note**: {% data reusables.actions.self-hosted-runners-software %} +{% else %} +**Note**: If you use self-hosted runners for {% data variables.product.prodname_actions %}, you may need to install additional software to use the `autobuild` process. Additionally, if your repository requires a specific version of a build tool, you may need to install it manually. For more information, see "[Specifications for {% data variables.product.prodname_dotcom %}-hosted runners](/actions/reference/specifications-for-github-hosted-runners/#supported-software)". {% endif %} {% endnote %} ### C/C++ -| Tipo de sistema compatível | Nome do sistema | +| Supported system type | System name | |----|----| -| Sistema operacional | Windows, macOS e Linux | -| Sistema de criação | Windows: MSbuild e scripts de build