Platform API

<back to all web services

UpdateCustomerGroup

Update customer group details

Requires Authentication
The following routes are available for this service:
All Verbs/api/updatecustomergroup
import 'package:servicestack/servicestack.dart';

class StringResponse implements IConvertible
{
    String? Result;

    StringResponse({this.Result});
    StringResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Result = json['Result'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Result': Result
    };

    getTypeName() => "StringResponse";
    TypeContext? context = _ctx;
}

class ContactBanking implements IConvertible
{
    String? ContactId;
    String? BankName;
    String? BankLocation;
    String? Bsb;
    String? AccountNumber;
    String? AccountName;
    String? TermOfTradeId;
    String? TermOfTradeName;
    String? OwnerContactId;
    String? RecordStatus;

    ContactBanking({this.ContactId,this.BankName,this.BankLocation,this.Bsb,this.AccountNumber,this.AccountName,this.TermOfTradeId,this.TermOfTradeName,this.OwnerContactId,this.RecordStatus});
    ContactBanking.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactId = json['ContactId'];
        BankName = json['BankName'];
        BankLocation = json['BankLocation'];
        Bsb = json['Bsb'];
        AccountNumber = json['AccountNumber'];
        AccountName = json['AccountName'];
        TermOfTradeId = json['TermOfTradeId'];
        TermOfTradeName = json['TermOfTradeName'];
        OwnerContactId = json['OwnerContactId'];
        RecordStatus = json['RecordStatus'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactId': ContactId,
        'BankName': BankName,
        'BankLocation': BankLocation,
        'Bsb': Bsb,
        'AccountNumber': AccountNumber,
        'AccountName': AccountName,
        'TermOfTradeId': TermOfTradeId,
        'TermOfTradeName': TermOfTradeName,
        'OwnerContactId': OwnerContactId,
        'RecordStatus': RecordStatus
    };

    getTypeName() => "ContactBanking";
    TypeContext? context = _ctx;
}

class UserRole implements IConvertible
{
    String? ConnectionId;
    String? ContactRoleId;
    String? ContactId;
    String? RoleId;
    String? RoleName;
    DateTime? StartDate;
    DateTime? EndDate;
    bool? IsLicenseeRole;
    bool? IsCustomerRole;
    bool? IsPlatformRole;
    bool? IsAdministerContactsRole;
    String? RolePrimaryImageURL;
    String? RolePrimaryImageThumbnailURL;
    String? RolePrimaryImageId;
    String? ConnectionStatusId;
    String? ConnectionStatusName;

    UserRole({this.ConnectionId,this.ContactRoleId,this.ContactId,this.RoleId,this.RoleName,this.StartDate,this.EndDate,this.IsLicenseeRole,this.IsCustomerRole,this.IsPlatformRole,this.IsAdministerContactsRole,this.RolePrimaryImageURL,this.RolePrimaryImageThumbnailURL,this.RolePrimaryImageId,this.ConnectionStatusId,this.ConnectionStatusName});
    UserRole.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ConnectionId = json['ConnectionId'];
        ContactRoleId = json['ContactRoleId'];
        ContactId = json['ContactId'];
        RoleId = json['RoleId'];
        RoleName = json['RoleName'];
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        IsLicenseeRole = json['IsLicenseeRole'];
        IsCustomerRole = json['IsCustomerRole'];
        IsPlatformRole = json['IsPlatformRole'];
        IsAdministerContactsRole = json['IsAdministerContactsRole'];
        RolePrimaryImageURL = json['RolePrimaryImageURL'];
        RolePrimaryImageThumbnailURL = json['RolePrimaryImageThumbnailURL'];
        RolePrimaryImageId = json['RolePrimaryImageId'];
        ConnectionStatusId = json['ConnectionStatusId'];
        ConnectionStatusName = json['ConnectionStatusName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ConnectionId': ConnectionId,
        'ContactRoleId': ContactRoleId,
        'ContactId': ContactId,
        'RoleId': RoleId,
        'RoleName': RoleName,
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'IsLicenseeRole': IsLicenseeRole,
        'IsCustomerRole': IsCustomerRole,
        'IsPlatformRole': IsPlatformRole,
        'IsAdministerContactsRole': IsAdministerContactsRole,
        'RolePrimaryImageURL': RolePrimaryImageURL,
        'RolePrimaryImageThumbnailURL': RolePrimaryImageThumbnailURL,
        'RolePrimaryImageId': RolePrimaryImageId,
        'ConnectionStatusId': ConnectionStatusId,
        'ConnectionStatusName': ConnectionStatusName
    };

    getTypeName() => "UserRole";
    TypeContext? context = _ctx;
}

class GeoEstateStage implements IConvertible
{
    String? GeoEstateStageId;
    String? GeoEstateId;
    String? Name;
    String? Notes;
    String? RecordStatus;

    GeoEstateStage({this.GeoEstateStageId,this.GeoEstateId,this.Name,this.Notes,this.RecordStatus});
    GeoEstateStage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GeoEstateStageId = json['GeoEstateStageId'];
        GeoEstateId = json['GeoEstateId'];
        Name = json['Name'];
        Notes = json['Notes'];
        RecordStatus = json['RecordStatus'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GeoEstateStageId': GeoEstateStageId,
        'GeoEstateId': GeoEstateId,
        'Name': Name,
        'Notes': Notes,
        'RecordStatus': RecordStatus
    };

    getTypeName() => "GeoEstateStage";
    TypeContext? context = _ctx;
}

class GeoEstate implements IConvertible
{
    String? GeoEstateId;
    String? Name;
    String? Notes;
    String? DeveloperContactId;
    String? DeveloperName;
    String? DeveloperProfilePhotoUrl;
    String? DeveloperProfilePhotoThumbnail;
    String? RecordStatus;
    List<GeoEstateStage>? Stages;
    String? CurrentEstateStageId;
    String? CurrentEstateStageName;

    GeoEstate({this.GeoEstateId,this.Name,this.Notes,this.DeveloperContactId,this.DeveloperName,this.DeveloperProfilePhotoUrl,this.DeveloperProfilePhotoThumbnail,this.RecordStatus,this.Stages,this.CurrentEstateStageId,this.CurrentEstateStageName});
    GeoEstate.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GeoEstateId = json['GeoEstateId'];
        Name = json['Name'];
        Notes = json['Notes'];
        DeveloperContactId = json['DeveloperContactId'];
        DeveloperName = json['DeveloperName'];
        DeveloperProfilePhotoUrl = json['DeveloperProfilePhotoUrl'];
        DeveloperProfilePhotoThumbnail = json['DeveloperProfilePhotoThumbnail'];
        RecordStatus = json['RecordStatus'];
        Stages = JsonConverters.fromJson(json['Stages'],'List<GeoEstateStage>',context!);
        CurrentEstateStageId = json['CurrentEstateStageId'];
        CurrentEstateStageName = json['CurrentEstateStageName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GeoEstateId': GeoEstateId,
        'Name': Name,
        'Notes': Notes,
        'DeveloperContactId': DeveloperContactId,
        'DeveloperName': DeveloperName,
        'DeveloperProfilePhotoUrl': DeveloperProfilePhotoUrl,
        'DeveloperProfilePhotoThumbnail': DeveloperProfilePhotoThumbnail,
        'RecordStatus': RecordStatus,
        'Stages': JsonConverters.toJson(Stages,'List<GeoEstateStage>',context!),
        'CurrentEstateStageId': CurrentEstateStageId,
        'CurrentEstateStageName': CurrentEstateStageName
    };

    getTypeName() => "GeoEstate";
    TypeContext? context = _ctx;
}

class GeoLocation implements IConvertible
{
    String? GeoLocationId;
    String? StateId;
    String? StateName;
    String? StateNameShort;
    String? SuburbId;
    String? SuburbName;
    String? CountryId;
    String? CountryName;
    String? Timezone;
    String? TimezoneName;
    String? LotNumber;
    String? SubUnit;
    String? BuildingNumber;
    String? PostalDeliveryNumber;
    String? StreetNumber;
    String? StreetName;
    String? AddressLineOne;
    String? AddressLineTwo;
    String? PostCode;
    bool? IsPhysical;
    String? Notes;
    String? AddressFull;
    String? AddressFormatId;
    String? PostalDeliveryTypeId;
    double? Latitude;
    double? Longitude;
    int? Accuracy;
    double? DistanceAway;
    bool? AutoMapCoordinates;
    bool? IsAddressCleared;
    bool? IsValidated;
    GeoEstate? Estate;
    String? GeoEstateId;
    String? GeoEstateStageId;
    String? GeoEstateStageName;

    GeoLocation({this.GeoLocationId,this.StateId,this.StateName,this.StateNameShort,this.SuburbId,this.SuburbName,this.CountryId,this.CountryName,this.Timezone,this.TimezoneName,this.LotNumber,this.SubUnit,this.BuildingNumber,this.PostalDeliveryNumber,this.StreetNumber,this.StreetName,this.AddressLineOne,this.AddressLineTwo,this.PostCode,this.IsPhysical,this.Notes,this.AddressFull,this.AddressFormatId,this.PostalDeliveryTypeId,this.Latitude,this.Longitude,this.Accuracy,this.DistanceAway,this.AutoMapCoordinates,this.IsAddressCleared,this.IsValidated,this.Estate,this.GeoEstateId,this.GeoEstateStageId,this.GeoEstateStageName});
    GeoLocation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        GeoLocationId = json['GeoLocationId'];
        StateId = json['StateId'];
        StateName = json['StateName'];
        StateNameShort = json['StateNameShort'];
        SuburbId = json['SuburbId'];
        SuburbName = json['SuburbName'];
        CountryId = json['CountryId'];
        CountryName = json['CountryName'];
        Timezone = json['Timezone'];
        TimezoneName = json['TimezoneName'];
        LotNumber = json['LotNumber'];
        SubUnit = json['SubUnit'];
        BuildingNumber = json['BuildingNumber'];
        PostalDeliveryNumber = json['PostalDeliveryNumber'];
        StreetNumber = json['StreetNumber'];
        StreetName = json['StreetName'];
        AddressLineOne = json['AddressLineOne'];
        AddressLineTwo = json['AddressLineTwo'];
        PostCode = json['PostCode'];
        IsPhysical = json['IsPhysical'];
        Notes = json['Notes'];
        AddressFull = json['AddressFull'];
        AddressFormatId = json['AddressFormatId'];
        PostalDeliveryTypeId = json['PostalDeliveryTypeId'];
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        Accuracy = json['Accuracy'];
        DistanceAway = JsonConverters.toDouble(json['DistanceAway']);
        AutoMapCoordinates = json['AutoMapCoordinates'];
        IsAddressCleared = json['IsAddressCleared'];
        IsValidated = json['IsValidated'];
        Estate = JsonConverters.fromJson(json['Estate'],'GeoEstate',context!);
        GeoEstateId = json['GeoEstateId'];
        GeoEstateStageId = json['GeoEstateStageId'];
        GeoEstateStageName = json['GeoEstateStageName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'GeoLocationId': GeoLocationId,
        'StateId': StateId,
        'StateName': StateName,
        'StateNameShort': StateNameShort,
        'SuburbId': SuburbId,
        'SuburbName': SuburbName,
        'CountryId': CountryId,
        'CountryName': CountryName,
        'Timezone': Timezone,
        'TimezoneName': TimezoneName,
        'LotNumber': LotNumber,
        'SubUnit': SubUnit,
        'BuildingNumber': BuildingNumber,
        'PostalDeliveryNumber': PostalDeliveryNumber,
        'StreetNumber': StreetNumber,
        'StreetName': StreetName,
        'AddressLineOne': AddressLineOne,
        'AddressLineTwo': AddressLineTwo,
        'PostCode': PostCode,
        'IsPhysical': IsPhysical,
        'Notes': Notes,
        'AddressFull': AddressFull,
        'AddressFormatId': AddressFormatId,
        'PostalDeliveryTypeId': PostalDeliveryTypeId,
        'Latitude': Latitude,
        'Longitude': Longitude,
        'Accuracy': Accuracy,
        'DistanceAway': DistanceAway,
        'AutoMapCoordinates': AutoMapCoordinates,
        'IsAddressCleared': IsAddressCleared,
        'IsValidated': IsValidated,
        'Estate': JsonConverters.toJson(Estate,'GeoEstate',context!),
        'GeoEstateId': GeoEstateId,
        'GeoEstateStageId': GeoEstateStageId,
        'GeoEstateStageName': GeoEstateStageName
    };

    getTypeName() => "GeoLocation";
    TypeContext? context = _ctx;
}

class ContactAddress implements IConvertible
{
    GeoLocation? Location;
    bool? IsPostal;
    bool? IsPrimaryLocation;
    bool? IsRegisteredLocation;
    String? ContactAddressId;
    String? SuburbName;
    String? StateName;
    String? CountryName;
    String? AddressFull;

    ContactAddress({this.Location,this.IsPostal,this.IsPrimaryLocation,this.IsRegisteredLocation,this.ContactAddressId,this.SuburbName,this.StateName,this.CountryName,this.AddressFull});
    ContactAddress.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Location = JsonConverters.fromJson(json['Location'],'GeoLocation',context!);
        IsPostal = json['IsPostal'];
        IsPrimaryLocation = json['IsPrimaryLocation'];
        IsRegisteredLocation = json['IsRegisteredLocation'];
        ContactAddressId = json['ContactAddressId'];
        SuburbName = json['SuburbName'];
        StateName = json['StateName'];
        CountryName = json['CountryName'];
        AddressFull = json['AddressFull'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Location': JsonConverters.toJson(Location,'GeoLocation',context!),
        'IsPostal': IsPostal,
        'IsPrimaryLocation': IsPrimaryLocation,
        'IsRegisteredLocation': IsRegisteredLocation,
        'ContactAddressId': ContactAddressId,
        'SuburbName': SuburbName,
        'StateName': StateName,
        'CountryName': CountryName,
        'AddressFull': AddressFull
    };

    getTypeName() => "ContactAddress";
    TypeContext? context = _ctx;
}

class ContactPhone implements IConvertible
{
    String? CountryCode;
    String? AreaCode;
    String? LocalNumber;
    String? PhoneNumber;

    ContactPhone({this.CountryCode,this.AreaCode,this.LocalNumber,this.PhoneNumber});
    ContactPhone.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CountryCode = json['CountryCode'];
        AreaCode = json['AreaCode'];
        LocalNumber = json['LocalNumber'];
        PhoneNumber = json['PhoneNumber'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CountryCode': CountryCode,
        'AreaCode': AreaCode,
        'LocalNumber': LocalNumber,
        'PhoneNumber': PhoneNumber
    };

    getTypeName() => "ContactPhone";
    TypeContext? context = _ctx;
}

class ContactDetail implements IConvertible
{
    String? ContactContactDetailId;
    String? ContactId;
    String? ContactDetailId;
    String? ContactMethodId;
    String? ContactMethodName;
    ContactAddress? Address;
    ContactPhone? Phone;
    String? CountryId;
    String? ContactDetails;
    String? Notes;
    String? ContactDetailsCode;
    int? OrderContactMethod;
    bool? IsPrimaryContactMethod;
    bool? IsPrimaryLocation;
    bool? IsRegisteredLocation;
    bool? IsPostal;
    bool? IsAddress;
    bool? IsPhone;
    String? EmailSignatureId;
    String? EmailSignatureHTML;
    String? EmailSignatureText;
    String? ApiKey;
    String? FrameworkAlternateKey;

    ContactDetail({this.ContactContactDetailId,this.ContactId,this.ContactDetailId,this.ContactMethodId,this.ContactMethodName,this.Address,this.Phone,this.CountryId,this.ContactDetails,this.Notes,this.ContactDetailsCode,this.OrderContactMethod,this.IsPrimaryContactMethod,this.IsPrimaryLocation,this.IsRegisteredLocation,this.IsPostal,this.IsAddress,this.IsPhone,this.EmailSignatureId,this.EmailSignatureHTML,this.EmailSignatureText,this.ApiKey,this.FrameworkAlternateKey});
    ContactDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactContactDetailId = json['ContactContactDetailId'];
        ContactId = json['ContactId'];
        ContactDetailId = json['ContactDetailId'];
        ContactMethodId = json['ContactMethodId'];
        ContactMethodName = json['ContactMethodName'];
        Address = JsonConverters.fromJson(json['Address'],'ContactAddress',context!);
        Phone = JsonConverters.fromJson(json['Phone'],'ContactPhone',context!);
        CountryId = json['CountryId'];
        ContactDetails = json['ContactDetails'];
        Notes = json['Notes'];
        ContactDetailsCode = json['ContactDetailsCode'];
        OrderContactMethod = json['OrderContactMethod'];
        IsPrimaryContactMethod = json['IsPrimaryContactMethod'];
        IsPrimaryLocation = json['IsPrimaryLocation'];
        IsRegisteredLocation = json['IsRegisteredLocation'];
        IsPostal = json['IsPostal'];
        IsAddress = json['IsAddress'];
        IsPhone = json['IsPhone'];
        EmailSignatureId = json['EmailSignatureId'];
        EmailSignatureHTML = json['EmailSignatureHTML'];
        EmailSignatureText = json['EmailSignatureText'];
        ApiKey = json['ApiKey'];
        FrameworkAlternateKey = json['FrameworkAlternateKey'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactContactDetailId': ContactContactDetailId,
        'ContactId': ContactId,
        'ContactDetailId': ContactDetailId,
        'ContactMethodId': ContactMethodId,
        'ContactMethodName': ContactMethodName,
        'Address': JsonConverters.toJson(Address,'ContactAddress',context!),
        'Phone': JsonConverters.toJson(Phone,'ContactPhone',context!),
        'CountryId': CountryId,
        'ContactDetails': ContactDetails,
        'Notes': Notes,
        'ContactDetailsCode': ContactDetailsCode,
        'OrderContactMethod': OrderContactMethod,
        'IsPrimaryContactMethod': IsPrimaryContactMethod,
        'IsPrimaryLocation': IsPrimaryLocation,
        'IsRegisteredLocation': IsRegisteredLocation,
        'IsPostal': IsPostal,
        'IsAddress': IsAddress,
        'IsPhone': IsPhone,
        'EmailSignatureId': EmailSignatureId,
        'EmailSignatureHTML': EmailSignatureHTML,
        'EmailSignatureText': EmailSignatureText,
        'ApiKey': ApiKey,
        'FrameworkAlternateKey': FrameworkAlternateKey
    };

    getTypeName() => "ContactDetail";
    TypeContext? context = _ctx;
}

class CustomContentFieldValue implements IConvertible
{
    String? FieldName;
    String? FieldDataTypeId;
    String? FieldValue;
    String? AlternateKey;

    CustomContentFieldValue({this.FieldName,this.FieldDataTypeId,this.FieldValue,this.AlternateKey});
    CustomContentFieldValue.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        FieldName = json['FieldName'];
        FieldDataTypeId = json['FieldDataTypeId'];
        FieldValue = json['FieldValue'];
        AlternateKey = json['AlternateKey'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'FieldName': FieldName,
        'FieldDataTypeId': FieldDataTypeId,
        'FieldValue': FieldValue,
        'AlternateKey': AlternateKey
    };

    getTypeName() => "CustomContentFieldValue";
    TypeContext? context = _ctx;
}

class Contact implements IConvertible
{
    String? ContactId;
    String? PrimaryStreetAddressId;
    String? PrimaryPostalAddressId;
    String? PrimaryTaxRegisteredAddressId;
    String? PrimaryNonMobileId;
    String? PrimaryMobileId;
    String? PrimaryEmailId;
    String? Mobile;
    String? Phone;
    String? PrimaryEmail;
    String? PrimaryAddress;
    String? PrimaryFaxId;
    String? PrimaryWebId;
    String? PrimarySocialMediaId;
    String? FirstName;
    String? MiddleName;
    String? Surname;
    String? FullName;
    String? ShortName;
    DateTime? BirthDate;
    String? Title;
    String? Salutation;
    String? MaritalStatus;
    String? MaritalStatusName;
    String? Gender;
    String? GenderName;
    String? Abn;
    String? Acn;
    String? Arbn;
    ContactBanking? ContactBankingDetails;
    String? LegalName;
    String? TradingName;
    String? ContactType;
    String? ContactTypeName;
    String? ContactTypePhotoUrl;
    String? ContactTypePhotoThumbnailUrl;
    String? Timezone;
    String? TimezoneName;
    String? Description;
    String? EmploymentIndustry;
    String? EmploymentRole;
    String? EmploymentGeographicArea;
    bool? GstRegistered;
    String? DriversLicence;
    String? ContactGroupIdStaff;
    String? StaffGroupName;
    String? ContactGroupIdVendor;
    String? VendorGroupName;
    String? ContactGroupIdCustomer;
    String? CustomerGroupName;
    String? PrimaryMediaFileId;
    String? ProfilePhotoUrl;
    String? ProfilePhotoThumbnailUrl;
    String? ProfileImageId;
    String? RecordStatus;
    String? ConnectionStatusId;
    String? SubscriptionAlternateKey;
    List<UserRole>? ContactRoles;
    List<ContactDetail>? ContactDetails;
    List<CustomContentFieldValue>? CustomContent;
    List<Contact>? ConnectedContacts;
    String? CustomContentXML;
    String? ContactDetailsXML;
    String? ConnectionContactId;
    String? ConnectionContactName;
    String? UserProfileIdDefault;
    String? UserId;
    String? Username;
    bool? IsRegistered;
    bool? ESL;
    String? Language;
    bool? InterpreterRequired;
    String? LicenseeNotes;
    String? Notes;
    String? ObjectSubscriptionId;
    String? ObjectHash;
    String? OwnerContactId;

    Contact({this.ContactId,this.PrimaryStreetAddressId,this.PrimaryPostalAddressId,this.PrimaryTaxRegisteredAddressId,this.PrimaryNonMobileId,this.PrimaryMobileId,this.PrimaryEmailId,this.Mobile,this.Phone,this.PrimaryEmail,this.PrimaryAddress,this.PrimaryFaxId,this.PrimaryWebId,this.PrimarySocialMediaId,this.FirstName,this.MiddleName,this.Surname,this.FullName,this.ShortName,this.BirthDate,this.Title,this.Salutation,this.MaritalStatus,this.MaritalStatusName,this.Gender,this.GenderName,this.Abn,this.Acn,this.Arbn,this.ContactBankingDetails,this.LegalName,this.TradingName,this.ContactType,this.ContactTypeName,this.ContactTypePhotoUrl,this.ContactTypePhotoThumbnailUrl,this.Timezone,this.TimezoneName,this.Description,this.EmploymentIndustry,this.EmploymentRole,this.EmploymentGeographicArea,this.GstRegistered,this.DriversLicence,this.ContactGroupIdStaff,this.StaffGroupName,this.ContactGroupIdVendor,this.VendorGroupName,this.ContactGroupIdCustomer,this.CustomerGroupName,this.PrimaryMediaFileId,this.ProfilePhotoUrl,this.ProfilePhotoThumbnailUrl,this.ProfileImageId,this.RecordStatus,this.ConnectionStatusId,this.SubscriptionAlternateKey,this.ContactRoles,this.ContactDetails,this.CustomContent,this.ConnectedContacts,this.CustomContentXML,this.ContactDetailsXML,this.ConnectionContactId,this.ConnectionContactName,this.UserProfileIdDefault,this.UserId,this.Username,this.IsRegistered,this.ESL,this.Language,this.InterpreterRequired,this.LicenseeNotes,this.Notes,this.ObjectSubscriptionId,this.ObjectHash,this.OwnerContactId});
    Contact.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ContactId = json['ContactId'];
        PrimaryStreetAddressId = json['PrimaryStreetAddressId'];
        PrimaryPostalAddressId = json['PrimaryPostalAddressId'];
        PrimaryTaxRegisteredAddressId = json['PrimaryTaxRegisteredAddressId'];
        PrimaryNonMobileId = json['PrimaryNonMobileId'];
        PrimaryMobileId = json['PrimaryMobileId'];
        PrimaryEmailId = json['PrimaryEmailId'];
        Mobile = json['Mobile'];
        Phone = json['Phone'];
        PrimaryEmail = json['PrimaryEmail'];
        PrimaryAddress = json['PrimaryAddress'];
        PrimaryFaxId = json['PrimaryFaxId'];
        PrimaryWebId = json['PrimaryWebId'];
        PrimarySocialMediaId = json['PrimarySocialMediaId'];
        FirstName = json['FirstName'];
        MiddleName = json['MiddleName'];
        Surname = json['Surname'];
        FullName = json['FullName'];
        ShortName = json['ShortName'];
        BirthDate = JsonConverters.fromJson(json['BirthDate'],'DateTime',context!);
        Title = json['Title'];
        Salutation = json['Salutation'];
        MaritalStatus = json['MaritalStatus'];
        MaritalStatusName = json['MaritalStatusName'];
        Gender = json['Gender'];
        GenderName = json['GenderName'];
        Abn = json['Abn'];
        Acn = json['Acn'];
        Arbn = json['Arbn'];
        ContactBankingDetails = JsonConverters.fromJson(json['ContactBankingDetails'],'ContactBanking',context!);
        LegalName = json['LegalName'];
        TradingName = json['TradingName'];
        ContactType = json['ContactType'];
        ContactTypeName = json['ContactTypeName'];
        ContactTypePhotoUrl = json['ContactTypePhotoUrl'];
        ContactTypePhotoThumbnailUrl = json['ContactTypePhotoThumbnailUrl'];
        Timezone = json['Timezone'];
        TimezoneName = json['TimezoneName'];
        Description = json['Description'];
        EmploymentIndustry = json['EmploymentIndustry'];
        EmploymentRole = json['EmploymentRole'];
        EmploymentGeographicArea = json['EmploymentGeographicArea'];
        GstRegistered = json['GstRegistered'];
        DriversLicence = json['DriversLicence'];
        ContactGroupIdStaff = json['ContactGroupIdStaff'];
        StaffGroupName = json['StaffGroupName'];
        ContactGroupIdVendor = json['ContactGroupIdVendor'];
        VendorGroupName = json['VendorGroupName'];
        ContactGroupIdCustomer = json['ContactGroupIdCustomer'];
        CustomerGroupName = json['CustomerGroupName'];
        PrimaryMediaFileId = json['PrimaryMediaFileId'];
        ProfilePhotoUrl = json['ProfilePhotoUrl'];
        ProfilePhotoThumbnailUrl = json['ProfilePhotoThumbnailUrl'];
        ProfileImageId = json['ProfileImageId'];
        RecordStatus = json['RecordStatus'];
        ConnectionStatusId = json['ConnectionStatusId'];
        SubscriptionAlternateKey = json['SubscriptionAlternateKey'];
        ContactRoles = JsonConverters.fromJson(json['ContactRoles'],'List<UserRole>',context!);
        ContactDetails = JsonConverters.fromJson(json['ContactDetails'],'List<ContactDetail>',context!);
        CustomContent = JsonConverters.fromJson(json['CustomContent'],'List<CustomContentFieldValue>',context!);
        ConnectedContacts = JsonConverters.fromJson(json['ConnectedContacts'],'List<Contact>',context!);
        CustomContentXML = json['CustomContentXML'];
        ContactDetailsXML = json['ContactDetailsXML'];
        ConnectionContactId = json['ConnectionContactId'];
        ConnectionContactName = json['ConnectionContactName'];
        UserProfileIdDefault = json['UserProfileIdDefault'];
        UserId = json['UserId'];
        Username = json['Username'];
        IsRegistered = json['IsRegistered'];
        ESL = json['ESL'];
        Language = json['Language'];
        InterpreterRequired = json['InterpreterRequired'];
        LicenseeNotes = json['LicenseeNotes'];
        Notes = json['Notes'];
        ObjectSubscriptionId = json['ObjectSubscriptionId'];
        ObjectHash = json['ObjectHash'];
        OwnerContactId = json['OwnerContactId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ContactId': ContactId,
        'PrimaryStreetAddressId': PrimaryStreetAddressId,
        'PrimaryPostalAddressId': PrimaryPostalAddressId,
        'PrimaryTaxRegisteredAddressId': PrimaryTaxRegisteredAddressId,
        'PrimaryNonMobileId': PrimaryNonMobileId,
        'PrimaryMobileId': PrimaryMobileId,
        'PrimaryEmailId': PrimaryEmailId,
        'Mobile': Mobile,
        'Phone': Phone,
        'PrimaryEmail': PrimaryEmail,
        'PrimaryAddress': PrimaryAddress,
        'PrimaryFaxId': PrimaryFaxId,
        'PrimaryWebId': PrimaryWebId,
        'PrimarySocialMediaId': PrimarySocialMediaId,
        'FirstName': FirstName,
        'MiddleName': MiddleName,
        'Surname': Surname,
        'FullName': FullName,
        'ShortName': ShortName,
        'BirthDate': JsonConverters.toJson(BirthDate,'DateTime',context!),
        'Title': Title,
        'Salutation': Salutation,
        'MaritalStatus': MaritalStatus,
        'MaritalStatusName': MaritalStatusName,
        'Gender': Gender,
        'GenderName': GenderName,
        'Abn': Abn,
        'Acn': Acn,
        'Arbn': Arbn,
        'ContactBankingDetails': JsonConverters.toJson(ContactBankingDetails,'ContactBanking',context!),
        'LegalName': LegalName,
        'TradingName': TradingName,
        'ContactType': ContactType,
        'ContactTypeName': ContactTypeName,
        'ContactTypePhotoUrl': ContactTypePhotoUrl,
        'ContactTypePhotoThumbnailUrl': ContactTypePhotoThumbnailUrl,
        'Timezone': Timezone,
        'TimezoneName': TimezoneName,
        'Description': Description,
        'EmploymentIndustry': EmploymentIndustry,
        'EmploymentRole': EmploymentRole,
        'EmploymentGeographicArea': EmploymentGeographicArea,
        'GstRegistered': GstRegistered,
        'DriversLicence': DriversLicence,
        'ContactGroupIdStaff': ContactGroupIdStaff,
        'StaffGroupName': StaffGroupName,
        'ContactGroupIdVendor': ContactGroupIdVendor,
        'VendorGroupName': VendorGroupName,
        'ContactGroupIdCustomer': ContactGroupIdCustomer,
        'CustomerGroupName': CustomerGroupName,
        'PrimaryMediaFileId': PrimaryMediaFileId,
        'ProfilePhotoUrl': ProfilePhotoUrl,
        'ProfilePhotoThumbnailUrl': ProfilePhotoThumbnailUrl,
        'ProfileImageId': ProfileImageId,
        'RecordStatus': RecordStatus,
        'ConnectionStatusId': ConnectionStatusId,
        'SubscriptionAlternateKey': SubscriptionAlternateKey,
        'ContactRoles': JsonConverters.toJson(ContactRoles,'List<UserRole>',context!),
        'ContactDetails': JsonConverters.toJson(ContactDetails,'List<ContactDetail>',context!),
        'CustomContent': JsonConverters.toJson(CustomContent,'List<CustomContentFieldValue>',context!),
        'ConnectedContacts': JsonConverters.toJson(ConnectedContacts,'List<Contact>',context!),
        'CustomContentXML': CustomContentXML,
        'ContactDetailsXML': ContactDetailsXML,
        'ConnectionContactId': ConnectionContactId,
        'ConnectionContactName': ConnectionContactName,
        'UserProfileIdDefault': UserProfileIdDefault,
        'UserId': UserId,
        'Username': Username,
        'IsRegistered': IsRegistered,
        'ESL': ESL,
        'Language': Language,
        'InterpreterRequired': InterpreterRequired,
        'LicenseeNotes': LicenseeNotes,
        'Notes': Notes,
        'ObjectSubscriptionId': ObjectSubscriptionId,
        'ObjectHash': ObjectHash,
        'OwnerContactId': OwnerContactId
    };

    getTypeName() => "Contact";
    TypeContext? context = _ctx;
}

/**
* Update customer group details
*/
// @Api(Description="Update customer group details")
class UpdateCustomerGroup implements IConvertible
{
    String? CustomerGroupId;
    bool? AutoGenerateName;
    String? CustomerName;
    List<Contact>? Contacts;

    UpdateCustomerGroup({this.CustomerGroupId,this.AutoGenerateName,this.CustomerName,this.Contacts});
    UpdateCustomerGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        CustomerGroupId = json['CustomerGroupId'];
        AutoGenerateName = json['AutoGenerateName'];
        CustomerName = json['CustomerName'];
        Contacts = JsonConverters.fromJson(json['Contacts'],'List<Contact>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'CustomerGroupId': CustomerGroupId,
        'AutoGenerateName': AutoGenerateName,
        'CustomerName': CustomerName,
        'Contacts': JsonConverters.toJson(Contacts,'List<Contact>',context!)
    };

    getTypeName() => "UpdateCustomerGroup";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'pfapi.pstpf.com.au', types: <String, TypeInfo> {
    'ContactBanking': TypeInfo(TypeOf.Class, create:() => ContactBanking()),
    'UserRole': TypeInfo(TypeOf.Class, create:() => UserRole()),
    'GeoEstateStage': TypeInfo(TypeOf.Class, create:() => GeoEstateStage()),
    'GeoEstate': TypeInfo(TypeOf.Class, create:() => GeoEstate()),
    'List<GeoEstateStage>': TypeInfo(TypeOf.Class, create:() => <GeoEstateStage>[]),
    'GeoLocation': TypeInfo(TypeOf.Class, create:() => GeoLocation()),
    'ContactAddress': TypeInfo(TypeOf.Class, create:() => ContactAddress()),
    'ContactPhone': TypeInfo(TypeOf.Class, create:() => ContactPhone()),
    'ContactDetail': TypeInfo(TypeOf.Class, create:() => ContactDetail()),
    'CustomContentFieldValue': TypeInfo(TypeOf.Class, create:() => CustomContentFieldValue()),
    'Contact': TypeInfo(TypeOf.Class, create:() => Contact()),
    'List<UserRole>': TypeInfo(TypeOf.Class, create:() => <UserRole>[]),
    'List<ContactDetail>': TypeInfo(TypeOf.Class, create:() => <ContactDetail>[]),
    'List<CustomContentFieldValue>': TypeInfo(TypeOf.Class, create:() => <CustomContentFieldValue>[]),
    'List<Contact>': TypeInfo(TypeOf.Class, create:() => <Contact>[]),
    'UpdateCustomerGroup': TypeInfo(TypeOf.Class, create:() => UpdateCustomerGroup()),
});

Dart UpdateCustomerGroup DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

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

POST /api/updatecustomergroup HTTP/1.1 
Host: pfapi.pstpf.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	AutoGenerateName: False,
	CustomerName: String,
	Contacts: 
	[
		{
			PrimaryStreetAddressId: 00000000000000000000000000000000,
			PrimaryPostalAddressId: 00000000000000000000000000000000,
			PrimaryTaxRegisteredAddressId: 00000000000000000000000000000000,
			PrimaryNonMobileId: 00000000000000000000000000000000,
			PrimaryMobileId: 00000000000000000000000000000000,
			PrimaryEmailId: 00000000000000000000000000000000,
			Mobile: String,
			Phone: String,
			PrimaryEmail: String,
			PrimaryAddress: String,
			PrimaryFaxId: 00000000000000000000000000000000,
			PrimaryWebId: 00000000000000000000000000000000,
			PrimarySocialMediaId: 00000000000000000000000000000000,
			FirstName: String,
			MiddleName: String,
			Surname: String,
			FullName: String,
			ShortName: String,
			BirthDate: 0001-01-01,
			Title: String,
			Salutation: String,
			MaritalStatus: 00000000000000000000000000000000,
			MaritalStatusName: String,
			Gender: 00000000000000000000000000000000,
			GenderName: String,
			Abn: String,
			Acn: String,
			Arbn: String,
			ContactBankingDetails: 
			{
				BankName: String,
				BankLocation: String,
				Bsb: String,
				AccountNumber: String,
				AccountName: String,
				TermOfTradeId: 00000000000000000000000000000000,
				TermOfTradeName: String,
				RecordStatus: String
			},
			LegalName: String,
			TradingName: String,
			ContactType: 00000000000000000000000000000000,
			ContactTypeName: String,
			ContactTypePhotoUrl: String,
			ContactTypePhotoThumbnailUrl: String,
			Timezone: 00000000000000000000000000000000,
			TimezoneName: String,
			Description: String,
			EmploymentIndustry: String,
			EmploymentRole: String,
			EmploymentGeographicArea: String,
			GstRegistered: False,
			DriversLicence: String,
			ContactGroupIdStaff: 00000000000000000000000000000000,
			StaffGroupName: String,
			ContactGroupIdVendor: 00000000000000000000000000000000,
			VendorGroupName: String,
			ContactGroupIdCustomer: 00000000000000000000000000000000,
			CustomerGroupName: String,
			PrimaryMediaFileId: 00000000000000000000000000000000,
			ProfilePhotoUrl: String,
			ProfilePhotoThumbnailUrl: String,
			RecordStatus: String,
			SubscriptionAlternateKey: String,
			ContactRoles: 
			[
				{
					RoleName: String,
					StartDate: 0001-01-01,
					EndDate: 0001-01-01,
					IsLicenseeRole: False,
					IsCustomerRole: False,
					IsPlatformRole: False,
					IsAdministerContactsRole: False,
					RolePrimaryImageURL: String,
					RolePrimaryImageThumbnailURL: String,
					ConnectionStatusName: String
				}
			],
			ContactDetails: 
			[
				{
					ContactMethodName: String,
					Address: 
					{
						Location: 
						{
							StateId: 00000000000000000000000000000000,
							StateName: String,
							StateNameShort: String,
							SuburbId: 00000000000000000000000000000000,
							SuburbName: String,
							CountryId: 00000000000000000000000000000000,
							CountryName: String,
							Timezone: 00000000000000000000000000000000,
							TimezoneName: String,
							LotNumber: String,
							SubUnit: String,
							BuildingNumber: String,
							PostalDeliveryNumber: String,
							StreetNumber: String,
							StreetName: String,
							AddressLineOne: String,
							AddressLineTwo: String,
							PostCode: String,
							IsPhysical: False,
							Notes: String,
							AddressFull: String,
							PostalDeliveryTypeId: 00000000000000000000000000000000,
							Latitude: 0,
							Longitude: 0,
							Accuracy: 0,
							DistanceAway: 0,
							AutoMapCoordinates: False,
							IsAddressCleared: False,
							IsValidated: False,
							Estate: 
							{
								Name: String,
								Notes: String,
								DeveloperName: String,
								DeveloperProfilePhotoUrl: String,
								DeveloperProfilePhotoThumbnail: String,
								RecordStatus: String,
								Stages: 
								[
									{
										Name: String,
										Notes: String,
										RecordStatus: String
									}
								],
								CurrentEstateStageName: String
							},
							GeoEstateStageName: String
						},
						IsPostal: False,
						IsPrimaryLocation: False,
						IsRegisteredLocation: False,
						SuburbName: String,
						StateName: String,
						CountryName: String,
						AddressFull: "String
String
String
String String
String"
					},
					Phone: 
					{
						CountryCode: String,
						AreaCode: String,
						LocalNumber: String,
						PhoneNumber: String String String
					},
					CountryId: 00000000000000000000000000000000,
					ContactDetails: String,
					Notes: String,
					ContactDetailsCode: String,
					OrderContactMethod: 0,
					IsPrimaryContactMethod: False,
					IsPrimaryLocation: False,
					IsRegisteredLocation: False,
					IsPostal: False,
					IsAddress: True,
					IsPhone: False,
					EmailSignatureHTML: String,
					EmailSignatureText: String,
					ApiKey: String,
					FrameworkAlternateKey: String
				}
			],
			CustomContent: 
			[
				{
					FieldName: String,
					FieldValue: String,
					AlternateKey: String
				}
			],
			ConnectedContacts: 
			[
				{
					PrimaryStreetAddressId: 00000000000000000000000000000000,
					PrimaryPostalAddressId: 00000000000000000000000000000000,
					PrimaryTaxRegisteredAddressId: 00000000000000000000000000000000,
					PrimaryNonMobileId: 00000000000000000000000000000000,
					PrimaryMobileId: 00000000000000000000000000000000,
					PrimaryEmailId: 00000000000000000000000000000000,
					Mobile: String,
					Phone: String,
					PrimaryEmail: String,
					PrimaryAddress: String,
					PrimaryFaxId: 00000000000000000000000000000000,
					PrimaryWebId: 00000000000000000000000000000000,
					PrimarySocialMediaId: 00000000000000000000000000000000,
					FirstName: String,
					MiddleName: String,
					Surname: String,
					FullName: String,
					ShortName: String,
					BirthDate: 0001-01-01,
					Title: String,
					Salutation: String,
					MaritalStatus: 00000000000000000000000000000000,
					MaritalStatusName: String,
					Gender: 00000000000000000000000000000000,
					GenderName: String,
					Abn: String,
					Acn: String,
					Arbn: String,
					ContactBankingDetails: 
					{
						BankName: String,
						BankLocation: String,
						Bsb: String,
						AccountNumber: String,
						AccountName: String,
						TermOfTradeId: 00000000000000000000000000000000,
						TermOfTradeName: String,
						RecordStatus: String
					},
					LegalName: String,
					TradingName: String,
					ContactType: 00000000000000000000000000000000,
					ContactTypeName: String,
					ContactTypePhotoUrl: String,
					ContactTypePhotoThumbnailUrl: String,
					Timezone: 00000000000000000000000000000000,
					TimezoneName: String,
					Description: String,
					EmploymentIndustry: String,
					EmploymentRole: String,
					EmploymentGeographicArea: String,
					GstRegistered: False,
					DriversLicence: String,
					ContactGroupIdStaff: 00000000000000000000000000000000,
					StaffGroupName: String,
					ContactGroupIdVendor: 00000000000000000000000000000000,
					VendorGroupName: String,
					ContactGroupIdCustomer: 00000000000000000000000000000000,
					CustomerGroupName: String,
					PrimaryMediaFileId: 00000000000000000000000000000000,
					ProfilePhotoUrl: String,
					ProfilePhotoThumbnailUrl: String,
					RecordStatus: String,
					SubscriptionAlternateKey: String,
					ContactRoles: 
					[
						{
							RoleName: String,
							StartDate: 0001-01-01,
							EndDate: 0001-01-01,
							IsLicenseeRole: False,
							IsCustomerRole: False,
							IsPlatformRole: False,
							IsAdministerContactsRole: False,
							RolePrimaryImageURL: String,
							RolePrimaryImageThumbnailURL: String,
							ConnectionStatusName: String
						}
					],
					ContactDetails: 
					[
						{
							ContactMethodName: String,
							Address: 
							{
								Location: 
								{
									StateId: 00000000000000000000000000000000,
									StateName: String,
									StateNameShort: String,
									SuburbId: 00000000000000000000000000000000,
									SuburbName: String,
									CountryId: 00000000000000000000000000000000,
									CountryName: String,
									Timezone: 00000000000000000000000000000000,
									TimezoneName: String,
									LotNumber: String,
									SubUnit: String,
									BuildingNumber: String,
									PostalDeliveryNumber: String,
									StreetNumber: String,
									StreetName: String,
									AddressLineOne: String,
									AddressLineTwo: String,
									PostCode: String,
									IsPhysical: False,
									Notes: String,
									AddressFull: String,
									PostalDeliveryTypeId: 00000000000000000000000000000000,
									Latitude: 0,
									Longitude: 0,
									Accuracy: 0,
									DistanceAway: 0,
									AutoMapCoordinates: False,
									IsAddressCleared: False,
									IsValidated: False,
									Estate: 
									{
										Name: String,
										Notes: String,
										DeveloperName: String,
										DeveloperProfilePhotoUrl: String,
										DeveloperProfilePhotoThumbnail: String,
										RecordStatus: String,
										Stages: 
										[
											{
												Name: String,
												Notes: String,
												RecordStatus: String
											}
										],
										CurrentEstateStageName: String
									},
									GeoEstateStageName: String
								},
								IsPostal: False,
								IsPrimaryLocation: False,
								IsRegisteredLocation: False,
								SuburbName: String,
								StateName: String,
								CountryName: String,
								AddressFull: "String
String
String
String String
String"
							},
							Phone: 
							{
								CountryCode: String,
								AreaCode: String,
								LocalNumber: String,
								PhoneNumber: String String String
							},
							CountryId: 00000000000000000000000000000000,
							ContactDetails: String,
							Notes: String,
							ContactDetailsCode: String,
							OrderContactMethod: 0,
							IsPrimaryContactMethod: False,
							IsPrimaryLocation: False,
							IsRegisteredLocation: False,
							IsPostal: False,
							IsAddress: True,
							IsPhone: False,
							EmailSignatureHTML: String,
							EmailSignatureText: String,
							ApiKey: String,
							FrameworkAlternateKey: String
						}
					],
					CustomContent: 
					[
						{
							FieldName: String,
							FieldValue: String,
							AlternateKey: String
						}
					],
					ConnectedContacts: 
					[
						{
							PrimaryStreetAddressId: 00000000000000000000000000000000,
							PrimaryPostalAddressId: 00000000000000000000000000000000,
							PrimaryTaxRegisteredAddressId: 00000000000000000000000000000000,
							PrimaryNonMobileId: 00000000000000000000000000000000,
							PrimaryMobileId: 00000000000000000000000000000000,
							PrimaryEmailId: 00000000000000000000000000000000,
							Mobile: String,
							Phone: String,
							PrimaryEmail: String,
							PrimaryAddress: String,
							PrimaryFaxId: 00000000000000000000000000000000,
							PrimaryWebId: 00000000000000000000000000000000,
							PrimarySocialMediaId: 00000000000000000000000000000000,
							FirstName: String,
							MiddleName: String,
							Surname: String,
							FullName: String,
							ShortName: String,
							BirthDate: 0001-01-01,
							Title: String,
							Salutation: String,
							MaritalStatus: 00000000000000000000000000000000,
							MaritalStatusName: String,
							Gender: 00000000000000000000000000000000,
							GenderName: String,
							Abn: String,
							Acn: String,
							Arbn: String,
							ContactBankingDetails: 
							{
								BankName: String,
								BankLocation: String,
								Bsb: String,
								AccountNumber: String,
								AccountName: String,
								TermOfTradeId: 00000000000000000000000000000000,
								TermOfTradeName: String,
								RecordStatus: String
							},
							LegalName: String,
							TradingName: String,
							ContactType: 00000000000000000000000000000000,
							ContactTypeName: String,
							ContactTypePhotoUrl: String,
							ContactTypePhotoThumbnailUrl: String,
							Timezone: 00000000000000000000000000000000,
							TimezoneName: String,
							Description: String,
							EmploymentIndustry: String,
							EmploymentRole: String,
							EmploymentGeographicArea: String,
							GstRegistered: False,
							DriversLicence: String,
							ContactGroupIdStaff: 00000000000000000000000000000000,
							StaffGroupName: String,
							ContactGroupIdVendor: 00000000000000000000000000000000,
							VendorGroupName: String,
							ContactGroupIdCustomer: 00000000000000000000000000000000,
							CustomerGroupName: String,
							PrimaryMediaFileId: 00000000000000000000000000000000,
							ProfilePhotoUrl: String,
							ProfilePhotoThumbnailUrl: String,
							RecordStatus: String,
							SubscriptionAlternateKey: String,
							ContactRoles: 
							[
								{
									RoleName: String,
									StartDate: 0001-01-01,
									EndDate: 0001-01-01,
									IsLicenseeRole: False,
									IsCustomerRole: False,
									IsPlatformRole: False,
									IsAdministerContactsRole: False,
									RolePrimaryImageURL: String,
									RolePrimaryImageThumbnailURL: String,
									ConnectionStatusName: String
								}
							],
							ContactDetails: 
							[
								{
									ContactMethodName: String,
									Address: 
									{
										Location: 
										{
											StateId: 00000000000000000000000000000000,
											StateName: String,
											StateNameShort: String,
											SuburbId: 00000000000000000000000000000000,
											SuburbName: String,
											CountryId: 00000000000000000000000000000000,
											CountryName: String,
											Timezone: 00000000000000000000000000000000,
											TimezoneName: String,
											LotNumber: String,
											SubUnit: String,
											BuildingNumber: String,
											PostalDeliveryNumber: String,
											StreetNumber: String,
											StreetName: String,
											AddressLineOne: String,
											AddressLineTwo: String,
											PostCode: String,
											IsPhysical: False,
											Notes: String,
											AddressFull: String,
											PostalDeliveryTypeId: 00000000000000000000000000000000,
											Latitude: 0,
											Longitude: 0,
											Accuracy: 0,
											DistanceAway: 0,
											AutoMapCoordinates: False,
											IsAddressCleared: False,
											IsValidated: False,
											Estate: 
											{
												Name: String,
												Notes: String,
												DeveloperName: String,
												DeveloperProfilePhotoUrl: String,
												DeveloperProfilePhotoThumbnail: String,
												RecordStatus: String,
												Stages: 
												[
													{
														Name: String,
														Notes: String,
														RecordStatus: String
													}
												],
												CurrentEstateStageName: String
											},
											GeoEstateStageName: String
										},
										IsPostal: False,
										IsPrimaryLocation: False,
										IsRegisteredLocation: False,
										SuburbName: String,
										StateName: String,
										CountryName: String,
										AddressFull: "String
String
String
String String
String"
									},
									Phone: 
									{
										CountryCode: String,
										AreaCode: String,
										LocalNumber: String,
										PhoneNumber: String String String
									},
									CountryId: 00000000000000000000000000000000,
									ContactDetails: String,
									Notes: String,
									ContactDetailsCode: String,
									OrderContactMethod: 0,
									IsPrimaryContactMethod: False,
									IsPrimaryLocation: False,
									IsRegisteredLocation: False,
									IsPostal: False,
									IsAddress: True,
									IsPhone: False,
									EmailSignatureHTML: String,
									EmailSignatureText: String,
									ApiKey: String,
									FrameworkAlternateKey: String
								}
							],
							CustomContent: 
							[
								{
									FieldName: String,
									FieldValue: String,
									AlternateKey: String
								}
							],
							CustomContentXML: String,
							ContactDetailsXML: String,
							ConnectionContactName: String,
							UserProfileIdDefault: 00000000000000000000000000000000,
							Username: String,
							IsRegistered: False,
							ESL: False,
							Language: String,
							InterpreterRequired: False,
							LicenseeNotes: String,
							Notes: String,
							ObjectHash: String
						}
					],
					CustomContentXML: String,
					ContactDetailsXML: String,
					ConnectionContactName: String,
					UserProfileIdDefault: 00000000000000000000000000000000,
					Username: String,
					IsRegistered: False,
					ESL: False,
					Language: String,
					InterpreterRequired: False,
					LicenseeNotes: String,
					Notes: String,
					ObjectHash: String
				}
			],
			CustomContentXML: String,
			ContactDetailsXML: String,
			ConnectionContactName: String,
			UserProfileIdDefault: 00000000000000000000000000000000,
			Username: String,
			IsRegistered: False,
			ESL: False,
			Language: String,
			InterpreterRequired: False,
			LicenseeNotes: String,
			Notes: String,
			ObjectHash: String
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Result: String
}