""" Options: Date: 2025-09-14 07:33:18 Version: 8.52 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://production-eros-platform-apisubscription.azurewebsites.net/api #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: GetLicenseeContactList.* #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 @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConnectedContactDetailModel: # @ApiMember(DataType="string", Description="The type of contact detail this is (email/mobile/fax/website etc)", Name="Type") type: Optional[str] = None """ The type of contact detail this is (email/mobile/fax/website etc) """ # @ApiMember(DataType="string", Description="The contact detail. e.g (phone number or email address)", Name="ContactDetails") contact_details: Optional[str] = None """ The contact detail. e.g (phone number or email address) """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConnectedContactAddressModel: # @ApiMember(DataType="string", Description="A full address string of the address.", Name="FullAddress") full_address: Optional[str] = None """ A full address string of the address. """ # @ApiMember(DataType="bool", Description="If true, this is the contacts primary address.", Name="IsPrimary") is_primary: bool = False """ If true, this is the contacts primary address. """ # @ApiMember(DataType="bool", Description="If true, this is the contacts postal address.", Name="IsPostal") is_postal: bool = False """ If true, this is the contacts postal address. """ # @ApiMember(DataType="bool", Description="If true, this is the contacts registered address.", Name="IsRegistered") is_registered: bool = False """ If true, this is the contacts registered address. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConnectedContactConnectionsModel: # @ApiMember(DataType="Guid", Description="Guid of the role within Eros", Name="RoleId") role_id: Optional[str] = None """ Guid of the role within Eros """ # @ApiMember(DataType="string", Description="Name of the role this contact is connected to the licensee with.", Name="Role") role: Optional[str] = None """ Name of the role this contact is connected to the licensee with. """ # @ApiMember(DataType="Guid", Description="Guid of the role connections status within Eros.", Name="StatusId") status_id: Optional[str] = None """ Guid of the role connections status within Eros. """ # @ApiMember(DataType="string", Description="Connection status of the role. It maybe active or pending.", Name="Status") status: Optional[str] = None """ Connection status of the role. It maybe active or pending. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactLinkedCustomerProjectsModel: # @ApiMember(DataType="Guid", Description="Guid of the project within Eros.", Name="ProjectId") project_id: Optional[str] = None """ Guid of the project within Eros. """ # @ApiMember(DataType="string", Description="Name of the project.", Name="Name") name: Optional[str] = None """ Name of the project. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConnectedContactSubscriptionsModel: # @ApiMember(DataType="Guid", Description="Guid of the datasource within Eros.", Name="DatasourceId") datasource_id: Optional[str] = None """ Guid of the datasource within Eros. """ # @ApiMember(DataType="string", Description="Name of the datasource that is the external system with a record of this contact.", Name="Datasource") datasource: Optional[str] = None """ Name of the datasource that is the external system with a record of this contact. """ # @ApiMember(DataType="string", Description="Foreign Key lookup of this contact in the external system the datasource represents.", Name="AlternateKey") alternate_key: Optional[str] = None """ Foreign Key lookup of this contact in the external system the datasource represents. """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ConnectedContactModel: # @ApiMember(DataType="Guid", Description="Guid of the contact object within Eros.", Name="ContactId") contact_id: Optional[str] = None """ Guid of the contact object within Eros. """ # @ApiMember(DataType="string", Description="The salutation(preferred name) for the contact. Applies to a person contact type.", Name="Salutation") salutation: Optional[str] = None """ The salutation(preferred name) for the contact. Applies to a person contact type. """ # @ApiMember(DataType="string", Description="The title for the contact. Applies to a person contact type.", Name="Title") title: Optional[str] = None """ The title for the contact. Applies to a person contact type. """ # @ApiMember(DataType="string", Description="The first given name for the contact. Applies to a person contact type.", Name="FirstName") first_name: Optional[str] = None """ The first given name for the contact. Applies to a person contact type. """ # @ApiMember(DataType="string", Description="Any middle names for the contact. Applies to a person contact type.", Name="MiddleName") middle_name: Optional[str] = None """ Any middle names for the contact. Applies to a person contact type. """ # @ApiMember(DataType="string", Description="The surname for the contact. Applies to a person contact type.", Name="Surname") surname: Optional[str] = None """ The surname for the contact. Applies to a person contact type. """ # @ApiMember(DataType="string", Description="The full name for the contact.", Name="FullName") full_name: Optional[str] = None """ The full name for the contact. """ # @ApiMember(DataType="string", Description="A legal name for the contact. Applies to an organisation contact type.", Name="LegalName") legal_name: Optional[str] = None """ A legal name for the contact. Applies to an organisation contact type. """ # @ApiMember(DataType="string", Description="A trading name for the contact. Applies to an organisation contact type.", Name="TradingName") trading_name: Optional[str] = None """ A trading name for the contact. Applies to an organisation contact type. """ # @ApiMember(DataType="DateTime?", Description="The birth date for the contact. Applies to a person contact type.", Name="BirthDate") birth_date: Optional[datetime.datetime] = None """ The birth date for the contact. Applies to a person contact type. """ # @ApiMember(DataType="Guid?", Description="Guid of the marital status within Eros.", Name="MaritalStatusId") marital_status_id: Optional[str] = None """ Guid of the marital status within Eros. """ # @ApiMember(DataType="string", Description="The contacts marital status if set.", Name="MaritalStatusName") marital_status_name: Optional[str] = None """ The contacts marital status if set. """ # @ApiMember(DataType="Guid?", Description="Guid of the gender within Eros.", Name="GenderId") gender_id: Optional[str] = None """ Guid of the gender within Eros. """ # @ApiMember(DataType="string", Description="The contacts gender if set.", Name="GenderName") gender_name: Optional[str] = None """ The contacts gender if set. """ # @ApiMember(DataType="string", Description="Preferred language of the contact.", Name="Language") language: Optional[str] = None """ Preferred language of the contact. """ # @ApiMember(DataType="bool", Description="If true, the contact requires an interpreter.", Name="InterpreterRequired") interpreter_required: bool = False """ If true, the contact requires an interpreter. """ # @ApiMember(DataType="string", Description="Contact Type name of the contact.", Name="ContactTypeName") contact_type_name: Optional[str] = None """ Contact Type name of the contact. """ # @ApiMember(DataType="Guid", Description="Guid of the Contact Type List Item object within Eros.", Name="ContactTypeId") contact_type_id: Optional[str] = None """ Guid of the Contact Type List Item object within Eros. """ # @ApiMember(DataType="string", Description="Description of the contact for their external profile.", Name="Description") description: Optional[str] = None """ Description of the contact for their external profile. """ # @ApiMember(DataType="string", Description="Contact 'Profession/Trade/Industry' details for their external profile.", Name="EmploymentIndustry") employment_industry: Optional[str] = None """ Contact 'Profession/Trade/Industry' details for their external profile. """ # @ApiMember(DataType="string", Description="Contact 'Working/Subcontracting for' details for their external profile.", Name="EmploymentRole") employment_role: Optional[str] = None """ Contact 'Working/Subcontracting for' details for their external profile. """ # @ApiMember(DataType="string", Description="Contact 'Work Area/Suburbs' detail for their external profile.", Name="EmploymentGeographicArea") employment_geographic_area: Optional[str] = None """ Contact 'Work Area/Suburbs' detail for their external profile. """ # @ApiMember(DataType="string", Description="The A.B.N for the contact.", Name="Abn") abn: Optional[str] = None """ The A.B.N for the contact. """ # @ApiMember(DataType="string", Description="The A.C.N for the contact.", Name="Acn") acn: Optional[str] = None """ The A.C.N for the contact. """ # @ApiMember(DataType="string", Description="The A.R.B.N for the contact.", Name="Arbn") arbn: Optional[str] = None """ The A.R.B.N for the contact. """ # @ApiMember(DataType="string", Description="Timezone name that applies to the contact.", Name="TimezoneName") timezone_name: Optional[str] = None """ Timezone name that applies to the contact. """ # @ApiMember(DataType="List", Description="A list of the contact details for the contact.", Name="ContactDetails") contact_details: Optional[List[ConnectedContactDetailModel]] = None """ A list of the contact details for the contact. """ # @ApiMember(DataType="List", Description="A list of the contact addresses for the contact", Name="ContactAddresses") contact_addresses: Optional[List[ConnectedContactAddressModel]] = None """ A list of the contact addresses for the contact """ # @ApiMember(DataType="bool", Description="True if this contact has at least 1 active connection to the licensee. Without an active connection only public profile information for the contact is returned.", Name="IsContactConnected") is_contact_connected: bool = False """ True if this contact has at least 1 active connection to the licensee. Without an active connection only public profile information for the contact is returned. """ # @ApiMember(DataType="List", Description="A list of connections this contact has with the licensee. May be active or a pending request to connect.", Name="Connections") connections: Optional[List[ConnectedContactConnectionsModel]] = None """ A list of connections this contact has with the licensee. May be active or a pending request to connect. """ # @ApiMember(DataType="List", Description="A list of projects this contact is linked to as a customer.", Name="Projects") projects: Optional[List[ContactLinkedCustomerProjectsModel]] = None """ A list of projects this contact is linked to as a customer. """ # @ApiMember(DataType="List", Description="A list of integration subscriptions used to link this contact to external records in other licensee owned systems.", Name="Subscriptions") subscriptions: Optional[List[ConnectedContactSubscriptionsModel]] = None """ A list of integration subscriptions used to link this contact to external records in other licensee owned systems. """ # @ApiResponse(Description="List of Contacts") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetLicenseeContactListResponse: # @ApiMember(DataType="List", Description="List of contacts.", Name="Contacts") contacts: Optional[List[ConnectedContactModel]] = None """ List of contacts. """ # @ApiMember(DataType="ResponseStatus", Description="Details of the api response. Success/Fail.", Name="ResponseStatus") response_status: Optional[ResponseStatus] = None """ Details of the api response. Success/Fail. """ # @Route("/licensee/contacts", "GET") # @Api(Description="Returns a list of contacts a licensee is linked to. Contacts are returned in batches.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class GetLicenseeContactList(IReturn[GetLicenseeContactListResponse]): """ Returns a list of contacts a licensee is linked to. Contacts are returned in batches. """ # @ApiMember(DataType="int", Description="Number of contacts to retrieve per call.", IsRequired=true, Name="BatchSize") batch_size: int = 0 """ Number of contacts to retrieve per call. """ # @ApiMember(DataType="int", Description="Call number (1=1st, 2=2nd) this should progress upwards until all contacts have been retrieved.", IsRequired=true, Name="BatchNumber") batch_number: int = 0 """ Call number (1=1st, 2=2nd) this should progress upwards until all contacts have been retrieved. """