| POST | /hotelrate/{SubscriptionId}/{CendynPropertyId} |
|---|
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Response:
status_code: Optional[str] = None
record_count: Optional[int] = None
error_count: Optional[int] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateType:
hotel_code: Optional[str] = None
rate_code: Optional[str] = None
rate_category: Optional[str] = None
rate_name: Optional[str] = None
start_date: Optional[datetime.datetime] = None
end_date: Optional[datetime.datetime] = None
rate_status: Optional[str] = None
base_rate_code: Optional[str] = None
market_code: Optional[str] = None
confidential: Optional[bool] = None
meals_included: Optional[bool] = None
tax_included_indicator: Optional[str] = None
rate_category_description: Optional[str] = None
display_text: Optional[str] = None
short_description: Optional[str] = None
long_description: Optional[str] = None
min_l_o_s: Optional[int] = None
source_name: Optional[str] = None
source_i_d: Optional[str] = None
rate_adjust_direction: Optional[str] = None
rate_adjust_amount: Optional[Decimal] = None
rate_adjust_percent: Optional[Decimal] = None
currency_code: Optional[str] = None
is_daily: Optional[bool] = None
is_active: Optional[bool] = None
inactive_date: Optional[datetime.datetime] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateChargeDetail:
charge_code: Optional[str] = None
is_base_rate: Optional[bool] = None
rate_before_tax: Optional[Decimal] = None
rate_after_tax: Optional[Decimal] = None
unit_count: Optional[int] = None
tax_amount: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateGuestCountDetail:
guest_count: Optional[int] = None
min_rate: Optional[Decimal] = None
max_rate: Optional[Decimal] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Rate:
hotel_code: Optional[str] = None
rate_code: Optional[str] = None
room_code: Optional[str] = None
start_date: Optional[datetime.datetime] = None
end_date: Optional[datetime.datetime] = None
rate1: Optional[Decimal] = None
rate2: Optional[Decimal] = None
rate3: Optional[Decimal] = None
rate4: Optional[Decimal] = None
extra_adult: Optional[Decimal] = None
extra_child: Optional[Decimal] = None
extra_bed: Optional[Decimal] = None
currency_code: Optional[str] = None
free_child_limit: Optional[int] = None
include_monday: Optional[bool] = None
include_tuesday: Optional[bool] = None
include_wednesday: Optional[bool] = None
include_thursday: Optional[bool] = None
include_friday: Optional[bool] = None
include_saturday: Optional[bool] = None
include_sunday: Optional[bool] = None
customer_segment: Optional[str] = None
source_name: Optional[str] = None
source_i_d: Optional[str] = None
is_active: Optional[bool] = None
inactive_date: Optional[datetime.datetime] = None
rate_set_i_d: Optional[str] = None
rate_charge_details: Optional[List[RateChargeDetail]] = None
rate_guest_count_details: Optional[List[RateGuestCountDetail]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class RateContainer:
echo_token: Optional[str] = None
rate_type: Optional[RateType] = None
change_action: Optional[str] = None
rates: Optional[List[Rate]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HotelRate:
rate_container: Optional[RateContainer] = None
subscription_id: Optional[str] = None
cendyn_property_id: Optional[str] = None
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /hotelrate/{SubscriptionId}/{CendynPropertyId} HTTP/1.1
Host: cert.cendyn.com
Accept: application/json
Content-Type: application/json
Content-Length: length
{"rateContainer":{"echoToken":"String","rateType":{"hotelCode":"String","rateCode":"String","rateCategory":"String","rateName":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","rateStatus":"String","baseRateCode":"String","marketCode":"String","confidential":false,"mealsIncluded":false,"taxIncludedIndicator":"String","rateCategoryDescription":"String","displayText":"String","shortDescription":"String","longDescription":"String","minLOS":0,"sourceName":"String","sourceID":"String","rateAdjustDirection":"String","rateAdjustAmount":0,"rateAdjustPercent":0,"currencyCode":"String","isDaily":false,"isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000"},"changeAction":"String","rates":[{"hotelCode":"String","rateCode":"String","roomCode":"String","startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","rate1":0,"rate2":0,"rate3":0,"rate4":0,"extraAdult":0,"extraChild":0,"extraBed":0,"currencyCode":"String","freeChildLimit":0,"includeMonday":false,"includeTuesday":false,"includeWednesday":false,"includeThursday":false,"includeFriday":false,"includeSaturday":false,"includeSunday":false,"customerSegment":"String","sourceName":"String","sourceID":"String","isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000","rateSetID":"String","rateChargeDetails":[{"chargeCode":"String","isBaseRate":false,"rateBeforeTax":0,"rateAfterTax":0,"unitCount":0,"taxAmount":0}],"rateGuestCountDetails":[{"guestCount":0,"minRate":0,"maxRate":0}]}]},"subscriptionId":"String","cendynPropertyId":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"statusCode":"String","recordCount":0,"errorCount":0}