This page (revision-1) was last changed on 29-Nov-2024 16:16 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 added 117 lines
!!! Overview
[{$pagename}] is a [SCIM Resource Operation] to Replace Values on a [SCIM Resource]
%%warning
[HTTP PUT] performs a full update.
%%
!! Replacing with [HTTP PUT] ([SCIM 2.0] [RFC 7644])
[HTTP PUT] is used to replace a [SCIM Resource]'s attributes.
For example, [SCIM Clients] that have previously retrieved the entire [SCIM Resource] in advance and revised it [MAY] replace the [SCIM Resource] using an [HTTP PUT].
Because [SCIM Resource] identifiers are assigned by the [SCIM Service Provider], __[HTTP PUT] [MUST NOT]__ be used to create new resources.
As the operation's intent is to replace all attributes, [SCIM Clients] [MAY] send all attributes, regardless of each attribute's mutability. The [SCIM Service Provider] will apply attribute-by-attribute replacements according to the following attribute mutability rules:
!! readWrite, writeOnly
Any values provided [SHALL] replace the existing attribute values.
Attributes whose mutability is "readWrite" that are omitted from the request body [MAY] be assumed to be not asserted by the [SCIM Client].
The [SCIM Service Provider] [MAY] assume that any existing values are to be cleared, or the service provider [MAY] assign a default value to the final resource representation.
[Service Provider] [MAY] take into account whether or not a client has access to, or understands, all of the resource's attributes when deciding whether non-asserted attributes [SHALL] be removed or defaulted. Clients that want to override a [SCIM Service Provider]'s defaults [MAY] specify "null" for a [SINGLE-VALUE] attribute, or an empty array "[[]" for a [MULTI-VALUE] attribute, to clear all values.
!! immutable
If one or more values are already set for the attribute, the input value(s) [MUST] match, or HTTP status code 400 [SHOULD] be returned with a "scimType" error code of "mutability". If the service provider has no existing values, the new value(s) [SHALL] be applied.
!! readOnly
Any values provided SHALL be ignored.
!! required
If an attribute is "required", clients [MUST] specify the attribute in the [HTTP PUT] request.
Unless otherwise specified, a successful [HTTP PUT] operation returns a 200 OK response code and the entire resource within the response body, enabling the [SCIM Clients] to correlate the client's and the service provider's views of the updated resource. [SCIM Clients] __[MUST]__ retrieve the entire Resource and [HTTP PUT] the desired modifications as the operation __overwrites all__ previously stored data.
[{$pagename}] is performed using a URL [endpoint] similar to:
{{{
PUT https://example.com/{v}/{resource}/{id}
}}}
[Best Practices] are for the [URL] is that the [URL] contains a version number so that different versions of the [SCIM] API can co-exist. Available versions can be dynamically discovered via the [SCIM Service Provider Configuration Endpoints].
!! [{$pagename}] [Example]
To replace __ALL values__ a resource, send an HTTP PUT request to the resource's respective end point:
%%prettify
{{{
PUT /Users/2819c223-7f76-453a-919d-413861904646
Host: example.com
Accept: application/json
Authorization: Bearer h480djs93hd8
ETag: W/"a330bc54f0671c9"
{
"schemas":["urn:scim:schemas:core:1.0"],
"id":"2819c223-7f76-453a-919d-413861904646",
"userName":"bjensen",
"externalId":"bjensen",
"name":{
"formatted":"Ms. Barbara J Jensen III",
"familyName":"Jensen",
"givenName":"Barbara",
"middleName":"Jane"
},
"emails":[
{
"value":"bjensen@example.com"
},
{
"value":"babs@jensen.org"
}
]
}}}} /%
!! Replace Response
The response to a PUT contains The service responds with the entire, updated [SCIM Resource]
The [Etag] header can, in subsequent requests, be used to prevent concurrent modifications of Resources.
Unless otherwise specified a successful [HTTP PUT] operation returns a [HTTP Status Code] 200 OK response code and the entire updated [SCIM Resource] within the response body. [Example]:
%%prettify
{{{
HTTP/1.1 200 OK
Content-Type: application/json
ETag: W/"b431af54f0671a2"
Location:"https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646"
{
"schemas":["urn:scim:schemas:core:1.0"],
"id":"2819c223-7f76-453a-919d-413861904646",
"userName":"bjensen",
"externalId":"bjensen",
"name":{
"formatted":"Ms. Barbara J Jensen III",
"familyName":"Jensen",
"givenName":"Barbara",
"middleName":"Jane"
},
"emails":[
{
"value":"bjensen@example.com"
},
{
"value":"babs@jensen.org"
}
],
"meta": {
"created":"2011-08-08T04:56:22Z",
"lastModified":"2011-08-08T08:00:12Z",
"location":"https://example.com/v1/Users/2819c223-7f76-453a-919d-413861904646",
"version":"W\/\"b431af54f0671a2\""
}
}
}}} /%
!! More Information
There might be more information for this subject on one of the following:
[{ReferringPagesPlugin before='*' after='\n' }]