# Perform bulk updates.

Enables clients to send a potentially large collection of resource operations in a single request.

The body of a bulk operation contains a set of HTTP resource operations using one of the HTTP methods supported by the API, i.e., POST, PUT, PATCH, or DELETE.



Bulk requests are identified using the following schema URI: "urn:ietf:params:scim:api:messages:2.0:BulkRequest". 

Bulk responses are identified using the following URI: "urn:ietf:params:scim:api:messages:2.0:BulkResponse".

Bulk requests and bulk responses share many attributes.



> Note: If a bulk job is processed successfully, HTTP response code 200 OK must be returned; otherwise, an appropriate HTTP error code must be returned.

The service provider must continue performing as many changes as possible and disregard partial failures. The client may override this behavior by specifying a value for the failOnErrors attribute. The failOnErrors attribute defines the number of errors that the service provider should accept before failing the remaining operations returning the response.

To be able to reference a newly created resource, the bulkId attribute may be specified when creating new resources. The bulkId is defined by the client as a surrogate identifier in a POST operation (see Section 3.7.2). The bulkId can then be used by the client to map the service provider id with the bulkId of the created resource.

Endpoint: POST /scim/v2/Bulk
Version: latest
Security: BearerAuth

## Request fields (application/json):

  - `schemas` (array, required)
    Example: ["urn:ietf:params:scim:api:messages:2.0:BulkRequest"]

  - `failOnErrors` (boolean)
    An integer specifying the number of errors that the service provider will accept before the operation is terminated and an error response is returned.
    Example: 1

  - `Operations` (array, required)
    Defines operations within a bulk job. Each operation corresponds to a single HTTP request against a resource endpoint.
    Example: [{"method":"POST","path":"/Users","bulkId":"qwerty","data":{"schemas":["urn:ietf:params:scim:api:messages:2.0:User"],"userName":"Alice"}},{"method":"POST","path":"/Groups","bulkId":"ytrewq","data":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:Group"],"displayName":"Tour Guides","members":[{"type":"User","value":"bulkId:qwerty"}]}},{"method":"PUT","path":"/Users/b7c14771-226c-4d05-8860-134711653041","data":{"schemas":["urn:ietf:params:scim:schemas:core:2.0:User"],"id":"b7c14771-226c-4d05-8860-134711653041","userName":"Bob"}},{"method":"PATCH","path":"/Users/5d8d29d3-342c-4b5f-8683-a3cb6763ffcc","data":{"schemas":["urn:ietf:params:scim:api:messages:2.0:PatchOp"],"Operations":[{"op":"remove","path":"nickName"},{"op":"add","path":"userName","value":"Dave"}]}},{"method":"DELETE","path":"/Users/e9025315-6bea-44e1-899c-1e07454e468b"}]

  - `Operations.method` (string, required)
    The HTTP method of the current operation.
    Enum: "POST", "PUT", "PATCH", "DELETE"

  - `Operations.bulkId` (string)
    The transient identifier of a newly created resource, unique within a bulk request and created by the client. The bulkId serves as a surrogate resource id enabling clients to uniquely identify newly created resources in the response and cross-reference new resources in and across operations within a bulk request.
REQUIRED when "method" is "POST".

  - `Operations.path` (string, required)
    The resource's relative path to the SCIM service provider's root. 
If "method" is "POST", the value must specify a resource type endpoint, e.g., /Users or /Groups, whereas all other "method" values must specify the path to a specific resource, e.g., /Users/2819c223-7f76-453a-919d-413861904646.

  - `Operations.data` (string)
    The resource data as it would appear for a single SCIM POST, PUT, or PATCH operation.
REQUIRED in a request when "method" is "POST", "PUT", or "PATCH".

## Response 200 fields (application/json):

  - `schemas` (array, required)
    Example: ["urn:ietf:params:scim:api:messages:2.0:BulkResponse"]

  - `failOnErrors` (boolean)
    An integer specifying the number of errors that the service provider will accept before the operation is terminated and an error response is returned.

  - `Operations` (array, required)
    Defines operations within a bulk job. Each operation corresponds to a single HTTP request against a resource endpoint.
    Example: [{"location":"https://example.com/v2/Users/92b725cd-9465-4e7d-8c16-01f8e146b87a","method":"POST","bulkId":"qwerty","status":"201"},{"location":"https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a","method":"POST","bulkId":"ytrewq","status":"201"},{"location":"https://example.com/v2/Users/b7c14771-226c-4d05-8860-134711653041","method":"PUT","status":"200"},{"location":"https://example.com/v2/Users/5d8d29d3-342c-4b5f-8683-a3cb6763ffcc","method":"PATCH","status":"200"},{"location":"https://example.com/v2/Users/e9025315-6bea-44e1-899c-1e07454e468b","method":"DELETE","status":"204"}]

  - `Operations.method` (string, required)
    The HTTP method of the current operation.
    Enum: "POST", "PUT", "PATCH", "DELETE"

  - `Operations.bulkId` (string)
    The transient identifier of a newly created resource, unique within a bulk request and created by the client. The bulkId serves as a surrogate resource id enabling clients to uniquely identify newly created resources in the response and cross-reference new resources in and across operations within a bulk request.
REQUIRED when "method" is "POST".

  - `Operations.version` (string)
    The current resource version. Version may be used if the service provider supports entity-tags (ETags) ([Section 2.3 of [RFC7232]](https://datatracker.ietf.org/doc/html/rfc7232#section-2.3)) and "method" is "PUT", "PATCH", or "DELETE".

  - `Operations.path` (string, required)
    The resource's relative path to the SCIM service provider's root. 
If "method" is "POST", the value must specify a resource type endpoint, e.g., /Users or /Groups, whereas all other "method" values must specify the path to a specific resource, e.g., /Users/2819c223-7f76-453a-919d-413861904646.

  - `Operations.data` (string)
    The resource data as it would appear for a single SCIM POST, PUT, or PATCH operation.
REQUIRED in a request when "method" is "POST", "PUT", or "PATCH".

  - `Operations.location` (string)
    The resource endpoint URL.
REQUIRED in a response, except in the event of a POST failure.

  - `Operations.response` (string)
    The HTTP response body for the specified request operation.
When indicating a response with an HTTP status other than a 200-series response, the response body must be included.
For normal completion, the server may elect to omit the response body.

  - `Operations.status` (string)
    The HTTP response status code for the requested operation.
When indicating an error, the "response" attribute must contain the detail error response as per [Section 3.12](https://datatracker.ietf.org/doc/html/rfc7644#section-3.12).


## Response 409 fields
