""" Options: Date: 2026-04-04 02:55:22 Version: 8.52 Tip: To override a DTO option, remove "#" prefix before updating BaseUrl: https://pfapi.pstpf.com.au/api #GlobalNamespace: #AddServiceStackTypes: True #AddResponseStatus: False #AddImplicitVersion: #AddDescriptionAsComments: True IncludeTypes: SearchContact.* #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 UserProfileSummaryModel: # @ApiMember(DataType="Guid", Description="User Profile Id", Name="UserProfileId") user_profile_id: Optional[str] = None """ User Profile Id """ # @ApiMember(DataType="Guid", Description="User linked to the profile", Name="UserId") user_id: Optional[str] = None """ User linked to the profile """ # @ApiMember(DataType="Guid", Description="Contact linked to the profile", Name="ContactId") contact_id: Optional[str] = None """ Contact linked to the profile """ # @ApiMember(DataType="string", Description="User linked to the profile", Name="UserName") user_name: Optional[str] = None """ User linked to the profile """ # @ApiMember(DataType="string", Description="User Profile Name", Name="ProfileName") profile_name: Optional[str] = None """ User Profile Name """ # @ApiMember(DataType="string", Description="Full name of the contact linked to the profile", Name="ContactFullName") contact_full_name: Optional[str] = None """ Full name of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Email Address of the contact linked to the profile", Name="EmailAddress") email_address: Optional[str] = None """ Email Address of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Email signature of the contact linked to the profile", Name="EmailSignature") email_signature: Optional[str] = None """ Email signature of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Mobile number of the contact linked to the profile", Name="MobileNumber") mobile_number: Optional[str] = None """ Mobile number of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Phone number of the contact linked to the profile", Name="PhoneNumber") phone_number: Optional[str] = None """ Phone number of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeId") contact_type_id: Optional[str] = None """ Type of contact (person, organisation etc.) linked to the profile """ # @ApiMember(DataType="string", Description="Type of contact (person, organisation etc.) linked to the profile", Name="ContactTypeName") contact_type_name: Optional[str] = None """ Type of contact (person, organisation etc.) linked to the profile """ # @ApiMember(DataType="string", Description="First name of the contact linked to the profile", Name="FirstName") first_name: Optional[str] = None """ First name of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Surname of the contact linked to the profile", Name="Surname") surname: Optional[str] = None """ Surname of the contact linked to the profile """ # @ApiMember(DataType="string", Description="Title of contact linked to the profile", Name="Title") title: Optional[str] = None """ Title of contact linked to the profile """ # @ApiMember(DataType="string", Description="Legal name of contact linked to the profile", Name="LegalName") legal_name: Optional[str] = None """ Legal name of contact linked to the profile """ # @ApiMember(DataType="string", Description="Trading name of contact linked to the profile", Name="TradingName") trading_name: Optional[str] = None """ Trading name of contact linked to the profile """ # @ApiMember(DataType="string", Description="Australian Business Number", Name="Abn", ParameterType="query") abn: Optional[str] = None """ Australian Business Number """ # @ApiMember(DataType="string", Description="Australian Company Number", Name="Acn", ParameterType="query") acn: Optional[str] = None """ Australian Company Number """ # @ApiMember(DataType="string", Description="Australian Registered Body Number", Name="Arbn", ParameterType="query") arbn: Optional[str] = None """ Australian Registered Body Number """ # @ApiMember(DataType="bool", Description="Indicates if the Contact is registered for GST.", Name="GstRegistered", ParameterType="query") gst_registered: bool = False """ Indicates if the Contact is registered for GST. """ # @ApiMember(DataType="bool", Description="True if english is a secondary language for the contact.", Name="ESL", ParameterType="query") esl: bool = False """ True if english is a secondary language for the contact. """ # @ApiMember(DataType="string", Description="Language that is the primary language for the contact.", Name="Language", ParameterType="query") language: Optional[str] = None """ Language that is the primary language for the contact. """ # @ApiMember(DataType="bool", Description="True if an interpreter is required.", Name="InterpreterRequired", ParameterType="query") interpreter_required: bool = False """ True if an interpreter is required. """ # @ApiMember(DataType="string", Description="Licensee specific notes about the contact.", Name="LicenseeNotes", ParameterType="query") licensee_notes: Optional[str] = None """ Licensee specific notes about the contact. """ # @ApiMember(DataType="string", Description="Profile photo of contact linked to the profile", Name="ProfilePhotoUrl") profile_photo_url: Optional[str] = None """ Profile photo of contact linked to the profile """ # @ApiMember(DataType="string", Description="Thumbnail photo of contact linked to the profile", Name="ProfilePhotoThumbnailUrl") profile_photo_thumbnail_url: Optional[str] = None """ Thumbnail photo of contact linked to the profile """ # @ApiMember(DataType="Guid", Description="Profile photo id of contact linked to the profile", Name="ProfileImageId") profile_image_id: Optional[str] = None """ Profile photo id of contact linked to the profile """ # @ApiMember(DataType="string", Description="Profile description", Name="Description") description: Optional[str] = None """ Profile description """ # @ApiMember(DataType="string", Description="Employment Industry", Name="EmploymentIndustry") employment_industry: Optional[str] = None """ Employment Industry """ # @ApiMember(DataType="string", Description="Employment Role", Name="EmploymentRole") employment_role: Optional[str] = None """ Employment Role """ # @ApiMember(DataType="string", Description="Areas of Work", Name="EmploymentGeographicArea") employment_geographic_area: Optional[str] = None """ Areas of Work """ # @ApiMember(DataType="Guid", Description="The contacts timezone.", Name="Timezone", ParameterType="query") timezone: Optional[str] = None """ The contacts timezone. """ # @ApiMember(DataType="string", Description="Timezone Name", Name="TimezoneName", ParameterType="query") timezone_name: Optional[str] = None """ Timezone Name """ # @ApiMember(DataType="string", Description="The primary address of the contact", Name="PrimaryAddress", ParameterType="query") primary_address: Optional[str] = None """ The primary address of the contact """ # @ApiMember(DataType="bool", Description="Is this an active contact? Or an inactive contact (deleted account)?", Name="IsActiveContact") is_active_contact: bool = False """ Is this an active contact? Or an inactive contact (deleted account)? """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactDetailModel: # @ApiMember(DataType="Guid", Description="Id of the Contact Method", Name="ContactMethodId", ParameterType="body") contact_method_id: Optional[str] = None """ Id of the Contact Method """ # @ApiMember(DataType="string", Description="Contact Method Name", Name="ContactMethodName", ParameterType="body") contact_method_name: Optional[str] = None """ Contact Method Name """ # @ApiMember(DataType="ContactAddressModel", Description="If the contact method is an address, this will contain the address details.", Name="ContactAddress", ParameterType="body") contact_address: Optional[ContactAddressModel] = None """ If the contact method is an address, this will contain the address details. """ # @ApiMember(DataType="PhoneModel", Description="If the contact method is a phone, this will contain the phone details", Name="ContactPhone", ParameterType="body") contact_phone: Optional[PhoneModel] = None """ If the contact method is a phone, this will contain the phone details """ # @ApiMember(DataType="Guid?", Description="Id of the country", Name="CountryId", ParameterType="body") country_id: Optional[str] = None """ Id of the country """ # @ApiMember(DataType="string", Description="A summary string representing the contact details", Name="ContactDetails", ParameterType="body") contact_details: Optional[str] = None """ A summary string representing the contact details """ # @ApiMember(DataType="string", Description="Notes about the contact details", Name="Notes", ParameterType="body") notes: Optional[str] = None """ Notes about the contact details """ # @ApiMember(DataType="string", Description="Area Code if contact details are a phone number", Name="ContactDetailsCode", ParameterType="body") contact_details_code: Optional[str] = None """ Area Code if contact details are a phone number """ # @ApiMember(DataType="int", Description="Order number of the contact method", Name="OrderContactMethod", ParameterType="body") order_contact_method: int = 0 """ Order number of the contact method """ # @ApiMember(DataType="bool", Description="True if this is the primary contact method", Name="IsPrimaryContactMethod", ParameterType="body") is_primary_contact_method: bool = False """ True if this is the primary contact method """ # @ApiMember(DataType="bool", Description="True if this contact method is an address", Name="IsAddress", ParameterType="body") is_address: bool = False """ True if this contact method is an address """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class ContactDetailModel: # @ApiMember(DataType="Guid", Description="Contact Method Id", Name="ContactMethodId", ParameterType="query") contact_method_id: Optional[str] = None """ Contact Method Id """ # @ApiMember(DataType="string", Description="Contact Method Name", Name="ContactMethodName", ParameterType="query") contact_method_name: Optional[str] = None """ Contact Method Name """ # @ApiMember(DataType="ContactAddressModel", Description="Contact Address Details", Name="ContactAddress", ParameterType="query") contact_address: Optional[ContactAddressModel] = None """ Contact Address Details """ # @ApiMember(DataType="PhoneModel", Description="Contact Phone Details", Name="ContactPhone", ParameterType="query") contact_phone: Optional[PhoneModel] = None """ Contact Phone Details """ # @ApiMember(DataType="Guid", Description="Country id", Name="CountryId", ParameterType="query") country_id: Optional[str] = None """ Country id """ # @ApiMember(DataType="string", Description="Contact Details", Name="ContactDetails", ParameterType="query") contact_details: Optional[str] = None """ Contact Details """ # @ApiMember(DataType="string", Description="Notes", Name="Notes", ParameterType="query") notes: Optional[str] = None """ Notes """ # @ApiMember(DataType="string", Description="Contact Details Code", Name="ContactDetailsCode", ParameterType="query") contact_details_code: Optional[str] = None """ Contact Details Code """ # @ApiMember(DataType="int", Description="Order of Contact Method Id", Name="OrderContactMethod", ParameterType="query") order_contact_method: int = 0 """ Order of Contact Method Id """ # @ApiMember(DataType="bool", Description="Contact Method Id", Name="IsPrimaryContactMethod", ParameterType="query") is_primary_contact_method: bool = False """ Contact Method Id """ # @ApiMember(DataType="bool", Description="Is contact details an address", Name="IsAddress", ParameterType="query") is_address: bool = False """ Is contact details an address """ # @ApiMember(DataType="Guid", Description="Contact Contact Detail Id", Name="ContactContactDetailId", ParameterType="query") contact_contact_detail_id: Optional[str] = None """ Contact Contact Detail Id """ # @ApiMember(DataType="Guid", Description="Contact Id", Name="ContactId", ParameterType="query") contact_id: Optional[str] = None """ Contact Id """ # @ApiMember(DataType="Guid", Description="Contact Details Id", Name="ContactDetailId", ParameterType="query") contact_detail_id: Optional[str] = None """ Contact Details Id """ # @ApiMember(DataType="bool", Description="Is contact details a primary location", Name="IsPrimaryLocation", ParameterType="query") is_primary_location: bool = False """ Is contact details a primary location """ # @ApiMember(DataType="bool", Description="Is contact details a registered location", Name="IsRegisteredLocation", ParameterType="query") is_registered_location: bool = False """ Is contact details a registered location """ # @ApiMember(DataType="bool", Description="Is contact details a postal address", Name="IsPostal", ParameterType="query") is_postal: bool = False """ Is contact details a postal address """ # @ApiMember(DataType="bool", Description="Is contact details a phone number", Name="IsPhone", ParameterType="query") is_phone: bool = False """ Is contact details a phone number """ # @ApiMember(DataType="Guid", Description="Email Signature Id", Name="EmailSignatureId", ParameterType="query") email_signature_id: Optional[str] = None """ Email Signature Id """ # @ApiMember(DataType="string", Description="Email Signature HTML", Name="EmailSignatureHTML", ParameterType="query") email_signature_h_t_m_l: Optional[str] = None """ Email Signature HTML """ # @ApiMember(DataType="string", Description="Email Signature Text", Name="EmailSignatureText", ParameterType="query") email_signature_text: Optional[str] = None """ Email Signature Text """ # @ApiMember(DataType="string", Description="API Key from Framework", Name="ApiFrameworkAlternateKey", ParameterType="query") api_framework_alternate_key: Optional[str] = None """ API Key from Framework """ @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class UserProfileModel(UserProfileSummaryModel): # @ApiMember(DataType="DateTime?", Description="Contact Date of Birth (when person type)", Name="BirthDate", ParameterType="query") birth_date: Optional[datetime.datetime] = None """ Contact Date of Birth (when person type) """ # @ApiMember(DataType="string", Description="Contact marital status (when person type)", Name="MaritalStatusName", ParameterType="query") marital_status_name: Optional[str] = None """ Contact marital status (when person type) """ # @ApiMember(DataType="string", Description="Contact gender (when person type)", Name="GenderName", ParameterType="query") gender_name: Optional[str] = None """ Contact gender (when person type) """ # @ApiMember(DataType="Guid", Description="The Gender Guid of the contact.", Name="GenderId", ParameterType="query") gender_id: Optional[str] = None """ The Gender Guid of the contact. """ # @ApiMember(DataType="List", Description="All contact details of the contact", Name="ContactDetails", ParameterType="query") contact_details: Optional[List[ContactDetailModel]] = None """ All contact details of the contact """ # @ApiMember(DataType="ContactDetail", Description="Primary Street Address", Name="PrimaryStreetAddress ") primary_street_address: Optional[ContactDetailModel] = None """ Primary Street Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Postal Address", Name="PrimaryPostalAddress ") primary_postal_address: Optional[ContactDetailModel] = None """ Primary Postal Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Registered Address", Name="PrimaryRegisteredAddress ") primary_registered_address: Optional[ContactDetailModel] = None """ Primary Registered Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Email Address", Name="PrimaryEmail ") primary_email: Optional[ContactDetailModel] = None """ Primary Email Address """ # @ApiMember(DataType="ContactDetail", Description="Primary Mobile Number", Name="PrimaryMobile") primary_mobile: Optional[ContactDetailModel] = None """ Primary Mobile Number """ # @ApiMember(DataType="ContactDetail", Description="Primary Non-Mobile Number", Name="PrimaryPhone") primary_phone: Optional[ContactDetailModel] = None """ Primary Non-Mobile Number """ # @ApiMember(DataType="ContactDetail", Description="Primary Fax Number", Name="PrimaryFax") primary_fax: Optional[ContactDetailModel] = None """ Primary Fax Number """ # @ApiMember(DataType="ContactDetail", Description="Primary Web Address", Name="PrimaryWeb") primary_web: Optional[ContactDetailModel] = None """ Primary Web Address """ # @ApiMember(DataType="ContactDetail", Description="Social Media Twitter", Name="SocialMediaTwitter") social_media_twitter: Optional[ContactDetailModel] = None """ Social Media Twitter """ # @ApiMember(DataType="ContactDetail", Description="Social Media Facebook", Name="SocialMediaFacebook") social_media_facebook: Optional[ContactDetailModel] = None """ Social Media Facebook """ # @ApiMember(DataType="ContactDetail", Description="Social Media Instagram", Name="SocialMediaInstagram") social_media_instagram: Optional[ContactDetailModel] = None """ Social Media Instagram """ # @ApiMember(DataType="bool", Description="Have all connections to the contact been removed?", Name="IsRemovedContact") is_removed_contact: bool = False """ Have all connections to the contact been removed? """ # @ApiMember(DataType="bool", Description="True if this is the users default profile.", Name="IsDefault", ParameterType="query") is_default: bool = False """ True if this is the users default profile. """ # @ApiMember(DataType="bool", Description="True if the users email on this profile can be edited.", Name="IsEmailEditable", ParameterType="query") is_email_editable: bool = False """ True if the users email on this profile can be edited. """ # @ApiMember(DataType="string", Description="Primary image Content sent as a file stream contents (if not attached to the request)", Name="PrimaryImageContent") primary_image_content: Optional[str] = None """ Primary image Content sent as a file stream contents (if not attached to the request) """ # @ApiMember(DataType="string", Description="Primary image Content type sent as a file stream contents (if not attached to the request)", Name="PrimaryImageContentType") primary_image_content_type: Optional[str] = None """ Primary image Content type sent as a file stream contents (if not attached to the request) """ # @ApiMember(DataType="string", Description="Primary image file name", Name="PrimaryImageFileName") primary_image_file_name: Optional[str] = None """ Primary image file name """ # @Api(Description="Returns a list of Contact Profiles matching the search criteria provided.") @dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE) @dataclass class SearchContact(IReturn[List[UserProfileModel]]): """ Returns a list of Contact Profiles matching the search criteria provided. """ # @ApiMember(DataType="string", Description="Email Address to search for the contact on.", IsRequired=true, Name="EmailAddress", ParameterType="query") email_address: Optional[str] = None """ Email Address to search for the contact on. """