# Method: inventory.partners.availability.replace

- [HTTP request](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.request_body)
  - [JSON representation](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.response_body)
  - [JSON representation](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.BatchReplaceServiceAvailabilityResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#body.aspect)
- [ExtendedServiceAvailability](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#ExtendedServiceAvailability)
  - [JSON representation](https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#ExtendedServiceAvailability.SCHEMA_REPRESENTATION)

Replaces the `https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services.availability#Availability` of existing `https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services#Service`. This batch call does not guarantee atomicity. Only successfully updated availability slots will be returned.

### HTTP request

`POST https://mapsbooking.googleapis.com/v1alpha/inventory/{parent=partners/*}/availability:replace`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `parent` | `string` Format of `partners/{partner_id}`. |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "extendedServiceAvailability": [ { object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#ExtendedServiceAvailability`) } ] } ``` |

| Fields ||
|---|---|
| `extendedServiceAvailability[]` | ``object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#ExtendedServiceAvailability`)`` The extended service availability that is used to replace the existing availability slots. |

### Response body

The batch response to replace multiple `https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services#Service`'s availability slots. Only successfully updated slots will be included in this message

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "extendedServiceAvailability": [ { object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#ExtendedServiceAvailability`) } ] } ``` |

| Fields ||
|---|---|
| `extendedServiceAvailability[]` | ``object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.availability/replace#ExtendedServiceAvailability`)`` The successfully updated extended service availability messages that were used to replace the existing availability slots. |

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/mapsbooking`

## ExtendedServiceAvailability

A list of availability and who/when they should be applied to.

| JSON representation |
|---|
| ``` { "merchantId": string, "serviceId": string, "startTimeRestrict": string, "endTimeRestrict": string, "durationRestrict": string, "resourcesRestrict": { object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services.availability#Resources`) }, "availability": [ { object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services.availability#Availability`) } ] } ``` |

| Fields ||
|---|---|
| `merchantId` | `string` This is a mandatory field required to specify which merchant the availability messages below belong to. |
| `serviceId` | `string` This is a mandatory field required to specify which service the availability messages below belong to. |
| `startTimeRestrict` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` If provided, we will consider the Availability entities provided to be a complete snapshot from \[startTimeRestrict, endTimeRestrict). That is, all existing availability will be deleted if the following condition holds true: startTimeRestrict <= availability.start_sec && availability.start_sec < endTimeRestrict If a duration message is set, the condition is further restricted: availability.duration == durationRestrict If a resourcesRestrict message is set, the condition is further restricted: availability.resources.staff_id == resourcesRestrict.staff_id && availability.resources.room_id == resourcesRestrict.room_id These fields are typically used to provide a complete update of availability in a given time range. Setting startTimeRestrict while leaving endTimeRestrict unset is interpreted to mean all time beginning at startTimeRestrict. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `endTimeRestrict` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#timestamp` format)`` Setting endTimeRestrict while leaving startTimeRestrict unset is interpreted to mean all time up to the endTimeRestrict. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: `"2014-10-02T15:01:23Z"`, `"2014-10-02T15:01:23.045123456Z"` or `"2014-10-02T15:01:23+05:30"`. |
| `durationRestrict` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Setting duration further restricts the scope of the update to just the availability with matching duration. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `resourcesRestrict` | ``object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services.availability#Resources`)`` Setting resourcesRestrict further restricts the scope of the update to just this set of resources. All id fields of the resources must match exactly. |
| `availability[]` | ``object (`https://developers.google.com/maps-booking/reference/maps-booking-api/rest/v1alpha/inventory.partners.merchants.services.availability#Availability`)`` The new list of availability. |