CenResService

<back to all web services

HotelPackage

The following routes are available for this service:
POST/HotelPackage/{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 PackageDetail:
    start_date: Optional[datetime.datetime] = None
    end_date: Optional[datetime.datetime] = None
    price_amount: Optional[Decimal] = None
    pos_allowance: Optional[Decimal] = None
    points_total: Optional[int] = None
    action: Optional[str] = None
    amount_before_tax: Optional[Decimal] = None
    amount_after_tax: Optional[Decimal] = None
    item_name: Optional[str] = None
    quantity: Optional[int] = None
    code: Optional[str] = None
    item_id: Optional[str] = None
    show_in_reservation: Optional[bool] = None
    use_in_c_r_s: Optional[bool] = None
    add_to_rate: Optional[bool] = None
    is_fixed_charge: Optional[bool] = None
    recurrence: Optional[str] = None
    relation: Optional[str] = None
    monday: Optional[bool] = None
    tuesday: Optional[bool] = None
    wednesday: Optional[bool] = None
    thursday: Optional[bool] = None
    friday: Optional[bool] = None
    saturday: Optional[bool] = None
    sunday: Optional[bool] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PackageItem:
    item_name: Optional[str] = None
    quantity: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Package:
    external_i_d: Optional[str] = None
    cendyn_property_i_d: Optional[str] = None
    hotel_code: Optional[str] = None
    package_code: Optional[str] = None
    package_description: Optional[str] = None
    short_description: Optional[str] = None
    forecast_group: Optional[str] = None
    print_separately: Optional[bool] = None
    add_to_rate: Optional[bool] = None
    price_amount: Optional[Decimal] = None
    tax_included: Optional[bool] = None
    currency_code: Optional[str] = None
    sell_separate: Optional[bool] = None
    post_next_day: Optional[bool] = None
    forecast_next_day: Optional[bool] = None
    catering_package: Optional[bool] = None
    redemption: Optional[bool] = None
    override_fixed_rate: Optional[bool] = None
    calculation_rule: Optional[str] = None
    posting_rhythm: Optional[str] = None
    package_element: Optional[str] = None
    add_to_rate_mode: Optional[str] = None
    is_active: Optional[bool] = None
    inactive_date: Optional[datetime.datetime] = None
    source_name: Optional[str] = None
    source_i_d: Optional[str] = None
    action: Optional[str] = None
    package_details: Optional[List[PackageDetail]] = None
    package_items: Optional[List[PackageItem]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HotelPackage:
    package: Optional[Package] = None
    subscription_id: Optional[str] = None
    cendyn_property_id: Optional[str] = None

Python HotelPackage DTOs

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

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /HotelPackage/{SubscriptionId}/{CendynPropertyId} HTTP/1.1 
Host: cert.cendyn.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"package":{"externalID":"String","cendynPropertyID":"String","hotelCode":"String","packageCode":"String","packageDescription":"String","shortDescription":"String","forecastGroup":"String","printSeparately":false,"addToRate":false,"priceAmount":0,"taxIncluded":false,"currencyCode":"String","sellSeparate":false,"postNextDay":false,"forecastNextDay":false,"cateringPackage":false,"redemption":false,"overrideFixedRate":false,"calculationRule":"String","postingRhythm":"String","packageElement":"String","addToRateMode":"String","isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000","sourceName":"String","sourceID":"String","action":"String","packageDetails":[{"startDate":"0001-01-01T00:00:00.0000000","endDate":"0001-01-01T00:00:00.0000000","priceAmount":0,"posAllowance":0,"pointsTotal":0,"action":"String","amountBeforeTax":0,"amountAfterTax":0,"itemName":"String","quantity":0,"code":"String","itemId":"String","showInReservation":false,"useInCRS":false,"addToRate":false,"isFixedCharge":false,"recurrence":"String","relation":"String","monday":false,"tuesday":false,"wednesday":false,"thursday":false,"friday":false,"saturday":false,"sunday":false}],"packageItems":[{"itemName":"String","quantity":0}]},"subscriptionId":"String","cendynPropertyId":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"statusCode":"String","recordCount":0,"errorCount":0}