Method: inventory.partners.availability.replace

Replaces the Availability of existing Services. 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 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(ExtendedServiceAvailability)
    }
  ]
}
Fields
extendedServiceAvailability[]

object(ExtendedServiceAvailability)

The extended service availability that is used to replace the existing availability slots.

Response body

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

The batch response to replace multiple Service's availability slots. Only successfully updated slots will be included in this message

JSON representation
{
  "extendedServiceAvailability": [
    {
      object(ExtendedServiceAvailability)
    }
  ]
}
Fields
extendedServiceAvailability[]

object(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 availablity and who/when they should be applied to.

JSON representation
{
  "merchantId": string,
  "serviceId": string,
  "startTimeRestrict": string,
  "endTimeRestrict": string,
  "durationRestrict": string,
  "resourcesRestrict": {
    object(Resources)
  },
  "availability": [
    {
      object(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 (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 futher 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.

A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z".

endTimeRestrict

string (Timestamp format)

Setting endTimeRestrict while leaving startTimeRestrict unset is interpreted to mean all time up to the endTimeRestrict.

A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z".

durationRestrict

string (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, terminated by 's'. Example: "3.5s".

resourcesRestrict

object(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(Availability)

The new list of availability.