diff --git a/code/README.md b/code/README.md index 765db25234..b91f2f400f 100644 --- a/code/README.md +++ b/code/README.md @@ -5,7 +5,7 @@ com.expediagroup rapid-sdk - 5.3.2 + 5.5.6-SNAPSHOT ``` diff --git a/code/pom.xml b/code/pom.xml index c551f19c70..f7163d4de7 100644 --- a/code/pom.xml +++ b/code/pom.xml @@ -4,9 +4,9 @@ 4.0.0 com.expediagroup rapid-sdk - 5.3.2 + 5.5.6-SNAPSHOT EG rapid-sdk for Java - EG rapid-sdk v5.3.2 + EG rapid-sdk v5.5.6-SNAPSHOT https://github.com/ExpediaGroup/test-sdk 2022 jar @@ -63,27 +63,27 @@ ${project.artifactId} - 3.13.0 + 3.14.0 3.8.1 3.5.0 3.4.2 3.3.1 3.6.0 3.3.1 - 3.5.2 + 3.5.3 3.6.0 3.5.0 - 0.8.12 + 0.8.13 2.0.0 1.2.1 4.6 - 1.6.0 - 2.1.0 + 1.7.0 + 2.1.20 1.10.1 - 3.0.3 + 3.1.2 0.27.0 - 2.0.16 + 2.0.17 1.7.0 3.2.7 @@ -131,7 +131,7 @@ com.fasterxml.jackson jackson-bom - 2.18.2 + 2.18.3 pom import @@ -153,7 +153,7 @@ com.fasterxml.jackson.core jackson-annotations - 2.18.2 + 2.18.3 @@ -739,7 +739,7 @@ org.apache.commons commons-text - 1.13.0 + 1.13.1 diff --git a/code/src/main/kotlin/com/expediagroup/sdk/core/constant/provider/LogMaskingRegexProvider.kt b/code/src/main/kotlin/com/expediagroup/sdk/core/constant/provider/LogMaskingRegexProvider.kt index 9422980213..915b962f05 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/core/constant/provider/LogMaskingRegexProvider.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/core/constant/provider/LogMaskingRegexProvider.kt @@ -16,19 +16,38 @@ package com.expediagroup.sdk.core.constant.provider internal object LogMaskingRegexProvider { + /** + * Generates a regex pattern to match specified fields in a JSON string. + * + * @param maskedBodyFields the set of fields to be masked + * @param valueToMatch regex pattern to match the value of the fields. Default: match any sequence of characters except double quotes. + * @return the regex pattern to match the specified fields and their values + */ fun getMaskedFieldsRegex( maskedBodyFields: Set, - value: String = "[^\\\"]+" + valueToMatch: String = "[^\\\"]+" ): Regex { val fields = maskedBodyFields.joinToString("|") - return "\"($fields)(\\\\*\"\\s*:\\s*\\\\*\")$value(?:\\\\?\"|)".toRegex() + // The pattern matches: + // - The field name (one of the specified fields) captured in group 1. + // - Optional backslash, closing double quotes, colon(:), optional whitespace, and opening double quotes. + // - The value of the field, matching the specified valueToMatch pattern. + // - Optional backslash, followed by a closing double quote + return "\"($fields)(\\\\?\"\\s*:\\s*\\\\*\")$valueToMatch(?:\\\\?\")".toRegex() } + /** + * Generates a regex pattern to match a specified field in a JSON string. + * + * @param maskedBodyField the field to be masked + * @param valueToMatch regex pattern to match the value of the field. Default: match any sequence of characters except double quotes. + * @return the regex pattern to match the specified field and its value + */ fun getMaskedFieldsRegex( maskedBodyField: String, - value: String = "[^\\\"]+" + valueToMatch: String = "[^\\\"]+" ): Regex { val fields = setOf(maskedBodyField) - return getMaskedFieldsRegex(fields, value) + return getMaskedFieldsRegex(fields, valueToMatch) } } diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/client/RapidClient.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/client/RapidClient.kt index 20de3f7b4e..48384b7285 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/client/RapidClient.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/client/RapidClient.kt @@ -42,18 +42,32 @@ import com.expediagroup.sdk.rapid.operations.DeleteRoomOperation import com.expediagroup.sdk.rapid.operations.DeleteRoomOperationParams import com.expediagroup.sdk.rapid.operations.GetAdditionalAvailabilityOperation import com.expediagroup.sdk.rapid.operations.GetAdditionalAvailabilityOperationParams +import com.expediagroup.sdk.rapid.operations.GetAmenitiesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetAmenitiesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.GetAvailabilityOperation import com.expediagroup.sdk.rapid.operations.GetAvailabilityOperationParams import com.expediagroup.sdk.rapid.operations.GetBookingReceiptOperation import com.expediagroup.sdk.rapid.operations.GetBookingReceiptOperationParams import com.expediagroup.sdk.rapid.operations.GetCalendarAvailabilityOperation import com.expediagroup.sdk.rapid.operations.GetCalendarAvailabilityOperationParams +import com.expediagroup.sdk.rapid.operations.GetCategoriesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetCategoriesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.GetChainReferenceOperation import com.expediagroup.sdk.rapid.operations.GetChainReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetChainsReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetChainsReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetGeneralAttributesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetGeneralAttributesReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetImagesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetImagesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.GetInactivePropertiesOperation import com.expediagroup.sdk.rapid.operations.GetInactivePropertiesOperationParams +import com.expediagroup.sdk.rapid.operations.GetOnsitePaymentTypesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetOnsitePaymentTypesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.GetPaymentOptionsOperation import com.expediagroup.sdk.rapid.operations.GetPaymentOptionsOperationParams +import com.expediagroup.sdk.rapid.operations.GetPetAttributesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetPetAttributesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.GetPropertyCatalogFileOperation import com.expediagroup.sdk.rapid.operations.GetPropertyCatalogFileOperationParams import com.expediagroup.sdk.rapid.operations.GetPropertyContentFileOperation @@ -62,6 +76,8 @@ import com.expediagroup.sdk.rapid.operations.GetPropertyContentOperation import com.expediagroup.sdk.rapid.operations.GetPropertyContentOperationParams import com.expediagroup.sdk.rapid.operations.GetPropertyGuestReviewsOperation import com.expediagroup.sdk.rapid.operations.GetPropertyGuestReviewsOperationParams +import com.expediagroup.sdk.rapid.operations.GetRateAmenitiesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetRateAmenitiesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.GetRegionOperation import com.expediagroup.sdk.rapid.operations.GetRegionOperationParams import com.expediagroup.sdk.rapid.operations.GetRegionsOperation @@ -70,6 +86,18 @@ import com.expediagroup.sdk.rapid.operations.GetReservationByItineraryIdOperatio import com.expediagroup.sdk.rapid.operations.GetReservationByItineraryIdOperationParams import com.expediagroup.sdk.rapid.operations.GetReservationOperation import com.expediagroup.sdk.rapid.operations.GetReservationOperationParams +import com.expediagroup.sdk.rapid.operations.GetRoomAmenitiesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetRoomAmenitiesReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetRoomImagesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetRoomImagesReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetRoomViewsReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetRoomViewsReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetSpokenLanguagesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetSpokenLanguagesReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetStatisticsReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetStatisticsReferenceOperationParams +import com.expediagroup.sdk.rapid.operations.GetThemesReferenceOperation +import com.expediagroup.sdk.rapid.operations.GetThemesReferenceOperationParams import com.expediagroup.sdk.rapid.operations.PostGeographyOperation import com.expediagroup.sdk.rapid.operations.PostGeographyOperationParams import com.expediagroup.sdk.rapid.operations.PostItineraryOperation @@ -896,6 +924,127 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } } + /** + * Amenities Reference + * Returns a complete collection of amenities available in the Rapid API. + * @param operation [GetAmenitiesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetAmenitiesReferenceOperation): Response> = + execute>(operation) + + /** + * Amenities Reference + * Returns a complete collection of amenities available in the Rapid API. + * @param operation [GetAmenitiesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetAmenitiesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetAmenitiesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetAmenitiesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetAmenitiesReferenceOperation( + params + ) + + return execute(operation) + } + + /** + * Amenities Reference + * Returns a complete collection of amenities available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetAmenitiesReferenceOperation)")) + fun getAmenitiesReference( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.Map = getAmenitiesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Amenities Reference + * Returns a complete collection of amenities available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetAmenitiesReferenceOperation)")) + fun getAmenitiesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetAmenitiesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + /** * Get property room rates and availability * Returns rates on available room types for specified properties (maximum of 250 properties per request). The response includes rate details such as promos, whether the rate is refundable, cancellation penalties and a full price breakdown to meet the price display requirements for your market. _Note_: If there are no available rooms, the response will be an empty array. * Multiple rooms of the same type may be requested by including multiple instances of the `occupancy` parameter. * The `nightly` array includes each individual night's charges. When the total price includes fees, charges, or adjustments that are not divided by night, these amounts will be included in the `stay` rate array, which details charges applied to the entire stay (each check-in). @@ -1020,7 +1169,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat * @param amenityCategory Single amenity category. Send multiple instances of this parameter to request rates that match multiple amenity categories.
See the Amenity Categories section of the [Content Reference Lists](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists) for a list of values. (optional) * @param exclusion Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.
* `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates with refundable damage deposits from the response. * `card_on_file` - Excludes Rapid supplied Vrbo rates with card-on-file damage collection from the response. (optional) * @param filter Single filter type. Send multiple instances of this parameter to request multiple filters.
* `refundable` - Filters results to only show fully refundable rates. * `expedia_collect` - Filters results to only show rates where payment is collected by Expedia at the time of booking. These properties can be eligible for payments via Expedia Affiliate Collect(EAC). * `property_collect` - Filters results to only show rates where payment is collected by the property after booking. This can include rates that require a deposit by the property, dependent upon the deposit policies. * `loyalty` - Filters results to only show rates that are eligible for loyalty points. (optional) - * @param include Modify the response by including types of responses that are not provided by default.
* `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. (optional) + * @param include Modify the response by including types of responses that are not provided by default.
* `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. * `rooms.rates.current_refundability` - Displays the current `refundability` of a rate. (optional) * @param rateOption Request specific rate options for each property. Send multiple instances of this parameter to request multiple rate options. Accepted values:
* `member` - Return member rates for each property. This feature must be enabled and requires a user to be logged in to request these rates. * `net_rates` - Return net rates for each property. This feature must be enabled to request these rates. * `cross_sell` - Identify if the traffic is coming from a cross sell booking. Where the traveler has booked another service (flight, car, activities...) before hotel. (optional) * @param travelPurpose This parameter is to specify the travel purpose of the booking. This may impact available rate plans, pricing, or tax calculations. * `leisure` * `business` (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) @@ -1132,7 +1281,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat * @param amenityCategory Single amenity category. Send multiple instances of this parameter to request rates that match multiple amenity categories.
See the Amenity Categories section of the [Content Reference Lists](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists) for a list of values. (optional) * @param exclusion Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.
* `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates with refundable damage deposits from the response. * `card_on_file` - Excludes Rapid supplied Vrbo rates with card-on-file damage collection from the response. (optional) * @param filter Single filter type. Send multiple instances of this parameter to request multiple filters.
* `refundable` - Filters results to only show fully refundable rates. * `expedia_collect` - Filters results to only show rates where payment is collected by Expedia at the time of booking. These properties can be eligible for payments via Expedia Affiliate Collect(EAC). * `property_collect` - Filters results to only show rates where payment is collected by the property after booking. This can include rates that require a deposit by the property, dependent upon the deposit policies. * `loyalty` - Filters results to only show rates that are eligible for loyalty points. (optional) - * @param include Modify the response by including types of responses that are not provided by default.
* `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. (optional) + * @param include Modify the response by including types of responses that are not provided by default.
* `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. * `rooms.rates.current_refundability` - Displays the current `refundability` of a rate. (optional) * @param rateOption Request specific rate options for each property. Send multiple instances of this parameter to request multiple rate options. Accepted values:
* `member` - Return member rates for each property. This feature must be enabled and requires a user to be logged in to request these rates. * `net_rates` - Return net rates for each property. This feature must be enabled to request these rates. * `cross_sell` - Identify if the traffic is coming from a cross sell booking. Where the traveler has booked another service (flight, car, activities...) before hotel. (optional) * @param travelPurpose This parameter is to specify the travel purpose of the booking. This may impact available rate plans, pricing, or tax calculations. * `leisure` * `business` (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) @@ -1449,25 +1598,27 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Chain Reference - * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. - * @param operation [GetChainReferenceOperation] + * Categories Reference + * Returns a complete collection of categories available in the Rapid API. + * @param operation [GetCategoriesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.Map + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetChainReferenceOperation): Response> = execute>(operation) + fun execute(operation: GetCategoriesReferenceOperation): Response> = + execute>(operation) /** - * Chain Reference - * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. - * @param operation [GetChainReferenceOperation] + * Categories Reference + * Returns a complete collection of categories available in the Rapid API. + * @param operation [GetCategoriesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetChainReferenceOperation): CompletableFuture>> = - executeAsync>(operation) + fun executeAsync(operation: GetCategoriesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetChainReferenceWithResponse( + private suspend inline fun kgetCategoriesReferenceWithResponse( + language: kotlin.String, customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = @@ -1478,10 +1629,11 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { val params = - GetChainReferenceOperationParams( + GetCategoriesReferenceOperationParams( customerSessionId = customerSessionId, + language = language, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -1489,7 +1641,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetChainReferenceOperation( + GetCategoriesReferenceOperation( params ) @@ -1497,22 +1649,24 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Chain Reference - * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * Categories Reference + * Returns a complete collection of categories available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return kotlin.collections.Map + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetChainReferenceOperation)")) - fun getChainReference( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetCategoriesReferenceOperation)")) + fun getCategoriesReference( + language: kotlin.String, customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = @@ -1523,25 +1677,27 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): kotlin.collections.Map = getChainReferenceWithResponse(customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + ): kotlin.collections.Map = getCategoriesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Chain Reference - * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * Categories Reference + * Returns a complete collection of categories available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.Map + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetChainReferenceOperation)")) - fun getChainReferenceWithResponse( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetCategoriesReferenceOperation)")) + fun getCategoriesReferenceWithResponse( + language: kotlin.String, customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = @@ -1552,10 +1708,10 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetChainReferenceWithResponse(customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + kgetCategoriesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() @@ -1563,31 +1719,27 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Inactive Properties - * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. - * @param operation [GetInactivePropertiesOperation] + * Chain Reference ***DEPRECATED*** + * ***DEPRECATED*** Please use `/references/chains`
Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * @param operation [GetChainReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.List + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetInactivePropertiesOperation): Response> = execute>(operation) + fun execute(operation: GetChainReferenceOperation): Response> = execute>(operation) /** - * Inactive Properties - * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. - * @param operation [GetInactivePropertiesOperation] + * Chain Reference ***DEPRECATED*** + * ***DEPRECATED*** Please use `/references/chains`
Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * @param operation [GetChainReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type kotlin.collections.List + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetInactivePropertiesOperation): CompletableFuture>> = - executeAsync>(operation) + fun executeAsync(operation: GetChainReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetInactivePropertiesWithResponse( + private suspend inline fun kgetChainReferenceWithResponse( customerSessionId: kotlin.String? = null, - since: kotlin.String? = - null, - token: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -1596,12 +1748,10 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { val params = - GetInactivePropertiesOperationParams( + GetChainReferenceOperationParams( customerSessionId = customerSessionId, - since = since, - token = token, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -1609,7 +1759,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetInactivePropertiesOperation( + GetChainReferenceOperation( params ) @@ -1617,30 +1767,24 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Inactive Properties - * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. + * Chain Reference ***DEPRECATED*** + * ***DEPRECATED*** Please use `/references/chains`
Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param since Required on initial call, not accepted on subsequent paging links provided in response header.
The earliest date that a property became inactive to include in the results. ISO 8601 format (YYYY-MM-DD) (optional) - * @param token Only used for requesting additional pages of data. Provided by the `next` URL in the `Link` response header. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return kotlin.collections.List + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetInactivePropertiesOperation)")) - fun getInactiveProperties( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetChainReferenceOperation)")) + fun getChainReference( customerSessionId: kotlin.String? = null, - since: kotlin.String? = - null, - token: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -1649,33 +1793,27 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): kotlin.collections.List = getInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + ): kotlin.collections.Map = getChainReferenceWithResponse(customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Inactive Properties - * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. + * Chain Reference ***DEPRECATED*** + * ***DEPRECATED*** Please use `/references/chains`
Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param since Required on initial call, not accepted on subsequent paging links provided in response header.
The earliest date that a property became inactive to include in the results. ISO 8601 format (YYYY-MM-DD) (optional) - * @param token Only used for requesting additional pages of data. Provided by the `next` URL in the `Link` response header. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.List + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetInactivePropertiesOperation)")) - fun getInactivePropertiesWithResponse( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetChainReferenceOperation)")) + fun getChainReferenceWithResponse( customerSessionId: kotlin.String? = null, - since: kotlin.String? = - null, - token: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -1684,31 +1822,38 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName) + kgetChainReferenceWithResponse(customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() } } - @JvmOverloads - fun getPaginator(operation: GetInactivePropertiesOperation): ResponsePaginator> { - val response = execute(operation) - return ResponsePaginator(this, response, emptyList()) { it.body>() } - } + /** + * Chains Reference + * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * @param operation [GetChainsReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetChainsReferenceOperation): Response> = execute>(operation) - @JvmOverloads - @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetInactivePropertiesOperation)")) - fun getInactivePropertiesPaginator( + /** + * Chains Reference + * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * @param operation [GetChainsReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetChainsReferenceOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetChainsReferenceWithResponse( customerSessionId: kotlin.String? = null, - since: kotlin.String? = - null, - token: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -1717,20 +1862,43 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Paginator> { - val response = getInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName) - return Paginator(this, response, emptyList()) { it.body>() } + ): Response> { + val params = + GetChainsReferenceOperationParams( + customerSessionId = customerSessionId, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetChainsReferenceOperation( + params + ) + + return execute(operation) } + /** + * Chains Reference + * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) @JvmOverloads - @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetInactivePropertiesOperation)")) - fun getInactivePropertiesPaginatorWithResponse( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetChainsReferenceOperation)")) + fun getChainsReference( customerSessionId: kotlin.String? = null, - since: kotlin.String? = - null, - token: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -1739,103 +1907,39 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): ResponsePaginator> { - val response = getInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName) - return ResponsePaginator(this, response, emptyList()) { it.body>() } - } + ): kotlin.collections.Map = getChainsReferenceWithResponse(customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Get Accepted Payment Types - EPS MOR Only - * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. - * @param operation [GetPaymentOptionsOperation] - * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type PaymentOption - */ - fun execute(operation: GetPaymentOptionsOperation): Response = execute(operation) - - /** - * Get Accepted Payment Types - EPS MOR Only - * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. - * @param operation [GetPaymentOptionsOperation] - * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type PaymentOption - */ - fun executeAsync(operation: GetPaymentOptionsOperation): CompletableFuture> = executeAsync(operation) - - private suspend inline fun kgetPaymentOptionsWithResponse( - propertyId: kotlin.String, - token: kotlin.String, - customerIp: kotlin.String? = - null, - customerSessionId: kotlin.String? = - null - ): Response { - val params = - GetPaymentOptionsOperationParams( - propertyId = propertyId, - customerIp = customerIp, - customerSessionId = customerSessionId, - token = token - ) - - val operation = - GetPaymentOptionsOperation( - params - ) - - return execute(operation) - } - - /** - * Get Accepted Payment Types - EPS MOR Only - * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. - * @param propertyId Expedia Property ID.
- * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. - * @param customerIp IP address of the customer, as captured by your integration.
Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. (optional) + * Chains Reference + * Returns a complete collection of chains recognized by the Rapid API.
Chains represent a parent company which can have multiple brands associated with it. A brand can only be associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands including DoubleTree, Hampton Inn and Embassy Suites.
The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object also contains a map of its related brands.
Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning.
Chain and brand names are provided in English only. * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return PaymentOption + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPaymentOptionsOperation)")) - fun getPaymentOptions( - propertyId: kotlin.String, - token: kotlin.String, - customerIp: kotlin.String? = - null, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetChainsReferenceOperation)")) + fun getChainsReferenceWithResponse( customerSessionId: kotlin.String? = - null - ): PaymentOption = getPaymentOptionsWithResponse(propertyId, token, customerIp, customerSessionId).data - - /** - * Get Accepted Payment Types - EPS MOR Only - * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. - * @param propertyId Expedia Property ID.
- * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. - * @param customerIp IP address of the customer, as captured by your integration.
Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. (optional) - * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type PaymentOption - */ - @Throws( - ExpediaGroupApiErrorException::class - ) - @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPaymentOptionsOperation)")) - fun getPaymentOptionsWithResponse( - propertyId: kotlin.String, - token: kotlin.String, - customerIp: kotlin.String? = null, - customerSessionId: kotlin.String? = + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = null - ): Response { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetPaymentOptionsWithResponse(propertyId, token, customerIp, customerSessionId) + kgetChainsReferenceWithResponse(customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() @@ -1843,26 +1947,27 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Catalog File - * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` - * @param operation [GetPropertyCatalogFileOperation] + * General Attributes Reference + * Returns a complete collection of general attributes available in the Rapid API. + * @param operation [GetGeneralAttributesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Link + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetPropertyCatalogFileOperation): Response = execute(operation) + fun execute(operation: GetGeneralAttributesReferenceOperation): Response> = + execute>(operation) /** - * Property Catalog File - * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` - * @param operation [GetPropertyCatalogFileOperation] + * General Attributes Reference + * Returns a complete collection of general attributes available in the Rapid API. + * @param operation [GetGeneralAttributesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type Link + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetPropertyCatalogFileOperation): CompletableFuture> = executeAsync(operation) + fun executeAsync(operation: GetGeneralAttributesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetPropertyCatalogFileWithResponse( + private suspend inline fun kgetGeneralAttributesReferenceWithResponse( language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = @@ -1873,12 +1978,11 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response { + ): Response> { val params = - GetPropertyCatalogFileOperationParams( + GetGeneralAttributesReferenceOperationParams( customerSessionId = customerSessionId, language = language, - supplySource = supplySource, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -1886,7 +1990,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetPropertyCatalogFileOperation( + GetGeneralAttributesReferenceOperation( params ) @@ -1894,26 +1998,24 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Catalog File - * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` - * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * General Attributes Reference + * Returns a complete collection of general attributes available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return Link + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyCatalogFileOperation)")) - fun getPropertyCatalogFile( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetGeneralAttributesReferenceOperation)")) + fun getGeneralAttributesReference( language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = @@ -1924,29 +2026,28 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Link = getPropertyCatalogFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + ): kotlin.collections.Map = + getGeneralAttributesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Property Catalog File - * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` - * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * General Attributes Reference + * Returns a complete collection of general attributes available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Link + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyCatalogFileOperation)")) - fun getPropertyCatalogFileWithResponse( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetGeneralAttributesReferenceOperation)")) + fun getGeneralAttributesReferenceWithResponse( language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = @@ -1957,10 +2058,10 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetPropertyCatalogFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + kgetGeneralAttributesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() @@ -1968,92 +2069,29 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Content - * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. - * @param operation [GetPropertyContentOperation] + * Images Reference + * Returns a complete collection of images available in the Rapid API. + * @param operation [GetImagesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.Map + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetPropertyContentOperation): Response> = - execute>(operation) + fun execute(operation: GetImagesReferenceOperation): Response> = + execute>(operation) /** - * Property Content - * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. - * @param operation [GetPropertyContentOperation] + * Images Reference + * Returns a complete collection of images available in the Rapid API. + * @param operation [GetImagesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetPropertyContentOperation): CompletableFuture>> = - executeAsync>(operation) + fun executeAsync(operation: GetImagesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetPropertyContentWithResponse( + private suspend inline fun kgetImagesReferenceWithResponse( language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, - allInclusive: kotlin.collections.List< - kotlin.String - >? = - null, - amenityId: kotlin.collections.List< - kotlin.String - >? = - null, - attributeId: kotlin.collections.List< - kotlin.String - >? = - null, - brandId: kotlin.collections.List< - kotlin.String - >? = - null, - businessModel: kotlin.collections.List< - GetPropertyContentOperationParams.BusinessModel - >? = - null, - categoryId: kotlin.collections.List< - kotlin.String - >? = - null, - categoryIdExclude: kotlin.collections.List< - kotlin.String - >? = - null, - chainId: kotlin.collections.List< - kotlin.String - >? = - null, - countryCode: kotlin.collections.List< - kotlin.String - >? = - null, - dateAddedEnd: kotlin.String? = - null, - dateAddedStart: kotlin.String? = - null, - dateUpdatedEnd: kotlin.String? = - null, - dateUpdatedStart: kotlin.String? = - null, - include: kotlin.collections.List< - kotlin.String - >? = - null, - multiUnit: kotlin.Boolean? = - null, - propertyId: kotlin.collections.List< - kotlin.String - >? = - null, - propertyRatingMax: kotlin.String? = - null, - propertyRatingMin: kotlin.String? = - null, - spokenLanguageId: kotlin.collections.List< - kotlin.String - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -2062,31 +2100,11 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { val params = - GetPropertyContentOperationParams( + GetImagesReferenceOperationParams( customerSessionId = customerSessionId, language = language, - supplySource = supplySource, - allInclusive = allInclusive, - amenityId = amenityId, - attributeId = attributeId, - brandId = brandId, - businessModel = businessModel, - categoryId = categoryId, - categoryIdExclude = categoryIdExclude, - chainId = chainId, - countryCode = countryCode, - dateAddedEnd = dateAddedEnd, - dateAddedStart = dateAddedStart, - dateUpdatedEnd = dateUpdatedEnd, - dateUpdatedStart = dateUpdatedStart, - include = include, - multiUnit = multiUnit, - propertyId = propertyId, - propertyRatingMax = propertyRatingMax, - propertyRatingMin = propertyRatingMin, - spokenLanguageId = spokenLanguageId, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -2094,7 +2112,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetPropertyContentOperation( + GetImagesReferenceOperation( params ) @@ -2102,106 +2120,2055 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Content - * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. + * Images Reference + * Returns a complete collection of images available in the Rapid API. * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param allInclusive Search to include properties that have the requested `all_inclusive` values equal to true. If this parameter is not supplied, all `all_inclusive` scenarios are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested scenarios. * `all_rate_plans` - Return properties where `all_inclusive.all_rate_plans` is true. * `some_rate_plans` = Return properties where `all_inclusive.some_rate_plans` is true. (optional) - * @param amenityId The ID of the amenity you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested amenity IDs. This is currently only capable of searching for property level amenities. Room and rate level amenities cannot be searched on. (optional) - * @param attributeId The ID of the attribute you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested attribute IDs. (optional) - * @param brandId The ID of the brand you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested brand IDs. (optional) - * @param businessModel Search for properties with the requested business model enabled. This parameter can be supplied multiple times with different values, which will return all properties that match any of the requested business models. The value must be lower case. * `expedia_collect` - Return only properties where the payment is collected by Expedia. * `property_collect` - Return only properties where the payment is collected at the property. (optional) - * @param categoryId Search to include properties that have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested category IDs. (optional) - * @param categoryIdExclude Search to exclude properties that do not have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will exclude properties that match any of the requested category IDs. (optional) - * @param chainId The ID of the chain you want to search for. These chain IDs can be positive and negative numbers. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested chain IDs. (optional) - * @param countryCode Search for properties with the requested country code, in ISO 3166-1 alpha-2 format. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested country codes. (optional) - * @param dateAddedEnd Search for properties added on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param dateAddedStart Search for properties added on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param dateUpdatedEnd Search for properties updated on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param dateUpdatedStart Search for properties updated on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param include Each time this parameter is specified will add to the list of fields and associated objects returned in the response. All values and field names are lower case. The values `property_ids` and `catalog` will continue to behave as specified below for backwards compatibility. All other top level field names will add the specified field to the list of fields returned in the response. See the response schema for a full list of top level field names. Additionally, the field `property_id` will always be returned regardless of what include values are passed.

Possible values: * `property_ids` - ***DEPRECATED*** - Please use `property_id` which matches the response field name. * `catalog` - Include all property catalog fields. See [Property Catalog File endpoint](https://developers.expediagroup.com/docs/rapid/resources/rapid-api#get-/files/properties/catalog) for a list of fields. * `property_id` - Passing in the value `property_id` and no other values will limit the response to only `property_id`. Not necessary to include in combination with other field name values, as it will always be returned. * All field names found at the top level of the property content response are now valid values for inclusion. (optional) - * @param multiUnit Search for multi-unit properties. If this parameter is not supplied, both single-unit and multi-unit properties will be included. * `true` - Include only properties that are multi-unit. * `false` - Do not include properties that are multi-unit. (optional) - * @param propertyId The ID of the property you want to search for. You can provide 1 to 250 property_id parameters. (optional) - * @param propertyRatingMax Search for properties with a property rating less than or equal to the requested rating. The highest property rating value is 5.0. (optional) - * @param propertyRatingMin Search for properties with a property rating greater than or equal to the requested rating. The lowest property rating value is 0.0. (optional) - * @param spokenLanguageId The id of the spoken language you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested spoken languages. The language code as a subset of BCP47 format. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return kotlin.collections.Map + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentOperation)")) - fun getPropertyContent( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetImagesReferenceOperation)")) + fun getImagesReference( language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, - allInclusive: kotlin.collections.List< - kotlin.String - >? = + billingTerms: kotlin.String? = null, - amenityId: kotlin.collections.List< + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.Map = getImagesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Images Reference + * Returns a complete collection of images available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetImagesReferenceOperation)")) + fun getImagesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetImagesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Inactive Properties + * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. + * @param operation [GetInactivePropertiesOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.List + */ + fun execute(operation: GetInactivePropertiesOperation): Response> = execute>(operation) + + /** + * Inactive Properties + * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. + * @param operation [GetInactivePropertiesOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.List + */ + fun executeAsync(operation: GetInactivePropertiesOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetInactivePropertiesWithResponse( + customerSessionId: kotlin.String? = + null, + since: kotlin.String? = + null, + token: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetInactivePropertiesOperationParams( + customerSessionId = customerSessionId, + since = since, + token = token, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetInactivePropertiesOperation( + params + ) + + return execute(operation) + } + + /** + * Inactive Properties + * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param since Required on initial call, not accepted on subsequent paging links provided in response header.
The earliest date that a property became inactive to include in the results. ISO 8601 format (YYYY-MM-DD) (optional) + * @param token Only used for requesting additional pages of data. Provided by the `next` URL in the `Link` response header. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.List + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetInactivePropertiesOperation)")) + fun getInactiveProperties( + customerSessionId: kotlin.String? = + null, + since: kotlin.String? = + null, + token: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.List = getInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Inactive Properties + * Request a list of properties that are inactive because they have been removed from sale since a specified date.

When there are a large number of properties in the response, it will be paginated. See the `Link` header in the 200 response section. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param since Required on initial call, not accepted on subsequent paging links provided in response header.
The earliest date that a property became inactive to include in the results. ISO 8601 format (YYYY-MM-DD) (optional) + * @param token Only used for requesting additional pages of data. Provided by the `next` URL in the `Link` response header. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.List + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetInactivePropertiesOperation)")) + fun getInactivePropertiesWithResponse( + customerSessionId: kotlin.String? = + null, + since: kotlin.String? = + null, + token: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + @JvmOverloads + fun getPaginator(operation: GetInactivePropertiesOperation): ResponsePaginator> { + val response = execute(operation) + return ResponsePaginator(this, response, emptyList()) { it.body>() } + } + + @JvmOverloads + @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetInactivePropertiesOperation)")) + fun getInactivePropertiesPaginator( + customerSessionId: kotlin.String? = + null, + since: kotlin.String? = + null, + token: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Paginator> { + val response = getInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName) + return Paginator(this, response, emptyList()) { it.body>() } + } + + @JvmOverloads + @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetInactivePropertiesOperation)")) + fun getInactivePropertiesPaginatorWithResponse( + customerSessionId: kotlin.String? = + null, + since: kotlin.String? = + null, + token: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): ResponsePaginator> { + val response = getInactivePropertiesWithResponse(customerSessionId, since, token, billingTerms, partnerPointOfSale, paymentTerms, platformName) + return ResponsePaginator(this, response, emptyList()) { it.body>() } + } + + /** + * Onsite Payment Types Reference + * Returns a complete collection of onsite payment types available in the Rapid API. + * @param operation [GetOnsitePaymentTypesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetOnsitePaymentTypesReferenceOperation): Response> = + execute>(operation) + + /** + * Onsite Payment Types Reference + * Returns a complete collection of onsite payment types available in the Rapid API. + * @param operation [GetOnsitePaymentTypesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetOnsitePaymentTypesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetOnsitePaymentTypesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetOnsitePaymentTypesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetOnsitePaymentTypesReferenceOperation( + params + ) + + return execute(operation) + } + + /** + * Onsite Payment Types Reference + * Returns a complete collection of onsite payment types available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetOnsitePaymentTypesReferenceOperation)")) + fun getOnsitePaymentTypesReference( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.Map = getOnsitePaymentTypesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Onsite Payment Types Reference + * Returns a complete collection of onsite payment types available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetOnsitePaymentTypesReferenceOperation)")) + fun getOnsitePaymentTypesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetOnsitePaymentTypesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Get Accepted Payment Types - EPS MOR Only + * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. + * @param operation [GetPaymentOptionsOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type PaymentOption + */ + fun execute(operation: GetPaymentOptionsOperation): Response = execute(operation) + + /** + * Get Accepted Payment Types - EPS MOR Only + * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. + * @param operation [GetPaymentOptionsOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type PaymentOption + */ + fun executeAsync(operation: GetPaymentOptionsOperation): CompletableFuture> = executeAsync(operation) + + private suspend inline fun kgetPaymentOptionsWithResponse( + propertyId: kotlin.String, + token: kotlin.String, + customerIp: kotlin.String? = + null, + customerSessionId: kotlin.String? = + null + ): Response { + val params = + GetPaymentOptionsOperationParams( + propertyId = propertyId, + customerIp = customerIp, + customerSessionId = customerSessionId, + token = token + ) + + val operation = + GetPaymentOptionsOperation( + params + ) + + return execute(operation) + } + + /** + * Get Accepted Payment Types - EPS MOR Only + * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. + * @param propertyId Expedia Property ID.
+ * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. + * @param customerIp IP address of the customer, as captured by your integration.
Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. (optional) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @throws ExpediaGroupApiErrorException + * @return PaymentOption + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPaymentOptionsOperation)")) + fun getPaymentOptions( + propertyId: kotlin.String, + token: kotlin.String, + customerIp: kotlin.String? = + null, + customerSessionId: kotlin.String? = + null + ): PaymentOption = getPaymentOptionsWithResponse(propertyId, token, customerIp, customerSessionId).data + + /** + * Get Accepted Payment Types - EPS MOR Only + * Returns the accepted payment options. Use this API to power your checkout page and display valid forms of payment, ensuring a smooth booking. + * @param propertyId Expedia Property ID.
+ * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. + * @param customerIp IP address of the customer, as captured by your integration.
Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. (optional) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type PaymentOption + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPaymentOptionsOperation)")) + fun getPaymentOptionsWithResponse( + propertyId: kotlin.String, + token: kotlin.String, + customerIp: kotlin.String? = + null, + customerSessionId: kotlin.String? = + null + ): Response { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetPaymentOptionsWithResponse(propertyId, token, customerIp, customerSessionId) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Pet Attributes Reference + * Returns a complete collection of pet attributes available in the Rapid API. + * @param operation [GetPetAttributesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetPetAttributesReferenceOperation): Response> = + execute>(operation) + + /** + * Pet Attributes Reference + * Returns a complete collection of pet attributes available in the Rapid API. + * @param operation [GetPetAttributesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetPetAttributesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetPetAttributesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetPetAttributesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetPetAttributesReferenceOperation( + params + ) + + return execute(operation) + } + + /** + * Pet Attributes Reference + * Returns a complete collection of pet attributes available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPetAttributesReferenceOperation)")) + fun getPetAttributesReference( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.Map = getPetAttributesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Pet Attributes Reference + * Returns a complete collection of pet attributes available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPetAttributesReferenceOperation)")) + fun getPetAttributesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetPetAttributesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Property Catalog File + * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` + * @param operation [GetPropertyCatalogFileOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type Link + */ + fun execute(operation: GetPropertyCatalogFileOperation): Response = execute(operation) + + /** + * Property Catalog File + * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` + * @param operation [GetPropertyCatalogFileOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type Link + */ + fun executeAsync(operation: GetPropertyCatalogFileOperation): CompletableFuture> = executeAsync(operation) + + private suspend inline fun kgetPropertyCatalogFileWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + val params = + GetPropertyCatalogFileOperationParams( + customerSessionId = customerSessionId, + language = language, + supplySource = supplySource, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetPropertyCatalogFileOperation( + params + ) + + return execute(operation) + } + + /** + * Property Catalog File + * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return Link + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyCatalogFileOperation)")) + fun getPropertyCatalogFile( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Link = getPropertyCatalogFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Property Catalog File + * Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: * property_id * name * address * ratings * location * phone * fax * category * rank * business_model * dates * statistics * chain * brand * supply_source
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"supply_source\":\"expedia\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"supply_source\":\"expedia\"} ``` + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type Link + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyCatalogFileOperation)")) + fun getPropertyCatalogFileWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetPropertyCatalogFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Property Content + * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. + * @param operation [GetPropertyContentOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetPropertyContentOperation): Response> = + execute>(operation) + + /** + * Property Content + * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. + * @param operation [GetPropertyContentOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetPropertyContentOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetPropertyContentWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + allInclusive: kotlin.collections.List< + kotlin.String + >? = + null, + amenityId: kotlin.collections.List< + kotlin.String + >? = + null, + attributeId: kotlin.collections.List< + kotlin.String + >? = + null, + brandId: kotlin.collections.List< + kotlin.String + >? = + null, + businessModel: kotlin.collections.List< + GetPropertyContentOperationParams.BusinessModel + >? = + null, + categoryId: kotlin.collections.List< + kotlin.String + >? = + null, + categoryIdExclude: kotlin.collections.List< + kotlin.String + >? = + null, + chainId: kotlin.collections.List< + kotlin.String + >? = + null, + countryCode: kotlin.collections.List< + kotlin.String + >? = + null, + dateAddedEnd: kotlin.String? = + null, + dateAddedStart: kotlin.String? = + null, + dateUpdatedEnd: kotlin.String? = + null, + dateUpdatedStart: kotlin.String? = + null, + include: kotlin.collections.List< + kotlin.String + >? = + null, + multiUnit: kotlin.Boolean? = + null, + propertyId: kotlin.collections.List< + kotlin.String + >? = + null, + propertyRatingMax: kotlin.String? = + null, + propertyRatingMin: kotlin.String? = + null, + spokenLanguageId: kotlin.collections.List< + kotlin.String + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetPropertyContentOperationParams( + customerSessionId = customerSessionId, + language = language, + supplySource = supplySource, + allInclusive = allInclusive, + amenityId = amenityId, + attributeId = attributeId, + brandId = brandId, + businessModel = businessModel, + categoryId = categoryId, + categoryIdExclude = categoryIdExclude, + chainId = chainId, + countryCode = countryCode, + dateAddedEnd = dateAddedEnd, + dateAddedStart = dateAddedStart, + dateUpdatedEnd = dateUpdatedEnd, + dateUpdatedStart = dateUpdatedStart, + include = include, + multiUnit = multiUnit, + propertyId = propertyId, + propertyRatingMax = propertyRatingMax, + propertyRatingMin = propertyRatingMin, + spokenLanguageId = spokenLanguageId, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetPropertyContentOperation( + params + ) + + return execute(operation) + } + + /** + * Property Content + * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param allInclusive Search to include properties that have the requested `all_inclusive` values equal to true. If this parameter is not supplied, all `all_inclusive` scenarios are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested scenarios. * `all_rate_plans` - Return properties where `all_inclusive.all_rate_plans` is true. * `some_rate_plans` = Return properties where `all_inclusive.some_rate_plans` is true. (optional) + * @param amenityId The ID of the amenity you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested amenity IDs. This is currently only capable of searching for property level amenities. Room and rate level amenities cannot be searched on. (optional) + * @param attributeId The ID of the attribute you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested attribute IDs. (optional) + * @param brandId The ID of the brand you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested brand IDs. (optional) + * @param businessModel Search for properties with the requested business model enabled. This parameter can be supplied multiple times with different values, which will return all properties that match any of the requested business models. The value must be lower case. * `expedia_collect` - Return only properties where the payment is collected by Expedia. * `property_collect` - Return only properties where the payment is collected at the property. (optional) + * @param categoryId Search to include properties that have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested category IDs. (optional) + * @param categoryIdExclude Search to exclude properties that do not have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will exclude properties that match any of the requested category IDs. (optional) + * @param chainId The ID of the chain you want to search for. These chain IDs can be positive and negative numbers. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested chain IDs. (optional) + * @param countryCode Search for properties with the requested country code, in ISO 3166-1 alpha-2 format. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested country codes. (optional) + * @param dateAddedEnd Search for properties added on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param dateAddedStart Search for properties added on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param dateUpdatedEnd Search for properties updated on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param dateUpdatedStart Search for properties updated on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param include Each time this parameter is specified will add to the list of fields and associated objects returned in the response. All values and field names are lower case. The values `property_ids` and `catalog` will continue to behave as specified below for backwards compatibility. All other top level field names will add the specified field to the list of fields returned in the response. See the response schema for a full list of top level field names. Additionally, the field `property_id` will always be returned regardless of what include values are passed.

Possible values: * `property_ids` - ***DEPRECATED*** - Please use `property_id` which matches the response field name. * `catalog` - Include all property catalog fields. See [Property Catalog File endpoint](https://developers.expediagroup.com/docs/rapid/resources/rapid-api#get-/files/properties/catalog) for a list of fields. * `property_id` - Passing in the value `property_id` and no other values will limit the response to only `property_id`. Not necessary to include in combination with other field name values, as it will always be returned. * All field names found at the top level of the property content response are now valid values for inclusion. (optional) + * @param multiUnit Search for multi-unit properties. If this parameter is not supplied, both single-unit and multi-unit properties will be included. * `true` - Include only properties that are multi-unit. * `false` - Do not include properties that are multi-unit. (optional) + * @param propertyId The ID of the property you want to search for. You can provide 1 to 250 property_id parameters. (optional) + * @param propertyRatingMax Search for properties with a property rating less than or equal to the requested rating. The highest property rating value is 5.0. (optional) + * @param propertyRatingMin Search for properties with a property rating greater than or equal to the requested rating. The lowest property rating value is 0.0. (optional) + * @param spokenLanguageId The id of the spoken language you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested spoken languages. The language code as a subset of BCP47 format. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentOperation)")) + fun getPropertyContent( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + allInclusive: kotlin.collections.List< + kotlin.String + >? = + null, + amenityId: kotlin.collections.List< + kotlin.String + >? = + null, + attributeId: kotlin.collections.List< + kotlin.String + >? = + null, + brandId: kotlin.collections.List< + kotlin.String + >? = + null, + businessModel: kotlin.collections.List< + GetPropertyContentOperationParams.BusinessModel + >? = + null, + categoryId: kotlin.collections.List< + kotlin.String + >? = + null, + categoryIdExclude: kotlin.collections.List< + kotlin.String + >? = + null, + chainId: kotlin.collections.List< + kotlin.String + >? = + null, + countryCode: kotlin.collections.List< + kotlin.String + >? = + null, + dateAddedEnd: kotlin.String? = + null, + dateAddedStart: kotlin.String? = + null, + dateUpdatedEnd: kotlin.String? = + null, + dateUpdatedStart: kotlin.String? = + null, + include: kotlin.collections.List< + kotlin.String + >? = + null, + multiUnit: kotlin.Boolean? = + null, + propertyId: kotlin.collections.List< + kotlin.String + >? = + null, + propertyRatingMax: kotlin.String? = + null, + propertyRatingMin: kotlin.String? = + null, + spokenLanguageId: kotlin.collections.List< + kotlin.String + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.Map = + getPropertyContentWithResponse( + language, + supplySource, + customerSessionId, + allInclusive, + amenityId, + attributeId, + brandId, + businessModel, + categoryId, + categoryIdExclude, + chainId, + countryCode, + dateAddedEnd, + dateAddedStart, + dateUpdatedEnd, + dateUpdatedStart, + include, + multiUnit, + propertyId, + propertyRatingMax, + propertyRatingMin, + spokenLanguageId, + billingTerms, + partnerPointOfSale, + paymentTerms, + platformName + ).data + + /** + * Property Content + * Search property content for active properties in the requested language.

When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param allInclusive Search to include properties that have the requested `all_inclusive` values equal to true. If this parameter is not supplied, all `all_inclusive` scenarios are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested scenarios. * `all_rate_plans` - Return properties where `all_inclusive.all_rate_plans` is true. * `some_rate_plans` = Return properties where `all_inclusive.some_rate_plans` is true. (optional) + * @param amenityId The ID of the amenity you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested amenity IDs. This is currently only capable of searching for property level amenities. Room and rate level amenities cannot be searched on. (optional) + * @param attributeId The ID of the attribute you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested attribute IDs. (optional) + * @param brandId The ID of the brand you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested brand IDs. (optional) + * @param businessModel Search for properties with the requested business model enabled. This parameter can be supplied multiple times with different values, which will return all properties that match any of the requested business models. The value must be lower case. * `expedia_collect` - Return only properties where the payment is collected by Expedia. * `property_collect` - Return only properties where the payment is collected at the property. (optional) + * @param categoryId Search to include properties that have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested category IDs. (optional) + * @param categoryIdExclude Search to exclude properties that do not have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will exclude properties that match any of the requested category IDs. (optional) + * @param chainId The ID of the chain you want to search for. These chain IDs can be positive and negative numbers. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested chain IDs. (optional) + * @param countryCode Search for properties with the requested country code, in ISO 3166-1 alpha-2 format. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested country codes. (optional) + * @param dateAddedEnd Search for properties added on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param dateAddedStart Search for properties added on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param dateUpdatedEnd Search for properties updated on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param dateUpdatedStart Search for properties updated on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) + * @param include Each time this parameter is specified will add to the list of fields and associated objects returned in the response. All values and field names are lower case. The values `property_ids` and `catalog` will continue to behave as specified below for backwards compatibility. All other top level field names will add the specified field to the list of fields returned in the response. See the response schema for a full list of top level field names. Additionally, the field `property_id` will always be returned regardless of what include values are passed.

Possible values: * `property_ids` - ***DEPRECATED*** - Please use `property_id` which matches the response field name. * `catalog` - Include all property catalog fields. See [Property Catalog File endpoint](https://developers.expediagroup.com/docs/rapid/resources/rapid-api#get-/files/properties/catalog) for a list of fields. * `property_id` - Passing in the value `property_id` and no other values will limit the response to only `property_id`. Not necessary to include in combination with other field name values, as it will always be returned. * All field names found at the top level of the property content response are now valid values for inclusion. (optional) + * @param multiUnit Search for multi-unit properties. If this parameter is not supplied, both single-unit and multi-unit properties will be included. * `true` - Include only properties that are multi-unit. * `false` - Do not include properties that are multi-unit. (optional) + * @param propertyId The ID of the property you want to search for. You can provide 1 to 250 property_id parameters. (optional) + * @param propertyRatingMax Search for properties with a property rating less than or equal to the requested rating. The highest property rating value is 5.0. (optional) + * @param propertyRatingMin Search for properties with a property rating greater than or equal to the requested rating. The lowest property rating value is 0.0. (optional) + * @param spokenLanguageId The id of the spoken language you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested spoken languages. The language code as a subset of BCP47 format. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentOperation)")) + fun getPropertyContentWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + allInclusive: kotlin.collections.List< + kotlin.String + >? = + null, + amenityId: kotlin.collections.List< + kotlin.String + >? = + null, + attributeId: kotlin.collections.List< + kotlin.String + >? = + null, + brandId: kotlin.collections.List< + kotlin.String + >? = + null, + businessModel: kotlin.collections.List< + GetPropertyContentOperationParams.BusinessModel + >? = + null, + categoryId: kotlin.collections.List< + kotlin.String + >? = + null, + categoryIdExclude: kotlin.collections.List< + kotlin.String + >? = + null, + chainId: kotlin.collections.List< + kotlin.String + >? = + null, + countryCode: kotlin.collections.List< + kotlin.String + >? = + null, + dateAddedEnd: kotlin.String? = + null, + dateAddedStart: kotlin.String? = + null, + dateUpdatedEnd: kotlin.String? = + null, + dateUpdatedStart: kotlin.String? = + null, + include: kotlin.collections.List< + kotlin.String + >? = + null, + multiUnit: kotlin.Boolean? = + null, + propertyId: kotlin.collections.List< + kotlin.String + >? = + null, + propertyRatingMax: kotlin.String? = + null, + propertyRatingMin: kotlin.String? = + null, + spokenLanguageId: kotlin.collections.List< + kotlin.String + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetPropertyContentWithResponse( + language, + supplySource, + customerSessionId, + allInclusive, + amenityId, + attributeId, + brandId, + businessModel, + categoryId, + categoryIdExclude, + chainId, + countryCode, + dateAddedEnd, + dateAddedStart, + dateUpdatedEnd, + dateUpdatedStart, + include, + multiUnit, + propertyId, + propertyRatingMax, + propertyRatingMin, + spokenLanguageId, + billingTerms, + partnerPointOfSale, + paymentTerms, + platformName + ) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + @JvmOverloads + fun getPaginator(operation: GetPropertyContentOperation): ResponsePaginator> { + val response = execute(operation) + return ResponsePaginator(this, response, emptyMap()) { it.body>() } + } + + @JvmOverloads + @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetPropertyContentOperation)")) + fun getPropertyContentPaginator( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + allInclusive: kotlin.collections.List< + kotlin.String + >? = + null, + amenityId: kotlin.collections.List< + kotlin.String + >? = + null, + attributeId: kotlin.collections.List< + kotlin.String + >? = + null, + brandId: kotlin.collections.List< + kotlin.String + >? = + null, + businessModel: kotlin.collections.List< + GetPropertyContentOperationParams.BusinessModel + >? = + null, + categoryId: kotlin.collections.List< + kotlin.String + >? = + null, + categoryIdExclude: kotlin.collections.List< + kotlin.String + >? = + null, + chainId: kotlin.collections.List< + kotlin.String + >? = + null, + countryCode: kotlin.collections.List< + kotlin.String + >? = + null, + dateAddedEnd: kotlin.String? = + null, + dateAddedStart: kotlin.String? = + null, + dateUpdatedEnd: kotlin.String? = + null, + dateUpdatedStart: kotlin.String? = + null, + include: kotlin.collections.List< + kotlin.String + >? = + null, + multiUnit: kotlin.Boolean? = + null, + propertyId: kotlin.collections.List< + kotlin.String + >? = + null, + propertyRatingMax: kotlin.String? = + null, + propertyRatingMin: kotlin.String? = + null, + spokenLanguageId: kotlin.collections.List< + kotlin.String + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Paginator> { + val response = + getPropertyContentWithResponse( + language, + supplySource, + customerSessionId, + allInclusive, + amenityId, + attributeId, + brandId, + businessModel, + categoryId, + categoryIdExclude, + chainId, + countryCode, + dateAddedEnd, + dateAddedStart, + dateUpdatedEnd, + dateUpdatedStart, + include, + multiUnit, + propertyId, + propertyRatingMax, + propertyRatingMin, + spokenLanguageId, + billingTerms, + partnerPointOfSale, + paymentTerms, + platformName + ) + return Paginator(this, response, emptyMap()) { it.body>() } + } + + @JvmOverloads + @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetPropertyContentOperation)")) + fun getPropertyContentPaginatorWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + allInclusive: kotlin.collections.List< + kotlin.String + >? = + null, + amenityId: kotlin.collections.List< + kotlin.String + >? = + null, + attributeId: kotlin.collections.List< + kotlin.String + >? = + null, + brandId: kotlin.collections.List< + kotlin.String + >? = + null, + businessModel: kotlin.collections.List< + GetPropertyContentOperationParams.BusinessModel + >? = + null, + categoryId: kotlin.collections.List< + kotlin.String + >? = + null, + categoryIdExclude: kotlin.collections.List< + kotlin.String + >? = + null, + chainId: kotlin.collections.List< + kotlin.String + >? = + null, + countryCode: kotlin.collections.List< + kotlin.String + >? = + null, + dateAddedEnd: kotlin.String? = + null, + dateAddedStart: kotlin.String? = + null, + dateUpdatedEnd: kotlin.String? = + null, + dateUpdatedStart: kotlin.String? = + null, + include: kotlin.collections.List< + kotlin.String + >? = + null, + multiUnit: kotlin.Boolean? = + null, + propertyId: kotlin.collections.List< + kotlin.String + >? = + null, + propertyRatingMax: kotlin.String? = + null, + propertyRatingMin: kotlin.String? = + null, + spokenLanguageId: kotlin.collections.List< kotlin.String >? = null, - attributeId: kotlin.collections.List< + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): ResponsePaginator> { + val response = + getPropertyContentWithResponse( + language, + supplySource, + customerSessionId, + allInclusive, + amenityId, + attributeId, + brandId, + businessModel, + categoryId, + categoryIdExclude, + chainId, + countryCode, + dateAddedEnd, + dateAddedStart, + dateUpdatedEnd, + dateUpdatedStart, + include, + multiUnit, + propertyId, + propertyRatingMax, + propertyRatingMin, + spokenLanguageId, + billingTerms, + partnerPointOfSale, + paymentTerms, + platformName + ) + return ResponsePaginator(this, response, emptyMap()) { it.body>() } + } + + /** + * Property Content File + * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

You'll be asked to pay the following charges at the hotel:

  • Deposit: USD 50 per day
  • Resort fee: USD 29.12 per accommodation, per night
The hotel resort fee includes:
  • Fitness center access
  • Internet access
  • Phone calls
  • Additional inclusions

We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

\",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` + * @param operation [GetPropertyContentFileOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type Link + */ + fun execute(operation: GetPropertyContentFileOperation): Response = execute(operation) + + /** + * Property Content File + * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` + * @param operation [GetPropertyContentFileOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type Link + */ + fun executeAsync(operation: GetPropertyContentFileOperation): CompletableFuture> = executeAsync(operation) + + private suspend inline fun kgetPropertyContentFileWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + val params = + GetPropertyContentFileOperationParams( + customerSessionId = customerSessionId, + language = language, + supplySource = supplySource, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetPropertyContentFileOperation( + params + ) + + return execute(operation) + } + + /** + * Property Content File + * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return Link + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentFileOperation)")) + fun getPropertyContentFile( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Link = getPropertyContentFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Property Content File + * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type Link + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentFileOperation)")) + fun getPropertyContentFileWithResponse( + language: kotlin.String, + supplySource: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetPropertyContentFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Property Guest Reviews + * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. + * @param operation [GetPropertyGuestReviewsOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type GuestReviews + */ + fun execute(operation: GetPropertyGuestReviewsOperation): Response = execute(operation) + + /** + * Property Guest Reviews + * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. + * @param operation [GetPropertyGuestReviewsOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type GuestReviews + */ + fun executeAsync(operation: GetPropertyGuestReviewsOperation): CompletableFuture> = executeAsync(operation) + + private suspend inline fun kgetPropertyGuestReviewsWithResponse( + propertyId: kotlin.String, + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + filter: kotlin.collections.List< + GetPropertyGuestReviewsOperationParams.Filter + >? = + null, + tripReason: kotlin.collections.List< + GetPropertyGuestReviewsOperationParams.TripReason + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + val params = + GetPropertyGuestReviewsOperationParams( + propertyId = propertyId, + customerSessionId = customerSessionId, + language = language, + filter = filter, + tripReason = tripReason, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetPropertyGuestReviewsOperation( + params + ) + + return execute(operation) + } + + /** + * Property Guest Reviews + * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. + * @param propertyId Expedia Property ID. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param filter Single filter value. Send multiple instances of this parameter to request multiple filters. * `language` - Filters reviews to only those that match the specified `language` parameter value. Without this filter, the matching language will be preferred, but other language results can be returned. Specifying this filter could produce an error when there are no matching results. (optional) + * @param tripReason Desired reason provided for the reviewer's trip that you wish to display. This parameter can be supplied multiple times with different values, which will include reviews that match any of the requested trip reasons. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return GuestReviews + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyGuestReviewsOperation)")) + fun getPropertyGuestReviews( + propertyId: kotlin.String, + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + filter: kotlin.collections.List< + GetPropertyGuestReviewsOperationParams.Filter + >? = + null, + tripReason: kotlin.collections.List< + GetPropertyGuestReviewsOperationParams.TripReason + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): GuestReviews = getPropertyGuestReviewsWithResponse(propertyId, language, customerSessionId, filter, tripReason, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Property Guest Reviews + * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. + * @param propertyId Expedia Property ID. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param filter Single filter value. Send multiple instances of this parameter to request multiple filters. * `language` - Filters reviews to only those that match the specified `language` parameter value. Without this filter, the matching language will be preferred, but other language results can be returned. Specifying this filter could produce an error when there are no matching results. (optional) + * @param tripReason Desired reason provided for the reviewer's trip that you wish to display. This parameter can be supplied multiple times with different values, which will include reviews that match any of the requested trip reasons. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type GuestReviews + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyGuestReviewsOperation)")) + fun getPropertyGuestReviewsWithResponse( + propertyId: kotlin.String, + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + filter: kotlin.collections.List< + GetPropertyGuestReviewsOperationParams.Filter + >? = + null, + tripReason: kotlin.collections.List< + GetPropertyGuestReviewsOperationParams.TripReason + >? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetPropertyGuestReviewsWithResponse(propertyId, language, customerSessionId, filter, tripReason, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Rate Amenities Reference + * Returns a complete collection of rate amenities available in the Rapid API. + * @param operation [GetRateAmenitiesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetRateAmenitiesReferenceOperation): Response> = + execute>(operation) + + /** + * Rate Amenities Reference + * Returns a complete collection of rate amenities available in the Rapid API. + * @param operation [GetRateAmenitiesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetRateAmenitiesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetRateAmenitiesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetRateAmenitiesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetRateAmenitiesReferenceOperation( + params + ) + + return execute(operation) + } + + /** + * Rate Amenities Reference + * Returns a complete collection of rate amenities available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRateAmenitiesReferenceOperation)")) + fun getRateAmenitiesReference( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): kotlin.collections.Map = getRateAmenitiesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Rate Amenities Reference + * Returns a complete collection of rate amenities available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRateAmenitiesReferenceOperation)")) + fun getRateAmenitiesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetRateAmenitiesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Region + * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. + * @param operation [GetRegionOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type Region + */ + fun execute(operation: GetRegionOperation): Response = execute(operation) + + /** + * Region + * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. + * @param operation [GetRegionOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type Region + */ + fun executeAsync(operation: GetRegionOperation): CompletableFuture> = executeAsync(operation) + + private suspend inline fun kgetRegionWithResponse( + regionId: kotlin.String, + language: kotlin.String, + include: kotlin.collections.List< + GetRegionOperationParams.Include + >, + customerSessionId: kotlin.String? = + null, + supplySource: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + val params = + GetRegionOperationParams( + regionId = regionId, + customerSessionId = customerSessionId, + language = language, + include = include, + supplySource = supplySource, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetRegionOperation( + params + ) + + return execute(operation) + } + + /** + * Region + * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. + * @param regionId ID of the region to retrieve. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The value must be lower case. * details - Include the metadata, coordinates and full hierarchy of the region. * property_ids - Include the list of property IDs within the bounding polygon of the region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of the region and property IDs from the surrounding area if minimal properties are within the region. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return Region + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionOperation)")) + fun getRegion( + regionId: kotlin.String, + language: kotlin.String, + include: kotlin.collections.List< + GetRegionOperationParams.Include + >, + customerSessionId: kotlin.String? = + null, + supplySource: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Region = getRegionWithResponse(regionId, language, include, customerSessionId, supplySource, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Region + * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. + * @param regionId ID of the region to retrieve. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The value must be lower case. * details - Include the metadata, coordinates and full hierarchy of the region. * property_ids - Include the list of property IDs within the bounding polygon of the region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of the region and property IDs from the surrounding area if minimal properties are within the region. + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type Region + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionOperation)")) + fun getRegionWithResponse( + regionId: kotlin.String, + language: kotlin.String, + include: kotlin.collections.List< + GetRegionOperationParams.Include + >, + customerSessionId: kotlin.String? = + null, + supplySource: kotlin.String? = + null, + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetRegionWithResponse(regionId, language, include, customerSessionId, supplySource, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } + } + + /** + * Regions + * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. + * @param operation [GetRegionsOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.List + */ + fun execute(operation: GetRegionsOperation): Response> = execute>(operation) + + /** + * Regions + * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. + * @param operation [GetRegionsOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.List + */ + fun executeAsync(operation: GetRegionsOperation): CompletableFuture>> = executeAsync>(operation) + + private suspend inline fun kgetRegionsWithResponse( + include: kotlin.collections.List< + GetRegionsOperationParams.Include + >, + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + ancestorId: kotlin.String? = + null, + area: kotlin.String? = + null, + countryCode: kotlin.collections.List< kotlin.String >? = null, - brandId: kotlin.collections.List< + countrySubdivisionCode: kotlin.collections.List< kotlin.String >? = null, - businessModel: kotlin.collections.List< - GetPropertyContentOperationParams.BusinessModel - >? = + iataLocationCode: kotlin.String? = null, - categoryId: kotlin.collections.List< + limit: java.math.BigDecimal? = + null, + supplySource: kotlin.String? = + null, + type: kotlin.collections.List< kotlin.String >? = null, - categoryIdExclude: kotlin.collections.List< - kotlin.String - >? = + billingTerms: kotlin.String? = + null, + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = + null + ): Response> { + val params = + GetRegionsOperationParams( + customerSessionId = customerSessionId, + include = include, + language = language, + ancestorId = ancestorId, + area = area, + countryCode = countryCode, + countrySubdivisionCode = countrySubdivisionCode, + iataLocationCode = iataLocationCode, + limit = limit, + supplySource = supplySource, + type = type, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + val operation = + GetRegionsOperation( + params + ) + + return execute(operation) + } + + /** + * Regions + * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. + * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The standard and details options cannot be requested together. The value must be lower case. * standard - Include the metadata and basic hierarchy of each region. * details - Include the metadata, coordinates and full hierarchy of each region. * property_ids - Include the list of property IDs within the bounding polygon of each region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of each region and property IDs from the surrounding area if minimal properties are within the region. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param ancestorId Search for regions whose ancestors include the requested ancestor region ID. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists). (optional) + * @param area Filter the results to regions that intersect with a specified area.

    The area may be defined in one of two ways: * radius,region_id * radius,latitude,longitude Radius combined with region id would search an area that extends the number of kilometers out from the boundaries of the region in all directions.
    Radius combined with a single point, specified by a latitude, longitude pair would search an area in a circle with the specified radius and the point as the center.
    Radius should be specified in non-negative whole kilometers, decimals will return an error. A radius of 0 is allowed.
    When specifying the area parameter, there will be a limit of 100 results, which can be narrowed further by the limit parameter.
    Due to the number of results, unless `point_of_interest` is specified as the only type, regions of type `point_of_interest` will not be included in a request that filters to an area.

    An example use case would be searching for the closest 3 airports within 50 kilometers of a specified point.
    `&type=airport&limit=3&area=50,37.227924,-93.310036` (optional) + * @param countryCode Filter the results to a specified ISO 3166-1 alpha-2 country code. For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/) (optional) + * @param countrySubdivisionCode Filter the results down to only the ISO 3166-2 country subdivision. (optional) + * @param iataLocationCode Search for regions by the requested 3-character IATA location code, which will apply to both iata_airport_code and iata_airport_metro_code. The code must be upper case. (optional) + * @param limit Limit the number of results returned. Using the area parameter will impose a max value of 100 for this whether specified or not. (optional) + * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) + * @param type Filter the results to a specified region type. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.List + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionsOperation)")) + fun getRegions( + include: kotlin.collections.List< + GetRegionsOperationParams.Include + >, + language: kotlin.String, + customerSessionId: kotlin.String? = + null, + ancestorId: kotlin.String? = null, - chainId: kotlin.collections.List< - kotlin.String - >? = + area: kotlin.String? = null, countryCode: kotlin.collections.List< kotlin.String >? = null, - dateAddedEnd: kotlin.String? = - null, - dateAddedStart: kotlin.String? = - null, - dateUpdatedEnd: kotlin.String? = - null, - dateUpdatedStart: kotlin.String? = - null, - include: kotlin.collections.List< + countrySubdivisionCode: kotlin.collections.List< kotlin.String >? = null, - multiUnit: kotlin.Boolean? = - null, - propertyId: kotlin.collections.List< - kotlin.String - >? = + iataLocationCode: kotlin.String? = null, - propertyRatingMax: kotlin.String? = + limit: java.math.BigDecimal? = null, - propertyRatingMin: kotlin.String? = + supplySource: kotlin.String? = null, - spokenLanguageId: kotlin.collections.List< + type: kotlin.collections.List< kotlin.String >? = null, @@ -2213,30 +4180,19 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): kotlin.collections.Map = - getPropertyContentWithResponse( + ): kotlin.collections.List = + getRegionsWithResponse( + include, language, - supplySource, customerSessionId, - allInclusive, - amenityId, - attributeId, - brandId, - businessModel, - categoryId, - categoryIdExclude, - chainId, + ancestorId, + area, countryCode, - dateAddedEnd, - dateAddedStart, - dateUpdatedEnd, - dateUpdatedStart, - include, - multiUnit, - propertyId, - propertyRatingMax, - propertyRatingMin, - spokenLanguageId, + countrySubdivisionCode, + iataLocationCode, + limit, + supplySource, + type, billingTerms, partnerPointOfSale, paymentTerms, @@ -2244,106 +4200,57 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ).data /** - * Property Content - * Search property content for active properties in the requested language.

    When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

    When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` header in the 200 response section.

    The response is a JSON map where the key is the property ID and the value is the property object itself, which can include property-level, room-level and rate-level information. + * Regions + * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. + * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The standard and details options cannot be requested together. The value must be lower case. * standard - Include the metadata and basic hierarchy of each region. * details - Include the metadata, coordinates and full hierarchy of each region. * property_ids - Include the list of property IDs within the bounding polygon of each region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of each region and property IDs from the surrounding area if minimal properties are within the region. * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param allInclusive Search to include properties that have the requested `all_inclusive` values equal to true. If this parameter is not supplied, all `all_inclusive` scenarios are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested scenarios. * `all_rate_plans` - Return properties where `all_inclusive.all_rate_plans` is true. * `some_rate_plans` = Return properties where `all_inclusive.some_rate_plans` is true. (optional) - * @param amenityId The ID of the amenity you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested amenity IDs. This is currently only capable of searching for property level amenities. Room and rate level amenities cannot be searched on. (optional) - * @param attributeId The ID of the attribute you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested attribute IDs. (optional) - * @param brandId The ID of the brand you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested brand IDs. (optional) - * @param businessModel Search for properties with the requested business model enabled. This parameter can be supplied multiple times with different values, which will return all properties that match any of the requested business models. The value must be lower case. * `expedia_collect` - Return only properties where the payment is collected by Expedia. * `property_collect` - Return only properties where the payment is collected at the property. (optional) - * @param categoryId Search to include properties that have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested category IDs. (optional) - * @param categoryIdExclude Search to exclude properties that do not have the requested [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times with different values, which will exclude properties that match any of the requested category IDs. (optional) - * @param chainId The ID of the chain you want to search for. These chain IDs can be positive and negative numbers. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested chain IDs. (optional) - * @param countryCode Search for properties with the requested country code, in ISO 3166-1 alpha-2 format. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested country codes. (optional) - * @param dateAddedEnd Search for properties added on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param dateAddedStart Search for properties added on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param dateUpdatedEnd Search for properties updated on or before the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param dateUpdatedStart Search for properties updated on or after the requested UTC date, in ISO 8601 format (YYYY-MM-DD) (optional) - * @param include Each time this parameter is specified will add to the list of fields and associated objects returned in the response. All values and field names are lower case. The values `property_ids` and `catalog` will continue to behave as specified below for backwards compatibility. All other top level field names will add the specified field to the list of fields returned in the response. See the response schema for a full list of top level field names. Additionally, the field `property_id` will always be returned regardless of what include values are passed.

    Possible values: * `property_ids` - ***DEPRECATED*** - Please use `property_id` which matches the response field name. * `catalog` - Include all property catalog fields. See [Property Catalog File endpoint](https://developers.expediagroup.com/docs/rapid/resources/rapid-api#get-/files/properties/catalog) for a list of fields. * `property_id` - Passing in the value `property_id` and no other values will limit the response to only `property_id`. Not necessary to include in combination with other field name values, as it will always be returned. * All field names found at the top level of the property content response are now valid values for inclusion. (optional) - * @param multiUnit Search for multi-unit properties. If this parameter is not supplied, both single-unit and multi-unit properties will be included. * `true` - Include only properties that are multi-unit. * `false` - Do not include properties that are multi-unit. (optional) - * @param propertyId The ID of the property you want to search for. You can provide 1 to 250 property_id parameters. (optional) - * @param propertyRatingMax Search for properties with a property rating less than or equal to the requested rating. The highest property rating value is 5.0. (optional) - * @param propertyRatingMin Search for properties with a property rating greater than or equal to the requested rating. The lowest property rating value is 0.0. (optional) - * @param spokenLanguageId The id of the spoken language you want to search for. This parameter can be supplied multiple times with different values, which will include properties that match any of the requested spoken languages. The language code as a subset of BCP47 format. (optional) + * @param ancestorId Search for regions whose ancestors include the requested ancestor region ID. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists). (optional) + * @param area Filter the results to regions that intersect with a specified area.

    The area may be defined in one of two ways: * radius,region_id * radius,latitude,longitude Radius combined with region id would search an area that extends the number of kilometers out from the boundaries of the region in all directions.
    Radius combined with a single point, specified by a latitude, longitude pair would search an area in a circle with the specified radius and the point as the center.
    Radius should be specified in non-negative whole kilometers, decimals will return an error. A radius of 0 is allowed.
    When specifying the area parameter, there will be a limit of 100 results, which can be narrowed further by the limit parameter.
    Due to the number of results, unless `point_of_interest` is specified as the only type, regions of type `point_of_interest` will not be included in a request that filters to an area.

    An example use case would be searching for the closest 3 airports within 50 kilometers of a specified point.
    `&type=airport&limit=3&area=50,37.227924,-93.310036` (optional) + * @param countryCode Filter the results to a specified ISO 3166-1 alpha-2 country code. For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/) (optional) + * @param countrySubdivisionCode Filter the results down to only the ISO 3166-2 country subdivision. (optional) + * @param iataLocationCode Search for regions by the requested 3-character IATA location code, which will apply to both iata_airport_code and iata_airport_metro_code. The code must be upper case. (optional) + * @param limit Limit the number of results returned. Using the area parameter will impose a max value of 100 for this whether specified or not. (optional) + * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) + * @param type Filter the results to a specified region type. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.Map + * @return a [Response] object with a body of type kotlin.collections.List */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentOperation)")) - fun getPropertyContentWithResponse( + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionsOperation)")) + fun getRegionsWithResponse( + include: kotlin.collections.List< + GetRegionsOperationParams.Include + >, language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, - allInclusive: kotlin.collections.List< - kotlin.String - >? = - null, - amenityId: kotlin.collections.List< - kotlin.String - >? = - null, - attributeId: kotlin.collections.List< - kotlin.String - >? = - null, - brandId: kotlin.collections.List< - kotlin.String - >? = - null, - businessModel: kotlin.collections.List< - GetPropertyContentOperationParams.BusinessModel - >? = - null, - categoryId: kotlin.collections.List< - kotlin.String - >? = - null, - categoryIdExclude: kotlin.collections.List< - kotlin.String - >? = + ancestorId: kotlin.String? = null, - chainId: kotlin.collections.List< - kotlin.String - >? = + area: kotlin.String? = null, countryCode: kotlin.collections.List< kotlin.String >? = null, - dateAddedEnd: kotlin.String? = - null, - dateAddedStart: kotlin.String? = - null, - dateUpdatedEnd: kotlin.String? = - null, - dateUpdatedStart: kotlin.String? = - null, - include: kotlin.collections.List< + countrySubdivisionCode: kotlin.collections.List< kotlin.String >? = null, - multiUnit: kotlin.Boolean? = - null, - propertyId: kotlin.collections.List< - kotlin.String - >? = + iataLocationCode: kotlin.String? = null, - propertyRatingMax: kotlin.String? = + limit: java.math.BigDecimal? = null, - propertyRatingMin: kotlin.String? = + supplySource: kotlin.String? = null, - spokenLanguageId: kotlin.collections.List< + type: kotlin.collections.List< kotlin.String >? = null, @@ -2355,32 +4262,21 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetPropertyContentWithResponse( + kgetRegionsWithResponse( + include, language, - supplySource, customerSessionId, - allInclusive, - amenityId, - attributeId, - brandId, - businessModel, - categoryId, - categoryIdExclude, - chainId, + ancestorId, + area, countryCode, - dateAddedEnd, - dateAddedStart, - dateUpdatedEnd, - dateUpdatedStart, - include, - multiUnit, - propertyId, - propertyRatingMax, - propertyRatingMin, - spokenLanguageId, + countrySubdivisionCode, + iataLocationCode, + limit, + supplySource, + type, billingTerms, partnerPointOfSale, paymentTerms, @@ -2393,77 +4289,39 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } @JvmOverloads - fun getPaginator(operation: GetPropertyContentOperation): ResponsePaginator> { + fun getPaginator(operation: GetRegionsOperation): ResponsePaginator> { val response = execute(operation) - return ResponsePaginator(this, response, emptyMap()) { it.body>() } + return ResponsePaginator(this, response, emptyList()) { it.body>() } } @JvmOverloads - @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetPropertyContentOperation)")) - fun getPropertyContentPaginator( + @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetRegionsOperation)")) + fun getRegionsPaginator( + include: kotlin.collections.List< + GetRegionsOperationParams.Include + >, language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, - allInclusive: kotlin.collections.List< - kotlin.String - >? = - null, - amenityId: kotlin.collections.List< - kotlin.String - >? = - null, - attributeId: kotlin.collections.List< - kotlin.String - >? = - null, - brandId: kotlin.collections.List< - kotlin.String - >? = - null, - businessModel: kotlin.collections.List< - GetPropertyContentOperationParams.BusinessModel - >? = - null, - categoryId: kotlin.collections.List< - kotlin.String - >? = - null, - categoryIdExclude: kotlin.collections.List< - kotlin.String - >? = + ancestorId: kotlin.String? = null, - chainId: kotlin.collections.List< - kotlin.String - >? = + area: kotlin.String? = null, countryCode: kotlin.collections.List< kotlin.String >? = null, - dateAddedEnd: kotlin.String? = - null, - dateAddedStart: kotlin.String? = - null, - dateUpdatedEnd: kotlin.String? = - null, - dateUpdatedStart: kotlin.String? = - null, - include: kotlin.collections.List< - kotlin.String - >? = - null, - multiUnit: kotlin.Boolean? = - null, - propertyId: kotlin.collections.List< + countrySubdivisionCode: kotlin.collections.List< kotlin.String >? = null, - propertyRatingMax: kotlin.String? = + iataLocationCode: kotlin.String? = null, - propertyRatingMin: kotlin.String? = + limit: java.math.BigDecimal? = null, - spokenLanguageId: kotlin.collections.List< + supplySource: kotlin.String? = + null, + type: kotlin.collections.List< kotlin.String >? = null, @@ -2475,105 +4333,56 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Paginator> { + ): Paginator> { val response = - getPropertyContentWithResponse( + getRegionsWithResponse( + include, language, - supplySource, customerSessionId, - allInclusive, - amenityId, - attributeId, - brandId, - businessModel, - categoryId, - categoryIdExclude, - chainId, + ancestorId, + area, countryCode, - dateAddedEnd, - dateAddedStart, - dateUpdatedEnd, - dateUpdatedStart, - include, - multiUnit, - propertyId, - propertyRatingMax, - propertyRatingMin, - spokenLanguageId, + countrySubdivisionCode, + iataLocationCode, + limit, + supplySource, + type, billingTerms, partnerPointOfSale, paymentTerms, platformName ) - return Paginator(this, response, emptyMap()) { it.body>() } + return Paginator(this, response, emptyList()) { it.body>() } } @JvmOverloads - @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetPropertyContentOperation)")) - fun getPropertyContentPaginatorWithResponse( + @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetRegionsOperation)")) + fun getRegionsPaginatorWithResponse( + include: kotlin.collections.List< + GetRegionsOperationParams.Include + >, language: kotlin.String, - supplySource: kotlin.String, customerSessionId: kotlin.String? = null, - allInclusive: kotlin.collections.List< - kotlin.String - >? = - null, - amenityId: kotlin.collections.List< - kotlin.String - >? = - null, - attributeId: kotlin.collections.List< - kotlin.String - >? = - null, - brandId: kotlin.collections.List< - kotlin.String - >? = - null, - businessModel: kotlin.collections.List< - GetPropertyContentOperationParams.BusinessModel - >? = - null, - categoryId: kotlin.collections.List< - kotlin.String - >? = - null, - categoryIdExclude: kotlin.collections.List< - kotlin.String - >? = + ancestorId: kotlin.String? = null, - chainId: kotlin.collections.List< - kotlin.String - >? = + area: kotlin.String? = null, countryCode: kotlin.collections.List< kotlin.String >? = null, - dateAddedEnd: kotlin.String? = - null, - dateAddedStart: kotlin.String? = - null, - dateUpdatedEnd: kotlin.String? = - null, - dateUpdatedStart: kotlin.String? = - null, - include: kotlin.collections.List< + countrySubdivisionCode: kotlin.collections.List< kotlin.String >? = null, - multiUnit: kotlin.Boolean? = - null, - propertyId: kotlin.collections.List< - kotlin.String - >? = + iataLocationCode: kotlin.String? = null, - propertyRatingMax: kotlin.String? = + limit: java.math.BigDecimal? = null, - propertyRatingMin: kotlin.String? = + supplySource: kotlin.String? = null, - spokenLanguageId: kotlin.collections.List< + type: kotlin.collections.List< kotlin.String >? = null, @@ -2585,84 +4394,194 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): ResponsePaginator> { + ): ResponsePaginator> { val response = - getPropertyContentWithResponse( + getRegionsWithResponse( + include, language, - supplySource, customerSessionId, - allInclusive, - amenityId, - attributeId, - brandId, - businessModel, - categoryId, - categoryIdExclude, - chainId, + ancestorId, + area, countryCode, - dateAddedEnd, - dateAddedStart, - dateUpdatedEnd, - dateUpdatedStart, - include, - multiUnit, - propertyId, - propertyRatingMax, - propertyRatingMin, - spokenLanguageId, + countrySubdivisionCode, + iataLocationCode, + limit, + supplySource, + type, billingTerms, partnerPointOfSale, paymentTerms, platformName ) - return ResponsePaginator(this, response, emptyMap()) { it.body>() } + return ResponsePaginator(this, response, emptyList()) { it.body>() } + } + + /** + * Search for and retrieve Bookings with Affiliate Reference Id + * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. + * @param operation [GetReservationOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.List + */ + fun execute(operation: GetReservationOperation): Response> = execute>(operation) + + /** + * Search for and retrieve Bookings with Affiliate Reference Id + * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. + * @param operation [GetReservationOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.List + */ + fun executeAsync(operation: GetReservationOperation): CompletableFuture>> = executeAsync>(operation) + + private suspend inline fun kgetReservationWithResponse( + customerIp: kotlin.String, + affiliateReferenceId: kotlin.String, + email: kotlin.String, + customerSessionId: kotlin.String? = + null, + test: GetReservationOperationParams.Test? = + null, + include: kotlin.collections.List< + GetReservationOperationParams.Include + >? = + null + ): Response> { + val params = + GetReservationOperationParams( + customerIp = customerIp, + customerSessionId = customerSessionId, + test = test, + affiliateReferenceId = affiliateReferenceId, + email = email, + include = include + ) + + val operation = + GetReservationOperation( + params + ) + + return execute(operation) + } + + /** + * Search for and retrieve Bookings with Affiliate Reference Id + * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. + * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. + * @param affiliateReferenceId The affilliate reference id value. This field supports a maximum of 28 characters. + * @param email Email associated with the booking. Special characters in the local part or domain should be encoded.
    + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` (optional) + * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.List + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationOperation)")) + fun getReservation( + customerIp: kotlin.String, + affiliateReferenceId: kotlin.String, + email: kotlin.String, + customerSessionId: kotlin.String? = + null, + test: GetReservationOperationParams.Test? = + null, + include: kotlin.collections.List< + GetReservationOperationParams.Include + >? = + null + ): kotlin.collections.List = getReservationWithResponse(customerIp, affiliateReferenceId, email, customerSessionId, test, include).data + + /** + * Search for and retrieve Bookings with Affiliate Reference Id + * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. + * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. + * @param affiliateReferenceId The affilliate reference id value. This field supports a maximum of 28 characters. + * @param email Email associated with the booking. Special characters in the local part or domain should be encoded.
    + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` (optional) + * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.List + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationOperation)")) + fun getReservationWithResponse( + customerIp: kotlin.String, + affiliateReferenceId: kotlin.String, + email: kotlin.String, + customerSessionId: kotlin.String? = + null, + test: GetReservationOperationParams.Test? = + null, + include: kotlin.collections.List< + GetReservationOperationParams.Include + >? = + null + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetReservationWithResponse(customerIp, affiliateReferenceId, email, customerSessionId, test, include) + }.get() + } catch (exception: Exception) { + exception.handle() + } } /** - * Property Content File - * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` - * @param operation [GetPropertyContentFileOperation] + * Retrieve Booking + * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. + * @param operation [GetReservationByItineraryIdOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Link + * @return a [Response] object with a body of type Itinerary */ - fun execute(operation: GetPropertyContentFileOperation): Response = execute(operation) + fun execute(operation: GetReservationByItineraryIdOperation): Response = execute(operation) /** - * Property Content File - * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` - * @param operation [GetPropertyContentFileOperation] + * Retrieve Booking + * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. + * @param operation [GetReservationByItineraryIdOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type Link + * @return a [CompletableFuture] object with a body of type Itinerary */ - fun executeAsync(operation: GetPropertyContentFileOperation): CompletableFuture> = executeAsync(operation) + fun executeAsync(operation: GetReservationByItineraryIdOperation): CompletableFuture> = executeAsync(operation) - private suspend inline fun kgetPropertyContentFileWithResponse( - language: kotlin.String, - supplySource: kotlin.String, + private suspend inline fun kgetReservationByItineraryIdWithResponse( + customerIp: kotlin.String, + itineraryId: kotlin.String, customerSessionId: kotlin.String? = null, - billingTerms: kotlin.String? = + test: GetReservationByItineraryIdOperationParams.Test? = null, - partnerPointOfSale: kotlin.String? = + token: kotlin.String? = null, - paymentTerms: kotlin.String? = + email: kotlin.String? = null, - platformName: kotlin.String? = + include: kotlin.collections.List< + GetReservationByItineraryIdOperationParams.Include + >? = null - ): Response { + ): Response { val params = - GetPropertyContentFileOperationParams( + GetReservationByItineraryIdOperationParams( + itineraryId = itineraryId, + customerIp = customerIp, customerSessionId = customerSessionId, - language = language, - supplySource = supplySource, - billingTerms = billingTerms, - partnerPointOfSale = partnerPointOfSale, - paymentTerms = paymentTerms, - platformName = platformName + test = test, + token = token, + email = email, + include = include ) val operation = - GetPropertyContentFileOperation( + GetReservationByItineraryIdOperation( params ) @@ -2670,73 +4589,77 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Content File - * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` - * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * Retrieve Booking + * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. + * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. + * @param itineraryId This parameter is used only to prefix the token value - no ID value is used.
    * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) - * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) - * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) - * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` (optional) + * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. (optional) + * @param email Email associated with the booking. Special characters in the local part or domain should be encoded. (Email is required if the token is not provided the request)
    (optional) + * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) * @throws ExpediaGroupApiErrorException - * @return Link + * @return Itinerary */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentFileOperation)")) - fun getPropertyContentFile( - language: kotlin.String, - supplySource: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationByItineraryIdOperation)")) + fun getReservationByItineraryId( + customerIp: kotlin.String, + itineraryId: kotlin.String, customerSessionId: kotlin.String? = null, - billingTerms: kotlin.String? = + test: GetReservationByItineraryIdOperationParams.Test? = null, - partnerPointOfSale: kotlin.String? = + token: kotlin.String? = null, - paymentTerms: kotlin.String? = + email: kotlin.String? = null, - platformName: kotlin.String? = + include: kotlin.collections.List< + GetReservationByItineraryIdOperationParams.Include + >? = null - ): Link = getPropertyContentFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + ): Itinerary = getReservationByItineraryIdWithResponse(customerIp, itineraryId, customerSessionId, test, token, email, include).data /** - * Property Content File - * Returns a link to download all content for all of EPS’s active properties in the requested language. The response includes property-level, room-level and rate-level information.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call.
    Example of a JSONL file with 2 properties: ``` {\"property_id\":\"12345\",\"name\":\"Test Property Name\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":false,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345\"},\"fr-FR\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":48382,\"overall\":\"3.1\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"73%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838}},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":false},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":20,\"square_feet\":215},\"views\":{\"4146\":{\"id\":\"4146\",\"name\":\"Courtyard view\"}},\"occupancy\":{\"max_allowed\":{\"total\":5,\"children\":2,\"adults\":4},\"age_categories\":{\"Adult\":{\"name\":\"Adult\",\"minimum_age\":9}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-19T05:00:00.000Z\",\"updated\":\"2018-03-22T07:23:14.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"AB-012-987-1234-01\",\"chain\":{\"id\":\"-6\",\"name\":\"Hyatt Hotels\"},\"brand\":{\"id\":\"2209\",\"name\":\"Hyatt Place\"},\"spoken_languages\":{\"vi\":{\"id\":\"vi\",\"name\":\"Vietnamese\"}},\"multi_unit\":true,\"payment_registration_recommended\":false,\"vacation_rental_details\": {\"registry_number\": \"Property Registration Number 123456\",\"private_host\": \"true\",\"property_manager\": {\"name\": \"Victor\",\"links\": {\"image\": {\"method\": \"GET\",\"href\": \"https://test-image/test/test/836f1097-fbcf-43b5-bc02-c8ff6658cb90.c1.jpg\"}}},\"rental_agreement\": {\"links\": {\"rental_agreement\": {\"method\": \"GET\",\"href\": \"https://test-link.test.amazonaws.com/rentalconditions_property_d65e7eb5-4a7c-4a80-a8a3-171999f9f444.pdf\"}}},\"house_rules\": [\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\": {\"4296\": {\"id\": \"4296\",\"name\": \"Furnished balcony or patio\"},\"2859\": {\"id\": \"2859\",\"name\": \"Private pool\"}},\"vrbo_srp_id\": \"123.1234567.5678910\",\"listing_id\": \"1234567\",\"listing_number\": \"5678910\",\"listing_source\": \"HOMEAWAY_US\",\"listing_unit\": \"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} {\"property_id\":\"67890\",\"name\":\"Test Property Name 2\",\"address\":{\"line_1\":\"123 Main St\",\"line_2\":\"Apt A\",\"city\":\"Springfield\",\"state_province_code\":\"MO\",\"state_province_name\":\"Missouri\",\"postal_code\":\"65804\",\"country_code\":\"US\",\"obfuscation_required\":true,\"localized\":{\"links\":{\"es-ES\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890\"},\"de-DE\":{\"method\":\"GET\",\"href\":\"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890\"}}}},\"ratings\":{\"property\":{\"rating\":\"3.5\",\"type\":\"Star\"},\"guest\":{\"count\":7651,\"overall\":\"4.3\",\"cleanliness\":\"4.2\",\"service\":\"1.1\",\"comfort\":\"4.3\",\"condition\":\"1.6\",\"location\":\"4.0\",\"neighborhood\":\"3.4\",\"quality\":\"3.4\",\"value\":\"2.2\",\"amenities\":\"1.4\",\"recommendation_percent\":\"80%\"}},\"location\":{\"coordinates\":{\"latitude\":37.15845,\"longitude\":-93.26838},\"obfuscated_coordinates\":{\"latitude\":28.339303,\"longitude\":-81.47791},\"obfuscation_required\":true},\"phone\":\"1-417-862-0153\",\"fax\":\"1-417-863-7249\",\"category\":{\"id\":\"1\",\"name\":\"Hotel\"},\"rank\":42,\"business_model\":{\"expedia_collect\":true,\"property_collect\":true},\"checkin\":{\"24_hour\":\"24-hour check-in\",\"begin_time\":\"3:00 PM\",\"end_time\":\"11:00 PM\",\"instructions\":\"Extra-person charges may apply and vary depending on hotel policy. <br />Government-issued photo identification and a credit card or cash deposit are required at check-in for incidental charges. <br />Special requests are subject to availability upon check-in and may incur additional charges. Special requests cannot be guaranteed. <br />\",\"special_instructions\":\"There is no front desk at this property. To make arrangements for check-in please contact the property ahead of time using the information on the booking confirmation.\",\"min_age\":18},\"checkout\":{\"time\":\"11:00 AM\"},\"fees\":{\"mandatory\":\"

    You'll be asked to pay the following charges at the hotel:

    • Deposit: USD 50 per day
    • Resort fee: USD 29.12 per accommodation, per night
    The hotel resort fee includes:
    • Fitness center access
    • Internet access
    • Phone calls
    • Additional inclusions

    We have included all charges provided to us by the property. However, charges can vary, for example, based on length of stay or the room you book.

    \",\"optional\":\"Fee for in-room wireless Internet: USD 15 per hour (rates may vary)
  • Airport shuttle fee: USD 350 per vehicle (one way)
  • Rollaway bed fee: USD 175 per night
  • \"},\"policies\":{\"know_before_you_go\":\"Reservations are required for massage services and spa treatments. Reservations can be made by contacting the hotel prior to arrival, using the contact information on the booking confirmation.
  • Children 11 years old and younger stay free when occupying the parent or guardian's room, using existing bedding.
  • Only registered guests are allowed in the guestrooms.
  • Some facilities may have restricted access. Guests can contact the property for details using the contact information on the booking confirmation.
  • \"},\"attributes\":{\"general\":{\"2549\":{\"id\":\"2549\",\"name\":\"No elevators\"},\"3357\":{\"id\":\"3357\",\"name\":\"Caters to adults only\"}},\"pets\":{\"51\":{\"id\":\"51\",\"name\":\"Pets allowed\"},\"2809\":{\"id\":\"2809\",\"name\":\"Dogs only\"},\"3321\":{\"id\":\"3321\",\"name\":\"Pet maximum weight in kg is - 24\",\"value\":24}}},\"amenities\":{\"9\":{\"id\":\"9\",\"name\":\"Fitness facilities\"},\"2820\":{\"id\":\"2820\",\"name\":\"Number of indoor pools - 10\",\"value\":10}},\"images\":[{\"caption\":\"Featured Image\",\"hero_image\":true,\"category\":3,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}}}],\"onsite_payments\":{\"currency\":\"USD\",\"types\":{\"171\":{\"id\":\"171\",\"name\":\"American Express\"}}},\"rooms\":{\"224829\":{\"id\":\"224829\",\"name\":\"Single Room\",\"descriptions\":{\"overview\":\"2 Twin Beds
    269-sq-foot (25-sq-meter) room with mountain views

    Internet - Free WiFi
    Entertainment - Flat-screen TV with cable channels
    Food & Drink - Refrigerator, coffee/tea maker, room service, and free bottled water
    Sleep - Premium bedding
    Bathroom - Private bathroom, shower, bathrobes, and free toiletries
    Practical - Safe and desk; cribs/infant beds available on request
    Comfort - Climate-controlled air conditioning and daily housekeeping
    Non-Smoking
    \"},\"amenities\":{\"130\":{\"id\":\"130\",\"name\":\"Refrigerator\"},\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"}},\"images\":[{\"hero_image\":true,\"category\":21001,\"links\":{\"70px\":{\"method\":\"GET\",\"href\":\"https://i.travelapi.com/hotels/1000000/20000/15300/15237/bef1b976_t.jpg\"}},\"caption\":\"Guestroom\"}],\"bed_groups\":{\"37321\":{\"id\":\"37321\",\"description\":\"1 King Bed\",\"configuration\":[{\"type\":\"KingBed\",\"size\":\"King\",\"quantity\":1}]}},\"area\":{\"square_meters\":17},\"views\":{\"4134\":{\"id\":\"4134\",\"name\":\"City view\"}},\"occupancy\":{\"max_allowed\":{\"total\":3,\"children\":2,\"adults\":3},\"age_categories\":{\"ChildAgeA\":{\"name\":\"ChildAgeA\",\"minimum_age\":3}}}}},\"rates\":{\"333abc\":{\"id\":\"333abc\",\"amenities\":{\"1234\":{\"id\":\"1234\",\"name\":\"Test Amenity - 200\",\"value\":\"200\"},\"2104\":{\"id\":\"2104\",\"name\":\"Full Breakfast\"}},\"special_offer_description\":\"Breakfast for 2 - Rate includes the following:\\r\\n
    • Accommodations as selected
    • \\r\\n
    • Breakfast in hotel restaurant for up to 2 adults and children 12 years old and under registered in the same room
    • \\r\\n
    Must book this rate plan to receive benefits. Details provided at check-in. Taxes and gratuity may not be included. No refunds for any unused portion of offer. Offer subject to availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\\r\\n\"}},\"dates\":{\"added\":\"1998-07-20T05:00:00.000Z\",\"updated\":\"2018-03-22T13:33:17.000Z\"},\"descriptions\":{\"amenities\":\"Don't miss out on the many recreational opportunities, including an outdoor pool, a sauna, and a fitness center. Additional features at this hotel include complimentary wireless Internet access, concierge services, and an arcade/game room.\",\"dining\":\"Grab a bite at one of the hotel's 3 restaurants, or stay in and take advantage of 24-hour room service. Quench your thirst with your favorite drink at a bar/lounge. Buffet breakfasts are available daily for a fee.\",\"renovations\":\"During renovations, the hotel will make every effort to minimize noise and disturbance. The property will be renovating from 08 May 2017 to 18 May 2017 (completion date subject to change). The following areas are affected:
    • Fitness facilities
    \",\"national_ratings\":\"For the benefit of our customers, we have provided a rating based on our rating system.\",\"business_amenities\":\"Featured amenities include complimentary wired Internet access, a 24-hour business center, and limo/town car service. Event facilities at this hotel consist of a conference center and meeting rooms. Free self parking is available onsite.\",\"rooms\":\"Make yourself at home in one of the 334 air-conditioned rooms featuring LCD televisions. Complimentary wired and wireless Internet access keeps you connected, and satellite programming provides entertainment. Private bathrooms with separate bathtubs and showers feature deep soaking bathtubs and complimentary toiletries. Conveniences include phones, as well as safes and desks.\",\"attractions\":\"Distances are calculated in a straight line from the property's location to the point of interest or attraction, and may not reflect actual travel distance.

    Distances are displayed to the nearest 0.1 mile and kilometer.

    Sogo Department Store - 0.7 km / 0.4 mi
    National Museum of Natural Science - 1.1 km / 0.7 mi
    Shr-Hwa International Tower - 1.4 km / 0.8 mi
    Shinkong Mitsukoshi Department Store - 1.5 km / 0.9 mi
    Taichung Metropolitan Opera House - 1.7 km / 1 mi
    Tiger City Mall - 1.8 km / 1.1 mi
    Maple Garden Park - 1.9 km / 1.2 mi
    National Museum of Fine Arts - 2.1 km / 1.3 mi
    Feng Chia University - 2.4 km / 1.5 mi
    Bao An Temple - 2.5 km / 1.6 mi
    Fengjia Night Market - 2.5 km / 1.6 mi
    Zhonghua Night Market - 2.7 km / 1.7 mi
    Chonglun Park - 2.9 km / 1.8 mi
    Wan He Temple - 2.9 km / 1.8 mi
    Chungyo Department Store - 3.1 km / 1.9 mi

    The nearest airports are:
    Taichung (RMQ) - 12 km / 7.5 mi
    Taipei (TPE-Taoyuan Intl.) - 118.3 km / 73.5 mi
    Taipei (TSA-Songshan) - 135.5 km / 84.2 mi

    \",\"location\":\"This 4-star hotel is within close proximity of Shr-Hwa International Tower and Shinkong Mitsukoshi Department Store. A stay at Tempus Hotel Taichung places you in the heart of Taichung, convenient to Sogo Department Store and National Museum of Natural Science.\",\"headline\":\"Near National Museum of Natural Science\",\"general\":\"General description\"},\"statistics\":{\"52\":{\"id\":\"52\",\"name\":\"Total number of rooms - 820\",\"value\":\"820\"},\"54\":{\"id\":\"54\",\"name\":\"Number of floors - 38\",\"value\":\"38\"}},\"airports\":{\"preferred\":{\"iata_airport_code\":\"SGF\"}},\"themes\":{\"2337\":{\"id\":\"2337\",\"name\":\"Luxury Hotel\"},\"2341\":{\"id\":\"2341\",\"name\":\"Spa Hotel\"}},\"all_inclusive\":{\"all_rate_plans\":true,\"some_rate_plans\":false,\"details\":\"

    This resort is all-inclusive. Onsite food and beverages are included in the room price (some restrictions may apply).

    Activities and facilities/equipment
    Land activities

    • Fitness facilities

    Lessons/classes/games
    • Pilates
    • Yoga

    Entertainment

    • Onsite entertainment and activities
    • Onsite live performances

    \"},\"tax_id\":\"CD-012-987-1234-02\",\"chain\":{\"id\":\"-5\",\"name\":\"Hilton Worldwide\"},\"brand\":{\"id\":\"358\",\"name\":\"Hampton Inn\"},\"spoken_languages\":{\"en\":{\"id\":\"en\",\"name\":\"English\"}},\"multi_unit\":true,\"payment_registration_recommended\":true,\"vacation_rental_details\":{\"registry_number\":\"Property Registration Number 123456\",\"private_host\":\"true\",\"property_manager\":{\"name\":\"John Smith\",\"links\":{\"image\":{\"method\":\"GET\",\"href\":\"https://example.com/profile.jpg\"}}},\"rental_agreement\":{\"links\":{\"rental_agreement\":{\"method\":\"GET\",\"href\":\"https:/example.com/rentalconditions.pdf\"}}},\"house_rules\":[\"Children welcome\",\"No pets\",\"No smoking\",\"No parties or events\"],\"amenities\":{\"2859\":{\"id\":\"2859\",\"name\":\"Private pool\"},\"4296\":{\"id\":\"4296\",\"name\":\"Furnished balcony or patio\"}},\"vrbo_srp_id\":\"123.1234567.5678910\",\"listing_id\":\"1234567\",\"listing_number\":\"5678910\",\"listing_source\":\"HOMEAWAY_US\",\"listing_unit\":\"/units/0000/32d82dfa-1a48-45d6-9132-49fdbf1bfc60\"},\"supply_source\":\"vrbo\",\"registry_number\":\"Property Registration Number 123456\"} ``` - * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param supplySource Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. + * Retrieve Booking + * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. + * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. + * @param itineraryId This parameter is used only to prefix the token value - no ID value is used.
    * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) - * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) - * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) - * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` (optional) + * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. (optional) + * @param email Email associated with the booking. Special characters in the local part or domain should be encoded. (Email is required if the token is not provided the request)
    (optional) + * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Link + * @return a [Response] object with a body of type Itinerary */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyContentFileOperation)")) - fun getPropertyContentFileWithResponse( - language: kotlin.String, - supplySource: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationByItineraryIdOperation)")) + fun getReservationByItineraryIdWithResponse( + customerIp: kotlin.String, + itineraryId: kotlin.String, customerSessionId: kotlin.String? = null, - billingTerms: kotlin.String? = + test: GetReservationByItineraryIdOperationParams.Test? = null, - partnerPointOfSale: kotlin.String? = + token: kotlin.String? = null, - paymentTerms: kotlin.String? = + email: kotlin.String? = null, - platformName: kotlin.String? = + include: kotlin.collections.List< + GetReservationByItineraryIdOperationParams.Include + >? = null - ): Response { + ): Response { try { return GlobalScope.future(Dispatchers.IO) { - kgetPropertyContentFileWithResponse(language, supplySource, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + kgetReservationByItineraryIdWithResponse(customerIp, itineraryId, customerSessionId, test, token, email, include) }.get() } catch (exception: Exception) { exception.handle() @@ -2744,36 +4667,29 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Guest Reviews - * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. - * @param operation [GetPropertyGuestReviewsOperation] + * Room Amenities Reference + * Returns a complete collection of roomo amenities available in the Rapid API. + * @param operation [GetRoomAmenitiesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type GuestReviews + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetPropertyGuestReviewsOperation): Response = execute(operation) + fun execute(operation: GetRoomAmenitiesReferenceOperation): Response> = + execute>(operation) /** - * Property Guest Reviews - * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. - * @param operation [GetPropertyGuestReviewsOperation] + * Room Amenities Reference + * Returns a complete collection of roomo amenities available in the Rapid API. + * @param operation [GetRoomAmenitiesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type GuestReviews + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetPropertyGuestReviewsOperation): CompletableFuture> = executeAsync(operation) + fun executeAsync(operation: GetRoomAmenitiesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetPropertyGuestReviewsWithResponse( - propertyId: kotlin.String, + private suspend inline fun kgetRoomAmenitiesReferenceWithResponse( language: kotlin.String, customerSessionId: kotlin.String? = null, - filter: kotlin.collections.List< - GetPropertyGuestReviewsOperationParams.Filter - >? = - null, - tripReason: kotlin.collections.List< - GetPropertyGuestReviewsOperationParams.TripReason - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -2782,14 +4698,11 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response { + ): Response> { val params = - GetPropertyGuestReviewsOperationParams( - propertyId = propertyId, + GetRoomAmenitiesReferenceOperationParams( customerSessionId = customerSessionId, language = language, - filter = filter, - tripReason = tripReason, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -2797,7 +4710,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetPropertyGuestReviewsOperation( + GetRoomAmenitiesReferenceOperation( params ) @@ -2805,38 +4718,26 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Property Guest Reviews - * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. - * @param propertyId Expedia Property ID. + * Room Amenities Reference + * Returns a complete collection of roomo amenities available in the Rapid API. * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param filter Single filter value. Send multiple instances of this parameter to request multiple filters. * `language` - Filters reviews to only those that match the specified `language` parameter value. Without this filter, the matching language will be preferred, but other language results can be returned. Specifying this filter could produce an error when there are no matching results. (optional) - * @param tripReason Desired reason provided for the reviewer's trip that you wish to display. This parameter can be supplied multiple times with different values, which will include reviews that match any of the requested trip reasons. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return GuestReviews + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyGuestReviewsOperation)")) - fun getPropertyGuestReviews( - propertyId: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRoomAmenitiesReferenceOperation)")) + fun getRoomAmenitiesReference( language: kotlin.String, customerSessionId: kotlin.String? = null, - filter: kotlin.collections.List< - GetPropertyGuestReviewsOperationParams.Filter - >? = - null, - tripReason: kotlin.collections.List< - GetPropertyGuestReviewsOperationParams.TripReason - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -2845,41 +4746,29 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): GuestReviews = getPropertyGuestReviewsWithResponse(propertyId, language, customerSessionId, filter, tripReason, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + ): kotlin.collections.Map = getRoomAmenitiesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Property Guest Reviews - * Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. - * @param propertyId Expedia Property ID. + * Room Amenities Reference + * Returns a complete collection of roomo amenities available in the Rapid API. * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param filter Single filter value. Send multiple instances of this parameter to request multiple filters. * `language` - Filters reviews to only those that match the specified `language` parameter value. Without this filter, the matching language will be preferred, but other language results can be returned. Specifying this filter could produce an error when there are no matching results. (optional) - * @param tripReason Desired reason provided for the reviewer's trip that you wish to display. This parameter can be supplied multiple times with different values, which will include reviews that match any of the requested trip reasons. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type GuestReviews + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetPropertyGuestReviewsOperation)")) - fun getPropertyGuestReviewsWithResponse( - propertyId: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRoomAmenitiesReferenceOperation)")) + fun getRoomAmenitiesReferenceWithResponse( language: kotlin.String, customerSessionId: kotlin.String? = null, - filter: kotlin.collections.List< - GetPropertyGuestReviewsOperationParams.Filter - >? = - null, - tripReason: kotlin.collections.List< - GetPropertyGuestReviewsOperationParams.TripReason - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -2888,10 +4777,10 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetPropertyGuestReviewsWithResponse(propertyId, language, customerSessionId, filter, tripReason, billingTerms, partnerPointOfSale, paymentTerms, platformName) + kgetRoomAmenitiesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() @@ -2899,33 +4788,29 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Region - * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. - * @param operation [GetRegionOperation] + * Room Images Reference + * Returns a complete collection of room images available in the Rapid API. + * @param operation [GetRoomImagesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Region + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetRegionOperation): Response = execute(operation) + fun execute(operation: GetRoomImagesReferenceOperation): Response> = + execute>(operation) /** - * Region - * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. - * @param operation [GetRegionOperation] + * Room Images Reference + * Returns a complete collection of room images available in the Rapid API. + * @param operation [GetRoomImagesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type Region + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetRegionOperation): CompletableFuture> = executeAsync(operation) + fun executeAsync(operation: GetRoomImagesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetRegionWithResponse( - regionId: kotlin.String, + private suspend inline fun kgetRoomImagesReferenceWithResponse( language: kotlin.String, - include: kotlin.collections.List< - GetRegionOperationParams.Include - >, customerSessionId: kotlin.String? = null, - supplySource: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -2934,14 +4819,11 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response { + ): Response> { val params = - GetRegionOperationParams( - regionId = regionId, + GetRoomImagesReferenceOperationParams( customerSessionId = customerSessionId, language = language, - include = include, - supplySource = supplySource, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -2949,7 +4831,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetRegionOperation( + GetRoomImagesReferenceOperation( params ) @@ -2957,35 +4839,26 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Region - * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. - * @param regionId ID of the region to retrieve. - * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The value must be lower case. * details - Include the metadata, coordinates and full hierarchy of the region. * property_ids - Include the list of property IDs within the bounding polygon of the region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of the region and property IDs from the surrounding area if minimal properties are within the region. + * Room Images Reference + * Returns a complete collection of room images available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return Region + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionOperation)")) - fun getRegion( - regionId: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRoomImagesReferenceOperation)")) + fun getRoomImagesReference( language: kotlin.String, - include: kotlin.collections.List< - GetRegionOperationParams.Include - >, customerSessionId: kotlin.String? = null, - supplySource: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -2994,38 +4867,29 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Region = getRegionWithResponse(regionId, language, include, customerSessionId, supplySource, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + ): kotlin.collections.Map = getRoomImagesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Region - * Returns the geographic definition and property mappings for the requested Region ID. The response is a single JSON formatted region object. - * @param regionId ID of the region to retrieve. - * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) - * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The value must be lower case. * details - Include the metadata, coordinates and full hierarchy of the region. * property_ids - Include the list of property IDs within the bounding polygon of the region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of the region and property IDs from the surrounding area if minimal properties are within the region. + * Room Images Reference + * Returns a complete collection of room images available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Region + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionOperation)")) - fun getRegionWithResponse( - regionId: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRoomImagesReferenceOperation)")) + fun getRoomImagesReferenceWithResponse( language: kotlin.String, - include: kotlin.collections.List< - GetRegionOperationParams.Include - >, customerSessionId: kotlin.String? = null, - supplySource: kotlin.String? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -3034,10 +4898,10 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetRegionWithResponse(regionId, language, include, customerSessionId, supplySource, billingTerms, partnerPointOfSale, paymentTerms, platformName) + kgetRoomImagesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() @@ -3045,52 +4909,28 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Regions - * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. - * @param operation [GetRegionsOperation] + * Room Views Reference + * Returns a complete collection of room views available in the Rapid API. + * @param operation [GetRoomViewsReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.List + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetRegionsOperation): Response> = execute>(operation) + fun execute(operation: GetRoomViewsReferenceOperation): Response> = execute>(operation) /** - * Regions - * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. - * @param operation [GetRegionsOperation] + * Room Views Reference + * Returns a complete collection of room views available in the Rapid API. + * @param operation [GetRoomViewsReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type kotlin.collections.List + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetRegionsOperation): CompletableFuture>> = executeAsync>(operation) + fun executeAsync(operation: GetRoomViewsReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetRegionsWithResponse( - include: kotlin.collections.List< - GetRegionsOperationParams.Include - >, + private suspend inline fun kgetRoomViewsReferenceWithResponse( language: kotlin.String, customerSessionId: kotlin.String? = null, - ancestorId: kotlin.String? = - null, - area: kotlin.String? = - null, - countryCode: kotlin.collections.List< - kotlin.String - >? = - null, - countrySubdivisionCode: kotlin.collections.List< - kotlin.String - >? = - null, - iataLocationCode: kotlin.String? = - null, - limit: java.math.BigDecimal? = - null, - supplySource: kotlin.String? = - null, - type: kotlin.collections.List< - kotlin.String - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -3099,20 +4939,11 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { val params = - GetRegionsOperationParams( + GetRoomViewsReferenceOperationParams( customerSessionId = customerSessionId, - include = include, language = language, - ancestorId = ancestorId, - area = area, - countryCode = countryCode, - countrySubdivisionCode = countrySubdivisionCode, - iataLocationCode = iataLocationCode, - limit = limit, - supplySource = supplySource, - type = type, billingTerms = billingTerms, partnerPointOfSale = partnerPointOfSale, paymentTerms = paymentTerms, @@ -3120,7 +4951,7 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat ) val operation = - GetRegionsOperation( + GetRoomViewsReferenceOperation( params ) @@ -3128,60 +4959,26 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Regions - * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. - * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The standard and details options cannot be requested together. The value must be lower case. * standard - Include the metadata and basic hierarchy of each region. * details - Include the metadata, coordinates and full hierarchy of each region. * property_ids - Include the list of property IDs within the bounding polygon of each region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of each region and property IDs from the surrounding area if minimal properties are within the region. + * Room Views Reference + * Returns a complete collection of room views available in the Rapid API. * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param ancestorId Search for regions whose ancestors include the requested ancestor region ID. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists). (optional) - * @param area Filter the results to regions that intersect with a specified area.

    The area may be defined in one of two ways: * radius,region_id * radius,latitude,longitude Radius combined with region id would search an area that extends the number of kilometers out from the boundaries of the region in all directions.
    Radius combined with a single point, specified by a latitude, longitude pair would search an area in a circle with the specified radius and the point as the center.
    Radius should be specified in non-negative whole kilometers, decimals will return an error. A radius of 0 is allowed.
    When specifying the area parameter, there will be a limit of 100 results, which can be narrowed further by the limit parameter.
    Due to the number of results, unless `point_of_interest` is specified as the only type, regions of type `point_of_interest` will not be included in a request that filters to an area.

    An example use case would be searching for the closest 3 airports within 50 kilometers of a specified point.
    `&type=airport&limit=3&area=50,37.227924,-93.310036` (optional) - * @param countryCode Filter the results to a specified ISO 3166-1 alpha-2 country code. For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/) (optional) - * @param countrySubdivisionCode Filter the results down to only the ISO 3166-2 country subdivision. (optional) - * @param iataLocationCode Search for regions by the requested 3-character IATA location code, which will apply to both iata_airport_code and iata_airport_metro_code. The code must be upper case. (optional) - * @param limit Limit the number of results returned. Using the area parameter will impose a max value of 100 for this whether specified or not. (optional) - * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) - * @param type Filter the results to a specified region type. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return kotlin.collections.List + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionsOperation)")) - fun getRegions( - include: kotlin.collections.List< - GetRegionsOperationParams.Include - >, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRoomViewsReferenceOperation)")) + fun getRoomViewsReference( language: kotlin.String, customerSessionId: kotlin.String? = null, - ancestorId: kotlin.String? = - null, - area: kotlin.String? = - null, - countryCode: kotlin.collections.List< - kotlin.String - >? = - null, - countrySubdivisionCode: kotlin.collections.List< - kotlin.String - >? = - null, - iataLocationCode: kotlin.String? = - null, - limit: java.math.BigDecimal? = - null, - supplySource: kotlin.String? = - null, - type: kotlin.collections.List< - kotlin.String - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -3190,80 +4987,29 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): kotlin.collections.List = - getRegionsWithResponse( - include, - language, - customerSessionId, - ancestorId, - area, - countryCode, - countrySubdivisionCode, - iataLocationCode, - limit, - supplySource, - type, - billingTerms, - partnerPointOfSale, - paymentTerms, - platformName - ).data + ): kotlin.collections.Map = getRoomViewsReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Regions - * Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists).

    The response is a paginated list of regions. See the `Link` header in the 200 response section. - * @param include Options for which content to return in the response. This parameter can be supplied multiple times with different values. The standard and details options cannot be requested together. The value must be lower case. * standard - Include the metadata and basic hierarchy of each region. * details - Include the metadata, coordinates and full hierarchy of each region. * property_ids - Include the list of property IDs within the bounding polygon of each region. * property_ids_expanded - Include the list of property IDs within the bounding polygon of each region and property IDs from the surrounding area if minimal properties are within the region. + * Room Views Reference + * Returns a complete collection of room views available in the Rapid API. * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param ancestorId Search for regions whose ancestors include the requested ancestor region ID. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists). (optional) - * @param area Filter the results to regions that intersect with a specified area.

    The area may be defined in one of two ways: * radius,region_id * radius,latitude,longitude Radius combined with region id would search an area that extends the number of kilometers out from the boundaries of the region in all directions.
    Radius combined with a single point, specified by a latitude, longitude pair would search an area in a circle with the specified radius and the point as the center.
    Radius should be specified in non-negative whole kilometers, decimals will return an error. A radius of 0 is allowed.
    When specifying the area parameter, there will be a limit of 100 results, which can be narrowed further by the limit parameter.
    Due to the number of results, unless `point_of_interest` is specified as the only type, regions of type `point_of_interest` will not be included in a request that filters to an area.

    An example use case would be searching for the closest 3 airports within 50 kilometers of a specified point.
    `&type=airport&limit=3&area=50,37.227924,-93.310036` (optional) - * @param countryCode Filter the results to a specified ISO 3166-1 alpha-2 country code. For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/) (optional) - * @param countrySubdivisionCode Filter the results down to only the ISO 3166-2 country subdivision. (optional) - * @param iataLocationCode Search for regions by the requested 3-character IATA location code, which will apply to both iata_airport_code and iata_airport_metro_code. The code must be upper case. (optional) - * @param limit Limit the number of results returned. Using the area parameter will impose a max value of 100 for this whether specified or not. (optional) - * @param supplySource Options for which supply source you would like returned in the geography response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for more information. (optional) - * @param type Filter the results to a specified region type. (optional) * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.List + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRegionsOperation)")) - fun getRegionsWithResponse( - include: kotlin.collections.List< - GetRegionsOperationParams.Include - >, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetRoomViewsReferenceOperation)")) + fun getRoomViewsReferenceWithResponse( language: kotlin.String, customerSessionId: kotlin.String? = null, - ancestorId: kotlin.String? = - null, - area: kotlin.String? = - null, - countryCode: kotlin.collections.List< - kotlin.String - >? = - null, - countrySubdivisionCode: kotlin.collections.List< - kotlin.String - >? = - null, - iataLocationCode: kotlin.String? = - null, - limit: java.math.BigDecimal? = - null, - supplySource: kotlin.String? = - null, - type: kotlin.collections.List< - kotlin.String - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -3272,69 +5018,40 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Response> { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetRegionsWithResponse( - include, - language, - customerSessionId, - ancestorId, - area, - countryCode, - countrySubdivisionCode, - iataLocationCode, - limit, - supplySource, - type, - billingTerms, - partnerPointOfSale, - paymentTerms, - platformName - ) + kgetRoomViewsReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() } } - @JvmOverloads - fun getPaginator(operation: GetRegionsOperation): ResponsePaginator> { - val response = execute(operation) - return ResponsePaginator(this, response, emptyList()) { it.body>() } - } + /** + * Spoken Languages Reference + * Returns a complete collection of spoken languages available in the Rapid API. + * @param operation [GetSpokenLanguagesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + fun execute(operation: GetSpokenLanguagesReferenceOperation): Response> = + execute>(operation) - @JvmOverloads - @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetRegionsOperation)")) - fun getRegionsPaginator( - include: kotlin.collections.List< - GetRegionsOperationParams.Include - >, + /** + * Spoken Languages Reference + * Returns a complete collection of spoken languages available in the Rapid API. + * @param operation [GetSpokenLanguagesReferenceOperation] + * @throws ExpediaGroupApiErrorException + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map + */ + fun executeAsync(operation: GetSpokenLanguagesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) + + private suspend inline fun kgetSpokenLanguagesReferenceWithResponse( language: kotlin.String, customerSessionId: kotlin.String? = null, - ancestorId: kotlin.String? = - null, - area: kotlin.String? = - null, - countryCode: kotlin.collections.List< - kotlin.String - >? = - null, - countrySubdivisionCode: kotlin.collections.List< - kotlin.String - >? = - null, - iataLocationCode: kotlin.String? = - null, - limit: java.math.BigDecimal? = - null, - supplySource: kotlin.String? = - null, - type: kotlin.collections.List< - kotlin.String - >? = - null, billingTerms: kotlin.String? = null, partnerPointOfSale: kotlin.String? = @@ -3343,58 +5060,76 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): Paginator> { - val response = - getRegionsWithResponse( - include, - language, - customerSessionId, - ancestorId, - area, - countryCode, - countrySubdivisionCode, - iataLocationCode, - limit, - supplySource, - type, - billingTerms, - partnerPointOfSale, - paymentTerms, - platformName + ): Response> { + val params = + GetSpokenLanguagesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName ) - return Paginator(this, response, emptyList()) { it.body>() } + + val operation = + GetSpokenLanguagesReferenceOperation( + params + ) + + return execute(operation) } - @JvmOverloads - @Deprecated("Use getPaginator method instead", ReplaceWith("getPaginator(operation: GetRegionsOperation)")) - fun getRegionsPaginatorWithResponse( - include: kotlin.collections.List< - GetRegionsOperationParams.Include - >, - language: kotlin.String, - customerSessionId: kotlin.String? = - null, - ancestorId: kotlin.String? = - null, - area: kotlin.String? = - null, - countryCode: kotlin.collections.List< - kotlin.String - >? = - null, - countrySubdivisionCode: kotlin.collections.List< - kotlin.String - >? = + /** + * Spoken Languages Reference + * Returns a complete collection of spoken languages available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetSpokenLanguagesReferenceOperation)")) + fun getSpokenLanguagesReference( + language: kotlin.String, + customerSessionId: kotlin.String? = null, - iataLocationCode: kotlin.String? = + billingTerms: kotlin.String? = null, - limit: java.math.BigDecimal? = + partnerPointOfSale: kotlin.String? = null, - supplySource: kotlin.String? = + paymentTerms: kotlin.String? = null, - type: kotlin.collections.List< - kotlin.String - >? = + platformName: kotlin.String? = + null + ): kotlin.collections.Map = getSpokenLanguagesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data + + /** + * Spoken Languages Reference + * Returns a complete collection of spoken languages available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @throws ExpediaGroupApiErrorException + * @return a [Response] object with a body of type kotlin.collections.Map + */ + @Throws( + ExpediaGroupApiErrorException::class + ) + @JvmOverloads + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetSpokenLanguagesReferenceOperation)")) + fun getSpokenLanguagesReferenceWithResponse( + language: kotlin.String, + customerSessionId: kotlin.String? = null, billingTerms: kotlin.String? = null, @@ -3404,71 +5139,61 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat null, platformName: kotlin.String? = null - ): ResponsePaginator> { - val response = - getRegionsWithResponse( - include, - language, - customerSessionId, - ancestorId, - area, - countryCode, - countrySubdivisionCode, - iataLocationCode, - limit, - supplySource, - type, - billingTerms, - partnerPointOfSale, - paymentTerms, - platformName - ) - return ResponsePaginator(this, response, emptyList()) { it.body>() } + ): Response> { + try { + return GlobalScope.future(Dispatchers.IO) { + kgetSpokenLanguagesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) + }.get() + } catch (exception: Exception) { + exception.handle() + } } /** - * Search for and retrieve Bookings with Affiliate Reference Id - * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. - * @param operation [GetReservationOperation] + * Statistics Reference + * Returns a complete collection of statistics available in the Rapid API. + * @param operation [GetStatisticsReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.List + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetReservationOperation): Response> = execute>(operation) + fun execute(operation: GetStatisticsReferenceOperation): Response> = + execute>(operation) /** - * Search for and retrieve Bookings with Affiliate Reference Id - * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. - * @param operation [GetReservationOperation] + * Statistics Reference + * Returns a complete collection of statistics available in the Rapid API. + * @param operation [GetStatisticsReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type kotlin.collections.List + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetReservationOperation): CompletableFuture>> = executeAsync>(operation) + fun executeAsync(operation: GetStatisticsReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetReservationWithResponse( - customerIp: kotlin.String, - affiliateReferenceId: kotlin.String, - email: kotlin.String, + private suspend inline fun kgetStatisticsReferenceWithResponse( + language: kotlin.String, customerSessionId: kotlin.String? = null, - test: GetReservationOperationParams.Test? = + billingTerms: kotlin.String? = null, - include: kotlin.collections.List< - GetReservationOperationParams.Include - >? = + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = null - ): Response> { + ): Response> { val params = - GetReservationOperationParams( - customerIp = customerIp, + GetStatisticsReferenceOperationParams( customerSessionId = customerSessionId, - test = test, - affiliateReferenceId = affiliateReferenceId, - email = email, - include = include + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName ) val operation = - GetReservationOperation( + GetStatisticsReferenceOperation( params ) @@ -3476,69 +5201,69 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Search for and retrieve Bookings with Affiliate Reference Id - * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. - * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. - * @param affiliateReferenceId The affilliate reference id value. This field supports a maximum of 28 characters. - * @param email Email associated with the booking. Special characters in the local part or domain should be encoded.
    + * Statistics Reference + * Returns a complete collection of statistics available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` (optional) - * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return kotlin.collections.List + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationOperation)")) - fun getReservation( - customerIp: kotlin.String, - affiliateReferenceId: kotlin.String, - email: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetStatisticsReferenceOperation)")) + fun getStatisticsReference( + language: kotlin.String, customerSessionId: kotlin.String? = null, - test: GetReservationOperationParams.Test? = + billingTerms: kotlin.String? = null, - include: kotlin.collections.List< - GetReservationOperationParams.Include - >? = + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = null - ): kotlin.collections.List = getReservationWithResponse(customerIp, affiliateReferenceId, email, customerSessionId, test, include).data + ): kotlin.collections.Map = getStatisticsReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Search for and retrieve Bookings with Affiliate Reference Id - * This can be called directly without a token when an affiliate reference id is provided. It returns details about bookings associated with an affiliate reference id, along with cancel links to cancel the bookings. Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. - * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. - * @param affiliateReferenceId The affilliate reference id value. This field supports a maximum of 28 characters. - * @param email Email associated with the booking. Special characters in the local part or domain should be encoded.
    + * Statistics Reference + * Returns a complete collection of statistics available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` (optional) - * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type kotlin.collections.List + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationOperation)")) - fun getReservationWithResponse( - customerIp: kotlin.String, - affiliateReferenceId: kotlin.String, - email: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetStatisticsReferenceOperation)")) + fun getStatisticsReferenceWithResponse( + language: kotlin.String, customerSessionId: kotlin.String? = null, - test: GetReservationOperationParams.Test? = + billingTerms: kotlin.String? = null, - include: kotlin.collections.List< - GetReservationOperationParams.Include - >? = + partnerPointOfSale: kotlin.String? = + null, + paymentTerms: kotlin.String? = + null, + platformName: kotlin.String? = null - ): Response> { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetReservationWithResponse(customerIp, affiliateReferenceId, email, customerSessionId, test, include) + kgetStatisticsReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() @@ -3546,52 +5271,49 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Retrieve Booking - * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. - * @param operation [GetReservationByItineraryIdOperation] + * Themes Reference + * Returns a complete collection of themes available in the Rapid API. + * @param operation [GetThemesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Itinerary + * @return a [Response] object with a body of type kotlin.collections.Map */ - fun execute(operation: GetReservationByItineraryIdOperation): Response = execute(operation) + fun execute(operation: GetThemesReferenceOperation): Response> = execute>(operation) /** - * Retrieve Booking - * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. - * @param operation [GetReservationByItineraryIdOperation] + * Themes Reference + * Returns a complete collection of themes available in the Rapid API. + * @param operation [GetThemesReferenceOperation] * @throws ExpediaGroupApiErrorException - * @return a [CompletableFuture] object with a body of type Itinerary + * @return a [CompletableFuture] object with a body of type kotlin.collections.Map */ - fun executeAsync(operation: GetReservationByItineraryIdOperation): CompletableFuture> = executeAsync(operation) + fun executeAsync(operation: GetThemesReferenceOperation): CompletableFuture>> = + executeAsync>(operation) - private suspend inline fun kgetReservationByItineraryIdWithResponse( - customerIp: kotlin.String, - itineraryId: kotlin.String, + private suspend inline fun kgetThemesReferenceWithResponse( + language: kotlin.String, customerSessionId: kotlin.String? = null, - test: GetReservationByItineraryIdOperationParams.Test? = + billingTerms: kotlin.String? = null, - token: kotlin.String? = + partnerPointOfSale: kotlin.String? = null, - email: kotlin.String? = + paymentTerms: kotlin.String? = null, - include: kotlin.collections.List< - GetReservationByItineraryIdOperationParams.Include - >? = + platformName: kotlin.String? = null - ): Response { + ): Response> { val params = - GetReservationByItineraryIdOperationParams( - itineraryId = itineraryId, - customerIp = customerIp, + GetThemesReferenceOperationParams( customerSessionId = customerSessionId, - test = test, - token = token, - email = email, - include = include + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName ) val operation = - GetReservationByItineraryIdOperation( + GetThemesReferenceOperation( params ) @@ -3599,77 +5321,69 @@ class RapidClient private constructor(clientConfiguration: RapidClientConfigurat } /** - * Retrieve Booking - * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. - * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. - * @param itineraryId This parameter is used only to prefix the token value - no ID value is used.
    + * Themes Reference + * Returns a complete collection of themes available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` (optional) - * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. (optional) - * @param email Email associated with the booking. Special characters in the local part or domain should be encoded. (Email is required if the token is not provided the request)
    (optional) - * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return Itinerary + * @return kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationByItineraryIdOperation)")) - fun getReservationByItineraryId( - customerIp: kotlin.String, - itineraryId: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetThemesReferenceOperation)")) + fun getThemesReference( + language: kotlin.String, customerSessionId: kotlin.String? = null, - test: GetReservationByItineraryIdOperationParams.Test? = + billingTerms: kotlin.String? = null, - token: kotlin.String? = + partnerPointOfSale: kotlin.String? = null, - email: kotlin.String? = + paymentTerms: kotlin.String? = null, - include: kotlin.collections.List< - GetReservationByItineraryIdOperationParams.Include - >? = + platformName: kotlin.String? = null - ): Itinerary = getReservationByItineraryIdWithResponse(customerIp, itineraryId, customerSessionId, test, token, email, include).data + ): kotlin.collections.Map = getThemesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName).data /** - * Retrieve Booking - * This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. - * @param customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. - * @param itineraryId This parameter is used only to prefix the token value - no ID value is used.
    + * Themes Reference + * Returns a complete collection of themes available in the Rapid API. + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. (optional) - * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` (optional) - * @param token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. (optional) - * @param email Email associated with the booking. Special characters in the local part or domain should be encoded. (Email is required if the token is not provided the request)
    (optional) - * @param include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. (optional) + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. (optional) + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. (optional) + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. (optional) * @throws ExpediaGroupApiErrorException - * @return a [Response] object with a body of type Itinerary + * @return a [Response] object with a body of type kotlin.collections.Map */ @Throws( ExpediaGroupApiErrorException::class ) @JvmOverloads - @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetReservationByItineraryIdOperation)")) - fun getReservationByItineraryIdWithResponse( - customerIp: kotlin.String, - itineraryId: kotlin.String, + @Deprecated("Use execute method instead", ReplaceWith("execute(operation: GetThemesReferenceOperation)")) + fun getThemesReferenceWithResponse( + language: kotlin.String, customerSessionId: kotlin.String? = null, - test: GetReservationByItineraryIdOperationParams.Test? = + billingTerms: kotlin.String? = null, - token: kotlin.String? = + partnerPointOfSale: kotlin.String? = null, - email: kotlin.String? = + paymentTerms: kotlin.String? = null, - include: kotlin.collections.List< - GetReservationByItineraryIdOperationParams.Include - >? = + platformName: kotlin.String? = null - ): Response { + ): Response> { try { return GlobalScope.future(Dispatchers.IO) { - kgetReservationByItineraryIdWithResponse(customerIp, itineraryId, customerSessionId, test, token, email, include) + kgetThemesReferenceWithResponse(language, customerSessionId, billingTerms, partnerPointOfSale, paymentTerms, platformName) }.get() } catch (exception: Exception) { exception.handle() diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/AmenityReference.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/AmenityReference.kt new file mode 100644 index 0000000000..5253156cae --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/AmenityReference.kt @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package com.expediagroup.sdk.rapid.models + +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation + +/** + * An individual amenity reference. + * @param id Amenity id. + * @param name Amenity name. + * @param hasValue Indicates whether an amenity will have an associated numeric value. + */ +data class AmenityReference( + // Amenity id. + @JsonProperty("id") + @field:Valid + val id: kotlin.String? = null, + // Amenity name. + @JsonProperty("name") + @field:Valid + val name: kotlin.String? = null, + // Indicates whether an amenity will have an associated numeric value. + @JsonProperty("has_value") + @field:Valid + val hasValue: kotlin.Boolean? = null +) { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + private var id: kotlin.String? = null, + private var name: kotlin.String? = null, + private var hasValue: kotlin.Boolean? = null + ) { + fun id(id: kotlin.String?) = apply { this.id = id } + + fun name(name: kotlin.String?) = apply { this.name = name } + + fun hasValue(hasValue: kotlin.Boolean?) = apply { this.hasValue = hasValue } + + fun build(): AmenityReference { + val instance = + AmenityReference( + id = id, + name = name, + hasValue = hasValue + ) + + validate(instance) + + return instance + } + + private fun validate(instance: AmenityReference) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(instance) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + id = id, + name = name, + hasValue = hasValue + ) +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/AttributeReference.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/AttributeReference.kt new file mode 100644 index 0000000000..5080c1b488 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/AttributeReference.kt @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package com.expediagroup.sdk.rapid.models + +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation + +/** + * An individual attribute reference. + * @param id The attribute definition ID for this attribute. + * @param name Attribute name. + * @param hasValue Indicates whether an attribute will have an associated numeric value. + */ +data class AttributeReference( + // The attribute definition ID for this attribute. + @JsonProperty("id") + @field:Valid + val id: kotlin.String? = null, + // Attribute name. + @JsonProperty("name") + @field:Valid + val name: kotlin.String? = null, + // Indicates whether an attribute will have an associated numeric value. + @JsonProperty("has_value") + @field:Valid + val hasValue: kotlin.Boolean? = null +) { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + private var id: kotlin.String? = null, + private var name: kotlin.String? = null, + private var hasValue: kotlin.Boolean? = null + ) { + fun id(id: kotlin.String?) = apply { this.id = id } + + fun name(name: kotlin.String?) = apply { this.name = name } + + fun hasValue(hasValue: kotlin.Boolean?) = apply { this.hasValue = hasValue } + + fun build(): AttributeReference { + val instance = + AttributeReference( + id = id, + name = name, + hasValue = hasValue + ) + + validate(instance) + + return instance + } + + private fun validate(instance: AttributeReference) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(instance) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + id = id, + name = name, + hasValue = hasValue + ) +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ChangeRoomDetailsRequest.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ChangeRoomDetailsRequest.kt index f778dd70bc..27db848e86 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ChangeRoomDetailsRequest.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ChangeRoomDetailsRequest.kt @@ -64,6 +64,7 @@ data class ChangeRoomDetailsRequest( @field:Valid val specialRequest: kotlin.String? = null, // Deprecated. Please use the loyalty id inside the loyalty object. + @Deprecated(message = "This property is deprecated.") @JsonProperty("loyalty_id") @field:Valid val loyaltyId: kotlin.String? = null, diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/CreateItineraryRequestRoom.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/CreateItineraryRequestRoom.kt index 605c1163bb..424f438b25 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/CreateItineraryRequestRoom.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/CreateItineraryRequestRoom.kt @@ -67,6 +67,7 @@ data class CreateItineraryRequestRoom( @field:Valid val specialRequest: kotlin.String? = null, // Deprecated. Please use the loyalty id inside the loyalty object. + @Deprecated(message = "This property is deprecated.") @JsonProperty("loyalty_id") @field:Valid val loyaltyId: kotlin.String? = null, diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ImageReference.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ImageReference.kt new file mode 100644 index 0000000000..838f89ed2f --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/ImageReference.kt @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package com.expediagroup.sdk.rapid.models + +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation + +/** + * An individual image reference. + * @param id Image Id + * @param name Image name + */ +data class ImageReference( + // Image Id + @JsonProperty("id") + @field:Valid + val id: kotlin.String? = null, + // Image name + @JsonProperty("name") + @field:Valid + val name: kotlin.String? = null +) { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + private var id: kotlin.String? = null, + private var name: kotlin.String? = null + ) { + fun id(id: kotlin.String?) = apply { this.id = id } + + fun name(name: kotlin.String?) = apply { this.name = name } + + fun build(): ImageReference { + val instance = + ImageReference( + id = id, + name = name + ) + + validate(instance) + + return instance + } + + private fun validate(instance: ImageReference) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(instance) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + id = id, + name = name + ) +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Itinerary.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Itinerary.kt index 2be04a2a91..1843d57416 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Itinerary.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Itinerary.kt @@ -65,6 +65,7 @@ import javax.validation.Validation * @param travelPurpose Value potentially passed in during the availability request to indicate the purpose of the trip designated by the traveler. * @param itineraryHistory * @param roomHistory An array of rooms each containing an array of room history events. + * @param impactedFields */ data class Itinerary( // The itinerary id. @@ -124,7 +125,10 @@ data class Itinerary( // An array of rooms each containing an array of room history events. @JsonProperty("room_history") @field:Valid - val roomHistory: kotlin.collections.List>? = null + val roomHistory: kotlin.collections.List>? = null, + @JsonProperty("impacted_fields") + @field:Valid + val impactedFields: kotlin.collections.List? = null ) { companion object { @JvmStatic @@ -148,7 +152,8 @@ data class Itinerary( private var essentialInformation: EssentialInformation? = null, private var travelPurpose: Itinerary.TravelPurpose? = null, private var itineraryHistory: kotlin.collections.List? = null, - private var roomHistory: kotlin.collections.List>? = null + private var roomHistory: kotlin.collections.List>? = null, + private var impactedFields: kotlin.collections.List? = null ) { fun itineraryId(itineraryId: kotlin.String?) = apply { this.itineraryId = itineraryId } @@ -184,6 +189,8 @@ data class Itinerary( fun roomHistory(roomHistory: kotlin.collections.List>?) = apply { this.roomHistory = roomHistory } + fun impactedFields(impactedFields: kotlin.collections.List?) = apply { this.impactedFields = impactedFields } + fun build(): Itinerary { val instance = Itinerary( @@ -203,7 +210,8 @@ data class Itinerary( essentialInformation = essentialInformation, travelPurpose = travelPurpose, itineraryHistory = itineraryHistory, - roomHistory = roomHistory + roomHistory = roomHistory, + impactedFields = impactedFields ) validate(instance) @@ -248,7 +256,8 @@ data class Itinerary( essentialInformation = essentialInformation, travelPurpose = travelPurpose, itineraryHistory = itineraryHistory, - roomHistory = roomHistory + roomHistory = roomHistory, + impactedFields = impactedFields ) /** diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Rate.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Rate.kt index 99e2329d33..09b3aa84d5 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Rate.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/Rate.kt @@ -55,6 +55,7 @@ import javax.validation.Validation * @param status * @param availableRooms The number of bookable rooms remaining with this rate in EPS inventory. Use this value to create rules for urgency messaging to alert users to low availability on busy travel dates or at popular properties. If the value returns as 2147483647 (max int value), the actual value could not be determined. Ensure your urgency messaging ignores such instances when returned. * @param refundable Indicates if the rate is fully refundable at the time of booking. Cancel penalties may still apply. Please refer to the cancel penalties section for reference. + * @param currentRefundability Indicates the current refundability of the rate. This is a more detailed version of the `refundable` field. * @param memberDealAvailable Indicates if a \"Member Only Deal\" is available for this rate. * @param saleScenario * @param merchantOfRecord @@ -86,6 +87,9 @@ data class Rate( @JsonProperty("refundable") @field:Valid val refundable: kotlin.Boolean? = null, + // Indicates the current refundability of the rate. This is a more detailed version of the `refundable` field. + @JsonProperty("current_refundability") + val currentRefundability: Rate.CurrentRefundability? = null, // Indicates if a \"Member Only Deal\" is available for this rate. @JsonProperty("member_deal_available") @field:Valid @@ -147,6 +151,7 @@ data class Rate( private var status: Status? = null, private var availableRooms: java.math.BigDecimal? = null, private var refundable: kotlin.Boolean? = null, + private var currentRefundability: Rate.CurrentRefundability? = null, private var memberDealAvailable: kotlin.Boolean? = null, private var saleScenario: SaleScenario? = null, private var merchantOfRecord: MerchantOfRecord? = null, @@ -170,6 +175,8 @@ data class Rate( fun refundable(refundable: kotlin.Boolean?) = apply { this.refundable = refundable } + fun currentRefundability(currentRefundability: Rate.CurrentRefundability?) = apply { this.currentRefundability = currentRefundability } + fun memberDealAvailable(memberDealAvailable: kotlin.Boolean?) = apply { this.memberDealAvailable = memberDealAvailable } fun saleScenario(saleScenario: SaleScenario?) = apply { this.saleScenario = saleScenario } @@ -205,6 +212,7 @@ data class Rate( status = status, availableRooms = availableRooms, refundable = refundable, + currentRefundability = currentRefundability, memberDealAvailable = memberDealAvailable, saleScenario = saleScenario, merchantOfRecord = merchantOfRecord, @@ -251,6 +259,7 @@ data class Rate( status = status, availableRooms = availableRooms, refundable = refundable, + currentRefundability = currentRefundability, memberDealAvailable = memberDealAvailable, saleScenario = saleScenario, merchantOfRecord = merchantOfRecord, @@ -266,4 +275,19 @@ data class Rate( refundableDamageDeposit = refundableDamageDeposit, deposits = deposits ) + + /** + * Indicates the current refundability of the rate. This is a more detailed version of the `refundable` field. + * Values: REFUNDABLE,NON_REFUNDABLE,PARTIALLY_REFUNDABLE + */ + enum class CurrentRefundability(val value: kotlin.String) { + @JsonProperty("refundable") + REFUNDABLE("refundable"), + + @JsonProperty("non_refundable") + NON_REFUNDABLE("non_refundable"), + + @JsonProperty("partially_refundable") + PARTIALLY_REFUNDABLE("partially_refundable") + } } diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/RoomItinerary.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/RoomItinerary.kt index 05110e69f5..4fe30b14f3 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/RoomItinerary.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/RoomItinerary.kt @@ -108,6 +108,7 @@ data class RoomItinerary( @field:Valid val smoking: kotlin.Boolean? = null, // Deprecated. Please use the loyalty id inside the loyalty object. + @Deprecated(message = "This property is deprecated.") @JsonProperty("loyalty_id") @field:Valid val loyaltyId: kotlin.String? = null, diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/StatisticReference.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/StatisticReference.kt new file mode 100644 index 0000000000..f95bd35b5b --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/StatisticReference.kt @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * + * Please note: + * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * Do not edit this file manually. + * + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package com.expediagroup.sdk.rapid.models + +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation + +/** + * An individual statistic reference. + * @param id The statistic definition ID for this statistic. + * @param name Statistic name. + * @param hasValue Indicates whether a statistic will have an associated numeric value. + */ +data class StatisticReference( + // The statistic definition ID for this statistic. + @JsonProperty("id") + @field:Valid + val id: kotlin.String? = null, + // Statistic name. + @JsonProperty("name") + @field:Valid + val name: kotlin.String? = null, + // Indicates whether a statistic will have an associated numeric value. + @JsonProperty("has_value") + @field:Valid + val hasValue: kotlin.Boolean? = null +) { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + private var id: kotlin.String? = null, + private var name: kotlin.String? = null, + private var hasValue: kotlin.Boolean? = null + ) { + fun id(id: kotlin.String?) = apply { this.id = id } + + fun name(name: kotlin.String?) = apply { this.name = name } + + fun hasValue(hasValue: kotlin.Boolean?) = apply { this.hasValue = hasValue } + + fun build(): StatisticReference { + val instance = + StatisticReference( + id = id, + name = name, + hasValue = hasValue + ) + + validate(instance) + + return instance + } + + private fun validate(instance: StatisticReference) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(instance) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + id = id, + name = name, + hasValue = hasValue + ) +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/exception/ApiException.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/exception/ApiException.kt index f533fb1b43..c72e29f1de 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/exception/ApiException.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/models/exception/ApiException.kt @@ -135,6 +135,19 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getAmenitiesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "getAvailability", listOf( @@ -175,6 +188,19 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getCategoriesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "getChainReference", listOf( @@ -187,6 +213,44 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getChainsReference", + listOf( + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getGeneralAttributesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getImagesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "getInactiveProperties", listOf( @@ -201,6 +265,19 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getOnsitePaymentTypesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "getPaymentOptions", listOf( @@ -213,6 +290,19 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getPetAttributesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "getPropertyCatalogFile", listOf( @@ -269,6 +359,19 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getRateAmenitiesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "getRegion", listOf( @@ -324,6 +427,84 @@ internal object ErrorObjectMapper { DefaultHttpStatusCodeRange ) ), + Pair( + "getRoomAmenitiesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getRoomImagesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getRoomViewsReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getSpokenLanguagesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getStatisticsReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), + Pair( + "getThemesReference", + listOf( + HttpStatusCodeRange("400") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("401") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("403") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("426") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("429") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("500") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + HttpStatusCodeRange("503") { ExpediaGroupApiErrorException(it.status.value, fetchErrorObject(it) as Error, it.headers.getTransactionId()) }, + DefaultHttpStatusCodeRange + ) + ), Pair( "postGeography", listOf( diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/ChangeRoomDetailsOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/ChangeRoomDetailsOperationLink.kt index 823e71ab0b..467dee6e03 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/ChangeRoomDetailsOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/ChangeRoomDetailsOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/CommitChangeOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/CommitChangeOperationLink.kt index da9d89770b..baa0f05e6d 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/CommitChangeOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/CommitChangeOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteHeldBookingOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteHeldBookingOperationLink.kt index 52030271e5..069059f063 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteHeldBookingOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteHeldBookingOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteRoomOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteRoomOperationLink.kt index 37f0d30ea6..d7cd767948 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteRoomOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/DeleteRoomOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAdditionalAvailabilityOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAdditionalAvailabilityOperationLink.kt index fcda1a7d9f..062433dbd5 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAdditionalAvailabilityOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAdditionalAvailabilityOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetInactivePropertiesOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAmenitiesReferenceOperation.kt similarity index 55% rename from code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetInactivePropertiesOperationLink.kt rename to code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAmenitiesReferenceOperation.kt index dfd4edb11d..e623532135 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetInactivePropertiesOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAmenitiesReferenceOperation.kt @@ -13,4 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.expediagroup.sdk.rapid.operations +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Amenities Reference + * @property params [GetAmenitiesReferenceOperationParams] + */ +class GetAmenitiesReferenceOperation( + params: GetAmenitiesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/amenities", + "GET", + "getAmenitiesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAmenitiesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAmenitiesReferenceOperationParams.kt new file mode 100644 index 0000000000..86f8921f49 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAmenitiesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetAmenitiesReferenceOperationParams.Builder::class) +data class GetAmenitiesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetAmenitiesReferenceOperationParams { + val params = + GetAmenitiesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetAmenitiesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationLink.kt index a104b143d6..2467ef25cf 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationParams.kt index 7ed938e50b..d76879872d 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationParams.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetAvailabilityOperationParams.kt @@ -43,7 +43,7 @@ import javax.validation.constraints.NotNull * @property amenityCategory Single amenity category. Send multiple instances of this parameter to request rates that match multiple amenity categories.
    See the Amenity Categories section of the [Content Reference Lists](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists) for a list of values. * @property exclusion Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.
    * `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates with refundable damage deposits from the response. * `card_on_file` - Excludes Rapid supplied Vrbo rates with card-on-file damage collection from the response. * @property filter Single filter type. Send multiple instances of this parameter to request multiple filters.
    * `refundable` - Filters results to only show fully refundable rates. * `expedia_collect` - Filters results to only show rates where payment is collected by Expedia at the time of booking. These properties can be eligible for payments via Expedia Affiliate Collect(EAC). * `property_collect` - Filters results to only show rates where payment is collected by the property after booking. This can include rates that require a deposit by the property, dependent upon the deposit policies. * `loyalty` - Filters results to only show rates that are eligible for loyalty points. - * @property include Modify the response by including types of responses that are not provided by default.
    * `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. + * @property include Modify the response by including types of responses that are not provided by default.
    * `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. * `rooms.rates.current_refundability` - Displays the current `refundability` of a rate. * @property rateOption Request specific rate options for each property. Send multiple instances of this parameter to request multiple rate options. Accepted values:
    * `member` - Return member rates for each property. This feature must be enabled and requires a user to be logged in to request these rates. * `net_rates` - Return net rates for each property. This feature must be enabled to request these rates. * `cross_sell` - Identify if the traffic is coming from a cross sell booking. Where the traveler has booked another service (flight, car, activities...) before hotel. * @property travelPurpose This parameter is to specify the travel purpose of the booking. This may impact available rate plans, pricing, or tax calculations. * `leisure` * `business` * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. @@ -239,7 +239,8 @@ data class GetAvailabilityOperationParams ) { UNAVAILABLE_REASON("unavailable_reason"), SALE_SCENARIO_PERIOD_MOBILE_PROMOTION("sale_scenario.mobile_promotion"), - ROOMS_PERIOD_RATES_PERIOD_MARKETING_FEE_INCENTIVES("rooms.rates.marketing_fee_incentives") + ROOMS_PERIOD_RATES_PERIOD_MARKETING_FEE_INCENTIVES("rooms.rates.marketing_fee_incentives"), + ROOMS_PERIOD_RATES_PERIOD_CURRENT_REFUNDABILITY("rooms.rates.current_refundability") } enum class RateOption( @@ -397,7 +398,7 @@ data class GetAvailabilityOperationParams ) = apply { this.filter = filter } /** - * @param include Modify the response by including types of responses that are not provided by default.
    * `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. + * @param include Modify the response by including types of responses that are not provided by default.
    * `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. * `rooms.rates.current_refundability` - Displays the current `refundability` of a rate. */ fun include( include: kotlin.collections.List< diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCategoriesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCategoriesReferenceOperation.kt new file mode 100644 index 0000000000..24404adb26 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCategoriesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Categories Reference + * @property params [GetCategoriesReferenceOperationParams] + */ +class GetCategoriesReferenceOperation( + params: GetCategoriesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/categories", + "GET", + "getCategoriesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCategoriesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCategoriesReferenceOperationParams.kt new file mode 100644 index 0000000000..e3804a8a72 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCategoriesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetCategoriesReferenceOperationParams.Builder::class) +data class GetCategoriesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetCategoriesReferenceOperationParams { + val params = + GetCategoriesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetCategoriesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperation.kt index a2160aff29..50443e89d8 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperation.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperation.kt @@ -19,9 +19,10 @@ import com.expediagroup.sdk.core.model.Nothing import com.expediagroup.sdk.core.model.Operation /** - * Chain Reference + * Chain Reference ***DEPRECATED*** * @property params [GetChainReferenceOperationParams] */ +@Deprecated("This operation is deprecated and will be removed in a future version.") class GetChainReferenceOperation( params: GetChainReferenceOperationParams ) : Operation< diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetBookingReceiptOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainsReferenceOperation.kt similarity index 56% rename from code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetBookingReceiptOperationLink.kt rename to code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainsReferenceOperation.kt index dfd4edb11d..1b794cbec7 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetBookingReceiptOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainsReferenceOperation.kt @@ -13,4 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.expediagroup.sdk.rapid.operations +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Chains Reference + * @property params [GetChainsReferenceOperationParams] + */ +class GetChainsReferenceOperation( + params: GetChainsReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/chains", + "GET", + "getChainsReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainsReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainsReferenceOperationParams.kt new file mode 100644 index 0000000000..b3a62e6a8e --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainsReferenceOperationParams.kt @@ -0,0 +1,161 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetChainsReferenceOperationParams.Builder::class) +data class GetChainsReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetChainsReferenceOperationParams { + val params = + GetChainsReferenceOperationParams( + customerSessionId = customerSessionId, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetChainsReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetGeneralAttributesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetGeneralAttributesReferenceOperation.kt new file mode 100644 index 0000000000..47840949e3 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetGeneralAttributesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * General Attributes Reference + * @property params [GetGeneralAttributesReferenceOperationParams] + */ +class GetGeneralAttributesReferenceOperation( + params: GetGeneralAttributesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/general-attributes", + "GET", + "getGeneralAttributesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetGeneralAttributesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetGeneralAttributesReferenceOperationParams.kt new file mode 100644 index 0000000000..17a55e21d8 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetGeneralAttributesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetGeneralAttributesReferenceOperationParams.Builder::class) +data class GetGeneralAttributesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetGeneralAttributesReferenceOperationParams { + val params = + GetGeneralAttributesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetGeneralAttributesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCalendarAvailabilityOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetImagesReferenceOperation.kt similarity index 56% rename from code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCalendarAvailabilityOperationLink.kt rename to code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetImagesReferenceOperation.kt index dfd4edb11d..5205827cdc 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetCalendarAvailabilityOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetImagesReferenceOperation.kt @@ -13,4 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.expediagroup.sdk.rapid.operations +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Images Reference + * @property params [GetImagesReferenceOperationParams] + */ +class GetImagesReferenceOperation( + params: GetImagesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/images", + "GET", + "getImagesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetImagesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetImagesReferenceOperationParams.kt new file mode 100644 index 0000000000..eef534bda8 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetImagesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetImagesReferenceOperationParams.Builder::class) +data class GetImagesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetImagesReferenceOperationParams { + val params = + GetImagesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetImagesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetOnsitePaymentTypesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetOnsitePaymentTypesReferenceOperation.kt new file mode 100644 index 0000000000..ef79aa3fe8 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetOnsitePaymentTypesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Onsite Payment Types Reference + * @property params [GetOnsitePaymentTypesReferenceOperationParams] + */ +class GetOnsitePaymentTypesReferenceOperation( + params: GetOnsitePaymentTypesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/onsite-payment-types", + "GET", + "getOnsitePaymentTypesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetOnsitePaymentTypesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetOnsitePaymentTypesReferenceOperationParams.kt new file mode 100644 index 0000000000..249d0b9f0b --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetOnsitePaymentTypesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetOnsitePaymentTypesReferenceOperationParams.Builder::class) +data class GetOnsitePaymentTypesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetOnsitePaymentTypesReferenceOperationParams { + val params = + GetOnsitePaymentTypesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetOnsitePaymentTypesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPaymentOptionsOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPaymentOptionsOperationLink.kt index 7fde799240..759f25143b 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPaymentOptionsOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPaymentOptionsOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPetAttributesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPetAttributesReferenceOperation.kt new file mode 100644 index 0000000000..2da4dbcc19 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPetAttributesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Pet Attributes Reference + * @property params [GetPetAttributesReferenceOperationParams] + */ +class GetPetAttributesReferenceOperation( + params: GetPetAttributesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/pet-attributes", + "GET", + "getPetAttributesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPetAttributesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPetAttributesReferenceOperationParams.kt new file mode 100644 index 0000000000..50cdbd54eb --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPetAttributesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetPetAttributesReferenceOperationParams.Builder::class) +data class GetPetAttributesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetPetAttributesReferenceOperationParams { + val params = + GetPetAttributesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetPetAttributesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyCatalogFileOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyCatalogFileOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyCatalogFileOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentFileOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentFileOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentFileOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentOperationLink.kt index 4a6b6bc392..dff7d14741 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyContentOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyGuestReviewsOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyGuestReviewsOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetPropertyGuestReviewsOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRateAmenitiesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRateAmenitiesReferenceOperation.kt new file mode 100644 index 0000000000..6e22f22eca --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRateAmenitiesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Rate Amenities Reference + * @property params [GetRateAmenitiesReferenceOperationParams] + */ +class GetRateAmenitiesReferenceOperation( + params: GetRateAmenitiesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/rate-amenities", + "GET", + "getRateAmenitiesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRateAmenitiesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRateAmenitiesReferenceOperationParams.kt new file mode 100644 index 0000000000..404131dce5 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRateAmenitiesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetRateAmenitiesReferenceOperationParams.Builder::class) +data class GetRateAmenitiesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetRateAmenitiesReferenceOperationParams { + val params = + GetRateAmenitiesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetRateAmenitiesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRegionOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRegionOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRegionOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRegionsOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRegionsOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRegionsOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationContext.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationContext.kt index a57d393397..228bd460dd 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationContext.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationContext.kt @@ -21,7 +21,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize /** * @property customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. - * @property test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` + * @property test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` */ @JsonDeserialize(builder = GetReservationByItineraryIdOperationParams.Builder::class) data class GetReservationByItineraryIdOperationContext( @@ -52,7 +52,7 @@ data class GetReservationByItineraryIdOperationContext( fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } /** - * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` + * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` */ fun test(test: GetReservationByItineraryIdOperationParams.Test) = apply { this.test = test } diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationLink.kt index 488cb077db..1e22901927 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationParams.kt index e6a0efc21f..fec99c1889 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationParams.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationByItineraryIdOperationParams.kt @@ -30,7 +30,7 @@ import javax.validation.constraints.NotNull * @property itineraryId This parameter is used only to prefix the token value - no ID value is used.
    * @property customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. - * @property test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` + * @property test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` * @property token Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. * @property email Email associated with the booking. Special characters in the local part or domain should be encoded. (Email is required if the token is not provided the request)
    * @property include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. @@ -136,7 +136,7 @@ data class GetReservationByItineraryIdOperationParams fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } /** - * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` + * @param test The retrieve call has a test header that can be used to return set responses. Passing standard in the Test header will retrieve a test booking, and passing any of the errors listed below will return a stubbed error response that you can use to test your error handling code. Additionally, refer to the Test Request documentation for more details on how these header values are used. * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` */ fun test(test: GetReservationByItineraryIdOperationParams.Test) = apply { this.test = test } diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationParams.kt index 162841069c..86a88e4d22 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationParams.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetReservationOperationParams.kt @@ -29,7 +29,7 @@ import javax.validation.constraints.NotNull /** * @property customerIp IP address of the customer, as captured by your integration.
    Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    Also used for fraud recovery and other important analytics. * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. - * @property test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` + * @property test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` * @property affiliateReferenceId The affilliate reference id value. This field supports a maximum of 28 characters. * @property email Email associated with the booking. Special characters in the local part or domain should be encoded.
    * @property include Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. @@ -96,7 +96,7 @@ data class GetReservationOperationParams( fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } /** - * @param test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `service_unavailable` * `internal_server_error` + * @param test The retrieve call has a test header that can be used to return set responses with the following keywords:
    * `standard` - Requires valid test booking. * `degraded_response` - Requires valid test booking * `service_unavailable` * `internal_server_error` */ fun test(test: GetReservationOperationParams.Test) = apply { this.test = test } diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomAmenitiesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomAmenitiesReferenceOperation.kt new file mode 100644 index 0000000000..e2bf9c910d --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomAmenitiesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Room Amenities Reference + * @property params [GetRoomAmenitiesReferenceOperationParams] + */ +class GetRoomAmenitiesReferenceOperation( + params: GetRoomAmenitiesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/room-amenities", + "GET", + "getRoomAmenitiesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomAmenitiesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomAmenitiesReferenceOperationParams.kt new file mode 100644 index 0000000000..bd46dcec67 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomAmenitiesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetRoomAmenitiesReferenceOperationParams.Builder::class) +data class GetRoomAmenitiesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetRoomAmenitiesReferenceOperationParams { + val params = + GetRoomAmenitiesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetRoomAmenitiesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomImagesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomImagesReferenceOperation.kt new file mode 100644 index 0000000000..cd94733651 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomImagesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Room Images Reference + * @property params [GetRoomImagesReferenceOperationParams] + */ +class GetRoomImagesReferenceOperation( + params: GetRoomImagesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/room-images", + "GET", + "getRoomImagesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomImagesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomImagesReferenceOperationParams.kt new file mode 100644 index 0000000000..e3a04561e3 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomImagesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetRoomImagesReferenceOperationParams.Builder::class) +data class GetRoomImagesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetRoomImagesReferenceOperationParams { + val params = + GetRoomImagesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetRoomImagesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomViewsReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomViewsReferenceOperation.kt new file mode 100644 index 0000000000..58d9fd3977 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomViewsReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Room Views Reference + * @property params [GetRoomViewsReferenceOperationParams] + */ +class GetRoomViewsReferenceOperation( + params: GetRoomViewsReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/room-views", + "GET", + "getRoomViewsReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomViewsReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomViewsReferenceOperationParams.kt new file mode 100644 index 0000000000..695cf639b8 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetRoomViewsReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetRoomViewsReferenceOperationParams.Builder::class) +data class GetRoomViewsReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetRoomViewsReferenceOperationParams { + val params = + GetRoomViewsReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetRoomViewsReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetSpokenLanguagesReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetSpokenLanguagesReferenceOperation.kt new file mode 100644 index 0000000000..97db6e446b --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetSpokenLanguagesReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Spoken Languages Reference + * @property params [GetSpokenLanguagesReferenceOperationParams] + */ +class GetSpokenLanguagesReferenceOperation( + params: GetSpokenLanguagesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/spoken-languages", + "GET", + "getSpokenLanguagesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetSpokenLanguagesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetSpokenLanguagesReferenceOperationParams.kt new file mode 100644 index 0000000000..c4e6050949 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetSpokenLanguagesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetSpokenLanguagesReferenceOperationParams.Builder::class) +data class GetSpokenLanguagesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetSpokenLanguagesReferenceOperationParams { + val params = + GetSpokenLanguagesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetSpokenLanguagesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetStatisticsReferenceOperation.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetStatisticsReferenceOperation.kt new file mode 100644 index 0000000000..40beb3806d --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetStatisticsReferenceOperation.kt @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Statistics Reference + * @property params [GetStatisticsReferenceOperationParams] + */ +class GetStatisticsReferenceOperation( + params: GetStatisticsReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/statistics", + "GET", + "getStatisticsReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetStatisticsReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetStatisticsReferenceOperationParams.kt new file mode 100644 index 0000000000..769b8bca50 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetStatisticsReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetStatisticsReferenceOperationParams.Builder::class) +data class GetStatisticsReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetStatisticsReferenceOperationParams { + val params = + GetStatisticsReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetStatisticsReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetThemesReferenceOperation.kt similarity index 56% rename from code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperationLink.kt rename to code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetThemesReferenceOperation.kt index dfd4edb11d..28a2067344 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetChainReferenceOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetThemesReferenceOperation.kt @@ -13,4 +13,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +package com.expediagroup.sdk.rapid.operations +import com.expediagroup.sdk.core.model.Nothing +import com.expediagroup.sdk.core.model.Operation + +/** + * Themes Reference + * @property params [GetThemesReferenceOperationParams] + */ +class GetThemesReferenceOperation( + params: GetThemesReferenceOperationParams +) : Operation< + Nothing + >( + "/v3/references/themes", + "GET", + "getThemesReference", + null, + params + ) diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetThemesReferenceOperationParams.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetThemesReferenceOperationParams.kt new file mode 100644 index 0000000000..b36c0b47b1 --- /dev/null +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/GetThemesReferenceOperationParams.kt @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022 Expedia, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.expediagroup.sdk.rapid.operations + +import com.expediagroup.sdk.core.model.OperationParams +import com.expediagroup.sdk.core.model.exception.client.PropertyConstraintViolationException +import com.fasterxml.jackson.annotation.JsonProperty +import com.fasterxml.jackson.databind.annotation.JsonDeserialize +import io.ktor.http.Headers +import io.ktor.http.Parameters +import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator +import javax.validation.Valid +import javax.validation.Validation +import javax.validation.constraints.NotNull + +/** + * @property customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + * @property language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + * @property billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + * @property partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + * @property paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + * @property platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ +@JsonDeserialize(builder = GetThemesReferenceOperationParams.Builder::class) +data class GetThemesReferenceOperationParams( + @field:Valid + val customerSessionId: kotlin.String? = + null, + @field:NotNull + @field:Valid + val language: kotlin.String, + @field:Valid + val billingTerms: kotlin.String? = + null, + @field:Valid + val partnerPointOfSale: kotlin.String? = + null, + @field:Valid + val paymentTerms: kotlin.String? = + null, + @field:Valid + val platformName: kotlin.String? = + null +) : + OperationParams { + companion object { + @JvmStatic + fun builder() = Builder() + } + + class Builder( + @JsonProperty("Customer-Session-Id") private var customerSessionId: kotlin.String? = null, + @JsonProperty("language") private var language: kotlin.String? = null, + @JsonProperty("billing_terms") private var billingTerms: kotlin.String? = null, + @JsonProperty("partner_point_of_sale") private var partnerPointOfSale: kotlin.String? = null, + @JsonProperty("payment_terms") private var paymentTerms: kotlin.String? = null, + @JsonProperty("platform_name") private var platformName: kotlin.String? = null + ) { + /** + * @param customerSessionId Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user's session, using a new value for every new customer session.
    Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user's session. + */ + fun customerSessionId(customerSessionId: kotlin.String) = apply { this.customerSessionId = customerSessionId } + + /** + * @param language Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes.

    Reference: * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + */ + fun language(language: kotlin.String) = apply { this.language = language } + + /** + * @param billingTerms This parameter is to specify the terms of how a resulting booking should be billed. If this field is needed, the value for this will be provided to you separately. + */ + fun billingTerms(billingTerms: kotlin.String) = apply { this.billingTerms = billingTerms } + + /** + * @param partnerPointOfSale This parameter is to specify what point of sale is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun partnerPointOfSale(partnerPointOfSale: kotlin.String) = apply { this.partnerPointOfSale = partnerPointOfSale } + + /** + * @param paymentTerms This parameter is to specify what terms should be used when being paid for a resulting booking. If this field is needed, the value for this will be provided to you separately. + */ + fun paymentTerms(paymentTerms: kotlin.String) = apply { this.paymentTerms = paymentTerms } + + /** + * @param platformName This parameter is to specify what platform is being used to shop and book. If this field is needed, the value for this will be provided to you separately. + */ + fun platformName(platformName: kotlin.String) = apply { this.platformName = platformName } + + fun build(): GetThemesReferenceOperationParams { + val params = + GetThemesReferenceOperationParams( + customerSessionId = customerSessionId, + language = language!!, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + validate(params) + + return params + } + + private fun validate(params: GetThemesReferenceOperationParams) { + val validator = + Validation + .byDefaultProvider() + .configure() + .messageInterpolator(ParameterMessageInterpolator()) + .buildValidatorFactory() + .validator + + val violations = validator.validate(params) + + if (violations.isNotEmpty()) { + throw PropertyConstraintViolationException( + constraintViolations = violations.map { "${it.propertyPath}: ${it.message}" } + ) + } + } + } + + fun toBuilder() = + Builder( + customerSessionId = customerSessionId, + language = language, + billingTerms = billingTerms, + partnerPointOfSale = partnerPointOfSale, + paymentTerms = paymentTerms, + platformName = platformName + ) + + override fun getHeaders(): Headers = + Headers.build { + customerSessionId?.let { + append("Customer-Session-Id", it) + } + append("Accept", "application/json") + } + + override fun getQueryParams(): Parameters = + Parameters.build { + language?.let { + append("language", it) + } + billingTerms?.let { + append("billing_terms", it) + } + partnerPointOfSale?.let { + append("partner_point_of_sale", it) + } + paymentTerms?.let { + append("payment_terms", it) + } + platformName?.let { + append("platform_name", it) + } + } + + override fun getPathParams(): Map = + buildMap { + } +} diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostGeographyOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostGeographyOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostGeographyOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostItineraryOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostItineraryOperationLink.kt index 9e11bf0147..aa3affc5ba 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostItineraryOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostItineraryOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostPaymentSessionsOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostPaymentSessionsOperationLink.kt index e30e661b49..fbd0d15574 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostPaymentSessionsOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PostPaymentSessionsOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PriceCheckOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PriceCheckOperationLink.kt index bd69be4098..89183e12dc 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PriceCheckOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PriceCheckOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutCompletePaymentSessionOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutCompletePaymentSessionOperationLink.kt index c13410ba11..981d52a635 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutCompletePaymentSessionOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutCompletePaymentSessionOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutResumeBookingOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutResumeBookingOperationLink.kt index 6728361c14..612fae343d 100644 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutResumeBookingOperationLink.kt +++ b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/PutResumeBookingOperationLink.kt @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.expediagroup.sdk.rapid.operations import com.expediagroup.sdk.rapid.models.Link diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/RequestTestNotificationOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/RequestTestNotificationOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/RequestTestNotificationOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/RequestUndeliveredNotificationsOperationLink.kt b/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/RequestUndeliveredNotificationsOperationLink.kt deleted file mode 100644 index dfd4edb11d..0000000000 --- a/code/src/main/kotlin/com/expediagroup/sdk/rapid/operations/RequestUndeliveredNotificationsOperationLink.kt +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (C) 2022 Expedia, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/code/transformedSpecs.yaml b/code/transformedSpecs.yaml index 6c7b114e26..a720f64425 100644 --- a/code/transformedSpecs.yaml +++ b/code/transformedSpecs.yaml @@ -31,13 +31,16 @@ paths: Search property content for active properties in the requested language.

    - When searching with query parameter, `property_id`, you may request 1 to 250 properties at a time.

    + When searching with query parameter, `property_id`, you may request 1 to + 250 properties at a time.

    - When searching with query parameters other than `property_id`, the response will be paginated. See the `Link` + When searching with query parameters other than `property_id`, the + response will be paginated. See the `Link` header in the 200 response section.

    - The response is a JSON map where the key is the property ID and the value is the property object itself, which + The response is a JSON map where the key is the property ID and the + value is the property object itself, which can include property-level, room-level and rate-level information. operationId: getPropertyContent @@ -48,27 +51,25 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. -

    Reference: - * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) - * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true schema: @@ -80,17 +81,13 @@ paths: value: zh-HK - name: supply_source in: query - description: > - Options for which supply source you would like returned in the - content response. This parameter may only be - + description: | + Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if - the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) for - more information. required: true schema: @@ -106,9 +103,11 @@ paths: Search to include properties that have the requested `all_inclusive` values equal to true. If this parameter - is not supplied, all `all_inclusive` scenarios are included. This parameter can be supplied multiple times + is not supplied, all `all_inclusive` scenarios are included. This + parameter can be supplied multiple times - with different values, which will include properties that match any of the requested scenarios. + with different values, which will include properties that match any + of the requested scenarios. * `all_rate_plans` - Return properties where `all_inclusive.all_rate_plans` is true. * `some_rate_plans` = Return properties where `all_inclusive.some_rate_plans` is true. schema: @@ -117,7 +116,7 @@ paths: type: string examples: Optional: - ? value + value: null All: value: all_rate_plans - name: amenity_id @@ -126,16 +125,18 @@ paths: The ID of the amenity you want to search for. This parameter can be supplied multiple times with different - values, which will include properties that match any of the requested amenity IDs. This is currently only + values, which will include properties that match any of the + requested amenity IDs. This is currently only - capable of searching for property level amenities. Room and rate level amenities cannot be searched on. + capable of searching for property level amenities. Room and rate + level amenities cannot be searched on. schema: type: array items: type: string examples: Optional: - ? value + value: null Elevator: value: 8 Multiple: @@ -148,14 +149,15 @@ paths: The ID of the attribute you want to search for. This parameter can be supplied multiple times with different - values, which will include properties that match any of the requested attribute IDs. + values, which will include properties that match any of the + requested attribute IDs. schema: type: array items: type: string examples: Optional: - ? value + value: null Pets: value: 51 Multiple: @@ -168,14 +170,15 @@ paths: The ID of the brand you want to search for. This parameter can be supplied multiple times with different - values, which will include properties that match any of the requested brand IDs. + values, which will include properties that match any of the + requested brand IDs. schema: type: array items: type: string examples: Optional: - ? value + value: null Hyatt: value: 11210 Multiple: @@ -188,7 +191,8 @@ paths: Search for properties with the requested business model enabled. This parameter can be supplied multiple - times with different values, which will return all properties that match any of the requested business + times with different values, which will return all properties that + match any of the requested business models. The value must be lower case. * `expedia_collect` - Return only properties where the payment is collected by Expedia. @@ -202,18 +206,15 @@ paths: - property_collect examples: Optional: - ? value + value: null Single: value: expedia_collect - name: category_id in: query - description: > + description: | Search to include properties that have the requested - [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If - this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times - with different values, which will include properties that match any of the requested category IDs. schema: type: array @@ -221,7 +222,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: 1 Multiple: @@ -230,13 +231,10 @@ paths: - 2 - name: category_id_exclude in: query - description: > + description: | Search to exclude properties that do not have the requested - [category ID](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists). If - this parameter is not supplied, all category IDs are included. This parameter can be supplied multiple times - with different values, which will exclude properties that match any of the requested category IDs. schema: type: array @@ -244,7 +242,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: 1 Multiple: @@ -257,7 +255,8 @@ paths: The ID of the chain you want to search for. These chain IDs can be positive and negative numbers. This - parameter can be supplied multiple times with different values, which will include properties that match + parameter can be supplied multiple times with different values, + which will include properties that match any of the requested chain IDs. schema: @@ -266,7 +265,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: -6 Multiple: @@ -279,7 +278,8 @@ paths: Search for properties with the requested country code, in ISO 3166-1 alpha-2 format. This parameter can be - supplied multiple times with different values, which will include properties that match any of the + supplied multiple times with different values, which will include + properties that match any of the requested country codes. schema: @@ -288,7 +288,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: US Multiple: @@ -304,7 +304,7 @@ paths: type: string examples: Optional: - ? value + value: null Recent: value: 2023-09-21 - name: date_added_start @@ -316,7 +316,7 @@ paths: type: string examples: Optional: - ? value + value: null Recent: value: 2023-09-20 - name: date_updated_end @@ -328,7 +328,7 @@ paths: type: string examples: Optional: - ? value + value: null Recent: value: 2023-09-21 - name: date_updated_start @@ -340,7 +340,7 @@ paths: type: string examples: Optional: - ? value + value: null Recent: value: 2023-09-20 - name: include @@ -349,13 +349,17 @@ paths: Each time this parameter is specified will add to the list of fields and associated objects returned in the - response. All values and field names are lower case. The values `property_ids` and `catalog` will continue + response. All values and field names are lower case. The values + `property_ids` and `catalog` will continue - to behave as specified below for backwards compatibility. All other top level field names will add the + to behave as specified below for backwards compatibility. All other + top level field names will add the - specified field to the list of fields returned in the response. See the response schema for a full list of + specified field to the list of fields returned in the response. See + the response schema for a full list of - top level field names. Additionally, the field `property_id` will always be returned regardless of what + top level field names. Additionally, the field `property_id` will + always be returned regardless of what include values are passed.

    @@ -375,7 +379,7 @@ paths: type: string examples: IncludeAll: - ? value + value: null Single: value: images Multiple: @@ -395,7 +399,7 @@ paths: type: boolean examples: Optional: - ? value + value: null Single: value: false - name: property_id @@ -415,7 +419,7 @@ paths: - 1337 - 1 Optional: - ? value + value: null - name: property_rating_max in: query description: > @@ -427,7 +431,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: 5 - name: property_rating_min @@ -441,7 +445,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: 3.5 - name: spoken_language_id @@ -450,7 +454,8 @@ paths: The id of the spoken language you want to search for. This parameter can be supplied multiple times with - different values, which will include properties that match any of the requested spoken languages. The + different values, which will include properties that match any of + the requested spoken languages. The language code as a subset of BCP47 format. schema: @@ -459,7 +464,7 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: en Multiple: @@ -490,7 +495,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -507,41 +513,19 @@ paths: description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" Link: @@ -549,11 +533,14 @@ paths: Contains a single link to get the immediate next page of results, and follows the - [IETF standard](https://tools.ietf.org/html/rfc5988). To get the next page of results, simply follow + [IETF standard](https://tools.ietf.org/html/rfc5988). To get the + next page of results, simply follow - the `next` URL in this header without modifying it. This header will be missing when there are no + the `next` URL in this header without modifying it. This header + will be missing when there are no - further pages. If the link expires, there will be an `expires` link-extension that is the UTC date the + further pages. If the link expires, there will be an `expires` + link-extension that is the UTC date the link will expire, in ISO 8601 format. schema: @@ -784,18 +771,17 @@ paths: special_offer_description: "Breakfast for 2 - Rate includes the following:\r -
    • Accommodations - as selected
    • \r +
      • Accommodations as selected
      • \r -
      • Breakfast in hotel - restaurant for up to 2 adults and children 12 years - old and under registered in the same room
      • \r +
      • Breakfast in hotel restaurant for up to 2 adults + and children 12 years old and under registered in + the same room
      • \r -
      Must book this - rate plan to receive benefits. Details provided at - check-in. Taxes and gratuity may not be included. No - refunds for any unused portion of offer. Offer - subject to availability. Offer is not valid with +
    Must book this rate plan to receive + benefits. Details provided at check-in. Taxes and + gratuity may not be included. No refunds for any + unused portion of offer. Offer subject to + availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\r\n" @@ -1428,18 +1414,17 @@ paths: special_offer_description: "Breakfast for 2 - Rate includes the following:\r -
    • Accommodations - as selected
    • \r +
      • Accommodations as selected
      • \r -
      • Breakfast in hotel - restaurant for up to 2 adults and children 12 years - old and under registered in the same room
      • \r +
      • Breakfast in hotel restaurant for up to 2 adults + and children 12 years old and under registered in + the same room
      • \r -
      Must book this - rate plan to receive benefits. Details provided at - check-in. Taxes and gratuity may not be included. No - refunds for any unused portion of offer. Offer - subject to availability. Offer is not valid with +
    Must book this rate plan to receive + benefits. Details provided at check-in. Taxes and + gratuity may not be included. No refunds for any + unused portion of offer. Offer subject to + availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\r\n" @@ -1762,18 +1747,17 @@ paths: special_offer_description: "Breakfast for 2 - Rate includes the following:\r -
    • Accommodations - as selected
    • \r +
      • Accommodations as selected
      • \r -
      • Breakfast in hotel - restaurant for up to 2 adults and children 12 years - old and under registered in the same room
      • \r +
      • Breakfast in hotel restaurant for up to 2 adults + and children 12 years old and under registered in + the same room
      • \r -
      Must book this - rate plan to receive benefits. Details provided at - check-in. Taxes and gratuity may not be included. No - refunds for any unused portion of offer. Offer - subject to availability. Offer is not valid with +
    Must book this rate plan to receive + benefits. Details provided at check-in. Taxes and + gratuity may not be included. No refunds for any + unused portion of offer. Offer subject to + availability. Offer is not valid with groups/conventions and may not be combined with other promotional offers. Other restrictions and blackout dates may apply.\r\n" @@ -1884,7 +1868,7 @@ paths: payment_registration_recommended: true supply_source: expedia registry_number: Property Registration Number 1234567890 - "Multiple Properties With include name, and ratings": + Multiple Properties With include name, and ratings: value: "12345": property_id: "12345" @@ -1932,41 +1916,19 @@ paths: description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -2065,41 +2027,19 @@ paths: description: Gone headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -2126,41 +2066,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -2207,7 +2125,8 @@ paths: date.

    - When there are a large number of properties in the response, it will be paginated. See the `Link` header in the + When there are a large number of properties in the response, it will be + paginated. See the `Link` header in the 200 response section. operationId: getInactiveProperties @@ -2218,13 +2137,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: since @@ -2233,14 +2155,15 @@ paths: Required on initial call, not accepted on subsequent paging links provided in response header.
    - The earliest date that a property became inactive to include in the results. ISO 8601 format (YYYY-MM-DD) + The earliest date that a property became inactive to include in the + results. ISO 8601 format (YYYY-MM-DD) schema: type: string examples: Initial: value: 2023-09-20 Paging: - ? value + value: null - name: token in: query description: > @@ -2272,7 +2195,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -2289,51 +2213,32 @@ paths: description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Link: description: > Contains a single link to get the immediate next page of results, and follows the - [IETF standard](https://tools.ietf.org/html/rfc5988). To get the next page of results, simply follow + [IETF standard](https://tools.ietf.org/html/rfc5988). To get the + next page of results, simply follow - the `next` URL in this header without modifying it. This header will be missing when there are no + the `next` URL in this header without modifying it. This header + will be missing when there are no - further pages. If the link expires, there will be an `expires` link-extension that is the UTC date the + further pages. If the link expires, there will be an `expires` + link-extension that is the UTC date the link will expire, in ISO 8601 format. schema: @@ -2364,41 +2269,19 @@ paths: description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" content: application/json: schema: @@ -2463,41 +2346,19 @@ paths: description: Gone headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" content: application/json: schema: @@ -2519,41 +2380,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" content: application/json: schema: @@ -2581,22 +2420,16 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/properties/{property_id}/guest-reviews": + /v3/properties/{property_id}/guest-reviews: get: tags: - getPropertyGuestReviews summary: Property Guest Reviews - description: > - Note: Property Guest Reviews are only available if your account is - configured for access and all launch requirements have been followed. - Please find the launch requirements here - [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) - and contact your Account Manager for more details. - + description: | + Note: Property Guest Reviews are only available if your account is configured for access and all launch requirements have been followed. Please find the launch requirements here [https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799](https://support.expediapartnersolutions.com/hc/en-us/articles/360008646799) and contact your Account Manager for more details. The response is an individual Guest Reviews object containing multiple guest reviews for the requested active property. - To ensure you always show the latest guest reviews, this call should be made whenever a customer looks at the details for a specific property. operationId: getPropertyGuestReviews parameters: @@ -2606,27 +2439,25 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. -

    Reference: - * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) - * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true schema: @@ -2649,7 +2480,8 @@ paths: Single filter value. Send multiple instances of this parameter to request multiple filters. - * `language` - Filters reviews to only those that match the specified `language` parameter value. Without + * `language` - Filters reviews to only those that match the + specified `language` parameter value. Without this filter, the matching language will be preferred, but other language results can be returned. Specifying this filter could produce an error when there are no matching results. schema: @@ -2660,7 +2492,7 @@ paths: - language examples: Optional: - ? value + value: null Single: value: language - name: trip_reason @@ -2669,7 +2501,8 @@ paths: Desired reason provided for the reviewer's trip that you wish to display. This parameter can be supplied - multiple times with different values, which will include reviews that match any of the requested trip + multiple times with different values, which will include reviews + that match any of the requested trip reasons. required: false @@ -2684,7 +2517,7 @@ paths: - business_and_leisure examples: Optional: - ? value + value: null Single: value: business Multiple: @@ -2715,7 +2548,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -2732,41 +2566,19 @@ paths: description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -2799,47 +2611,26 @@ paths: Dear Guest, Thank you for your feedback. I hope we have the opportunity to welcome you back - in the near future. Best regards, Kara (General Manager) + in the near future. Best regards, Kara (General + Manager) date: 2019-02-11T14:36:54Z "400": description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -2922,41 +2713,19 @@ paths: description: Not Found headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -2982,41 +2751,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3057,11 +2804,8 @@ paths: tags: - getPropertyCatalogFile summary: Property Catalog File - description: > - Returns a link to download the master list of EPS's active properties in - the requested language. The response includes high-level details about - each property. - + description: | + Returns a link to download the master list of EPS's active properties in the requested language. The response includes high-level details about each property.
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is a subset of the schema of each JSON object from the Property Content call. The subset of fields included are: @@ -3082,13 +2826,9 @@ paths: * supply_source
    Example of a JSONL file with 2 properties: - ``` - {"property_id":"12345","name":"Test Property Name","address":{"line_1":"123 Main St","line_2":"Apt A","city":"Springfield","state_province_code":"MO","state_province_name":"Missouri","postal_code":"65804","country_code":"US","obfuscation_required":false,"localized":{"links":{"es-ES":{"method":"GET","href":"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=12345"},"fr-FR":{"method":"GET","href":"https://api.ean.com/v3/properties/content?language=fr-FR&include=address&property_id=12345"}}}},"ratings":{"property":{"rating":"3.5","type":"Star"},"guest":{"count":48382,"overall":"3.1","cleanliness":"4.2","service":"1.1","comfort":"4.3","condition":"1.6","location":"4.0","neighborhood":"3.4","quality":"3.4","value":"2.2","amenities":"1.4","recommendation_percent":"73%"}},"location":{"coordinates":{"latitude":37.15845,"longitude":-93.26838}},"phone":"1-417-862-0153","fax":"1-417-863-7249","category":{"id":"1","name":"Hotel"},"rank":42,"business_model":{"expedia_collect":true,"property_collect":false},"dates":{"added":"1998-07-19T05:00:00.000Z","updated":"2018-03-22T07:23:14.000Z"},"statistics":{"52":{"id":"52","name":"Total number of rooms - 820","value":"820"},"54":{"id":"54","name":"Number of floors - 38","value":"38"}},"chain":{"id":"-6","name":"Hyatt Hotels"},"brand":{"id":"2209","name":"Hyatt Place"},"supply_source":"expedia"} - {"property_id":"67890","name":"Test Property Name 2","address":{"line_1":"123 Main St","line_2":"Apt A","city":"Springfield","state_province_code":"MO","state_province_name":"Missouri","postal_code":"65804","country_code":"US","obfuscation_required":true,"localized":{"links":{"es-ES":{"method":"GET","href":"https://api.ean.com/v3/properties/content?language=es-ES&include=address&property_id=67890"},"de-DE":{"method":"GET","href":"https://api.ean.com/v3/properties/content?language=de-DE&include=address&property_id=67890"}}}},"ratings":{"property":{"rating":"3.5","type":"Star"},"guest":{"count":7651,"overall":"4.3","cleanliness":"4.2","service":"1.1","comfort":"4.3","condition":"1.6","location":"4.0","neighborhood":"3.4","quality":"3.4","value":"2.2","amenities":"1.4","recommendation_percent":"80%"}},"location":{"coordinates":{"latitude":37.15845,"longitude":-93.26838}},"phone":"1-417-862-0153","fax":"1-417-863-7249","category":{"id":"1","name":"Hotel"},"rank":42,"business_model":{"expedia_collect":true,"property_collect":true},"dates":{"added":"1998-07-20T05:00:00.000Z","updated":"2018-03-22T13:33:17.000Z"},"statistics":{"52":{"id":"52","name":"Total number of rooms - 820","value":"820"},"54":{"id":"54","name":"Number of floors - 38","value":"38"}},"chain":{"id":"-5","name":"Hilton Worldwide"},"brand":{"id":"358","name":"Hampton Inn"},"supply_source":"expedia"} - ``` operationId: getPropertyCatalogFile parameters: @@ -3098,24 +2838,22 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit language and country codes. - Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 - country codes. See - [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true @@ -3124,15 +2862,11 @@ paths: example: en-US - name: supply_source in: query - description: > - Options for which supply source you would like returned in the - content response. This parameter may only be supplied once and will - return all properties that match the requested supply source. An - error is thrown if the parameter is provided multiple times. + description: | + Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) - for more information. required: true schema: @@ -3166,7 +2900,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -3183,41 +2918,19 @@ paths: description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3232,41 +2945,19 @@ paths: description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3349,41 +3040,19 @@ paths: description: Not Found headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3413,41 +3082,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3494,7 +3141,9 @@ paths: property-level, room-level and rate-level information. -
    This file is in JSONL format and is gzipped. The schema of each JSON object in the JSONL file is the same as the schema of each JSON object from the Property Content call. +
    This file is in JSONL format and is gzipped. The schema of each JSON + object in the JSONL file is the same as the schema of each JSON object + from the Property Content call.
    Example of a JSONL file with 2 properties: @@ -3510,27 +3159,25 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. -

    Reference: - * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) - * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true schema: @@ -3542,15 +3189,11 @@ paths: value: ja-JP - name: supply_source in: query - description: > - Options for which supply source you would like returned in the - content response. This parameter may only be supplied once and will - return all properties that match the requested supply source. An - error is thrown if the parameter is provided multiple times. + description: | + Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) - for more information. required: true schema: @@ -3584,7 +3227,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -3601,41 +3245,19 @@ paths: description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3650,41 +3272,19 @@ paths: description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3767,41 +3367,19 @@ paths: description: Not Found headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3831,41 +3409,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -3906,18 +3462,12 @@ paths: tags: - getRegions summary: Regions - description: > - Returns the geographic definition and property mappings of regions - matching the specified parameters.

    - + description: | + Returns the geographic definition and property mappings of regions matching the specified parameters.

    To request all regions in the world, omit the `ancestor` query parameter. To request all regions in a specific - continent, country or other level, specify the ID of that region as the `ancestor`. Refer to the list of - [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists). -

    - The response is a paginated list of regions. See the `Link` header in the 200 response section. operationId: getRegions parameters: @@ -3927,13 +3477,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: include @@ -3942,7 +3495,8 @@ paths: Options for which content to return in the response. This parameter can be supplied multiple times with - different values. The standard and details options cannot be requested together. The value must be lower + different values. The standard and details options cannot be + requested together. The value must be lower case. * standard - Include the metadata and basic hierarchy of each region. @@ -3969,16 +3523,11 @@ paths: - standard - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. -

    Reference: - * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) - * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true schema: @@ -3990,16 +3539,14 @@ paths: value: ja-JP - name: ancestor_id in: query - description: > - Search for regions whose ancestors include the requested ancestor - region ID. Refer to the list of - + description: | + Search for regions whose ancestors include the requested ancestor region ID. Refer to the list of [top level regions](https://developers.expediagroup.com/docs/rapid/lodging/geography/geography-reference-lists). schema: type: string examples: Optional: - ? value + value: null Single: value: 602962 - name: area @@ -4012,33 +3559,40 @@ paths: * radius,region_id * radius,latitude,longitude - Radius combined with region id would search an area that extends the number of kilometers out from the boundaries of the region in all directions.
    + Radius combined with region id would search an area that extends the + number of kilometers out from the boundaries of the region in all + directions.
    - Radius combined with a single point, specified by a latitude, longitude pair would search an area in a circle with the specified radius and the point as the center.
    + Radius combined with a single point, specified by a latitude, + longitude pair would search an area in a circle with the specified + radius and the point as the center.
    - Radius should be specified in non-negative whole kilometers, decimals will return an error. A radius of 0 is allowed.
    + Radius should be specified in non-negative whole kilometers, + decimals will return an error. A radius of 0 is allowed.
    - When specifying the area parameter, there will be a limit of 100 results, which can be narrowed further by the limit parameter.
    + When specifying the area parameter, there will be a limit of 100 + results, which can be narrowed further by the limit parameter.
    - Due to the number of results, unless `point_of_interest` is specified as the only type, regions of type `point_of_interest` + Due to the number of results, unless `point_of_interest` is + specified as the only type, regions of type `point_of_interest` will not be included in a request that filters to an area.

    - An example use case would be searching for the closest 3 airports within 50 kilometers of a specified point.
    + An example use case would be searching for the closest 3 airports + within 50 kilometers of a specified point.
    `&type=airport&limit=3&area=50,37.227924,-93.310036` schema: type: string examples: Optional: - ? value + value: null Area: value: 3,602962 - name: country_code in: query - description: > + description: | Filter the results to a specified ISO 3166-1 alpha-2 country code. - For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/) schema: type: array @@ -4046,7 +3600,7 @@ paths: type: string examples: Optional: - ? value + value: null United States: value: US - name: country_subdivision_code @@ -4058,7 +3612,7 @@ paths: type: string examples: Optional: - ? value + value: null Missouri: value: US-MO - name: iata_location_code @@ -4071,7 +3625,7 @@ paths: type: string examples: Optional: - ? value + value: null Springfield: value: SGF - name: limit @@ -4079,7 +3633,8 @@ paths: description: > Limit the number of results returned. - Using the area parameter will impose a max value of 100 for this whether specified or not. + Using the area parameter will impose a max value of 100 for this + whether specified or not. schema: type: number - name: supply_source @@ -4095,7 +3650,7 @@ paths: type: string examples: Optional: - ? value + value: null VRBO: value: vrbo - name: type @@ -4130,7 +3685,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -4189,11 +3745,14 @@ paths: Contains a single link to get the immediate next page of results, and follows the - [IETF standard](https://tools.ietf.org/html/rfc5988). To get the next page of results, simply follow + [IETF standard](https://tools.ietf.org/html/rfc5988). To get the + next page of results, simply follow - the `next` URL in this header without modifying it. This header will be missing when there are no + the `next` URL in this header without modifying it. This header + will be missing when there are no - further pages. If the link expires, there will be an `expires` link-extension that is the UTC date the + further pages. If the link expires, there will be an `expires` + link-extension that is the UTC date the link will expire, in ISO 8601 format. schema: @@ -4578,7 +4137,7 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/regions/{region_id}": + /v3/regions/{region_id}: get: tags: - getRegion @@ -4595,13 +4154,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: region_id @@ -4614,13 +4176,8 @@ paths: example: 178248 - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit language and country codes. - Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 - country codes. See - [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/) Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true @@ -4662,7 +4219,7 @@ paths: type: string examples: Optional: - ? value + value: null VRBO: value: vrbo - name: billing_terms @@ -4689,7 +4246,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -4743,10 +4301,6 @@ paths: type: string Region: $ref: "#/components/headers/Region" - Pagination-Total-Results: - description: Header that returns the pagination total results. - schema: - type: string content: application/json: schema: @@ -5097,7 +4651,9 @@ paths: Returns the properties within an custom polygon that represents a multi-city area or smaller. - The coordinates of the polygon should be in [GeoJSON format](https://tools.ietf.org/html/rfc7946) and the polygon must conform to the following restrictions: + The coordinates of the polygon should be in [GeoJSON + format](https://tools.ietf.org/html/rfc7946) and the polygon must + conform to the following restrictions: * Polygon size - diagonal distance of the polygon must be less than 500km * Polygon type - only single polygons are supported * Number of coordinates - must be <= 2000 @@ -5109,13 +4665,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: include @@ -5130,17 +4689,13 @@ paths: example: property_ids - name: supply_source in: query - description: > - Options for which supply source you would like returned in the - content response. This parameter may only be - + description: | + Options for which supply source you would like returned in the content response. This parameter may only be supplied once and will return all properties that match the requested supply source. An error is thrown if - the parameter is provided multiple times. * `expedia` - Standard Expedia supply. * `vrbo` - VRBO supply - This option is restricted to partners who have VRBO supply enabled for their profile. See [Vacation Rentals](https://developers.expediagroup.com/docs/rapid/lodging/vacation-rentals) - for more information. required: true schema: @@ -5174,7 +4729,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -5443,11 +4999,16 @@ paths: full price breakdown to meet the price display requirements for your market. - _Note_: If there are no available rooms, the response will be an empty array. + _Note_: If there are no available rooms, the response will be an empty + array. - * Multiple rooms of the same type may be requested by including multiple instances of the `occupancy` parameter. + * Multiple rooms of the same type may be requested by including multiple + instances of the `occupancy` parameter. - * The `nightly` array includes each individual night's charges. When the total price includes fees, charges, or adjustments that are not divided by night, these amounts will be included in the `stay` rate array, which details charges applied to the entire stay (each check-in). + * The `nightly` array includes each individual night's charges. When the + total price includes fees, charges, or adjustments that are not divided + by night, these amounts will be included in the `stay` rate array, which + details charges applied to the entire stay (each check-in). operationId: getAvailability parameters: - name: Customer-Ip @@ -5455,7 +5016,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. schema: @@ -5467,13 +5030,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: Test @@ -5502,7 +5068,7 @@ paths: required: true schema: type: string - example: 2025-02-01 + example: 2025-06-01 - name: checkout in: query description: > @@ -5512,12 +5078,11 @@ paths: required: true schema: type: string - example: 2025-02-03 + example: 2025-06-03 - name: currency in: query - description: > + description: | Requested currency for the rates, in ISO 4217 format

    - Currency Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/currency-options](https://developers.expediagroup.com/docs/rapid/resources/reference/currency-options) required: true schema: @@ -5527,11 +5092,8 @@ paths: value: USD - name: country_code in: query - description: > - The country code of the traveler's point of sale, in ISO 3166-1 - alpha-2 format. This should represent the country where the shopping - transaction is taking place.
    - + description: | + The country code of the traveler's point of sale, in ISO 3166-1 alpha-2 format. This should represent the country where the shopping transaction is taking place.
    For more information see: [https://www.iso.org/obp/ui/#search/code/](https://www.iso.org/obp/ui/#search/code/) required: true schema: @@ -5541,13 +5103,8 @@ paths: value: US - name: language in: query - description: > - Desired language for the response as a subset of BCP47 format that - only uses hyphenated pairs of two-digit language and country codes. - Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 - country codes. See - [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/)
    - + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. See [https://www.w3.org/International/articles/language-tags/](https://www.w3.org/International/articles/language-tags/)
    Language Options: [https://developers.expediagroup.com/docs/rapid/resources/reference/language-options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) required: true schema: @@ -5563,13 +5120,17 @@ paths: Format: `numberOfAdults[-firstChildAge[,nextChildAge]]`
    - To request multiple rooms (of the same type), include one instance of occupancy for each room requested. Up to 8 rooms may be requested or booked at once.
    + To request multiple rooms (of the same type), include one instance + of occupancy for each room requested. Up to 8 rooms may be requested + or booked at once.
    Examples: - * 2 adults, one 9-year-old and one 4-year-old would be represented by `occupancy=2-9,4`.
    + * 2 adults, one 9-year-old and one 4-year-old would be represented + by `occupancy=2-9,4`.
    - * A multi-room request to lodge an additional 2 adults would be represented by `occupancy=2-9,4&occupancy=2` + * A multi-room request to lodge an additional 2 adults would be + represented by `occupancy=2-9,4&occupancy=2` required: true style: form explode: true @@ -5622,13 +5183,17 @@ paths: * `website` - Standard website accessed from the customer's computer - * `agent_tool` - Your own agent tool used by your call center or retail store agent + * `agent_tool` - Your own agent tool used by your call center or + retail store agent - * `mobile_app` - An application installed on a phone or tablet device + * `mobile_app` - An application installed on a phone or tablet + device - * `mobile_web` - A web browser application on a phone or tablet device + * `mobile_web` - A web browser application on a phone or tablet + device - * `meta` - Rates will be passed to and displayed on a 3rd party comparison website + * `meta` - Rates will be passed to and displayed on a 3rd party + comparison website * `cache` - Rates will be used to populate a local cache required: true @@ -5645,11 +5210,14 @@ paths: you have a sales environment that is not currently supported in this list, please contact our support team.
    - * `hotel_package` - Use when selling the hotel with a transport product, e.g. flight & hotel. + * `hotel_package` - Use when selling the hotel with a transport + product, e.g. flight & hotel. - * `hotel_only` - Use when selling the hotel as an individual product. + * `hotel_only` - Use when selling the hotel as an individual + product. - * `loyalty` - Use when you are selling the hotel as part of a loyalty program and the price is converted to points. + * `loyalty` - Use when you are selling the hotel as part of a + loyalty program and the price is converted to points. required: true schema: type: string @@ -5658,14 +5226,10 @@ paths: value: hotel_only - name: amenity_category in: query - description: > - Single amenity category. Send multiple instances of this parameter - to request rates that match multiple amenity categories.
    - + description: | + Single amenity category. Send multiple instances of this parameter to request rates that match multiple amenity categories.
    See the Amenity Categories section of the - [Content Reference Lists](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists) - for a list of values. style: form explode: true @@ -5675,7 +5239,7 @@ paths: type: string examples: Optional: - ? value + value: null Multiple: value: - swimming_pool @@ -5685,9 +5249,11 @@ paths: Single exclusion type. Send multiple instances of this parameter to request multiple exclusions.
    - * `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates with refundable damage deposits from the response. + * `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates + with refundable damage deposits from the response. - * `card_on_file` - Excludes Rapid supplied Vrbo rates with card-on-file damage collection from the response. + * `card_on_file` - Excludes Rapid supplied Vrbo rates with + card-on-file damage collection from the response. schema: type: array items: @@ -5697,7 +5263,7 @@ paths: - card_on_file examples: Optional: - ? value + value: null Single: value: - refundable_damage_deposit @@ -5711,13 +5277,21 @@ paths: Single filter type. Send multiple instances of this parameter to request multiple filters.
    - * `refundable` - Filters results to only show fully refundable rates. + * `refundable` - Filters results to only show fully refundable + rates. - * `expedia_collect` - Filters results to only show rates where payment is collected by Expedia at the time of booking. These properties can be eligible for payments via Expedia Affiliate Collect(EAC). + * `expedia_collect` - Filters results to only show rates where + payment is collected by Expedia at the time of booking. These + properties can be eligible for payments via Expedia Affiliate + Collect(EAC). - * `property_collect` - Filters results to only show rates where payment is collected by the property after booking. This can include rates that require a deposit by the property, dependent upon the deposit policies. + * `property_collect` - Filters results to only show rates where + payment is collected by the property after booking. This can include + rates that require a deposit by the property, dependent upon the + deposit policies. - * `loyalty` - Filters results to only show rates that are eligible for loyalty points. + * `loyalty` - Filters results to only show rates that are eligible + for loyalty points. style: form explode: true schema: @@ -5730,21 +5304,18 @@ paths: - property_collect examples: Optional: - ? value + value: null Multiple: value: - expedia_collect - name: include in: query - description: > - Modify the response by including types of responses that are not - provided by default.
    - + description: | + Modify the response by including types of responses that are not provided by default.
    * `unavailable_reason` - When a property is unavailable for an actionable reason, return a response with that reason - See [Unavailable Reason Codes](https://developers.expediagroup.com/docs/rapid/resources/reference/unavailable-reason-codes) for possible values. - * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `room.rate.sale_scenario` section of the response. - * `rooms.rates.marketing_fee_incentives` - When a rate has a marketing fee incentive applied, the response will include the `marketing_fee_incentives` array if this flag is provided in the request. + * `rooms.rates.current_refundability` - Displays the current `refundability` of a rate. schema: type: array items: @@ -5753,9 +5324,10 @@ paths: - unavailable_reason - sale_scenario.mobile_promotion - rooms.rates.marketing_fee_incentives + - rooms.rates.current_refundability examples: Optional: - ? value + value: null Multiple: value: - unavailable_reason @@ -5767,11 +5339,16 @@ paths: Accepted values:
    - * `member` - Return member rates for each property. This feature must be enabled and requires a user to be logged in to request these rates. + * `member` - Return member rates for each property. This feature + must be enabled and requires a user to be logged in to request these + rates. - * `net_rates` - Return net rates for each property. This feature must be enabled to request these rates. + * `net_rates` - Return net rates for each property. This feature + must be enabled to request these rates. - * `cross_sell` - Identify if the traffic is coming from a cross sell booking. Where the traveler has booked another service (flight, car, activities...) before hotel. + * `cross_sell` - Identify if the traffic is coming from a cross sell + booking. Where the traveler has booked another service (flight, car, + activities...) before hotel. style: form explode: true schema: @@ -5798,7 +5375,7 @@ paths: - business examples: Optional: - ? value + value: null Single: value: leisure - name: billing_terms @@ -5825,7 +5402,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -5898,6 +5476,7 @@ paths: status: available available_rooms: 12 refundable: true + current_refundability: partially_refundable member_deal_available: true sale_scenario: package: false @@ -6044,7 +5623,7 @@ paths: request_currency: value: "3.00" currency: USD - "1-7,10": + 1-7,10: nightly: - - type: base_rate value: "309.00" @@ -6314,7 +5893,7 @@ paths: request_currency: value: "3.78" currency: USD - "1-7,10": + 1-7,10: nightly: - - type: base_rate value: "309.00" @@ -6651,7 +6230,7 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/properties/{property_id}/availability": + /v3/properties/{property_id}/availability: get: tags: - getAdditionalAvailability @@ -6663,9 +6242,13 @@ paths: full price breakdown to meet the price display requirements for your market. - _Note_: If there are no available rooms, the response will be an empty array. + _Note_: If there are no available rooms, the response will be an empty + array. - * The `nightly` array includes each individual night's charges. When the total price includes fees, charges, or adjustments that are not divided by night, these amounts will be included in the `stay` rate array, which details charges applied to the entire stay (each check-in). + * The `nightly` array includes each individual night's charges. When the + total price includes fees, charges, or adjustments that are not divided + by night, these amounts will be included in the `stay` rate array, which + details charges applied to the entire stay (each check-in). operationId: getAdditionalAvailability parameters: - name: Customer-Ip @@ -6673,7 +6256,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. schema: @@ -6685,13 +6270,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: Test @@ -6742,12 +6330,13 @@ paths: 365 days in the future. Some partner configurations may extend this up to 500 days.
    - Note: Only needed for hard change if desired check-in date is different than original booking. + Note: Only needed for hard change if desired check-in date is + different than original booking. If specified must also specify `checkout`. schema: type: string - example: 2025-02-01 + example: 2025-06-01 - name: checkout in: query description: > @@ -6755,12 +6344,13 @@ paths: stay cannot exceed 28 nights or 365 nights depending on Vacation Rental configurations.
    - Note: Only needed for hard change if desired check-out date is different than original booking. + Note: Only needed for hard change if desired check-out date is + different than original booking. If specified must also specify `checkin`.
    schema: type: string - example: 2025-02-03 + example: 2025-06-03 - name: exclusion in: query description: > @@ -6769,9 +6359,11 @@ paths: Note: Optional parameter for use with hard change requests.
    - * `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates with refundable damage deposits from the response. + * `refundable_damage_deposit` - Excludes Rapid supplied Vrbo rates + with refundable damage deposits from the response. - * `card_on_file` - Excludes Rapid supplied Vrbo rates with card-on-file damage collection from the response. + * `card_on_file` - Excludes Rapid supplied Vrbo rates with + card-on-file damage collection from the response. style: form explode: true schema: @@ -6783,7 +6375,7 @@ paths: - card_on_file examples: Optional: - ? value + value: null Single: value: - refundable_damage_deposit @@ -6799,15 +6391,24 @@ paths: Note: Optional parameter for use with hard change requests.
    - This parameter cannot be set to `property_collect` if the existing booking is `expedia_collect` and vice versa.
    + This parameter cannot be set to `property_collect` if the existing + booking is `expedia_collect` and vice versa.
    - * `refundable` - Filters results to only show fully refundable rates. + * `refundable` - Filters results to only show fully refundable + rates. - * `expedia_collect` - Filters results to only show rates where payment is collected by Expedia at the time of booking. These properties can be eligible for payments via Expedia Affiliate Collect(EAC). + * `expedia_collect` - Filters results to only show rates where + payment is collected by Expedia at the time of booking. These + properties can be eligible for payments via Expedia Affiliate + Collect(EAC). - * `property_collect` - Filters results to only show rates where payment is collected by the property after booking. This can include rates that require a deposit by the property, dependent upon the deposit policies. + * `property_collect` - Filters results to only show rates where + payment is collected by the property after booking. This can include + rates that require a deposit by the property, dependent upon the + deposit policies. - * `loyalty` - Filters results to only show rates that are eligible for loyalty points. + * `loyalty` - Filters results to only show rates that are eligible + for loyalty points. style: form explode: true schema: @@ -6820,7 +6421,7 @@ paths: - property_collect examples: Optional: - ? value + value: null Refundable: value: refundable ExpediaCollect: @@ -6835,7 +6436,8 @@ paths: Modify the response by including types of responses that are not provided by default.
    - * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` flag under the `sale_scenario` section of the response. + * `sale_scenario.mobile_promotion` - Enable the `mobile_promotion` + flag under the `sale_scenario` section of the response. schema: type: array items: @@ -6844,7 +6446,7 @@ paths: - sale_scenario.mobile_promotion examples: Optional: - ? value + value: null MobilePromotion: value: sale_scenario.mobile_promotion - name: occupancy @@ -6855,15 +6457,20 @@ paths: Format: `numberOfAdults[-firstChildAge[,nextChildAge]]`
    - To request multiple rooms (of the same type), include one instance of occupancy for each room requested. Up to 8 rooms may be requested or booked at once.
    + To request multiple rooms (of the same type), include one instance + of occupancy for each room requested. Up to 8 rooms may be requested + or booked at once.
    - Note: Only needed for hard change if desired occupancy is different than original booking.
    + Note: Only needed for hard change if desired occupancy is different + than original booking.
    Examples: - * 2 adults, one 9-year-old and one 4-year-old would be represented by `occupancy=2-9,4`.
    + * 2 adults, one 9-year-old and one 4-year-old would be represented + by `occupancy=2-9,4`.
    - * A multi-room request to lodge an additional 2 adults would be represented by `occupancy=2-9,4&occupancy=2` + * A multi-room request to lodge an additional 2 adults would be + represented by `occupancy=2-9,4&occupancy=2` style: form explode: true schema: @@ -6880,11 +6487,16 @@ paths: Accepted values:
    - * `member` - Return member rates for each property. This feature must be enabled and requires a user to be logged in to request these rates. + * `member` - Return member rates for each property. This feature + must be enabled and requires a user to be logged in to request these + rates. - * `net_rates` - Return net rates for each property. This feature must be enabled to request these rates. + * `net_rates` - Return net rates for each property. This feature + must be enabled to request these rates. - * `cross_sell` - Identify if the traffic is coming from a cross sell booking. Where the traveler has booked another service (flight, car, activities...) before hotel. + * `cross_sell` - Identify if the traffic is coming from a cross sell + booking. Where the traveler has booked another service (flight, car, + activities...) before hotel. style: form explode: true schema: @@ -6897,7 +6509,7 @@ paths: - cross_sell examples: Optional: - ? value + value: null Member: value: member NetRates: @@ -6917,13 +6529,17 @@ paths: * `website` - Standard website accessed from the customer's computer - * `agent_tool` - Your own agent tool used by your call center or retail store agent + * `agent_tool` - Your own agent tool used by your call center or + retail store agent - * `mobile_app` - An application installed on a phone or tablet device + * `mobile_app` - An application installed on a phone or tablet + device - * `mobile_web` - A web browser application on a phone or tablet device + * `mobile_web` - A web browser application on a phone or tablet + device - * `meta` - Rates will be passed to and displayed on a 3rd party comparison website + * `meta` - Rates will be passed to and displayed on a 3rd party + comparison website * `cache` - Rates will be used to populate a local cache schema: @@ -6933,7 +6549,8 @@ paths: description: > Determines the returned currency type throughout the response
    - Note: This parameter is only valid for hard change requests and is ignored in all other cases + Note: This parameter is only valid for hard change requests and is + ignored in all other cases schema: type: string responses: @@ -7130,7 +6747,7 @@ paths: request_currency: value: "3.78" currency: USD - "1-7,10": + 1-7,10: nightly: - - type: base_rate value: "309.00" @@ -7462,7 +7079,7 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/properties/{property_id}/rooms/{room_id}/rates/{rate_id}": + /v3/properties/{property_id}/rooms/{room_id}/rates/{rate_id}: get: tags: - priceCheck @@ -7484,7 +7101,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. schema: @@ -7496,13 +7115,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: Test @@ -7704,7 +7326,8 @@ paths: The right of withdrawal under European consumer law does not apply when you book - accommodation. Supplier cancellation policy will apply + accommodation. Supplier cancellation policy will + apply terms_and_conditions: https://forever.travel-assets.com/flex/flexmanager/mediaasset/618796-0_2-UnitedKingdom_en.pdf links: book: @@ -8042,7 +7665,7 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/properties/{property_id}/payment-options": + /v3/properties/{property_id}/payment-options: get: tags: - getPaymentOptions @@ -8058,7 +7681,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. schema: @@ -8070,13 +7695,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: property_id @@ -8407,7 +8035,7 @@ paths: schema: type: string format: date - example: 2025-02-15 + example: 2025-06-15 - name: end_date in: query description: > @@ -8418,7 +8046,7 @@ paths: schema: type: string format: date - example: 2025-08-17 + example: 2025-12-17 responses: "200": description: OK @@ -8705,11 +8333,8 @@ paths: tags: - postPaymentSessions summary: Register Payments - description: > - This link only applies to transactions where EPS takes the customer's - payment information. This includes both Expedia Collect and Property - Collect transactions.
    - + description: | + This link only applies to transactions where EPS takes the customer's payment information. This includes both Expedia Collect and Property Collect transactions.
    This link will be available in the Price Check response if payment registration is required. It returns a payment session ID and a link to create a booking. This will be the first step in the booking flow only if you've opted into Two-Factor Authentication to comply with the September 2019 EU Regulations for PSD2. Learn more with our [PSD2 Overview](https://developers.expediagroup.com/docs/rapid/lodging/booking/psd2-regulation) operationId: postPaymentSessions parameters: @@ -8718,7 +8343,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. required: true @@ -8731,13 +8358,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: Test @@ -9022,7 +8652,13 @@ paths: affiliate reference id, along with cancel links to cancel the bookings. - Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive no results while trying to search for an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to search for the itinerary again. + Note: Newly created itineraries may sometimes have a small delay + between the time of creation and the time that the itinerary can be + retrieved. If you receive no results while trying to search for an + itinerary that was successfully created, or if you receive a response + with two fields, namely, `itinerary_id` and `creation_date_time`, then + please wait a few minutes before trying to search for the itinerary + again. operationId: getReservation parameters: - name: Customer-Ip @@ -9030,7 +8666,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. required: true @@ -9043,13 +8681,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: Test @@ -9060,6 +8701,8 @@ paths: * `standard` - Requires valid test booking. + * `degraded_response` - Requires valid test booking + * `service_unavailable` * `internal_server_error` @@ -9093,12 +8736,9 @@ paths: value: test@example.com - name: include in: query - description: > - Options for which information to return in the response. The value - must be lower case. - + description: | + Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. - * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. required: false schema: @@ -9109,7 +8749,7 @@ paths: - history examples: Optional: - ? value + value: null History: value: history responses: @@ -9325,7 +8965,8 @@ paths: The right of withdrawal under European consumer law does not apply when you book - accommodation. Supplier cancellation policy will apply + accommodation. Supplier cancellation policy will + apply terms_and_conditions: https://forever.travel-assets.com/flex/flexmanager/mediaasset/618796-0_2-UnitedKingdom_en.pdf Itinerary with History and Change - Extend Stay: value: @@ -9982,8 +9623,8 @@ paths: currency: USD No itineraries: value: [] - "400": - description: Bad Request + "206": + description: Partial Content headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per @@ -10026,434 +9667,1299 @@ paths: content: application/json: schema: - $ref: "#/components/schemas/Error" - example: - type: invalid_input - message: An invalid request was sent in, please check the nested errors for - details. - errors: - - type: email.invalid - message: Customer email address is invalid. - fields: - - name: email - type: querystring - value: thisisabademail - "401": - description: Unauthorized - headers: - Region: - $ref: "#/components/headers/Region" - WWW-Authenticate: - description: Provides an example of the Authorization header. - schema: - type: string - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: request_unauthenticated - message: Data required to authenticate your request is missing or inaccurate. - Ensure that your request follows the guidelines in our - documentation. - fields: - - name: apikey - type: header - value: jaj3982k239dka328e - - name: signature - type: header - value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - - name: timestamp - type: header - value: 198284729 - - name: servertimestamp - type: server - value: 198284729 - "403": - description: Forbidden - headers: - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: request_unauthorized - message: Your request could not be authorized. - "426": - description: Upgrade Required - headers: - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: upgrade_required - message: This service requires the use of TLS. - "429": - description: Too Many Requests - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: too_many_requests - message: You have reached your capacity for this type of request. - "500": - description: Unknown Internal Error - headers: - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: unknown_internal_error - message: An internal server error has occurred. - "503": - description: Service Unavailable - headers: - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: service_unavailable - message: This service is currently unavailable. - security: - - rapidAuth: [] - post: - tags: - - postItinerary - summary: Create Booking - description: > - This link will be available in the Price Check response or in the - register payments response when Two-Factor Authentication is used. It - returns an itinerary id and links to retrieve reservation details, - cancel a held booking, resume a held booking or complete payment - session. Please note that depending on the state of the booking, the - response will contain only the applicable link(s). - operationId: postItinerary - parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - - name: Customer-Session-Id - in: header - description: > - Insert your own unique value for each user session, beginning with - the first API call. Continue to pass the - - same value for each subsequent API call during the user's session, using a new value for every new customer - - session.
    - - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it - - explicitly links together request paths for individual user's session. - schema: - type: string - - name: Test - in: header - description: > - The book call has a test header that can be used to return set - responses with the following keywords:
    - - * `standard` - - * `complete_payment_session` - - * `service_unavailable` - - * `internal_server_error` - - * `price_mismatch` - - * `cc_declined` - - * `rooms_unavailable` - schema: - type: string - enum: - - standard - - service_unavailable - - internal_server_error - - price_mismatch - - cc_declined - - rooms_unavailable - - name: token - in: query - description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true - schema: - type: string - requestBody: - content: - application/json: - schema: - $ref: "#/components/schemas/CreateItineraryRequest" - required: true - responses: - "201": - description: Created - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/ItineraryCreation" + type: array + items: + $ref: "#/components/schemas/Itinerary" examples: - Create Without Hold (No Challenge) Example: - value: - itinerary_id: "8999989898988" - links: - retrieve: - method: GET - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - Create With Hold (No Challenge) Example: - value: - itinerary_id: "8999989898988" - links: - retrieve: - method: GET - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - resume: - method: PUT - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - cancel: - method: DELETE - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - Create (Payment Challenged) Example: + Itineraries: value: - itinerary_id: "8999989898988" - links: - complete_payment_session: - method: PUT - href: /v3/itineraries/8999989898988/payment-sessions?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - encoded_challenge_config: ABElifsiejfacies2@033asfe= - "400": - description: Bad Request - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - examples: - Invalid Country Code Example: - value: - type: invalid_input - message: An invalid request was sent in, please check the nested errors for - details. - errors: - - type: address.country_code.invalid - message: Address country code is invalid. - fields: - - name: country_code - type: body - value: ABCD - Duplicate Itinerary Example: + - itinerary_id: "8999989898988" + property_id: "8150374" + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + non_vat_expedia_invoice: + method: GET + href: /v3/itineraries/8999989898988/invoice?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + email: smith@example.com + phone: + country_code: "1" + area_code: "487" + number: "5550077" + rooms: + - id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + rate: + id: "035943984" + merchant_of_record: expedia + amenities: + - "12345" + - "678" + - "9999" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + nonrefundable_date_ranges: + - start: 2022-02-02 + end: 2022-02-02 + deposits: + - currency: USD + value: "220.75" + due: 2018-12-12T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + change: + method: PUT + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + billing_contact: + given_name: John + family_name: Smith + address: + line_1: 555 1st St + line_2: 10th Floor + line_3: Unit 12 + city: Seattle + state_province_code: WA + postal_code: "98121" + country_code: US + adjustment: + value: -100 + type: base_rate + currency: USD + creation_date_time: 2017-08-17T13:31:15.523Z + affiliate_reference_id: 4480ABC + affiliate_metadata: This booking was made with EPS. + conversations: + links: + property: + method: GET + href: https://www.example.com?key=123abd456 + travel_purpose: leisure + trader_information: + traders: + - name: Test Property Name + address: + line_1: 123 Main St + city: Springfield + state_province_code: MO + postal_code: "65804" + country_code: US + business_register_name: A Real Registry + business_register_number: 72973910d + self_certification: true + phone: 1-417-555-1212 + right_to_withdraw_message: > + The right of withdrawal under European consumer + law does not apply when you book + + accommodation. Supplier cancellation policy will + apply + terms_and_conditions: https://forever.travel-assets.com/flex/flexmanager/mediaasset/618796-0_2-UnitedKingdom_en.pdf + impacted_fields: + - rooms.rate.cancel_refund + - rooms.rate.refundable + - rooms.rate.cancel_penalties + - rooms.links.shop_for_change + - rooms.links.pricing + Itinerary with History and Change - Extend Stay: value: - type: invalid_input - message: An invalid request was sent in, please check the nested errors for - details. - errors: - - type: duplicate_itinerary - message: An itinerary already exists with this affiliate reference id. - fields: - - name: affiliate_reference_id - type: body - value: ABCD - "401": - description: Unauthorized - headers: - Region: - $ref: "#/components/headers/Region" - WWW-Authenticate: - description: Provides an example of the Authorization header. - schema: - type: string - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: request_unauthenticated - message: Data required to authenticate your request is missing or inaccurate. - Ensure that your request follows the guidelines in our - documentation. - fields: - - name: apikey - type: header - value: jaj3982k239dka328e - - name: signature - type: header - value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - - name: timestamp - type: header - value: 198284729 - - name: servertimestamp - type: server - value: 198284729 - "403": - description: Forbidden - headers: - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: request_unauthorized - message: Your request could not be authorized. - "409": - description: Price Mismatch - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds + - itinerary_id: "8999989898988" + property_id: "8150374" + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + email: smith@example.com + phone: + country_code: "1" + area_code: "487" + number: "5550077" + rooms: + - id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + rate: + id: "035943984" + merchant_of_record: expedia + amenities: + - "12345" + - "678" + - "9999" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + cancel_penalties: + - start: 2018-01-01T01:01:01.000-08:00 + end: 2018-12-12T01:01:01.000-08:00 + amount: "250.75" + currency: USD + nonrefundable_date_ranges: + - start: 2018-09-14 + end: 2018-09-23 + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + change: + method: PUT + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + billing_contact: + given_name: John + family_name: Smith + address: + line_1: 555 1st St + line_2: 10th Floor + line_3: Unit 12 + city: Seattle + state_province_code: WA + postal_code: "98121" + country_code: US + adjustment: + value: "-32.10" + type: base_rate + currency: USD + creation_date_time: 2017-08-15T15:32:55.523Z + affiliate_reference_id: 4480ABC + affiliate_metadata: This booking was made with EPS. + conversations: + links: + property: + method: GET + href: https://www.example.com?key=123abd456 + travel_purpose: unspecified + impacted_fields: + - rooms.rate.cancel_refund + - rooms.rate.refundable + - rooms.rate.cancel_penalties + - rooms.links.shop_for_change + - rooms.links.pricing + itinerary_history: + - history_id: "802737048" + event_timestamp: 2017-09-17T13:31:15.523Z + event_type: adjustment + amount: + value: "-32.10" + currency: USD + agent_id: "10203" + room_history: + - - history_id: "928364986296" + event_timestamp: 2017-08-15T15:32:55.523Z + event_type: created + event_source: rapid_api + room_id: "926784314" + confirmation_id: + expedia: "664637628" + property: COR8729347BB + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-22 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "244.70" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "244.70" + currency: USD + exclusive: + billable_currency: + value: "234.68" + currency: USD + marketing_fee: + billable_currency: + value: "5.14" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + - history_id: "30303030" + event_timestamp: 2017-08-17T13:31:15.523Z + event_type: modified + event_source: rapid_api + change_reference_id: v1-Givenne + room_id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "123.45" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + Itinerary with History V2 - Traveler No Show: + value: + itinerary_id: "8999989898988" + property_id: "8150374" + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + email: smith@example.com + phone: + country_code: "1" + area_code: "487" + number: "5550077" + rooms: + - id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + rate: + id: "035943984" + merchant_of_record: expedia + amenities: + - "12345" + - "678" + - "9999" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + nonrefundable_date_ranges: + - start: 2018-09-14 + end: 2018-09-23 + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + change: + method: PUT + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + billing_contact: + given_name: John + family_name: Smith + address: + line_1: 555 1st St + line_2: 10th Floor + line_3: Unit 12 + city: Seattle + state_province_code: WA + postal_code: "98121" + country_code: US + adjustment: + value: "-32.10" + type: base_rate + currency: USD + creation_date_time: 2017-08-15T15:32:55.523Z + affiliate_reference_id: 4480ABC + affiliate_metadata: This booking was made with EPS. + conversations: + links: + property: + method: GET + href: https://www.example.com?key=123abd456 + travel_purpose: unspecified + impacted_fields: + - rooms.rate.cancel_refund + - rooms.rate.refundable + - rooms.rate.cancel_penalties + - rooms.links.shop_for_change + - rooms.links.pricing + itinerary_history: + - history_id: "802737048" + event_timestamp: 2017-09-17T13:31:15.523Z + event_type: adjustment + amount: + value: "-32.10" + currency: USD + agent_id: "10203" + room_history: + - - history_id: "928364986296" + event_timestamp: 2017-08-15T15:32:55.523Z + event_type: created + event_source: rapid_api + room_id: "926784314" + confirmation_id: + expedia: "664637628" + property: COR8729347BB + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-22 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "244.70" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "244.70" + currency: USD + exclusive: + billable_currency: + value: "234.68" + currency: USD + marketing_fee: + billable_currency: + value: "5.14" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + - history_id: "30303030" + event_timestamp: 2017-08-17T13:31:15.523Z + event_type: canceled_no_show + event_source: supplier + change_reference_id: v1-Givenne + room_id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: canceled + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "123.45" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + No itineraries: + value: [] + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: email.invalid + message: Customer email address is invalid. + fields: + - name: email + type: querystring + value: thisisabademail + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + post: + tags: + - postItinerary + summary: Create Booking + description: > + This link will be available in the Price Check response or in the + register payments response when Two-Factor Authentication is used. It + returns an itinerary id and links to retrieve reservation details, + cancel a held booking, resume a held booking or complete payment + session. Please note that depending on the state of the booking, the + response will contain only the applicable link(s). + operationId: postItinerary + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The book call has a test header that can be used to return set + responses with the following keywords:
    + + * `standard` + + * `complete_payment_session` + + * `service_unavailable` + + * `internal_server_error` + + * `price_mismatch` + + * `cc_declined` + + * `rooms_unavailable` + schema: + type: string + enum: + - standard + - service_unavailable + - internal_server_error + - price_mismatch + - cc_declined + - rooms_unavailable + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/CreateItineraryRequest" + required: true + responses: + "201": + description: Created + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/ItineraryCreation" + examples: + Create Without Hold (No Challenge) Example: + value: + itinerary_id: "8999989898988" + links: + retrieve: + method: GET + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + Create With Hold (No Challenge) Example: + value: + itinerary_id: "8999989898988" + links: + retrieve: + method: GET + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + resume: + method: PUT + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + Create (Payment Challenged) Example: + value: + itinerary_id: "8999989898988" + links: + complete_payment_session: + method: PUT + href: /v3/itineraries/8999989898988/payment-sessions?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + encoded_challenge_config: ABElifsiejfacies2@033asfe= + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + examples: + Invalid Country Code Example: + value: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: address.country_code.invalid + message: Address country code is invalid. + fields: + - name: country_code + type: body + value: ABCD + Duplicate Itinerary Example: + value: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: duplicate_itinerary + message: An itinerary already exists with this affiliate reference id. + fields: + - name: affiliate_reference_id + type: body + value: ABCD + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "409": + description: Price Mismatch + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number @@ -10629,20 +11135,16 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/itineraries/{itinerary_id}": + /v3/itineraries/{itinerary_id}: get: tags: - getReservationByItineraryId summary: Retrieve Booking - description: > - This API call returns itinerary details and links to resume or cancel - the booking. There are two methods to retrieve a booking: - + description: | + This API call returns itinerary details and links to resume or cancel the booking. There are two methods to retrieve a booking: * Using the link included in the original Book response, example: https://api.ean.com/v3/itineraries/8955599932111?token=QldfCGlcUA4GXVlSAQ4W - * Using the email of the booking. If the email contains special characters, they must be encoded to successfully retrieve the booking. Example: https://api.ean.com/v3/itineraries/8955599932111?email=customer@email.com - Note: Newly created itineraries may sometimes have a small delay between the time of creation and the time that the itinerary can be retrieved. If you receive an error when trying to retrieve an itinerary that was successfully created, or if you receive a response with two fields, namely, `itinerary_id` and `creation_date_time`, then please wait a few minutes before trying to retrieve the itinerary again. operationId: getReservationByItineraryId parameters: @@ -10651,7 +11153,9 @@ paths: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. required: true @@ -10664,13 +11168,16 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - name: Test @@ -10685,6 +11192,8 @@ paths: * `standard` - Requires valid test booking. + * `degraded_response` - Requires valid test booking + * `service_unavailable` * `internal_server_error` @@ -10722,17 +11231,14 @@ paths: type: string examples: Optional: - ? value + value: null Single: value: test@example.com - name: include in: query - description: > - Options for which information to return in the response. The value - must be lower case. - + description: | + Options for which information to return in the response. The value must be lower case. * `history` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `other` in the response. - * `history_v2` - Include itinerary history, showing details of the changes made to this itinerary. Changes from the property/supplier have an event_source equal to `supplier` in the response. See the [Itinerary history](https://developers.expediagroup.com/docs/rapid/lodging/manage-booking/itinerary-history#overview) for details. required: false schema: @@ -10743,7 +11249,7 @@ paths: - history examples: Optional: - ? value + value: null History: value: history responses: @@ -10827,10 +11333,853 @@ paths: rate: id: "035943984" merchant_of_record: expedia - refundable: true - cancel_refund: - amount: -65.98 - currency: USD + refundable: true + cancel_refund: + amount: -65.98 + currency: USD + amenities: + - "12345" + - "678" + - "9999" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + cancel_penalties: + - start: 2018-01-01T01:01:01.000-08:00 + end: 2018-12-12T01:01:01.000-08:00 + amount: "250.75" + currency: USD + nonrefundable_date_ranges: + - start: 2022-02-02 + end: 2022-02-02 + deposits: + - currency: USD + value: "220.75" + due: 2018-12-12T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + change: + method: PUT + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + shop_for_change: + method: GET + href: /v3/properties/8150374/availability?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + billing_contact: + given_name: John + family_name: Smith + address: + line_1: 555 1st St + line_2: 10th Floor + line_3: Unit 12 + city: Seattle + state_province_code: WA + postal_code: "98121" + country_code: US + adjustment: + value: -100 + type: base_rate + currency: USD + creation_date_time: 2017-08-17T13:31:15.523Z + affiliate_reference_id: 4480ABC + affiliate_metadata: This booking was made with EPS. + conversations: + links: + property: + method: GET + href: https://www.example.com?key=123abd456 + travel_purpose: leisure + Itinerary with History: + value: + itinerary_id: "8999989898988" + property_id: "8150374" + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + email: smith@example.com + phone: + country_code: "1" + area_code: "487" + number: "5550077" + rooms: + - id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + rate: + id: "035943984" + merchant_of_record: expedia + refundable: true + cancel_refund: + amount: "-65.98" + currency: USD + amenities: + - "12345" + - "678" + - "9999" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + cancel_penalties: + - start: 2018-01-01T01:01:01.000-08:00 + end: 2018-12-12T01:01:01.000-08:00 + amount: "250.75" + currency: USD + nonrefundable_date_ranges: + - start: 2018-09-14 + end: 2018-09-23 + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + change: + method: PUT + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + shop_for_change: + method: GET + href: /v3/properties/8150374/availability?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + billing_contact: + given_name: John + family_name: Smith + address: + line_1: 555 1st St + line_2: 10th Floor + line_3: Unit 12 + city: Seattle + state_province_code: WA + postal_code: "98121" + country_code: US + adjustment: + value: "-32.10" + type: base_rate + currency: USD + creation_date_time: 2017-08-15T15:32:55.523Z + affiliate_reference_id: 4480ABC + affiliate_metadata: This booking was made with EPS. + conversations: + links: + property: + method: GET + href: https://www.example.com?key=123abd456 + travel_purpose: unspecified + itinerary_history: + - history_id: "802737048" + event_timestamp: 2017-09-17T13:31:15.523Z + event_type: adjustment + amount: + value: "-32.10" + currency: USD + agent_id: "10203" + room_history: + - - history_id: "928364986296" + event_timestamp: 2017-08-15T15:32:55.523Z + event_type: created + event_source: rapid_api + room_id: "926784314" + confirmation_id: + expedia: "664637628" + property: COR8729347BB + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-22 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "244.70" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "244.70" + currency: USD + exclusive: + billable_currency: + value: "234.68" + currency: USD + marketing_fee: + billable_currency: + value: "5.14" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + - history_id: "30303030" + event_timestamp: 2017-08-17T13:31:15.523Z + event_type: modified + event_source: rapid_api + change_reference_id: v1-Givenne + room_id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "123.45" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + Itinerary with History V2 - Traveler No Show: + value: + itinerary_id: "8999989898988" + property_id: "8150374" + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + email: smith@example.com + phone: + country_code: "1" + area_code: "487" + number: "5550077" + rooms: + - id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + rate: + id: "035943984" + merchant_of_record: expedia + refundable: true + cancel_refund: + amount: "-65.98" + currency: USD + amenities: + - "12345" + - "678" + - "9999" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + cancel_penalties: + - start: 2018-01-01T01:01:01.000-08:00 + end: 2018-12-12T01:01:01.000-08:00 + amount: "250.75" + currency: USD + nonrefundable_date_ranges: + - start: 2018-09-14 + end: 2018-09-23 + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + change: + method: PUT + href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + shop_for_change: + method: GET + href: /v3/properties/8150374/availability?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + billing_contact: + given_name: John + family_name: Smith + address: + line_1: 555 1st St + line_2: 10th Floor + line_3: Unit 12 + city: Seattle + state_province_code: WA + postal_code: "98121" + country_code: US + adjustment: + value: "-32.10" + type: base_rate + currency: USD + creation_date_time: 2017-08-15T15:32:55.523Z + affiliate_reference_id: 4480ABC + affiliate_metadata: This booking was made with EPS. + conversations: + links: + property: + method: GET + href: https://www.example.com?key=123abd456 + travel_purpose: unspecified + itinerary_history: + - history_id: "802737048" + event_timestamp: 2017-09-17T13:31:15.523Z + event_type: adjustment + amount: + value: "-32.10" + currency: USD + agent_id: "10203" + room_history: + - - history_id: "928364986296" + event_timestamp: 2017-08-15T15:32:55.523Z + event_type: created + event_source: rapid_api + room_id: "926784314" + confirmation_id: + expedia: "664637628" + property: COR8729347BB + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-22 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "244.70" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "244.70" + currency: USD + exclusive: + billable_currency: + value: "234.68" + currency: USD + marketing_fee: + billable_currency: + value: "5.14" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + - history_id: "30303030" + event_timestamp: 2017-08-17T13:31:15.523Z + event_type: canceled_no_show + event_source: supplier + change_reference_id: v1-Givenne + room_id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: canceled + special_request: Please give me extra towels. + smoking: false + amount_charged: + billable_currency: + value: "123.45" + currency: USD + rate: + id: "035943984" + promotions: + value_adds: + 123abc: + id: 123abc + description: 10 USD credit on activities and sports for your stay. + 3x4mp13: + id: 3x4mp13 + description: 20% discount on theme park tickets purchased through the concierge + desk. + deposits: + - currency: USD + value: "220.75" + due: 2018-08-24T01:01:01.000-08:00 + pricing: + nightly: + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + - - type: base_rate + value: "111.23" + currency: USD + - type: sales_tax + value: "11.12" + currency: USD + stay: + - type: base_rate + value: "123.45" + currency: USD + totals: + inclusive: + billable_currency: + value: "368.15" + currency: USD + exclusive: + billable_currency: + value: "345.91" + currency: USD + marketing_fee: + billable_currency: + value: "7.75" + currency: USD + property_fees: + billable_currency: + value: "36.95" + currency: USD + fees: + mandatory_fee: + billable_currency: + value: "5.00" + currency: USD + resort_fee: + billable_currency: + value: "20.00" + currency: USD + mandatory_tax: + billable_currency: + value: "11.95" + currency: USD + "206": + description: Partial Content + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Itinerary" + examples: + Itinerary No History: + value: + itinerary_id: "8999989898988" + property_id: "8150374" + links: + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + email: smith@example.com + phone: + country_code: "1" + area_code: "487" + number: "5550077" + rooms: + - id: "926784314" + confirmation_id: + expedia: "1234567890" + property: BEF23123AA + bed_group_id: d395b56d-d31d-4a84-ad2b-66820b1d48e2 + checkin: 2018-09-21 + checkout: 2018-09-23 + number_of_adults: 2 + child_ages: + - 2 + - 3 + given_name: Givenne + family_name: Nameo + status: booked + special_request: Please give me extra towels. + smoking: false + loyalty_id: ABC123 + rate: + id: "035943984" + merchant_of_record: expedia amenities: - "12345" - "678" @@ -10844,11 +12193,6 @@ paths: id: 3x4mp13 description: 20% discount on theme park tickets purchased through the concierge desk. - cancel_penalties: - - start: 2018-01-01T01:01:01.000-08:00 - end: 2018-12-12T01:01:01.000-08:00 - amount: "250.75" - currency: USD nonrefundable_date_ranges: - start: 2022-02-02 end: 2022-02-02 @@ -10911,9 +12255,6 @@ paths: change: method: PUT href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - shop_for_change: - method: GET - href: /v3/properties/8150374/availability?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m billing_contact: given_name: John family_name: Smith @@ -10938,6 +12279,12 @@ paths: method: GET href: https://www.example.com?key=123abd456 travel_purpose: leisure + impacted_fields: + - rooms.rate.cancel_refund + - rooms.rate.refundable + - rooms.rate.cancel_penalties + - rooms.links.shop_for_change + - rooms.links.pricing Itinerary with History: value: itinerary_id: "8999989898988" @@ -10971,10 +12318,6 @@ paths: rate: id: "035943984" merchant_of_record: expedia - refundable: true - cancel_refund: - amount: "-65.98" - currency: USD amenities: - "12345" - "678" @@ -10988,11 +12331,6 @@ paths: id: 3x4mp13 description: 20% discount on theme park tickets purchased through the concierge desk. - cancel_penalties: - - start: 2018-01-01T01:01:01.000-08:00 - end: 2018-12-12T01:01:01.000-08:00 - amount: "250.75" - currency: USD nonrefundable_date_ranges: - start: 2018-09-14 end: 2018-09-23 @@ -11055,9 +12393,6 @@ paths: change: method: PUT href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - shop_for_change: - method: GET - href: /v3/properties/8150374/availability?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m billing_contact: given_name: John family_name: Smith @@ -11082,6 +12417,12 @@ paths: method: GET href: https://www.example.com?key=123abd456 travel_purpose: unspecified + impacted_fields: + - rooms.rate.cancel_refund + - rooms.rate.refundable + - rooms.rate.cancel_penalties + - rooms.links.shop_for_change + - rooms.links.pricing itinerary_history: - history_id: "802737048" event_timestamp: 2017-09-17T13:31:15.523Z @@ -11299,10 +12640,6 @@ paths: rate: id: "035943984" merchant_of_record: expedia - refundable: true - cancel_refund: - amount: "-65.98" - currency: USD amenities: - "12345" - "678" @@ -11316,11 +12653,6 @@ paths: id: 3x4mp13 description: 20% discount on theme park tickets purchased through the concierge desk. - cancel_penalties: - - start: 2018-01-01T01:01:01.000-08:00 - end: 2018-12-12T01:01:01.000-08:00 - amount: "250.75" - currency: USD nonrefundable_date_ranges: - start: 2018-09-14 end: 2018-09-23 @@ -11383,9 +12715,6 @@ paths: change: method: PUT href: /v3/itineraries/8999989898988/rooms/d08572fc-82d2-4d5d-ad30-60f5be7fb53e?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - shop_for_change: - method: GET - href: /v3/properties/8150374/availability?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m billing_contact: given_name: John family_name: Smith @@ -11410,6 +12739,12 @@ paths: method: GET href: https://www.example.com?key=123abd456 travel_purpose: unspecified + impacted_fields: + - rooms.rate.cancel_refund + - rooms.rate.refundable + - rooms.rate.cancel_penalties + - rooms.links.shop_for_change + - rooms.links.pricing itinerary_history: - history_id: "802737048" event_timestamp: 2017-09-17T13:31:15.523Z @@ -11595,44 +12930,4653 @@ paths: value: "11.95" currency: USD "400": - description: Bad Request + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + put: + tags: + - putResumeBooking + summary: Resume Booking + description: > + This link will be available in the booking response after creating a + held booking. + operationId: putResumeBooking + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The resume call has a test header that can be used to return set + responses with the following keywords:
    + + * `standard` - Requires valid test held booking. + + * `service_unavailable` - Returns the HTTP 202 response caused by + partial service unavailablity. + + * `internal_server_error` + schema: + type: string + enum: + - standard + - service_unavailable + - internal_server_error + - name: itinerary_id + in: path + description: > + This parameter is used only to prefix the token value - no ID value + is used.
    + required: true + schema: + type: string + example: "8955599932111" + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + responses: + "202": + description: Accepted - Request is valid but the state of the booking is + unknown. Make a retrieve call to verify the booking has been resumed + properly. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "204": + description: No Content - Held booking has successfully resumed. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + delete: + tags: + - deleteHeldBooking + summary: Cancel Held Booking + description: | + This link will be available in a held booking response. + operationId: deleteHeldBooking + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The cancel call has a test header that can be used to return set + responses with the following keywords:
    + + * `standard` - Requires valid test held booking. + + * `service_unavailable` + + * `internal_server_error` + + * `post_stay_cancel` + schema: + type: string + enum: + - standard + - service_unavailable + - internal_server_error + - post_stay_cancel + - name: itinerary_id + in: path + description: > + This parameter is used only to prefix the token value - no ID value + is used.
    + required: true + schema: + type: string + example: "8955599932111" + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + responses: + "202": + description: Accepted - Request is valid but the state of the booking is + unknown. Make a retrieve call to verify the booking has been + canceled properly. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "204": + description: No Content - Booking has successfully canceled. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + examples: + Link Invalid Example: + value: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + Room Already Cancelled Example: + value: + type: room_already_cancelled + message: Room is already cancelled. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/itineraries/{itinerary_id}/invoice: + get: + tags: + - getBookingReceipt + summary: Booking Receipt + description: > + A link to the booking receipt will be provided in the retrieve response + if partner configuration enabled. This + + endpoint will provide a PDF representation of a booking receipt that can + be presented to a traveler for expense + + tracking purposes. + operationId: getBookingReceipt + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location + + and assign the correct payment gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The booking receipt call has a test header that can be used to + return set responses with the following + + keywords: + + * `standard` + + * `service_unavailable` + + * `internal_server_error` + schema: + type: string + enum: + - standard + - service_unavailable + - internal_server_error + - name: itinerary_id + in: path + description: > + This path variable will be provided as part of the link. This + specifies which itinerary the booking receipt + + request pertains to. + required: true + schema: + type: string + example: 8955599932111 + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent + + call by limiting the amount of information required at each step and + reduces the potential for errors. Token + + values cannot be viewed or changed. + required: true + schema: + type: string + example: MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + - name: branding + in: query + description: > + This parameter specifies which branding should be present on the + generated PDF. Default behavior will be to + + provide the booking receipt with `expedia_group` branding. Some + partner configurations may change the default to unbranded. + schema: + type: string + enum: + - expedia_group + - unbranded + example: unbranded + responses: + "200": + description: Invoice provided as body in PDF binary form. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/pdf: + schema: + type: string + format: binary + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: branding.invalid + message: "Branding not supported. Supported branding values are: [expedia_group, + unbranded]" + fields: + - name: branding + type: querystring + value: custom_branding + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/itineraries/{itinerary_id}/payment-sessions: + put: + tags: + - putCompletePaymentSession + summary: Complete Payment Session + description: | + This link only applies to transactions where EPS takes the customer's payment information. This includes both Expedia Collect and Property Collect transactions.
    + This link will be available in the booking response only if you've opted into Two-Factor Authentication to comply with the September 2019 EU Regulations for PSD2. It should be called after Two-Factor Authentication has been completed by the customer in order to finalize the payment and complete the booking or hold attempt. Learn more with our [PSD2 Overview](https://developers.expediagroup.com/docs/rapid/lodging/booking/psd2-regulation) + operationId: putCompletePaymentSession + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The payment-sessions call has a test header that can be used to + return set responses with the following keywords:
    + + * `standard` + + * `service_unavailable` + + * `internal_server_error` + schema: + type: string + enum: + - standard + - service_unavailable + - internal_server_error + - name: itinerary_id + in: path + description: > + This parameter is used only to prefix the token value - no ID value + is used.
    + required: true + schema: + type: string + example: "8955599932111" + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + responses: + "200": + description: Payment Session Completed + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/CompletePaymentSession" + examples: + Booking Not Held Example: + value: + itinerary_id: "8999989898988" + links: + retrieve: + method: GET + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + Booking Held Example: + value: + itinerary_id: "8999989898988" + links: + retrieve: + method: GET + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + resume: + method: PUT + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + cancel: + method: DELETE + href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/itineraries/{itinerary_id}/rooms/{room_id}: + put: + tags: + - changeRoomDetails + summary: Change details of a room. + description: > + This link will be available in the retrieve response. Changes in smoking + preference and special request will be passed along to the property and + are not guaranteed. + operationId: changeRoomDetails + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The change call has a test header that can be used to return set + responses with the following keywords:
    + + * `standard` - Requires valid test booking. + + * `service_unavailable` + + * `unknown_internal_error` + schema: + type: string + enum: + - standard + - service_unavailable + - unknown_internal_error + - name: itinerary_id + in: path + description: > + This parameter is used only to prefix the token value - no ID value + is used.
    + required: true + schema: + type: string + example: "8955599932111" + - name: room_id + in: path + description: | + Room ID of a property.
    + required: true + schema: + type: string + example: 123abc + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + requestBody: + description: The request body is required, but only the fields that are being + changed need to be passed in. Fields that are not being changed should + not be included in the request body. + content: + application/json: + schema: + $ref: "#/components/schemas/ChangeRoomDetailsRequest" + required: true + responses: + "202": + description: Accepted - Request is valid but the state of the booking is + unknown. Make a retrieve call to verify the booking has been changed + properly. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "204": + description: No Content - Booking has successfully changed. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + delete: + tags: + - deleteRoom + summary: Cancel a room. + description: | + This link will be available in the retrieve response. + operationId: deleteRoom + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The cancel call has a test header that can be used to return set + responses with the following keywords:
    + + * `standard` - Requires valid test booking. + + * `service_unavailable` + + * `unknown_internal_error` + + * `post_stay_cancel` + schema: + type: string + enum: + - standard + - service_unavailable + - unknown_internal_error + - post_stay_cancel + - name: itinerary_id + in: path + description: > + This parameter is used only to prefix the token value - no ID value + is used.
    + required: true + schema: + type: string + example: "8955599932111" + - name: room_id + in: path + description: | + Room ID of a property.
    + required: true + schema: + type: string + example: 123abc + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + responses: + "202": + description: Accepted - Request is valid but the state of the booking is + unknown. Make a retrieve call to verify the booking has been + canceled properly. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "204": + description: No Content - Booking has successfully canceled. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/itineraries/{itinerary_id}/rooms/{room_id}/pricing: + put: + tags: + - commitChange + summary: Commit a change of itinerary that may require additional payment or + refund. + description: > + This link will be available in the change response to confirm and + complete the change transaction. + + + If additional charges are due, a payment must be submitted with this + request. Note that Two-Factor + + Authentication is not supported at this time. + operationId: commitChange + parameters: + - name: Customer-Ip + in: header + description: > + IP address of the customer, as captured by your integration.
    + + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    + + Also used for fraud recovery and other important analytics. + required: true + schema: + type: string + example: 5.5.5.5 + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: Test + in: header + description: > + The change call has a test header that can be used to return set + responses with the following keywords:
    + + * `standard` - Requires valid test booking. + + * `service_unavailable` + + * `unknown_internal_error` + schema: + type: string + enum: + - standard + - service_unavailable + - unknown_internal_error + - name: itinerary_id + in: path + description: > + This parameter is used only to prefix the token value - no ID value + is used.
    + required: true + schema: + type: string + example: "8955599932111" + - name: room_id + in: path + description: | + Room ID of a property.
    + required: true + schema: + type: string + example: 123abc + - name: token + in: query + description: > + Provided as part of the link object and used to maintain state + across calls. This simplifies each subsequent call by limiting the + amount of information required at each step and reduces the + potential for errors. Token values cannot be viewed or changed. + required: true + schema: + type: string + requestBody: + description: > + The request body is required if additional payment is necessary. The + body can optionally contain the `change_reference_id`. + content: + application/json: + schema: + $ref: "#/components/schemas/CommitChangeRoomRequestBody" + required: false + responses: + "202": + description: Accepted - Request is valid but the state of the booking is + unknown. Make a retrieve call to verify the booking has been changed + properly. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "204": + description: No Content - Booking has successfully changed. + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: {} + "400": + description: Bad Request + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: link.invalid + message: Link is invalid. + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "404": + description: Not Found + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: resource_not_found + message: Itinerary was not found with provided request. + "409": + description: Price Mismatch + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: price_mismatch + message: Payment amount did not match current price, please check price and try + again. + fields: + - name: payments.amount + type: body + value: "100.00" + - name: price.amount + type: body + value: "120.00" + "410": + description: Sold Out + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: rooms_unavailable + message: One or more requested rooms are unavailable. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per + day. + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per + minute. + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has + been used. + schema: + type: string + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/amenities: + get: + tags: + - getAmenitiesReference + summary: Amenities Reference + description: | + Returns a complete collection of amenities available in the Rapid API. + operationId: getAmenitiesReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/AmenityReference" + example: + "2593": + id: 2593 + name: Number of meeting rooms - + has_value: true + "1073743392": + id: 1073743392 + name: Free WiFi (limited) time + has_value: true + "1073744371": + id: 1073744371 + name: Air hockey + has_value: false + "1073744373": + id: 1073744373 + name: Garage + has_value: false + "1073745340": + id: 1073745340 + name: Single-level property + has_value: false + "400": + description: Invalid Input + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/categories: + get: + tags: + - getCategoriesReference + summary: Categories Reference + description: | + Returns a complete collection of categories available in the Rapid API. + operationId: getCategoriesReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/CategoryProperty" + example: + "12": + id: 12 + name: Hostel/Backpacker accommodation + "21": + id: 21 + name: Tree house property + "24": + id: 24 + name: Campsite + "44": + id: 44 + name: Mobile home + "400": + description: Invalid Input + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/chains: + get: + tags: + - getChainReference + summary: Chain Reference ***DEPRECATED*** + deprecated: true + description: > + ***DEPRECATED*** Please use `/references/chains` + +
    Returns a complete collection of chains recognized by the Rapid API. + +
    Chains represent a parent company which can have multiple brands + associated with it. A brand can only be + + associated with one chain. For example, Hilton Worldwide is a chain that + has multiple associated brands + + including DoubleTree, Hampton Inn and Embassy Suites. + +
    The response is a JSON map where the key is the chain ID and the + value is a chain object. Each chain object + + also contains a map of its related brands. + +
    Note that the set of chain IDs and brand IDs are totally independent + of one another. It is possible for a + + chain and a brand to both use the same number as their ID, but this is + just a coincidence that holds no meaning. + +
    Chain and brand names are provided in English only. + operationId: getChainReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/Chain" + example: + "2102": + id: "2102" + name: MGM + brands: + "2102": + id: "2102" + name: MGM + "4445": + id: "4445" + name: Studios 2 Let + brands: + "4498": + id: "4498" + name: Studios 2 Let + "6200": + id: "6200" + name: Urban Dream Hotels + brands: + "6325": + id: "6325" + name: Urban Dream Hotels + "6325": + id: "6325" + name: Isla Bonita + brands: + "6399": + id: "6399" + name: Isla Bonita + "-5": + id: -5 + name: Hilton Worldwide + brands: + "33": + id: "33" + name: Doubletree + "38": + id: "38" + name: Embassy Suites + "54": + id: "54" + name: Homewood Suites + "55": + id: "55" + name: Hilton Hotels + "358": + id: "358" + name: Hampton Inn + "2059": + id: "2059" + name: Hilton Garden Inn + "2146": + id: "2146" + name: Conrad + "2194": + id: "2194" + name: Waldorf Astoria + "2199": + id: "2199" + name: Hilton International + "2513": + id: "2513" + name: Hilton Grand Vacations + "2608": + id: "2608" + name: Home2 Suites by Hilton + "3000": + id: "3000" + name: Curio Collection + "4138": + id: "4138" + name: Tru by Hilton + "4615": + id: "4615" + name: Tapestry Collection by Hilton + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/chains: + get: + tags: + - getChainsReference + summary: Chains Reference + description: > + Returns a complete collection of chains recognized by the Rapid API. + +
    Chains represent a parent company which can have multiple brands + associated with it. A brand can only be + + associated with one chain. For example, Hilton Worldwide is a chain that + has multiple associated brands + + including DoubleTree, Hampton Inn and Embassy Suites. + +
    The response is a JSON map where the key is the chain ID and the + value is a chain object. Each chain object + + also contains a map of its related brands. + +
    Note that the set of chain IDs and brand IDs are totally independent + of one another. It is possible for a + + chain and a brand to both use the same number as their ID, but this is + just a coincidence that holds no meaning. + +
    Chain and brand names are provided in English only. + operationId: getChainsReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/Chain" + example: + "2102": + id: "2102" + name: MGM + brands: + "2102": + id: "2102" + name: MGM + "4445": + id: "4445" + name: Studios 2 Let + brands: + "4498": + id: "4498" + name: Studios 2 Let + "6200": + id: "6200" + name: Urban Dream Hotels + brands: + "6325": + id: "6325" + name: Urban Dream Hotels + "6325": + id: "6325" + name: Isla Bonita + brands: + "6399": + id: "6399" + name: Isla Bonita + "-5": + id: -5 + name: Hilton Worldwide + brands: + "33": + id: "33" + name: Doubletree + "38": + id: "38" + name: Embassy Suites + "54": + id: "54" + name: Homewood Suites + "55": + id: "55" + name: Hilton Hotels + "358": + id: "358" + name: Hampton Inn + "2059": + id: "2059" + name: Hilton Garden Inn + "2146": + id: "2146" + name: Conrad + "2194": + id: "2194" + name: Waldorf Astoria + "2199": + id: "2199" + name: Hilton International + "2513": + id: "2513" + name: Hilton Grand Vacations + "2608": + id: "2608" + name: Home2 Suites by Hilton + "3000": + id: "3000" + name: Curio Collection + "4138": + id: "4138" + name: Tru by Hilton + "4615": + id: "4615" + name: Tapestry Collection by Hilton + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/general-attributes: + get: + tags: + - getGeneralAttributesReference + summary: General Attributes Reference + description: > + Returns a complete collection of general attributes available in the + Rapid API. + operationId: getGeneralAttributesReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/AttributeReference" + example: + "2003": + id: 2003 + name: Clothing optional (nudity permitted in public areas) + has_value: false + "2544": + id: 2544 + name: No rollaway/extra beds available + has_value: false + "2545": + id: 2545 + name: No cribs (infant beds) available + has_value: false + "2940": + id: 2940 + name: Minimum guest age is + has_value: true + "400": + description: Invalid Input + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. + schema: + type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthorized + message: Your request could not be authorized. + "426": + description: Upgrade Required + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/images: + get: + tags: + - getImagesReference + summary: Images Reference + description: | + Returns a complete collection of images available in the Rapid API. + operationId: getImagesReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: schema: - type: string + type: object + additionalProperties: + $ref: "#/components/schemas/ImageReference" + example: + "10001": + id: 10001 + name: Lobby + "22003": + id: 22003 + name: Room service - dining + "56011": + id: 56011 + name: Raised toilet seat + "91003": + id: 91003 + name: Front of property - evening/night + "400": + description: Invalid Input + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -11644,8 +17588,15 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: link.invalid - message: Link is invalid. + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -11689,54 +17640,6 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: resource_not_found - message: Itinerary was not found with provided request. "426": description: Upgrade Required headers: @@ -11753,41 +17656,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -11823,204 +17704,143 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - put: + /v3/references/onsite-payment-types: + get: tags: - - putResumeBooking - summary: Resume Booking + - getOnsitePaymentTypesReference + summary: Onsite Payment Types Reference description: > - This link will be available in the booking response after creating a - held booking. - operationId: putResumeBooking + Returns a complete collection of onsite payment types available in the + Rapid API. + operationId: getOnsitePaymentTypesReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query description: > - The resume call has a test header that can be used to return set - responses with the following keywords:
    - - * `standard` - Requires valid test held booking. + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `service_unavailable` - Returns the HTTP 202 response caused by partial service unavailablity. + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, - * `internal_server_error` + the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - internal_server_error - - name: itinerary_id - in: path + - name: payment_terms + in: query description: > - This parameter is used only to prefix the token value - no ID value - is used.
    - required: true + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. schema: type: string - example: "8955599932111" - - name: token + - name: platform_name in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. schema: type: string responses: - "202": - description: Accepted - Request is valid but the state of the booking is - unknown. Make a retrieve call to verify the booking has been resumed - properly. + "200": + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" - content: {} - "204": - description: No Content - Held booking has successfully resumed. - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. + content: + application/json: schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: {} + type: object + additionalProperties: + $ref: "#/components/schemas/PaymentType" + example: + "171": + id: 171 + name: American Express + "190": + id: 190 + name: Cash not accepted + "407": + id: 407 + name: Cash + "1073742461": + id: 1073742461 + name: Debit cards "400": - description: Bad Request + description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -12032,8 +17852,15 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: link.invalid - message: Link is invalid. + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -12077,54 +17904,6 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: resource_not_found - message: Itinerary was not found with provided request. "426": description: Upgrade Required headers: @@ -12141,41 +17920,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -12211,225 +17968,167 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - delete: + /v3/references/pet-attributes: + get: tags: - - deleteHeldBooking - summary: Cancel Held Booking - description: | - This link will be available in a held booking response. - operationId: deleteHeldBooking + - getPetAttributesReference + summary: Pet Attributes Reference + description: > + Returns a complete collection of pet attributes available in the Rapid + API. + operationId: getPetAttributesReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header - description: > - The cancel call has a test header that can be used to return set - responses with the following keywords:
    - - * `standard` - Requires valid test held booking. - - * `service_unavailable` + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `internal_server_error` + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, - * `post_stay_cancel` + the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - internal_server_error - - post_stay_cancel - - name: itinerary_id - in: path + - name: payment_terms + in: query description: > - This parameter is used only to prefix the token value - no ID value - is used.
    - required: true + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. schema: type: string - example: "8955599932111" - - name: token + - name: platform_name in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. schema: type: string responses: - "202": - description: Accepted - Request is valid but the state of the booking is - unknown. Make a retrieve call to verify the booking has been - canceled properly. + "200": + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" - content: {} - "204": - description: No Content - Booking has successfully canceled. - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. + content: + application/json: schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: {} + type: object + additionalProperties: + $ref: "#/components/schemas/AttributeReference" + example: + "51": + id: 51 + name: Pets allowed + has_value: false + "2644": + id: 2644 + name: Pet max weight (per pet) in kg is + has_value: true + "5059": + id: 5059 + name: Service animals are exempt from fees/restrictions + has_value: false + "1073744793": + id: 1073744793 + name: Only cats are allowed + has_value: false "400": - description: Bad Request + description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: application/json: schema: $ref: "#/components/schemas/Error" - examples: - Link Invalid Example: - value: - type: invalid_input - message: An invalid request was sent in, please check the nested errors for - details. - errors: - - type: link.invalid - message: Link is invalid. - Room Already Cancelled Example: - value: - type: room_already_cancelled - message: Room is already cancelled. + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -12473,54 +18172,6 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: resource_not_found - message: Itinerary was not found with provided request. "426": description: Upgrade Required headers: @@ -12537,41 +18188,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -12607,190 +18236,151 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/itineraries/{itinerary_id}/invoice": + /v3/references/rate-amenities: get: tags: - - getBookingReceipt - summary: Booking Receipt + - getRateAmenitiesReference + summary: Rate Amenities Reference description: > - A link to the booking receipt will be provided in the retrieve response - if partner configuration enabled. This - - endpoint will provide a PDF representation of a booking receipt that can be presented to a traveler for expense - - tracking purposes. - operationId: getBookingReceipt + Returns a complete collection of rate amenities available in the Rapid + API. + operationId: getRateAmenitiesReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location - - and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query description: > - The booking receipt call has a test header that can be used to - return set responses with the following - - keywords: - - * `standard` - - * `service_unavailable` + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `internal_server_error` + needed, the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - internal_server_error - - name: itinerary_id - in: path + - name: partner_point_of_sale + in: query description: > - This path variable will be provided as part of the link. This - specifies which itinerary the booking receipt + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, - request pertains to. - required: true + the value for this will be provided to you separately. schema: type: string - example: 8955599932111 - - name: token + - name: payment_terms in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent - - call by limiting the amount of information required at each step and reduces the potential for errors. Token + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this - values cannot be viewed or changed. - required: true + field is needed, the value for this will be provided to you + separately. schema: type: string - example: MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - - name: branding + - name: platform_name in: query description: > - This parameter specifies which branding should be present on the - generated PDF. Default behavior will be to + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the - provide the booking receipt with `expedia_group` branding. Some partner configurations may change the default to unbranded. + value for this will be provided to you separately. schema: type: string - enum: - - expedia_group - - unbranded - example: unbranded responses: "200": - description: Invoice provided as body in PDF binary form. + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: - application/pdf: + application/json: schema: - type: string - format: binary + type: object + additionalProperties: + $ref: "#/components/schemas/AmenityReference" + example: + "2098": + id: 2098 + name: Free breakfast + has_value: false + "2108": + id: 2108 + name: Food/beverage credit + has_value: false + "2235": + id: 2235 + name: Casino credit + has_value: false + "1073743286": + id: 1073743286 + name: Free massage included + has_value: false + "1073743391": + id: 1073743391 + name: Chain loyalty rate + has_value: false "400": - description: Bad Request + description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -12802,13 +18392,15 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: branding.invalid - message: "Branding not supported. Supported branding values are: [expedia_group, - unbranded]" + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" fields: - - name: branding + - name: language type: querystring - value: custom_branding "401": description: Unauthorized headers: @@ -12852,54 +18444,6 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: resource_not_found - message: Itinerary was not found with provided request. "426": description: Upgrade Required headers: @@ -12916,41 +18460,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -12986,188 +18508,151 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/itineraries/{itinerary_id}/payment-sessions": - put: + /v3/references/room-amenities: + get: tags: - - putCompletePaymentSession - summary: Complete Payment Session + - getRoomAmenitiesReference + summary: Room Amenities Reference description: > - This link only applies to transactions where EPS takes the customer's - payment information. This includes both Expedia Collect and Property - Collect transactions.
    - - This link will be available in the booking response only if you've opted into Two-Factor Authentication to comply with the September 2019 EU Regulations for PSD2. It should be called after Two-Factor Authentication has been completed by the customer in order to finalize the payment and complete the booking or hold attempt. Learn more with our [PSD2 Overview](https://developers.expediagroup.com/docs/rapid/lodging/booking/psd2-regulation) - operationId: putCompletePaymentSession + Returns a complete collection of roomo amenities available in the Rapid + API. + operationId: getRoomAmenitiesReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query description: > - The payment-sessions call has a test header that can be used to - return set responses with the following keywords:
    - - * `standard` + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `service_unavailable` + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, - * `internal_server_error` + the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - internal_server_error - - name: itinerary_id - in: path + - name: payment_terms + in: query description: > - This parameter is used only to prefix the token value - no ID value - is used.
    - required: true + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. schema: type: string - example: "8955599932111" - - name: token + - name: platform_name in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. schema: type: string responses: "200": - description: Payment Session Completed + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: application/json: schema: - $ref: "#/components/schemas/CompletePaymentSession" - examples: - Booking Not Held Example: - value: - itinerary_id: "8999989898988" - links: - retrieve: - method: GET - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - Booking Held Example: - value: - itinerary_id: "8999989898988" - links: - retrieve: - method: GET - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - resume: - method: PUT - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m - cancel: - method: DELETE - href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m + type: object + additionalProperties: + $ref: "#/components/schemas/AmenityReference" + example: + "4296": + id: 4296 + name: Furnished balcony or patio + has_value: false + "1073743396": + id: 1073743396 + name: Free WiFi (limited) time + has_value: true + "1073744315": + id: 1073744315 + name: Data speed + has_value: true + "1073744439": + id: 1073744439 + name: Lobster/crab pot + has_value: false + "1073744558": + id: 1073744558 + name: All-in-one washer and dryer + has_value: false "400": - description: Bad Request + description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -13179,90 +18664,49 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: link.invalid - message: Link is invalid. - "401": - description: Unauthorized - headers: - Region: - $ref: "#/components/headers/Region" - WWW-Authenticate: - description: Provides an example of the Authorization header. - schema: - type: string - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: request_unauthenticated - message: Data required to authenticate your request is missing or inaccurate. - Ensure that your request follows the guidelines in our - documentation. - fields: - - name: apikey - type: header - value: jaj3982k239dka328e - - name: signature - type: header - value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - - name: timestamp - type: header - value: 198284729 - - name: servertimestamp - type: server - value: 198284729 - "403": - description: Forbidden - headers: - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: request_unauthorized - message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. schema: type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: Region: $ref: "#/components/headers/Region" content: @@ -13270,8 +18714,8 @@ paths: schema: $ref: "#/components/schemas/Error" example: - type: resource_not_found - message: Itinerary was not found with provided request. + type: request_unauthorized + message: Your request could not be authorized. "426": description: Upgrade Required headers: @@ -13288,41 +18732,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -13358,223 +18780,142 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/itineraries/{itinerary_id}/rooms/{room_id}": - put: + /v3/references/room-images: + get: tags: - - changeRoomDetails - summary: Change details of a room. - description: > - This link will be available in the retrieve response. Changes in smoking - preference and special request will be passed along to the property and - are not guaranteed. - operationId: changeRoomDetails + - getRoomImagesReference + summary: Room Images Reference + description: | + Returns a complete collection of room images available in the Rapid API. + operationId: getRoomImagesReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query description: > - The change call has a test header that can be used to return set - responses with the following keywords:
    - - * `standard` - Requires valid test booking. - - * `service_unavailable` + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `unknown_internal_error` + needed, the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - unknown_internal_error - - name: itinerary_id - in: path + - name: partner_point_of_sale + in: query description: > - This parameter is used only to prefix the token value - no ID value - is used.
    - required: true + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. schema: type: string - example: "8955599932111" - - name: room_id - in: path - description: | - Room ID of a property.
    - required: true + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. schema: type: string - example: 123abc - - name: token + - name: platform_name in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. schema: type: string - requestBody: - description: The request body is required, but only the fields that are being - changed need to be passed in. Fields that are not being changed should - not be included in the request body. - content: - application/json: - schema: - $ref: "#/components/schemas/ChangeRoomDetailsRequest" - required: true responses: - "202": - description: Accepted - Request is valid but the state of the booking is - unknown. Make a retrieve call to verify the booking has been changed - properly. + "200": + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" - content: {} - "204": - description: No Content - Booking has successfully changed. - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. + content: + application/json: schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: {} + type: object + additionalProperties: + $ref: "#/components/schemas/ImageReference" + example: + "30012": + id: 56011 + name: Pool waterfall + "60008": + id: 60008 + name: Archery + "60021": + id: 60021 + name: Kayaking + "71012": + id: 71012 + name: Pet-friendly "400": - description: Bad Request + description: Invalid Input headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -13586,8 +18927,15 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: link.invalid - message: Link is invalid. + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -13631,54 +18979,6 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: resource_not_found - message: Itinerary was not found with provided request. "426": description: Upgrade Required headers: @@ -13695,41 +18995,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -13765,214 +19043,142 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - delete: + /v3/references/room-views: + get: tags: - - deleteRoom - summary: Cancel a room. + - getRoomViewsReference + summary: Room Views Reference description: | - This link will be available in the retrieve response. - operationId: deleteRoom + Returns a complete collection of room views available in the Rapid API. + operationId: getRoomViewsReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query description: > - The cancel call has a test header that can be used to return set - responses with the following keywords:
    - - * `standard` - Requires valid test booking. - - * `service_unavailable` - - * `unknown_internal_error` + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `post_stay_cancel` + needed, the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - unknown_internal_error - - post_stay_cancel - - name: itinerary_id - in: path + - name: partner_point_of_sale + in: query description: > - This parameter is used only to prefix the token value - no ID value - is used.
    - required: true + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. schema: type: string - example: "8955599932111" - - name: room_id - in: path - description: | - Room ID of a property.
    - required: true + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. schema: type: string - example: 123abc - - name: token + - name: platform_name in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. schema: type: string responses: - "202": - description: Accepted - Request is valid but the state of the booking is - unknown. Make a retrieve call to verify the booking has been - canceled properly. - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: {} - "204": - description: No Content - Booking has successfully canceled. - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" - content: {} + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/View" + example: + "4134": + id: 4134 + name: City view + "4219": + id: 4219 + name: Mountain view + "1073742607": + id: 1073742607 + name: Harbor view + "1073742612": + id: 1073742612 + name: Partial lake view "400": - description: Bad Request + description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -13984,8 +19190,15 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: link.invalid - message: Link is invalid. + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -14029,45 +19242,258 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found + "426": + description: Upgrade Required headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. + Region: + $ref: "#/components/headers/Region" + content: + application/json: schema: - type: number + $ref: "#/components/schemas/Error" + example: + type: upgrade_required + message: This service requires the use of TLS. + "429": + description: Too Many Requests + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: schema: - type: number + $ref: "#/components/schemas/Error" + example: + type: too_many_requests + message: You have reached your capacity for this type of request. + "500": + description: Unknown Internal Error + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: unknown_internal_error + message: An internal server error has occurred. + "503": + description: Service Unavailable + headers: + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/spoken-languages: + get: + tags: + - getSpokenLanguagesReference + summary: Spoken Languages Reference + description: > + Returns a complete collection of spoken languages available in the Rapid + API. + operationId: getSpokenLanguagesReference + parameters: + - name: Customer-Session-Id + in: header + description: > + Insert your own unique value for each user session, beginning with + the first API call. Continue to pass the + + same value for each subsequent API call during the user's session, + using a new value for every new customer + + session.
    + + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it + + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query + description: > + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is + + needed, the value for this will be provided to you separately. + schema: + type: string + - name: partner_point_of_sale + in: query + description: > + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. + schema: + type: string + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. + schema: + type: string + - name: platform_name + in: query + description: > + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. + schema: + type: string + responses: + "200": + description: OK + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: schema: - type: number + type: object + additionalProperties: + $ref: "#/components/schemas/SpokenLanguage" + example: + el: + id: el + name: Greek + en: + id: en + name: English + fr: + id: fr + name: French + "400": + description: Invalid Input + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring + "401": + description: Unauthorized + headers: + Region: + $ref: "#/components/headers/Region" + WWW-Authenticate: + description: Provides an example of the Authorization header. schema: type: string + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: request_unauthenticated + message: Data required to authenticate your request is missing or inaccurate. + Ensure that your request follows the guidelines in our + documentation. + fields: + - name: apikey + type: header + value: jaj3982k239dka328e + - name: signature + type: header + value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b + - name: timestamp + type: header + value: 198284729 + - name: servertimestamp + type: server + value: 198284729 + "403": + description: Forbidden + headers: Region: $ref: "#/components/headers/Region" content: @@ -14075,8 +19501,8 @@ paths: schema: $ref: "#/components/schemas/Error" example: - type: resource_not_found - message: Itinerary was not found with provided request. + type: request_unauthorized + message: Your request could not be authorized. "426": description: Upgrade Required headers: @@ -14093,41 +19519,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -14163,228 +19567,146 @@ paths: message: This service is currently unavailable. security: - rapidAuth: [] - "/v3/itineraries/{itinerary_id}/rooms/{room_id}/pricing": - put: + /v3/references/statistics: + get: tags: - - commitChange - summary: Commit a change of itinerary that may require additional payment or - refund. - description: > - This link will be available in the change response to confirm and - complete the change transaction. - - - If additional charges are due, a payment must be submitted with this request. Note that Two-Factor - - Authentication is not supported at this time. - operationId: commitChange + - getStatisticsReference + summary: Statistics Reference + description: | + Returns a complete collection of statistics available in the Rapid API. + operationId: getStatisticsReference parameters: - - name: Customer-Ip - in: header - description: > - IP address of the customer, as captured by your integration.
    - - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    - - Also used for fraud recovery and other important analytics. - required: true - schema: - type: string - example: 5.5.5.5 - name: Customer-Session-Id in: header description: > Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. schema: type: string - - name: Test - in: header + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK + - name: billing_terms + in: query description: > - The change call has a test header that can be used to return set - responses with the following keywords:
    - - * `standard` - Requires valid test booking. - - * `service_unavailable` + This parameter is to specify the terms of how a resulting booking + should be billed. If this field is - * `unknown_internal_error` + needed, the value for this will be provided to you separately. schema: type: string - enum: - - standard - - service_unavailable - - unknown_internal_error - - name: itinerary_id - in: path + - name: partner_point_of_sale + in: query description: > - This parameter is used only to prefix the token value - no ID value - is used.
    - required: true + This parameter is to specify what point of sale is being used to + shop and book. If this field is needed, + + the value for this will be provided to you separately. schema: type: string - example: "8955599932111" - - name: room_id - in: path - description: | - Room ID of a property.
    - required: true + - name: payment_terms + in: query + description: > + This parameter is to specify what terms should be used when being + paid for a resulting booking. If this + + field is needed, the value for this will be provided to you + separately. schema: type: string - example: 123abc - - name: token + - name: platform_name in: query description: > - Provided as part of the link object and used to maintain state - across calls. This simplifies each subsequent call by limiting the - amount of information required at each step and reduces the - potential for errors. Token values cannot be viewed or changed. - required: true + This parameter is to specify what platform is being used to shop and + book. If this field is needed, the + + value for this will be provided to you separately. schema: type: string - requestBody: - description: > - The request body is required if additional payment is necessary. The - body can optionally contain the `change_reference_id`. - content: - application/json: - schema: - $ref: "#/components/schemas/CommitChangeRoomRequestBody" - required: false responses: - "202": - description: Accepted - Request is valid but the state of the booking is - unknown. Make a retrieve call to verify the booking has been changed - properly. - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: {} - "204": - description: No Content - Booking has successfully changed. + "200": + description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" - content: {} + content: + application/json: + schema: + type: object + additionalProperties: + $ref: "#/components/schemas/StatisticReference" + example: + "55": + id: 55 + name: Number of buildings/towers - + has_value: true + "2515": + id: 2515 + name: Year Built - + has_value: true + "1073743380": + id: 1073743380 + name: Max occupancy - + has_value: true + "1073743538": + id: 1073743538 + name: Property floor area (square meters) - + has_value: true "400": - description: Bad Request + description: Invalid Input headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -14396,8 +19718,15 @@ paths: message: An invalid request was sent in, please check the nested errors for details. errors: - - type: link.invalid - message: Link is invalid. + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -14441,158 +19770,6 @@ paths: example: type: request_unauthorized message: Your request could not be authorized. - "404": - description: Not Found - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: resource_not_found - message: Itinerary was not found with provided request. - "409": - description: Price Mismatch - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: price_mismatch - message: Payment amount did not match current price, please check price and try - again. - fields: - - name: payments.amount - type: body - value: "100.00" - - name: price.amount - type: body - value: "120.00" - "410": - description: Sold Out - headers: - Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number - Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number - Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number - Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number - Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number - Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number - Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string - Region: - $ref: "#/components/headers/Region" - content: - application/json: - schema: - $ref: "#/components/schemas/Error" - example: - type: rooms_unavailable - message: One or more requested rooms are unavailable. "426": description: Upgrade Required headers: @@ -14609,41 +19786,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -14674,35 +19829,19 @@ paths: application/json: schema: $ref: "#/components/schemas/Error" - example: - type: service_unavailable - message: This service is currently unavailable. - security: - - rapidAuth: [] - /v3/chains: - get: - tags: - - getChainReference - summary: Chain Reference - description: > - Returns a complete collection of chains recognized by the Rapid API. - -
    Chains represent a parent company which can have multiple brands associated with it. A brand can only be - - associated with one chain. For example, Hilton Worldwide is a chain that has multiple associated brands - - including DoubleTree, Hampton Inn and Embassy Suites. - -
    The response is a JSON map where the key is the chain ID and the value is a chain object. Each chain object - - also contains a map of its related brands. - -
    Note that the set of chain IDs and brand IDs are totally independent of one another. It is possible for a - - chain and a brand to both use the same number as their ID, but this is just a coincidence that holds no meaning. - -
    Chain and brand names are provided in English only. - operationId: getChainReference + example: + type: service_unavailable + message: This service is currently unavailable. + security: + - rapidAuth: [] + /v3/references/themes: + get: + tags: + - getThemesReference + summary: Themes Reference + description: | + Returns a complete collection of themes available in the Rapid API. + operationId: getThemesReference parameters: - name: Customer-Session-Id in: header @@ -14710,15 +19849,34 @@ paths: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, + using a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process + for issues with partner requests, as it - explicitly links together request paths for individual user's session. + explicitly links together request paths for individual user's + session. + schema: + type: string + - name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true schema: type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK - name: billing_terms in: query description: > @@ -14743,7 +19901,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -14760,41 +19919,19 @@ paths: description: OK headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -14802,82 +19939,57 @@ paths: schema: type: object additionalProperties: - $ref: "#/components/schemas/Chain" + $ref: "#/components/schemas/Theme" example: - "2102": - id: "2102" - name: MGM - brands: - "2102": - id: "2102" - name: MGM - "4445": - id: "4445" - name: Studios 2 Let - brands: - "4498": - id: "4498" - name: Studios 2 Let - "6200": - id: "6200" - name: Urban Dream Hotels - brands: - "6325": - id: "6325" - name: Urban Dream Hotels - "6325": - id: "6325" - name: Isla Bonita - brands: - "6399": - id: "6399" - name: Isla Bonita - "-5": - id: -5 - name: Hilton Worldwide - brands: - "33": - id: "33" - name: Doubletree - "38": - id: "38" - name: Embassy Suites - "54": - id: "54" - name: Homewood Suites - "55": - id: "55" - name: Hilton Hotels - "358": - id: "358" - name: Hampton Inn - "2059": - id: "2059" - name: Hilton Garden Inn - "2146": - id: "2146" - name: Conrad - "2194": - id: "2194" - name: Waldorf Astoria - "2199": - id: "2199" - name: Hilton International - "2513": - id: "2513" - name: Hilton Grand Vacations - "2608": - id: "2608" - name: Home2 Suites by Hilton - "3000": - id: "3000" - name: Curio Collection - "4138": - id: "4138" - name: Tru by Hilton - "4615": - id: "4615" - name: Tapestry Collection by Hilton + "2332": + id: 2332 + name: Eco-certified property + "5001": + id: 5001 + name: Hot springs property + "5020": + id: 5020 + name: Winery property + "1073744362": + id: 1073744362 + name: Romantic + "400": + description: Invalid Input + headers: + Rate-Limit-Day: + $ref: "#/components/headers/Rate-Limit-Day" + Rate-Limit-Day-Remaining: + $ref: "#/components/headers/Rate-Limit-Day-Remaining" + Rate-Limit-Day-Reset: + $ref: "#/components/headers/Rate-Limit-Day-Reset" + Rate-Limit-Minute: + $ref: "#/components/headers/Rate-Limit-Minute" + Rate-Limit-Minute-Remaining: + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" + Rate-Limit-Minute-Reset: + $ref: "#/components/headers/Rate-Limit-Minute-Reset" + Rate-Limit-Reduction-Status: + $ref: "#/components/headers/Rate-Limit-Reduction-Status" + Region: + $ref: "#/components/headers/Region" + content: + application/json: + schema: + $ref: "#/components/schemas/Error" + example: + type: invalid_input + message: An invalid request was sent in, please check the nested errors for + details. + errors: + - type: language.required + message: "A language is required. Supported languages are: [ar-SA, cs-CZ, da-DK, + de-DE, el-GR, en-US, es-ES, es-MX, fi-FI, fr-CA, fr-FR, + hr-HR, hu-HU, id-ID, is-IS, it-IT, ja-JP, lt-LT, ko-KR, + ms-MY, nb-NO, nl-NL, pl-PL, pt-BR, pt-PT, ru-RU, sk-SK, + sv-SE, th-TH, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW]" + fields: + - name: language + type: querystring "401": description: Unauthorized headers: @@ -14937,41 +20049,19 @@ paths: description: Too Many Requests headers: Rate-Limit-Day: - description: Reserved for future use. Optional header for request capacity per - day. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day" Rate-Limit-Day-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the daily time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Remaining" Rate-Limit-Day-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the daily capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Day-Reset" Rate-Limit-Minute: - description: Reserved for future use. Optional header for request capacity per - minute. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute" Rate-Limit-Minute-Remaining: - description: Optional header for the remaining capacity, as a percentage, for - the per minute time window. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Remaining" Rate-Limit-Minute-Reset: - description: Optional header for the timestamp, as the number of milliseconds - since the Unix Epoch, when the per minute capacity resets. - schema: - type: number + $ref: "#/components/headers/Rate-Limit-Minute-Reset" Rate-Limit-Reduction-Status: - description: Optional header that indicates the state (inactive, active) of - minute capacity reduction triggered once all daily capacity has - been used. - schema: - type: string + $ref: "#/components/headers/Rate-Limit-Reduction-Status" Region: $ref: "#/components/headers/Region" content: @@ -15050,7 +20140,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -15099,7 +20190,8 @@ paths: This request triggers a test notification according to the specified event_type. - All event types supported by the Notifications API are available to test. + All event types supported by the Notifications API are available to + test. operationId: requestTestNotification parameters: - name: billing_terms @@ -15126,7 +20218,8 @@ paths: This parameter is to specify what terms should be used when being paid for a resulting booking. If this - field is needed, the value for this will be provided to you separately. + field is needed, the value for this will be provided to you + separately. schema: type: string - name: platform_name @@ -16434,12 +21527,22 @@ components: alert users to low availability on busy travel dates or at popular properties. - If the value returns as 2147483647 (max int value), the actual value could not be determined. Ensure your urgency messaging ignores such instances when returned. + If the value returns as 2147483647 (max int value), the actual value + could not be determined. Ensure your urgency messaging ignores such + instances when returned. refundable: type: boolean description: Indicates if the rate is fully refundable at the time of booking. Cancel penalties may still apply. Please refer to the cancel penalties section for reference. + current_refundability: + type: string + description: Indicates the current refundability of the rate. This is a more + detailed version of the `refundable` field. + enum: + - refundable + - non_refundable + - partially_refundable member_deal_available: type: boolean description: Indicates if a "Member Only Deal" is available for this rate. @@ -16471,15 +21574,20 @@ components: An array of stay date ranges within this check-in / check-out range that are not refundable. Stay dates - within these ranges provide no refund on cancellation, regardless of cancel penalty windows. The stay dates + within these ranges provide no refund on cancellation, regardless of + cancel penalty windows. The stay dates - are determined by the would be check-in of that night. With a check-in date of 2023-09-01, and a check-out + are determined by the would be check-in of that night. With a + check-in date of 2023-09-01, and a check-out - date of 2023-09-06, this would be a 5 night stay. A `nonrefundable_date_range` with start: 2023-09-02 and + date of 2023-09-06, this would be a 5 night stay. A + `nonrefundable_date_range` with start: 2023-09-02 and - end: 2023-09-03 would mean 2 of the nights are nonrefundable. The 1st night is refundable, the 2nd and 3rd + end: 2023-09-03 would mean 2 of the nights are nonrefundable. The + 1st night is refundable, the 2nd and 3rd - nights are nonrefundable, and the 4th and 5th nights are refundable, subject to `cancel_penalties` + nights are nonrefundable, and the 4th and 5th nights are refundable, + subject to `cancel_penalties` restrictions. items: @@ -16490,13 +21598,17 @@ components: An array of stay date ranges within this check-in / check-out range that have an incentive applied. The stay - dates are determined by the would be check-in of that night. With a check-in date of 2023-09-01, and a + dates are determined by the would be check-in of that night. With a + check-in date of 2023-09-01, and a - check-out date of 2023-09-06, this would be a 5 night stay. A `marketing_fee_incentive` with start: + check-out date of 2023-09-06, this would be a 5 night stay. A + `marketing_fee_incentive` with start: - 2023-09-02 and end: 2023-09-03 would mean 2 of the nights have an incentive applied. The 1st night is not + 2023-09-02 and end: 2023-09-03 would mean 2 of the nights have an + incentive applied. The 1st night is not - part of the incentive, the 2nd and 3rd nights are part of the incentive, and the 4th and 5th nights are not + part of the incentive, the 2nd and 3rd nights are part of the + incentive, and the 4th and 5th nights are not part of the incentive. items: @@ -16538,7 +21650,9 @@ components: etc. and displayed as a total package price. - If shopping in a cross-sell scenario and using the cross-sell rate option, this indicates that the rate is a package rate available to be sold as an add-on to an existing itinerary. + If shopping in a cross-sell scenario and using the cross-sell rate + option, this indicates that the rate is a package rate available to + be sold as an add-on to an existing itinerary. member: type: boolean description: > @@ -16546,13 +21660,18 @@ components: rate. - Partners must be enabled to receive "Member Only Deals". If interested, partners should speak to their account representatives. + Partners must be enabled to receive "Member Only Deals". If + interested, partners should speak to their account representatives. - This parameter can be used to merchandise if a "Member Only Deal" has been applied, which will help drive loyalty. In addition, it can be used by OTA's to create an opaque, but public shopping experience. + This parameter can be used to merchandise if a "Member Only Deal" + has been applied, which will help drive loyalty. In addition, it can + be used by OTA's to create an opaque, but public shopping + experience. - This value will always be false for requests where the sales_environment is equal to "hotel_package". + This value will always be false for requests where the + sales_environment is equal to "hotel_package". corporate: type: boolean description: > @@ -16572,7 +21691,9 @@ components: If true, this rate has an associated mobile promotion which can be advertised as a special mobile only deal. - This will only be present when `include=sale_scenario.mobile_promotion` is passed as a request parameter. + This will only be present when + `include=sale_scenario.mobile_promotion` is passed as a request + parameter. description: Provides the special scenarios that need to be taken into account when using this rate. RateLinks: @@ -16695,39 +21816,57 @@ components: description: > The code representing the reason. - * `adults_exceed_threshold` - Number of adults requested exceeds room threshold. `data` will contain the maximum value. + * `adults_exceed_threshold` - Number of adults requested exceeds + room threshold. `data` will contain the maximum value. - * `children_exceed_threshold` - Number of children requested exceeds room threshold. `data` will contain the maximum value. + * `children_exceed_threshold` - Number of children requested exceeds + room threshold. `data` will contain the maximum value. - * `infants_exceed_threshold` - Number of infants requested exceeds room threshold. `data` will contain the maximum value. + * `infants_exceed_threshold` - Number of infants requested exceeds + room threshold. `data` will contain the maximum value. - * `minimum_child_age` - Child age requested is less than the minimum age specified for the room. `data` will contain the minimum value. + * `minimum_child_age` - Child age requested is less than the minimum + age specified for the room. `data` will contain the minimum value. - * `maximum_occupancy` - Number of occupants exceed the specified room limit. `data` will contain the maximum value. + * `maximum_occupancy` - Number of occupants exceed the specified + room limit. `data` will contain the maximum value. * `checkin_not_allowed` - Check-in not allowed for this stay date. * `checkout_not_allowed` - Check-out not allowed for this stay date. - * `minimum_stay` - Length of stay is less than minimum. `data` will contain the minimum value. + * `minimum_stay` - Length of stay is less than minimum. `data` will + contain the minimum value. - * `maximum_stay` - Length of stay is greater than maximum. `data` will contain the maximum value. + * `maximum_stay` - Length of stay is greater than maximum. `data` + will contain the maximum value. - * `restricted_stay_lengths` - Some stay lengths are not available for this check-in date. `data` will contain the allowed lengths separated by pipe `|`. eg. `3|5|6` + * `restricted_stay_lengths` - Some stay lengths are not available + for this check-in date. `data` will contain the allowed lengths + separated by pipe `|`. eg. `3|5|6` - * `same_day_restrictions` - Room is not available due to same day booking restrictions. + * `same_day_restrictions` - Room is not available due to same day + booking restrictions. - * `maximum_rooms` - Room count exceeds provider limit. `data` will contain the maximum value. + * `maximum_rooms` - Room count exceeds provider limit. `data` will + contain the maximum value. - * `children_not_supported` - The property is restricted to adults only. + * `children_not_supported` - The property is restricted to adults + only. - * `minimum_advance_purchase` - Minimum Advance Purchase requirement not met. `data` will contain the minimum value. + * `minimum_advance_purchase` - Minimum Advance Purchase requirement + not met. `data` will contain the minimum value. - * `maximum_advance_purchase` - Maximum Advance Purchase requirement not met. `data` will contain the maximum value. + * `maximum_advance_purchase` - Maximum Advance Purchase requirement + not met. `data` will contain the maximum value. - * `partial_inventory_available` - Some of the dates have no inventory available for the specified duration. `data` will contain the unavailable dates separated by pipe `|`. eg. `2023-10-21|2023-10-23` + * `partial_inventory_available` - Some of the dates have no + inventory available for the specified duration. `data` will contain + the unavailable dates separated by pipe `|`. eg. + `2023-10-21|2023-10-23` - * `no_inventory_available` - No inventory is available for the specified duration. + * `no_inventory_available` - No inventory is available for the + specified duration. enum: - adults_exceed_threshold - children_exceed_threshold @@ -16810,7 +21949,9 @@ components: for additional rates. - If this rate is still available for booking then a book link will be present if PSD2 is not a requirement for you or a payment_session link will be present if PSD2 is a requirement for you. + If this rate is still available for booking then a book link will be + present if PSD2 is not a requirement for you or a payment_session link + will be present if PSD2 is a requirement for you. PaymentOption: type: object properties: @@ -16893,31 +22034,47 @@ components: `CHECKIN_VALID`: The associated date is valid for check in. - `CHECKIN_INVALID`: Generic or Unknown reason for being not being a valid day for check in. + `CHECKIN_INVALID`: Generic or Unknown reason for being not being a valid + day for check in. - `CHECKIN_INVALID_DUE_TO_BEING_IN_PAST`: The associated date is not valid for check in due to being in the past. + `CHECKIN_INVALID_DUE_TO_BEING_IN_PAST`: The associated date is not valid + for check in due to being in the past. - `CHECKIN_INVALID_DUE_TO_MIN_PRIOR_NOTIFICATION`: The associated date is not valid for check in because checking in on this date would not meet the owner's minimum prior notification requirements. + `CHECKIN_INVALID_DUE_TO_MIN_PRIOR_NOTIFICATION`: The associated date is + not valid for check in because checking in on this date would not meet + the owner's minimum prior notification requirements. - `CHECKIN_INVALID_DUE_TO_MAX_FUTURE_BOOKING`: The associated date is not valid for check in because it is too far in the future. + `CHECKIN_INVALID_DUE_TO_MAX_FUTURE_BOOKING`: The associated date is not + valid for check in because it is too far in the future. - `CHECKIN_INVALID_DUE_TO_NOT_AVAILABLE`: The associated date is not valid for check in because it is not available (ie. the date is already reserved). + `CHECKIN_INVALID_DUE_TO_NOT_AVAILABLE`: The associated date is not valid + for check in because it is not available (ie. the date is already + reserved). - `CHECKIN_INVALID_DUE_TO_NON_CHANGEOVER_DAY_OF_WEEK`: The associated date is not valid for check in because it falls on a day of the week that check in is prohibited. + `CHECKIN_INVALID_DUE_TO_NON_CHANGEOVER_DAY_OF_WEEK`: The associated date + is not valid for check in because it falls on a day of the week that + check in is prohibited. - `CHECKIN_INVALID_DUE_TO_CHANGEOVER_EXCLUSION`: The associated date is not valid for check in because check in was prohibited on that specific date. + `CHECKIN_INVALID_DUE_TO_CHANGEOVER_EXCLUSION`: The associated date is + not valid for check in because check in was prohibited on that specific + date. - `CHECKIN_INVALID_DUE_TO_MIN_STAY_NOT_ACHIEVABLE`: The associated date is not valid for check in because checking in on this date does not satisfy the minimum stay duration. + `CHECKIN_INVALID_DUE_TO_MIN_STAY_NOT_ACHIEVABLE`: The associated date is + not valid for check in because checking in on this date does not satisfy + the minimum stay duration. - `CHECKIN_INVALID_DUE_TO_NO_VALID_CHECKOUT_WITHIN_CONSTRAINTS`: The associated date is not valid for check in because there is not an associated check out date that would allow the stay to satisfy stay constraints. + `CHECKIN_INVALID_DUE_TO_NO_VALID_CHECKOUT_WITHIN_CONSTRAINTS`: The + associated date is not valid for check in because there is not an + associated check out date that would allow the stay to satisfy stay + constraints. example: CHECKIN_VALID CheckOutValidity: type: string @@ -16931,10 +22088,14 @@ components: `CHECKOUT_INVALID`: The checkout validity value is invalid or unknown. - `CHECKOUT_INVALID_DUE_TO_NON_CHANGEOVER_DAY_OF_WEEK`: The associated date is not valid for check out because it falls on a day of the week that check out is prohibited. + `CHECKOUT_INVALID_DUE_TO_NON_CHANGEOVER_DAY_OF_WEEK`: The associated + date is not valid for check out because it falls on a day of the week + that check out is prohibited. - `CHECKOUT_INVALID_DUE_TO_CHANGEOVER_EXCLUSION`: The associated date is not valid for check out because check out was prohibited on that specific date. + `CHECKOUT_INVALID_DUE_TO_CHANGEOVER_EXCLUSION`: The associated date is + not valid for check out because check out was prohibited on that + specific date. example: CHECKOUT_VALID StayConstraints: type: object @@ -17209,9 +22370,11 @@ components: set this only if PAResStatus value is received in the authentication response - if Authentication was Frictionless → AuthenticationResponse.PAResStatus, + if Authentication was Frictionless → + AuthenticationResponse.PAResStatus, - if Authentication was a successful challenge → "C" (This is the directory response for challenge) + if Authentication was a successful challenge → "C" (This is the + directory response for challenge) example: C xid: type: string @@ -17219,7 +22382,8 @@ components: String used by both Visa and MasterCard which identifies a specific transaction on the Directory - This string value should remain consistent throughout a transaction's history. + This string value should remain consistent throughout a + transaction's history. cavv_algorithm: type: string description: | @@ -17316,6 +22480,13 @@ components: type: array items: $ref: "#/components/schemas/RoomHistoryItem" + impacted_fields: + type: array + items: + type: string + description: Fields listed here are known to be missing from the response, + listed fields could be returned in future requests if more data is + available. description: The itinerary object. ItineraryLinks: type: object @@ -17390,6 +22561,7 @@ components: loyalty_id: type: string description: Deprecated. Please use the loyalty id inside the loyalty object. + deprecated: true loyalty: $ref: "#/components/schemas/Loyalty" rate: @@ -17457,7 +22629,8 @@ components: A list of date exceptions. Dates within these ranges provide no refund on cancellation, regardless of - cancel penalty windows. Nonrefundable range begins at 00:00:00 on the start date, and ends at 23:59:59 on + cancel penalty windows. Nonrefundable range begins at 00:00:00 on + the start date, and ends at 23:59:59 on the end date, in the local time zone of the property. items: @@ -17523,9 +22696,12 @@ components: * `cancel` - Cancel the booking for this room - * `change` - A PUT call to modify the details of the booking for this room (soft change) + * `change` - A PUT call to modify the details of the booking for this + room (soft change) - * `shop_for_change` - Shop for rates to evaluate for possible rebooking. This shop call will show the estimated financial impact of the change.
    + * `shop_for_change` - Shop for rates to evaluate for possible rebooking. + This shop call will show the estimated financial impact of the + change.
    Current parameters supported in shop for change: `checkin`, `checkout`, `occupancy` See: [additional rates](#get-/properties/-property_id-/availability) BillingContact: type: object @@ -17970,6 +23146,7 @@ components: loyalty_id: type: string description: Deprecated. Please use the loyalty id inside the loyalty object. + deprecated: true loyalty: $ref: "#/components/schemas/Loyalty" ItineraryCreation: @@ -18055,6 +23232,7 @@ components: loyalty_id: type: string description: Deprecated. Please use the loyalty id inside the loyalty object. + deprecated: true loyalty: $ref: "#/components/schemas/Loyalty" example: @@ -18075,7 +23253,8 @@ components: Your optional identifier for the change being executed. Only unique per itinerary. - Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. + Special characters ("<", ">", "(", ")", and "&") entered in this + field will be re-encoded. payments: type: array items: @@ -18170,6 +23349,55 @@ components: $ref: "#/components/schemas/PhoneRequest" address: $ref: "#/components/schemas/BillingContactRequestAddress" + AmenityReference: + type: object + properties: + id: + type: string + description: Amenity id. + name: + type: string + description: Amenity name. + has_value: + type: boolean + description: Indicates whether an amenity will have an associated numeric value. + description: An individual amenity reference. + AttributeReference: + type: object + properties: + id: + type: string + description: The attribute definition ID for this attribute. + name: + type: string + description: Attribute name. + has_value: + type: boolean + description: Indicates whether an attribute will have an associated numeric value. + description: An individual attribute reference. + ImageReference: + type: object + properties: + id: + type: string + description: Image Id + name: + type: string + description: Image name + description: An individual image reference. + StatisticReference: + type: object + properties: + id: + type: string + description: The statistic definition ID for this statistic. + name: + type: string + description: Statistic name. + has_value: + type: boolean + description: Indicates whether a statistic will have an associated numeric value. + description: An individual statistic reference. Notification: type: object properties: @@ -18221,14 +23449,10 @@ components: description: Amenity value. categories: type: array - description: > - This is an optional field and will be present only if the amenity - falls into one or more of these amenity categories.
    - + description: | + This is an optional field and will be present only if the amenity falls into one or more of these amenity categories.
    See the Amenity Categories section of the - [Content Reference Lists](https://developers.expediagroup.com/docs/rapid/lodging/content/content-reference-lists) - for a list of values. items: type: string @@ -18400,25 +23624,38 @@ components: description: > The total price of charges, given various criteria. - * `inclusive` - provides the total price including taxes and fees. This does not include property collected fees such as resort, mandatory taxes, and mandatory fees. + * `inclusive` - provides the total price including taxes and fees. This + does not include property collected fees such as resort, mandatory + taxes, and mandatory fees. * `exclusive` - provides the total price excluding taxes and fees. - * `property_inclusive` - provides the total price including taxes, fees, and property collected fees such as resort, mandatory taxes, and mandatory fees. + * `property_inclusive` - provides the total price including taxes, fees, + and property collected fees such as resort, mandatory taxes, and + mandatory fees. - * `inclusive_strikethrough` - provides the tax `inclusive` total price with any property funded discounts added back. Can be used to merchandise the savings due to a discount. + * `inclusive_strikethrough` - provides the tax `inclusive` total price + with any property funded discounts added back. Can be used to + merchandise the savings due to a discount. - * `strikethrough` - provides the tax `exclusive` total price with any property funded discounts added back. Can be used to merchandise the savings due to a discount. + * `strikethrough` - provides the tax `exclusive` total price with any + property funded discounts added back. Can be used to merchandise the + savings due to a discount. - * `property_inclusive_strikethrough` - provides the tax, fees, and property collected fees `inclusive` total price with any property funded discounts added back. Can be used to merchandise the savings due to a discount. + * `property_inclusive_strikethrough` - provides the tax, fees, and + property collected fees `inclusive` total price with any property funded + discounts added back. Can be used to merchandise the savings due to a + discount. - * `marketing_fee` - provides the potential owed earnings per transaction. + * `marketing_fee` - provides the potential owed earnings per + transaction. * `gross_profit` - provides the estimated gross profit per transaction. * `minimum_selling_price` - provides the minimum selling price. - * `property_fees` - provides the total of the fees collected by the property. + * `property_fees` - provides the total of the fees collected by the + property. Charge: type: object properties: @@ -18455,9 +23692,11 @@ components: Mandatory fees are collected by the property at check-in or check-out. - Resort fees are charged for amenities and extras and collected by the property at check-in or check-out. + Resort fees are charged for amenities and extras and collected by the + property at check-in or check-out. - Mandatory taxes are taxes collected by the property at check-in or check-out. + Mandatory taxes are taxes collected by the property at check-in or + check-out. ChargeCalculated: type: object properties: @@ -18649,7 +23888,8 @@ components: The `User-Agent` header string from the customer's request, as captured by your integration. If you are - building an application then the `User-Agent` value should be `{app name}/{app version}`. + building an application then the `User-Agent` value should be `{app + name}/{app version}`. required: true schema: type: string @@ -18661,11 +23901,13 @@ components: Insert your own unique value for each user session, beginning with the first API call. Continue to pass the - same value for each subsequent API call during the user's session, using a new value for every new customer + same value for each subsequent API call during the user's session, using + a new value for every new customer session.
    - Including this value greatly eases EPS's internal debugging process for issues with partner requests, as it + Including this value greatly eases EPS's internal debugging process for + issues with partner requests, as it explicitly links together request paths for individual user's session. schema: @@ -18716,7 +23958,9 @@ components: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. schema: @@ -18728,14 +23972,81 @@ components: description: > IP address of the customer, as captured by your integration.
    - Ensure your integration passes the customer's IP, not your own. This value helps determine their location and assign the correct payment gateway.
    + Ensure your integration passes the customer's IP, not your own. This + value helps determine their location and assign the correct payment + gateway.
    Also used for fraud recovery and other important analytics. required: true schema: type: string example: 5.5.5.5 + Language: + name: language + in: query + description: | + Desired language for the response as a subset of BCP47 format that only uses hyphenated pairs of two-digit + language and country codes. Use only ISO 639-1 alpha-2 language codes and ISO 3166-1 alpha-2 country codes. +

    Reference: + * [W3 Language Tags](https://www.w3.org/International/articles/language-tags/) + * [Language Options](https://developers.expediagroup.com/docs/rapid/resources/reference/language-options) + required: true + schema: + type: string + examples: + English: + value: en-US + Cantonese: + value: zh-HK headers: + Rate-Limit-Day: + description: Reserved for future use. Optional header for request capacity per day. + style: simple + explode: false + schema: + type: number + Rate-Limit-Day-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the daily time window. + style: simple + explode: false + schema: + type: number + Rate-Limit-Day-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the daily capacity resets. + style: simple + explode: false + schema: + type: number + Rate-Limit-Minute: + description: Reserved for future use. Optional header for request capacity per minute. + style: simple + explode: false + schema: + type: number + Rate-Limit-Minute-Remaining: + description: Optional header for the remaining capacity, as a percentage, for + the per minute time window. + style: simple + explode: false + schema: + type: number + Rate-Limit-Minute-Reset: + description: Optional header for the timestamp, as the number of milliseconds + since the Unix Epoch, when the per minute capacity resets. + style: simple + explode: false + schema: + type: number + Rate-Limit-Reduction-Status: + description: Optional header that indicates the state (inactive, active) of + minute capacity reduction triggered once all daily capacity has been + used. + style: simple + explode: false + schema: + type: string Region: description: Optional header that provides information about where the request was processed.