Module: Peddler::Types::ServicesV1

Defined in:
lib/peddler/types/services_v1/poa.rb,
lib/peddler/types/services_v1/buyer.rb,
lib/peddler/types/services_v1/error.rb,
lib/peddler/types/services_v1/seller.rb,
lib/peddler/types/services_v1/address.rb,
lib/peddler/types/services_v1/warning.rb,
lib/peddler/types/services_v1/fixed_slot.rb,
lib/peddler/types/services_v1/range_slot.rb,
lib/peddler/types/services_v1/recurrence.rb,
lib/peddler/types/services_v1/technician.rb,
lib/peddler/types/services_v1/appointment.rb,
lib/peddler/types/services_v1/job_listing.rb,
lib/peddler/types/services_v1/reservation.rb,
lib/peddler/types/services_v1/service_job.rb,
lib/peddler/types/services_v1/item_delivery.rb,
lib/peddler/types/services_v1/scope_of_work.rb,
lib/peddler/types/services_v1/range_capacity.rb,
lib/peddler/types/services_v1/associated_item.rb,
lib/peddler/types/services_v1/date_time_range.rb,
lib/peddler/types/services_v1/appointment_slot.rb,
lib/peddler/types/services_v1/appointment_time.rb,
lib/peddler/types/services_v1/fulfillment_time.rb,
lib/peddler/types/services_v1/service_location.rb,
lib/peddler/types/services_v1/encryption_details.rb,
lib/peddler/types/services_v1/availability_record.rb,
lib/peddler/types/services_v1/fixed_slot_capacity.rb,
lib/peddler/types/services_v1/range_slot_capacity.rb,
lib/peddler/types/services_v1/appointment_resource.rb,
lib/peddler/types/services_v1/fulfillment_document.rb,
lib/peddler/types/services_v1/service_job_provider.rb,
lib/peddler/types/services_v1/item_delivery_promise.rb,
lib/peddler/types/services_v1/appointment_time_input.rb,
lib/peddler/types/services_v1/update_schedule_record.rb,
lib/peddler/types/services_v1/add_appointment_request.rb,
lib/peddler/types/services_v1/appointment_slot_report.rb,
lib/peddler/types/services_v1/service_upload_document.rb,
lib/peddler/types/services_v1/update_schedule_request.rb,
lib/peddler/types/services_v1/set_appointment_response.rb,
lib/peddler/types/services_v1/update_schedule_response.rb,
lib/peddler/types/services_v1/create_reservation_record.rb,
lib/peddler/types/services_v1/fixed_slot_capacity_query.rb,
lib/peddler/types/services_v1/get_service_jobs_response.rb,
lib/peddler/types/services_v1/range_slot_capacity_query.rb,
lib/peddler/types/services_v1/update_reservation_record.rb,
lib/peddler/types/services_v1/create_reservation_request.rb,
lib/peddler/types/services_v1/fixed_slot_capacity_errors.rb,
lib/peddler/types/services_v1/range_slot_capacity_errors.rb,
lib/peddler/types/services_v1/update_reservation_request.rb,
lib/peddler/types/services_v1/cancel_reservation_response.rb,
lib/peddler/types/services_v1/create_reservation_response.rb,
lib/peddler/types/services_v1/update_reservation_response.rb,
lib/peddler/types/services_v1/get_appointment_slots_response.rb,
lib/peddler/types/services_v1/reschedule_appointment_request.rb,
lib/peddler/types/services_v1/service_document_upload_destination.rb,
lib/peddler/types/services_v1/assign_appointment_resources_request.rb,
lib/peddler/types/services_v1/assign_appointment_resources_response.rb,
lib/peddler/types/services_v1/set_appointment_fulfillment_data_request.rb,
lib/peddler/types/services_v1/create_service_document_upload_destination.rb,
lib/peddler/types/services_v1/get_service_job_by_service_job_id_response.rb,
lib/peddler/types/services_v1/cancel_service_job_by_service_job_id_response.rb,
lib/peddler/types/services_v1/complete_service_job_by_service_job_id_response.rb

Constant Summary collapse

Poa =

Proof of Appointment (POA) details.

Structure.new do
  # @return [AppointmentTime] The time of the appointment window.
  attribute(:appointment_time, AppointmentTime, from: "appointmentTime")

  # @return [Array<Technician>] A list of technicians.
  attribute(:technicians, [Technician])

  # @return [String] The identifier of the technician who uploaded the POA.
  attribute(:uploading_technician, String, from: "uploadingTechnician")

  # @return [String] The date and time when the POA was uploaded in ISO 8601 format.
  attribute(:upload_time, String, from: "uploadTime")

  # @return [String] The type of POA uploaded.
  attribute(:poa_type, String, from: "poaType")
end
Buyer =

Information about the buyer.

Structure.new do
  # @return [String] The identifier of the buyer.
  attribute(:buyer_id, String, from: "buyerId")

  # @return [String] The name of the buyer.
  attribute(:name, String)

  # @return [String] The phone number of the buyer.
  attribute(:phone, String)

  # @return [:boolean] When true, the service is for an Amazon Prime buyer.
  attribute(:prime_member, :boolean, from: "isPrimeMember")
end
Error =

Error response returned when the request is unsuccessful.

Structure.new do
  # @return [String] An error code that identifies the type of error that occurred.
  attribute(:code, String)

  # @return [String] A message that describes the error condition.
  attribute(:message, String)

  # @return [String] Additional details that can help the caller understand or fix the issue.
  attribute(:details, String)

  # @return [String] The type of error.
  attribute(:error_level, String, from: "errorLevel")
end
Seller =

Information about the seller of the service job.

Structure.new do
  # @return [String] The identifier of the seller of the service job.
  attribute(:seller_id, String, from: "sellerId")
end
Address =

The shipping address for the service job.

Structure.new do
  # @return [String] The name of the person, business, or institution.
  attribute(:name, String)

  # @return [String] The first line of the address.
  attribute(:address_line1, String, from: "addressLine1")

  # @return [String] Additional address information, if required.
  attribute(:address_line2, String, from: "addressLine2")

  # @return [String] Additional address information, if required.
  attribute(:address_line3, String, from: "addressLine3")

  # @return [String] The city.
  attribute(:city, String)

  # @return [String] The county.
  attribute(:county, String)

  # @return [String] The district.
  attribute(:district, String)

  # @return [String] The state or region.
  attribute(:state_or_region, String, from: "stateOrRegion")

  # @return [String] The postal code. This can contain letters, digits, spaces, and/or punctuation.
  attribute(:postal_code, String, from: "postalCode")

  # @return [String] The two digit country code, in ISO 3166-1 alpha-2 format.
  attribute(:country_code, String, from: "countryCode")

  # @return [String] The phone number.
  attribute(:phone, String)
end
Warning =

Warning returned when the request is successful, but there are important callouts based on which API clients should take defined actions.

Structure.new do
  # @return [String] An warning code that identifies the type of warning that occurred.
  attribute(:code, String)

  # @return [String] A message that describes the warning condition in a human-readable form.
  attribute(:message, String)

  # @return [String] Additional details that can help the caller understand or address the warning.
  attribute(:details, String)
end
FixedSlot =

In this slot format each slot only has the requested capacity types. This slot size is as specified by slot duration.

Structure.new do
  # @return [String] Start date time of slot in ISO 8601 format with precision of seconds.
  attribute(:start_date_time, String, from: "startDateTime")

  # @return [Integer] Scheduled capacity corresponding to the slot. This capacity represents the originally
  # allocated capacity as per resource schedule.
  attribute(:scheduled_capacity, Integer, from: "scheduledCapacity")

  # @return [Integer] Available capacity corresponding to the slot. This capacity represents the capacity
  # available for allocation to reservations.
  attribute(:available_capacity, Integer, from: "availableCapacity")

  # @return [Integer] Encumbered capacity corresponding to the slot. This capacity represents the capacity
  # allocated for Amazon Jobs/Appointments/Orders.
  attribute(:encumbered_capacity, Integer, from: "encumberedCapacity")

  # @return [Integer] Reserved capacity corresponding to the slot. This capacity represents the capacity made
  # unavailable due to events like Breaks/Leaves/Lunch.
  attribute(:reserved_capacity, Integer, from: "reservedCapacity")
end
RangeSlot =

Capacity slots represented in a format similar to availability rules.

Structure.new do
  # @return [String] Start date time of slot in ISO 8601 format with precision of seconds.
  attribute(:start_date_time, String, from: "startDateTime")

  # @return [String] End date time of slot in ISO 8601 format with precision of seconds.
  attribute(:end_date_time, String, from: "endDateTime")

  # @return [Integer] Capacity of the slot.
  attribute(:capacity, Integer)
end
Recurrence =

Repeated occurrence of an event in a time range.

Structure.new do
  # @return [String] End time of the recurrence.
  attribute(:end_time, String, from: "endTime")

  # @return [Array<DayOfWeek>] Days of the week when recurrence is valid. If the schedule is valid every Monday,
  # input will only contain `MONDAY` in the list.
  attribute(:days_of_week, Array, from: "daysOfWeek")

  # @return [Array<Integer>] Days of the month when recurrence is valid.
  attribute(:days_of_month, [Integer], from: "daysOfMonth")
end
Technician =

A technician who is assigned to perform the service job in part or in full.

Structure.new do
  # @return [String] The technician identifier.
  attribute(:technician_id, String, from: "technicianId")

  # @return [String] The name of the technician.
  attribute(:name, String)
end
Appointment =

The details of an appointment.

Structure.new do
  # @return [String] The appointment identifier.
  attribute(:appointment_id, String, from: "appointmentId")

  # @return [String] The status of the appointment.
  attribute(:appointment_status, String, from: "appointmentStatus")

  # @return [AppointmentTime] The time of the appointment window.
  attribute(:appointment_time, AppointmentTime, from: "appointmentTime")

  # @return [Array<Technician>] A list of technicians assigned to the service job.
  attribute(:assigned_technicians, [Technician], from: "assignedTechnicians")

  # @return [String] The identifier of a rescheduled appointment.
  attribute(:rescheduled_appointment_id, String, from: "rescheduledAppointmentId")

  # @return [Poa] Proof of Appointment (POA) details.
  attribute(:poa, Poa)
end
JobListing =

The payload for the getServiceJobs operation.

Structure.new do
  # @return [Integer] Total result size of the query result.
  attribute(:total_result_size, Integer, from: "totalResultSize")

  # @return [String] A generated string used to pass information to your next request. If `nextPageToken` is
  # returned, pass the value of `nextPageToken` to the `pageToken` to get next results.
  attribute(:next_page_token, String, from: "nextPageToken")

  # @return [String] A generated string used to pass information to your next request. If `previousPageToken` is
  # returned, pass the value of `previousPageToken` to the `pageToken` to get previous page results.
  attribute(:previous_page_token, String, from: "previousPageToken")

  # @return [Array<ServiceJob>] List of job details for the given input.
  attribute(:jobs, [ServiceJob])
end
Reservation =

Reservation object reduces the capacity of a resource.

Structure.new do
  # @return [String] Unique identifier for a reservation. If present, it is treated as an update reservation
  # request and will update the corresponding reservation. Otherwise, it is treated as a new create reservation
  # request.
  attribute(:reservation_id, String, from: "reservationId")

  # @return [String] Type of reservation.
  attribute(:type, String)

  # @return [AvailabilityRecord] `AvailabilityRecord` to represent the capacity of a resource over a time range.
  attribute(:availability, AvailabilityRecord)
end
ServiceJob =

The job details of a service.

Structure.new do
  # @return [String] The date and time of the creation of the job in ISO 8601 format.
  attribute(:create_time, String, from: "createTime")

  # @return [String] The service job identifier.
  attribute(:service_job_id, String, from: "serviceJobId")

  # @return [String] The status of the service job.
  attribute(:service_job_status, String, from: "serviceJobStatus")

  # @return [ScopeOfWork] The scope of work for the order.
  attribute(:scope_of_work, ScopeOfWork, from: "scopeOfWork")

  # @return [Seller] Information about the seller of the service job.
  attribute(:seller, Seller)

  # @return [ServiceJobProvider] Information about the service job provider.
  attribute(:service_job_provider, ServiceJobProvider, from: "serviceJobProvider")

  # @return [Array<AppointmentTime>] A list of appointment windows preferred by the buyer. Included only if the
  # buyer selected appointment windows when creating the order.
  attribute(:preferred_appointment_times, [AppointmentTime], from: "preferredAppointmentTimes")

  # @return [Array<Appointment>] A list of appointments.
  attribute(:appointments, [Appointment])

  # @return [String] The Amazon-defined identifier for an order placed by the buyer in 3-7-7 format.
  attribute(:service_order_id, String, from: "serviceOrderId")

  # @return [String] The marketplace identifier.
  attribute(:marketplace_id, String, from: "marketplaceId")

  # @return [String] The Amazon-defined identifier for the region scope.
  attribute(:store_id, String, from: "storeId")

  # @return [Buyer] Information about the buyer.
  attribute(:buyer, Buyer)

  # @return [Array<AssociatedItem>] A list of items associated with the service job.
  attribute(:associated_items, [AssociatedItem], from: "associatedItems")

  # @return [ServiceLocation] Information about the location of the service job.
  attribute(:service_location, ServiceLocation, from: "serviceLocation")
end
ItemDelivery =

Delivery information for the item.

Structure.new do
  # @return [String] The date and time of the latest Estimated Delivery Date (EDD) of all the items with an EDD.
  # In ISO 8601 format.
  attribute(:estimated_delivery_date, String, from: "estimatedDeliveryDate")

  # @return [ItemDeliveryPromise] Promised delivery information for the item.
  attribute(:item_delivery_promise, ItemDeliveryPromise, from: "itemDeliveryPromise")
end
ScopeOfWork =

The scope of work for the order.

Structure.new do
  # @return [String] The Amazon Standard Identification Number (ASIN) of the service job.
  attribute(:asin, String)

  # @return [String] The title of the service job.
  attribute(:title, String)

  # @return [Integer] The number of service jobs.
  attribute(:quantity, Integer)

  # @return [Array<String>] A list of skills required to perform the job.
  attribute(:required_skills, [String], from: "requiredSkills")
end
RangeCapacity =

Range capacity entity where each entry has a capacity type and corresponding slots.

Structure.new do
  # @return [String] Capacity type corresponding to the slots.
  attribute(:capacity_type, String, from: "capacityType")

  # @return [Array<RangeSlot>] Array of capacity slots in range slot format.
  attribute(:slots, [RangeSlot])
end
AssociatedItem =

Information about an item associated with the service job.

Structure.new do
  # @return [String] The Amazon Standard Identification Number (ASIN) of the item.
  attribute(:asin, String)

  # @return [String] The title of the item.
  attribute(:title, String)

  # @return [Integer] The total number of items included in the order.
  attribute(:quantity, Integer)

  # @return [String] The Amazon-defined identifier for an order placed by the buyer in 3-7-7 format.
  attribute(:order_id, String, from: "orderId")

  # @return [String] The status of the item.
  attribute(:item_status, String, from: "itemStatus")

  # @return [String] The brand name of the item.
  attribute(:brand_name, String, from: "brandName")

  # @return [ItemDelivery] Delivery information for the item.
  attribute(:item_delivery, ItemDelivery, from: "itemDelivery")
end
DateTimeRange =

A range of time.

Structure.new do
  # @return [String] The beginning of the time range. Must be in UTC in [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format.
  attribute(:start_time, String, from: "startTime")

  # @return [String] The end of the time range. Must be in UTC in [ISO
  # 8601](https://developer-docs.amazon.com/sp-api/docs/iso-8601) format.
  attribute(:end_time, String, from: "endTime")
end
AppointmentSlot =

A time window along with associated capacity in which the service can be performed.

Structure.new do
  # @return [String] Time window start time in ISO 8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [String] Time window end time in ISO 8601 format.
  attribute(:end_time, String, from: "endTime")

  # @return [Integer] Number of resources for which a slot can be reserved.
  attribute(:capacity, Integer)
end
AppointmentTime =

The time of the appointment window.

Structure.new do
  # @return [String] The date and time of the start of the appointment window in ISO 8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [Integer] The duration of the appointment window, in minutes.
  attribute(:duration_in_minutes, Integer, from: "durationInMinutes")
end
FulfillmentTime =

Input for fulfillment time details

Structure.new do
  # @return [String] The date, time in UTC of the fulfillment start time in ISO 8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [String] The date, time in UTC of the fulfillment end time in ISO 8601 format.
  attribute(:end_time, String, from: "endTime")
end
ServiceLocation =

Information about the location of the service job.

Structure.new do
  # @return [String] The location of the service job.
  attribute(:service_location_type, String, from: "serviceLocationType")

  # @return [Address] The shipping address for the service job.
  attribute(:address, Address)
end
EncryptionDetails =

Encryption details for required client-side encryption and decryption of document contents.

Structure.new do
  # @return [String] The encryption standard required to encrypt or decrypt the document contents.
  attribute(:standard, String)

  # @return [String] The vector to encrypt or decrypt the document contents using Cipher Block Chaining (CBC).
  attribute(:initialization_vector, String, from: "initializationVector")

  # @return [String] The encryption key used to encrypt or decrypt the document contents.
  attribute(:key, String)
end
AvailabilityRecord =

AvailabilityRecord to represent the capacity of a resource over a time range.

Structure.new do
  # @return [String] Denotes the time from when the resource is available in a day in ISO-8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [String] Denotes the time till when the resource is available in a day in ISO-8601 format.
  attribute(:end_time, String, from: "endTime")

  # @return [Recurrence] Recurrence object containing the recurrence pattern of schedule.
  attribute(:recurrence, Recurrence)

  # @return [Integer] Signifies the capacity of a resource which is available.
  attribute(:capacity, Integer)
end
FixedSlotCapacity =

Response schema for the getFixedSlotCapacity operation.

Structure.new do
  # @return [String] Resource Identifier.
  attribute(:resource_id, String, from: "resourceId")

  # @return [Float] The duration of each slot which is returned. This value will be a multiple of 5 and fall in
  # the following range: 5 <= `slotDuration` <= 360.
  attribute(:slot_duration, Float, from: "slotDuration")

  # @return [Array<FixedSlot>] Array of capacity slots in fixed slot format.
  attribute(:capacities, [FixedSlot])

  # @return [String] Next page token, if there are more pages.
  attribute(:next_page_token, String, from: "nextPageToken")
end
RangeSlotCapacity =

Response schema for the getRangeSlotCapacity operation.

Structure.new do
  # @return [String] Resource Identifier.
  attribute(:resource_id, String, from: "resourceId")

  # @return [Array<RangeCapacity>] Array of range capacities where each entry is for a specific capacity type.
  attribute(:capacities, [RangeCapacity])

  # @return [String] Next page token, if there are more pages.
  attribute(:next_page_token, String, from: "nextPageToken")
end
AppointmentResource =

The resource that performs or performed appointment fulfillment.

Structure.new do
  # @return [String] The resource identifier.
  attribute(:resource_id, String, from: "resourceId")
end
FulfillmentDocument =

Document that captured during service appointment fulfillment that portrays proof of completion

Structure.new do
  # @return [String] The identifier of the upload destination. Get this value by calling the
  # `createServiceDocumentUploadDestination` operation of the Services API.
  attribute(:upload_destination_id, String, from: "uploadDestinationId")

  # @return [String] Sha256 hash of the file content. This value is used to determine if the file has been
  # corrupted or tampered with during transit.
  attribute(:content_sha256, String, from: "contentSha256")
end
ServiceJobProvider =

Information about the service job provider.

Structure.new do
  # @return [String] The identifier of the service job provider.
  attribute(:service_job_provider_id, String, from: "serviceJobProviderId")
end
ItemDeliveryPromise =

Promised delivery information for the item.

Structure.new do
  # @return [String] The date and time of the start of the promised delivery window in ISO 8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [String] The date and time of the end of the promised delivery window in ISO 8601 format.
  attribute(:end_time, String, from: "endTime")
end
AppointmentTimeInput =

The input appointment time details.

Structure.new do
  # @return [String] The date, time in UTC for the start time of an appointment in ISO 8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [Integer] The duration of an appointment in minutes.
  attribute(:duration_in_minutes, Integer, from: "durationInMinutes")
end
UpdateScheduleRecord =

UpdateScheduleRecord entity contains the AvailabilityRecord if there is an error/warning while performing the requested operation on it.

Structure.new do
  # @return [AvailabilityRecord] Availability record if the operation failed.
  attribute(:availability, AvailabilityRecord)

  # @return [Array<Warning>] Warnings encountered, if any.
  attribute(:warnings, [Warning])

  # @return [Array<Error>] Errors encountered, if any.
  attribute(:errors, [Error])
end
AddAppointmentRequest =

Input for add appointment operation.

Structure.new do
  # @return [AppointmentTimeInput] Input appointment time details.
  attribute(:appointment_time, AppointmentTimeInput, from: "appointmentTime")
end
AppointmentSlotReport =

Availability information as per the service context queried.

Structure.new do
  # @return [String] Defines the type of slots.
  attribute(:scheduling_type, String, from: "schedulingType")

  # @return [String] Start Time from which the appointment slots are generated in ISO 8601 format.
  attribute(:start_time, String, from: "startTime")

  # @return [String] End Time up to which the appointment slots are generated in ISO 8601 format.
  attribute(:end_time, String, from: "endTime")

  # @return [Array<AppointmentSlot>] A list of time windows along with associated capacity in which the service
  # can be performed.
  attribute(:appointment_slots, [AppointmentSlot], from: "appointmentSlots")
end
ServiceUploadDocument =

Input for to be uploaded document.

Structure.new do
  # @return [String] The content type of the to-be-uploaded file
  attribute(:content_type, String, from: "contentType")

  # @return [Float] The content length of the to-be-uploaded file
  attribute(:content_length, Float, from: "contentLength")

  # @return [String] An MD5 hash of the content to be submitted to the upload destination. This value is used to
  # determine if the data has been corrupted or tampered with during transit.
  attribute(:content_md5, String, from: "contentMD5")
end
UpdateScheduleRequest =

Request schema for the updateSchedule operation.

Structure.new do
  # @return [Array<AvailabilityRecord>] List of schedule objects to define the normal working hours of a resource.
  attribute(:schedules, [AvailabilityRecord])
end
SetAppointmentResponse =

Response schema for the addAppointmentForServiceJobByServiceJobId and rescheduleAppointmentForServiceJobByServiceJobId operations.

Structure.new do
  # @return [String] New appointment identifier generated during the `addAppointmentForServiceJobByServiceJobId`
  # or `rescheduleAppointmentForServiceJobByServiceJobId` operations.
  attribute(:appointment_id, String, from: "appointmentId")

  # @return [Array<Warning>] Warnings generated during the `addAppointmentForServiceJobByServiceJobId` or
  # `rescheduleAppointmentForServiceJobByServiceJobId` operations.
  attribute(:warnings, [Warning])

  # @return [Array<Error>] Errors occurred during during the `addAppointmentForServiceJobByServiceJobId` or
  # `rescheduleAppointmentForServiceJobByServiceJobId` operations.
  attribute(:errors, [Error])
end
UpdateScheduleResponse =

Response schema for the updateSchedule operation.

Structure.new do
  # @return [Array<UpdateScheduleRecord>] Contains the `UpdateScheduleRecords` for which the error/warning has
  # occurred.
  attribute(:payload, [UpdateScheduleRecord])

  # @return [Array<Error>] Errors encountered, if any.
  attribute(:errors, [Error])
end
CreateReservationRecord =

CreateReservationRecord entity contains the Reservation if there is an error/warning while performing the requested operation on it, otherwise it will contain the new reservationId.

Structure.new do
  # @return [Reservation] Reservation record if the operation failed. It will only contain the new `reservationId`
  # if the operation is successful.
  attribute(:reservation, Reservation)

  # @return [Array<Warning>] Warnings encountered, if any.
  attribute(:warnings, [Warning])

  # @return [Array<Error>] Errors encountered, if any.
  attribute(:errors, [Error])
end
FixedSlotCapacityQuery =

Request schema for the getFixedSlotCapacity operation. This schema is used to define the time range, capacity types and slot duration which are being queried.

Structure.new do
  # @return [Array<CapacityType>] An array of capacity types which are being requested. Default value is
  # `[SCHEDULED_CAPACITY]`.
  attribute(:capacity_types, Array, from: "capacityTypes")

  # @return [Float] Size in which slots are being requested. This value should be a multiple of 5 and fall in the
  # range: 5 <= `slotDuration` <= 360.
  attribute(:slot_duration, Float, from: "slotDuration")

  # @return [String] Start date time from which the capacity slots are being requested in ISO 8601 format.
  attribute(:start_date_time, String, from: "startDateTime")

  # @return [String] End date time up to which the capacity slots are being requested in ISO 8601 format.
  attribute(:end_date_time, String, from: "endDateTime")
end
GetServiceJobsResponse =

Response schema for the getServiceJobs operation.

Structure.new do
  # @return [JobListing] The payload for the `getServiceJobs` operation.
  attribute(:payload, JobListing)

  # @return [Array<Error>] An unexpected condition occurred during the `getServiceJobs` operation.
  attribute(:errors, [Error])
end
RangeSlotCapacityQuery =

Request schema for the getRangeSlotCapacity operation. This schema is used to define the time range and capacity types that are being queried.

Structure.new do
  # @return [Array<CapacityType>] An array of capacity types which are being requested. Default value is
  # `[SCHEDULED_CAPACITY]`.
  attribute(:capacity_types, Array, from: "capacityTypes")

  # @return [String] Start date time from which the capacity slots are being requested in ISO 8601 format.
  attribute(:start_date_time, String, from: "startDateTime")

  # @return [String] End date time up to which the capacity slots are being requested in ISO 8601 format.
  attribute(:end_date_time, String, from: "endDateTime")
end
UpdateReservationRecord =

UpdateReservationRecord entity contains the Reservation if there is an error/warning while performing the requested operation on it, otherwise it will contain the new reservationId.

Structure.new do
  # @return [Reservation] Reservation record if the operation failed. It will only contain the new `reservationId`
  # if the operation is successful.
  attribute(:reservation, Reservation)

  # @return [Array<Warning>] Warnings encountered, if any.
  attribute(:warnings, [Warning])

  # @return [Array<Error>] Errors encountered, if any.
  attribute(:errors, [Error])
end
CreateReservationRequest =

Request schema for the createReservation operation.

Structure.new do
  # @return [String] Resource (store) identifier.
  attribute(:resource_id, String, from: "resourceId")

  # @return [Reservation] `Reservation` object to reduce the capacity of a resource.
  attribute(:reservation, Reservation)
end
FixedSlotCapacityErrors =

The error response schema for the getFixedSlotCapacity operation.

Structure.new do
  # @return [Array<Error>] Errors encountered during the `getFixedSlotCapacity` operation.
  attribute(:errors, [Error])
end
RangeSlotCapacityErrors =

The error response schema for the getRangeSlotCapacity operation.

Structure.new do
  # @return [Array<Error>] Errors encountered during the `getRangeSlotCapacity` operation.
  attribute(:errors, [Error])
end
UpdateReservationRequest =

Request schema for the updateReservation operation.

Structure.new do
  # @return [String] Resource (store) identifier.
  attribute(:resource_id, String, from: "resourceId")

  # @return [Reservation] `Reservation` object to reduce the capacity of a resource.
  attribute(:reservation, Reservation)
end
CancelReservationResponse =

Response schema for the cancelReservation operation.

Structure.new do
  # @return [Array<Error>] Errors encountered, if any
  attribute(:errors, [Error])
end
CreateReservationResponse =

Response schema for the createReservation operation.

Structure.new do
  # @return [CreateReservationRecord] `CreateReservationRecord` contains only the new `reservationId` if the
  # operation was successful. Otherwise it will contain the reservation entity with warnings/errors.
  attribute(:payload, CreateReservationRecord)

  # @return [Array<Error>] Errors encountered, if any.
  attribute(:errors, [Error])
end
UpdateReservationResponse =

Response schema for the updateReservation operation.

Structure.new do
  # @return [UpdateReservationRecord] `UpdateReservationRecord` contains only the new `reservationId` if the
  # operation was successful. Otherwise it will contain the reservation entity with warnings/errors.
  attribute(:payload, UpdateReservationRecord)

  # @return [Array<Error>] Errors encountered, if any.
  attribute(:errors, [Error])
end
GetAppointmentSlotsResponse =

The response of fetching appointment slots based on service context.

Structure.new do
  # @return [AppointmentSlotReport] The appointment slots fetched based on service context.
  attribute(:payload, AppointmentSlotReport)

  # @return [Array<Error>] Errors occurred in getting schedule.
  attribute(:errors, [Error])
end
RescheduleAppointmentRequest =

Input for rescheduled appointment operation.

Structure.new do
  # @return [AppointmentTimeInput] Input appointment time details.
  attribute(:appointment_time, AppointmentTimeInput, from: "appointmentTime")

  # @return [String] Input appointment reschedule reason.
  attribute(:reschedule_reason_code, String, from: "rescheduleReasonCode")
end
ServiceDocumentUploadDestination =

Information about an upload destination.

Structure.new do
  # @return [String] The unique identifier to be used by APIs that reference the upload destination.
  attribute(:upload_destination_id, String, from: "uploadDestinationId")

  # @return [String] The URL to which to upload the file.
  attribute(:url, String)

  # @return [EncryptionDetails]
  attribute(:encryption_details, EncryptionDetails, from: "encryptionDetails")

  # @return [Hash] The headers to include in the upload request.
  attribute(:headers, Hash)
end
AssignAppointmentResourcesRequest =

Request schema for the assignAppointmentResources operation.

Structure.new do
  # @return [Array<AppointmentResource>] List of resource objects to be assigned.
  attribute(:resources, [AppointmentResource])
end
AssignAppointmentResourcesResponse =

Response schema for the assignAppointmentResources operation.

Structure.new do
  # @return [Hash] The payload for the `assignAppointmentResource` operation.
  attribute(:payload, Hash)

  # @return [Array<Error>] Errors occurred during during the `assignAppointmentResources` operation.
  attribute(:errors, [Error])
end
SetAppointmentFulfillmentDataRequest =

Input for set appointment fulfillment data operation.

Structure.new do
  # @return [DateTimeRange] The range of time when the technician is expected to arrive at the fulfillment
  # location.
  attribute(:estimated_arrival_time, DateTimeRange, from: "estimatedArrivalTime")

  # @return [FulfillmentTime] Input appointment time details.
  attribute(:fulfillment_time, FulfillmentTime, from: "fulfillmentTime")

  # @return [Array<AppointmentResource>] Resources involved in appointment fulfillment.
  attribute(:appointment_resources, [AppointmentResource], from: "appointmentResources")

  # @return [Array<FulfillmentDocument>] Documents specific to appointment fulfillment.
  attribute(:fulfillment_documents, [FulfillmentDocument], from: "fulfillmentDocuments")
end
CreateServiceDocumentUploadDestination =

The response schema for the createServiceDocumentUploadDestination operation.

Structure.new do
  # @return [ServiceDocumentUploadDestination]
  attribute(:payload, ServiceDocumentUploadDestination)

  # @return [Array<Error>]
  attribute(:errors, [Error])
end
GetServiceJobByServiceJobIdResponse =

The response schema for the getServiceJobByServiceJobId operation.

Structure.new do
  # @return [ServiceJob] The payload for the `getServiceJobByServiceJobId` operation.
  attribute(:payload, ServiceJob)

  # @return [Array<Error>] An unexpected condition occurred during the `getServiceJobByServiceJobId` operation.
  attribute(:errors, [Error])
end
CancelServiceJobByServiceJobIdResponse =

Response schema for the cancelServiceJobByServiceJobId operation.

Structure.new do
  # @return [Array<Error>] Encountered errors for the `cancelServiceJobByServiceJobId` operation.
  attribute(:errors, [Error])
end
CompleteServiceJobByServiceJobIdResponse =

Response schema for the completeServiceJobByServiceJobId operation.

Structure.new do
  # @return [Array<Error>] Encountered errors for the `completeServiceJobByServiceJobId` operation.
  attribute(:errors, [Error])
end