Method: inventory.partners.merchants.services.availability.replace

Reemplaza la disponibilidad (Availability) de un servicio (Service) existente de un comercio que administra el agregador especificado y la muestra.

Solicitud HTTP

POST https://mapsbooking.googleapis.com/v1alpha/inventory/{serviceAvailability.name=partners/*/merchants/*/services/*}/availability:replace

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta de acceso

Parámetros
serviceAvailability.name

string

Es el nombre de recurso del servicio al que se debe aplicar este código. Tiene este formato: partners/{partner_id}/merchants/{merchantId}/services/{serviceId}

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación JSON
{
  "serviceAvailability": {
    "name": string,
    "startTimeRestrict": string,
    "endTimeRestrict": string,
    "durationRestrict": string,
    "resourcesRestrict": {
      "staffId": string,
      "staffName": string,
      "roomId": string,
      "roomName": string,
      "partySize": integer,
      "roomDescription": {
        object (Text)
      }
    },
    "availability": [
      {
        "startTime": string,
        "duration": string,
        "spotsTotal": string,
        "spotsOpen": string,
        "availabilityTag": string,
        "resources": {
          object (Resources)
        },
        "paymentOptionId": [
          string
        ],
        "recurrence": {
          object (Recurrence)
        },
        "scheduleException": [
          {
            object (ScheduleException)
          }
        ],
        "deposit": {
          object (Deposit)
        },
        "noShowFee": {
          object (NoShowFee)
        },
        "prepayment": {
          object (Prepayment)
        },
        "requireCreditCard": enum (RequireCreditCard),
        "ticketTypeId": [
          string
        ],
        "durationRequirement": enum (DurationRequirement),
        "schedulingRuleOverrides": {
          object (SchedulingRuleOverrides)
        },
        "confirmationMode": enum (ConfirmationMode),
        "linkoutRequiredReason": enum (LinkoutRequiredReason)
      }
    ]
  }
}
Campos
serviceAvailability.startTimeRestrict

string (Timestamp format)

Si se proporciona, consideraremos que las entidades de disponibilidad provistas corresponden a un resumen completo de [startTimeRestrict, endTimeRestrict]. Es decir, se borrará toda la disponibilidad existente si se cumple la siguiente condición:

   startTimeRestrict <= availability.start_sec &&
   availability.start_sec < endTimeRestrict

Si se establece un mensaje de duración, la condición se verá aún más restringida:

  availability.duration == durationRestrict

Si se establece un mensaje resourcesRestrict, la condición se verá aún más restringida:

   availability.resources.staff_id == resourcesRestrict.staff_id &&
   availability.resources.room_id == resourcesRestrict.room_id

Estos campos suelen utilizarse para proporcionar una actualización completa de la disponibilidad en un período determinado.

Si se establece startTimeRestrict, pero se deja endTimeRestrict sin definir, se interpretará que el período en cuestión abarca desde startTimeRestrict en adelante.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

serviceAvailability.endTimeRestrict

string (Timestamp format)

Si se establece endTimeRestrict, pero se deja startTimeRestrict sin definir, se interpretará que el período en cuestión abarca todo momento hasta endTimeRestrict.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

serviceAvailability.durationRestrict

string (Duration format)

Si se establece la duración, el alcance de la actualización se verá aún más restringido y solo abarcará la disponibilidad cuya duración coincida con aquella establecida.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

serviceAvailability.resourcesRestrict

object (Resources)

Si se establece resourcesRestrict, el alcance de la actualización se verá aún más restringido y solo abarcará este conjunto de recursos. Todos los campos de ID de los recursos deben coincidir exactamente.

serviceAvailability.availability[]

object (Availability)

Es la nueva lista de horarios disponibles.

Cuerpo de la respuesta

Es una lista de los horarios disponibles, a quién se deben aplicar y cuándo.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación JSON
{
  "name": string,
  "startTimeRestrict": string,
  "endTimeRestrict": string,
  "durationRestrict": string,
  "resourcesRestrict": {
    object (Resources)
  },
  "availability": [
    {
      object (Availability)
    }
  ]
}
Campos
name

string

Es el nombre de recurso del servicio al que se debe aplicar este código. Tiene este formato: partners/{partner_id}/merchants/{merchantId}/services/{serviceId}

startTimeRestrict

string (Timestamp format)

Si se proporciona, consideraremos que las entidades de disponibilidad provistas corresponden a un resumen completo de [startTimeRestrict, endTimeRestrict]. Es decir, se borrará toda la disponibilidad existente si se cumple la siguiente condición:

   startTimeRestrict <= availability.start_sec &&
   availability.start_sec < endTimeRestrict

Si se establece un mensaje de duración, la condición se verá aún más restringida:

  availability.duration == durationRestrict

Si se establece un mensaje resourcesRestrict, la condición se verá aún más restringida:

   availability.resources.staff_id == resourcesRestrict.staff_id &&
   availability.resources.room_id == resourcesRestrict.room_id

Estos campos suelen utilizarse para proporcionar una actualización completa de la disponibilidad en un período determinado.

Si se establece startTimeRestrict, pero se deja endTimeRestrict sin definir, se interpretará que el período en cuestión abarca desde startTimeRestrict en adelante.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

endTimeRestrict

string (Timestamp format)

Si se establece endTimeRestrict, pero se deja startTimeRestrict sin definir, se interpretará que el período en cuestión abarca todo momento hasta endTimeRestrict.

Una marca de tiempo en formato RFC3339 UTC “Zulú”, con una resolución de nanosegundos y hasta nueve dígitos fraccionarios. Ejemplos: "2014-10-02T15:01:23Z" y "2014-10-02T15:01:23.045123456Z".

durationRestrict

string (Duration format)

Si se establece la duración, el alcance de la actualización se verá aún más restringido y solo abarcará la disponibilidad cuya duración coincida con aquella establecida.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

resourcesRestrict

object (Resources)

Si se establece resourcesRestrict, el alcance de la actualización se verá aún más restringido y solo abarcará este conjunto de recursos. Todos los campos de ID de los recursos deben coincidir exactamente.

availability[]

object (Availability)

Es la nueva lista de horarios disponibles.

Permisos de autorización

Requiere el siguiente alcance de OAuth:

  • https://www.googleapis.com/auth/mapsbooking