""" Options: Date: 2026-10-08 22:15:09 Version: 6.21 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://cert.cendyn.com/CenResServiceR2Test #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: HotelInventoryBlockRequest.* #ExcludeTypes: #DefaultImports: datetime,decimal,marshmallow.fields:*,servicestack:*,typing:*,dataclasses:dataclass/field,dataclasses_json:dataclass_json/LetterCase/Undefined/config,enum:Enum/IntEnum #DataClass: #DataClassJson: """ 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 class InventoryBlockQueryType(str, Enum): NAME = 'Name' ID = 'Id' LAST_UPDATED = 'LastUpdated' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InventoryBlockEvent: cendyn_property_i_d: Optional[str] = None hotel_code: Optional[str] = None inventory_code: Optional[str] = None event_start_date: datetime.datetime = datetime.datetime(1, 1, 1) event_end_date: datetime.datetime = datetime.datetime(1, 1, 1) event_name: Optional[str] = None event_classification: Optional[str] = None event_booked_date: Optional[datetime.datetime] = None event_status: Optional[str] = None room_setup_code: Optional[str] = None room_setup_description: Optional[str] = None room_setup_capacity: Optional[int] = None expected_attendance: Optional[int] = None expected_revenue: Optional[Decimal] = None food_revenue: Optional[Decimal] = None beverage_revenue: Optional[Decimal] = None room_revenue: Optional[Decimal] = None resource_revenue: Optional[Decimal] = None other_revenue: Optional[Decimal] = None comments: Optional[str] = None external_i_d: Optional[str] = None source_date_created: Optional[datetime.datetime] = None source_create_user: Optional[str] = None source_date_updated: Optional[datetime.datetime] = None source_update_user: Optional[str] = None is_active: bool = False inactive_date: Optional[datetime.datetime] = None record_status: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InventoryBlockRate: cendyn_property_i_d: Optional[str] = None hotel_code: Optional[str] = None inventory_code: Optional[str] = None block_count: int = 0 inventory_day: datetime.datetime = datetime.datetime(1, 1, 1) 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 blocks_sold: Optional[int] = None rooms_contracted: Optional[int] = None rooms_reserved: Optional[int] = None is_active: bool = False inactive_date: Optional[datetime.datetime] = None room_block_i_d: Optional[str] = None room_block_name: Optional[str] = None room_block_status: Optional[str] = None record_status: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UniqueIDType: id: Optional[str] = None type: Optional[str] = None context: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProfileExtension: language_code: Optional[str] = None salutation_ext: Optional[str] = None first_name_ext: Optional[str] = None familiar_name_ext: Optional[str] = None middle_name_ext: Optional[str] = None last_name_ext: Optional[str] = None name_suffix_ext: Optional[str] = None company_name_ext: Optional[str] = None blacklist: Optional[str] = None black_list_message: Optional[str] = None anonymization_status: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Address: address_type_code: Optional[str] = None address_type_description: Optional[str] = None address_status: Optional[str] = None attn: Optional[str] = None address1: Optional[str] = None address2: Optional[str] = None city: Optional[str] = None state_province: Optional[str] = None postal_code: Optional[str] = None country_code: Optional[str] = None is_primary: Optional[bool] = None address_language: Optional[str] = None address_cleansed: Optional[bool] = None opt_out_marketing: Optional[bool] = None opt_out_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Membership: external_i_d: Optional[str] = None program_code: Optional[str] = None membership_i_d: Optional[str] = None membership_category: Optional[str] = None membership_name: Optional[str] = None membership_level: Optional[str] = None membership_status: Optional[str] = None enrollment_code: Optional[str] = None date_membership_starts: Optional[datetime.datetime] = None date_membership_expires: Optional[datetime.datetime] = None total_stays: Optional[int] = None award_credits: Optional[int] = None award_available: Optional[int] = None primary_airline: Optional[bool] = None display_sequence: Optional[int] = None source_name: Optional[str] = None source_i_d: Optional[str] = None is_active: bool = False inactive_date: Optional[datetime.datetime] = None points_indicator: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactMethod: type: Optional[str] = None category: Optional[str] = None data_value: Optional[str] = None extra_data: Optional[str] = None opt_out: Optional[bool] = None source_date: Optional[datetime.datetime] = None is_primary: Optional[bool] = None confirmation: Optional[bool] = None inactive_date: Optional[datetime.datetime] = None opt_out_marketing: Optional[bool] = None opt_out_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ActionComment: external_i_d: Optional[str] = None comment_type: Optional[str] = None comment_title: Optional[str] = None comment_class: Optional[str] = None action_type: Optional[str] = None comment: Optional[str] = None action_date: Optional[datetime.datetime] = None inactive_date: Optional[datetime.datetime] = None guest_viewable: Optional[bool] = None creator_code: Optional[str] = None date_comment_created: Optional[datetime.datetime] = None resort_code: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SpecialRequest: external_i_d: Optional[str] = None request_type: Optional[str] = None request_code: Optional[str] = None request_comments: Optional[str] = None resort_field: Optional[str] = None action_type_code: Optional[str] = None action_type: Optional[str] = None inactive_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UDFDataType: cendyn_property_i_d: Optional[str] = None module_name: Optional[str] = None table_name: Optional[str] = None column_name: Optional[str] = None udf_value: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Lead: f_k__reservation: Optional[str] = None external_lead_i_d: Optional[str] = None external_lead_source: Optional[str] = None lead_status: Optional[str] = None lead_acquired: Optional[datetime.datetime] = None tentative_start_date: Optional[datetime.datetime] = None tentative_end_date: Optional[datetime.datetime] = None assigned_agent: Optional[str] = None assigned_date: Optional[datetime.datetime] = None contact_method: Optional[str] = None contact_agent: Optional[str] = None contact_date: Optional[datetime.datetime] = None last_followup_method: Optional[str] = None last_followup_agent: Optional[str] = None last_followup_date: Optional[datetime.datetime] = None booking_method: Optional[str] = None booking_agent: Optional[str] = None booking_date: Optional[datetime.datetime] = None reasonfor_stay: Optional[str] = None market_code: Optional[str] = None campaign_code: Optional[str] = None campaign_name: Optional[str] = None price_estimate: Optional[Decimal] = None flagged_for_attention: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class RelatedTraveler: cendyn_property_i_d: Optional[str] = None property_name: Optional[str] = None unique_i_ds: Optional[List[UniqueIDType]] = None salutation: Optional[str] = None first_name: Optional[str] = None familiar_name: Optional[str] = None middle_name: Optional[str] = None last_name: Optional[str] = None full_name: Optional[str] = None suffix: Optional[str] = None relation: Optional[str] = None is_primary: Optional[bool] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Document: document_i_d: Optional[str] = None document_type: Optional[str] = None document_source: Optional[str] = None code_on_document: Optional[str] = None document_notes: Optional[str] = None name_on_document: Optional[str] = None nationality_on_document: Optional[str] = None effective_date: Optional[datetime.datetime] = None expiration_date: Optional[datetime.datetime] = None issuer: Optional[str] = None issuer_country: Optional[str] = None is_primary: Optional[bool] = None pi_i__stored_as: Optional[str] = None inactive_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Voucher: hotel_code: Optional[str] = None voucher_i_d: Optional[str] = None voucher_i_d2: Optional[str] = None applied_to_resort: Optional[str] = None reservation_i_d: Optional[str] = None profile_i_d_recipient: Optional[str] = None subscriber_i_d_recipient: Optional[str] = None recipient_name: Optional[str] = None emailaddress: Optional[str] = None profile_i_d_purchaser: Optional[str] = None purchaser_name: Optional[str] = None voucher_status: Optional[str] = None voucher_type: Optional[str] = None membership_type: Optional[str] = None cert_code: Optional[str] = None cert_no: Optional[str] = None short_description: Optional[str] = None gift_message: Optional[str] = None comments: Optional[str] = None voucher_amount: Optional[Decimal] = None currency_code: Optional[str] = None issue_type: Optional[str] = None date_consumed: Optional[datetime.datetime] = None expiration_date: Optional[datetime.datetime] = None award_points: Optional[int] = None rule_type: Optional[str] = None rule_value: Optional[str] = None cancel_allowed: Optional[bool] = None max_extensions: Optional[int] = None reference_type: Optional[str] = None reference_i_d: Optional[str] = None promotion_code: Optional[str] = None reservation_consumed: Optional[bool] = None web_consumed: Optional[bool] = None pms_consumed: Optional[bool] = None verify_cert_no: Optional[bool] = None generate_in_lieu: Optional[bool] = None creator_code: Optional[str] = None last_updater_code: Optional[str] = None folio_i_d: Optional[str] = None inactive_date: Optional[datetime.datetime] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ProfilePolicy: policy_type: Optional[str] = None attribute_name: Optional[str] = None integer_value: Optional[int] = None string_value: Optional[str] = None effective_date: Optional[datetime.datetime] = None expiration_date: Optional[datetime.datetime] = None comments: Optional[str] = None external_i_d: Optional[str] = None applies_to: Optional[str] = None applies_to_descriptor: Optional[str] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class Profile: cendyn_property_i_d: Optional[str] = None property_name: Optional[str] = None unique_i_ds: Optional[List[UniqueIDType]] = None profile_type_code: Optional[str] = None profile_type_description: Optional[str] = None name_code: Optional[str] = None profile_type_category: Optional[str] = None job_title: Optional[str] = None salutation: Optional[str] = None first_name: Optional[str] = None familiar_name: Optional[str] = None middle_name: Optional[str] = None last_name: Optional[str] = None full_name: Optional[str] = None name_suffix: Optional[str] = None vipid: Optional[str] = None vip_code: Optional[str] = None primary_language: Optional[str] = None gender_code: Optional[str] = None dob_year: Optional[str] = None dob_month: Optional[str] = None dob_day_of_month: Optional[str] = None company_name: Optional[str] = None ar_number: Optional[str] = None allow_mail: Optional[bool] = None allow_e_mail: Optional[bool] = None guest_priv: Optional[bool] = None allow_phone: Optional[bool] = None allow_s_m_s: Optional[bool] = None allow_history: Optional[bool] = None allow_market_research: Optional[bool] = None allow_third_party: Optional[bool] = None allow_loyalty_program: Optional[bool] = None creator_code: Optional[str] = None last_updater_code: Optional[str] = None date_profile_created: Optional[datetime.datetime] = None date_profile_updated: Optional[datetime.datetime] = None inactive_date: Optional[datetime.datetime] = None nationality: Optional[str] = None resort_code: Optional[str] = None retired_profile_id: Optional[str] = None transferred_subscription_id: Optional[str] = None source_name: Optional[str] = None source_i_d: Optional[str] = None opt_out_marketing: Optional[bool] = None opt_out_date: Optional[datetime.datetime] = None profile_extension: Optional[ProfileExtension] = None addresses: Optional[List[Address]] = None memberships: Optional[List[Membership]] = None contact_methods: Optional[List[ContactMethod]] = None action_comments: Optional[List[ActionComment]] = None special_requests: Optional[List[SpecialRequest]] = None udf_data_collection: Optional[List[UDFDataType]] = None lead: Optional[Lead] = None related_travelers: Optional[List[RelatedTraveler]] = None documents: Optional[List[Document]] = None vouchers: Optional[List[Voucher]] = None profile_policies: Optional[List[ProfilePolicy]] = None @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class InventoryBlock: cendyn_property_i_d: Optional[str] = None hotel_code: Optional[str] = None action_code: Optional[str] = None block_name: Optional[str] = None block_code_type: Optional[str] = None block_type: Optional[str] = None inventory_block_status: Optional[str] = None grouping_code: Optional[str] = None block_codes: Optional[str] = None description: Optional[str] = None resort_allotment_id: Optional[str] = None block_start_date: datetime.datetime = datetime.datetime(1, 1, 1) block_end_date: datetime.datetime = datetime.datetime(1, 1, 1) market_code: Optional[str] = None source_code: Optional[str] = None channel_code: Optional[str] = None cut_off_start_date: Optional[datetime.datetime] = None cut_off_end_date: Optional[datetime.datetime] = None price_viewable: Optional[bool] = None average_rate: Optional[Decimal] = None pickup_complete: Optional[bool] = None comments: Optional[str] = None lost_reason: Optional[str] = None external_i_d: Optional[str] = None source_name: Optional[str] = None source_i_d: Optional[str] = None source_date_created: Optional[datetime.datetime] = None source_create_user: Optional[str] = None source_date_updated: Optional[datetime.datetime] = None source_update_user: Optional[str] = None is_active: bool = False inactive_date: Optional[datetime.datetime] = None record_status: Optional[str] = None inventory_block_events: Optional[List[InventoryBlockEvent]] = None inventory_block_rates: Optional[List[InventoryBlockRate]] = None profiles: Optional[List[Profile]] = None class RequestStatus(str, Enum): SUCCESS = 'Success' WARNING = 'Warning' ERROR = 'Error' NOT_AUTHORIZED = 'NotAuthorized' FAILURE = 'Failure' @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class CenResResponse: status: Optional[RequestStatus] = None status_message: Optional[str] = None records_returned: int = 0 records_available: int = 0 page_number: int = 0 page_size: int = 0 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HotelInventoryBlockResponse(CenResResponse): records: Optional[List[InventoryBlock]] = None # @Route("/v2/hotelInventoryBlocks/{Query}", "GET") # @Route("/v2/hotelInventoryBlocks/{Query}/{CendynPropertyId}", "GET") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class HotelInventoryBlockRequest(IReturn[HotelInventoryBlockResponse]): cendyn_property_id: Optional[str] = None query: Optional[InventoryBlockQueryType] = None start_date: Optional[datetime.datetime] = None end_date: Optional[datetime.datetime] = None block_name: Optional[str] = None id: Optional[str] = None page_size: int = 0 page_number: int = 0