/* Options: Date: 2026-06-23 00:05:47 Version: 8.80 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.dev.dynamics.trendsic.com //GlobalNamespace: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: CustomerLinkListRequest.* //ExcludeTypes: //DefaultImports: package:servicestack/servicestack.dart */ import 'package:servicestack/servicestack.dart'; class CustomerLink implements IConvertible { int? CustomerLinkId; String? CustomerLinkUID; String? TokenHash; String? ResourceType; String? ResourceUid; String? SensitivityTier; bool? RequireOtp; String? OtpChannel; String? DeliveryChannels; int? RecipientContactId; String? RecipientEmail; String? RecipientPhone; bool? SmsConsentSnapshot; String? CreatedByUserId; int? CreatedByAgentId; DateTime? CreatedAtUtc; DateTime? ExpiresAtUtc; int? MaxViews; int? ViewCount; DateTime? RevokedAtUtc; String? RevokedByUserId; String? TenantId; CustomerLink({this.CustomerLinkId,this.CustomerLinkUID,this.TokenHash,this.ResourceType,this.ResourceUid,this.SensitivityTier,this.RequireOtp,this.OtpChannel,this.DeliveryChannels,this.RecipientContactId,this.RecipientEmail,this.RecipientPhone,this.SmsConsentSnapshot,this.CreatedByUserId,this.CreatedByAgentId,this.CreatedAtUtc,this.ExpiresAtUtc,this.MaxViews,this.ViewCount,this.RevokedAtUtc,this.RevokedByUserId,this.TenantId}); CustomerLink.fromJson(Map json) { fromMap(json); } fromMap(Map json) { CustomerLinkId = json['CustomerLinkId']; CustomerLinkUID = json['CustomerLinkUID']; TokenHash = json['TokenHash']; ResourceType = json['ResourceType']; ResourceUid = json['ResourceUid']; SensitivityTier = json['SensitivityTier']; RequireOtp = json['RequireOtp']; OtpChannel = json['OtpChannel']; DeliveryChannels = json['DeliveryChannels']; RecipientContactId = json['RecipientContactId']; RecipientEmail = json['RecipientEmail']; RecipientPhone = json['RecipientPhone']; SmsConsentSnapshot = json['SmsConsentSnapshot']; CreatedByUserId = json['CreatedByUserId']; CreatedByAgentId = json['CreatedByAgentId']; CreatedAtUtc = JsonConverters.fromJson(json['CreatedAtUtc'],'DateTime',context!); ExpiresAtUtc = JsonConverters.fromJson(json['ExpiresAtUtc'],'DateTime',context!); MaxViews = json['MaxViews']; ViewCount = json['ViewCount']; RevokedAtUtc = JsonConverters.fromJson(json['RevokedAtUtc'],'DateTime',context!); RevokedByUserId = json['RevokedByUserId']; TenantId = json['TenantId']; return this; } Map toJson() => { 'CustomerLinkId': CustomerLinkId, 'CustomerLinkUID': CustomerLinkUID, 'TokenHash': TokenHash, 'ResourceType': ResourceType, 'ResourceUid': ResourceUid, 'SensitivityTier': SensitivityTier, 'RequireOtp': RequireOtp, 'OtpChannel': OtpChannel, 'DeliveryChannels': DeliveryChannels, 'RecipientContactId': RecipientContactId, 'RecipientEmail': RecipientEmail, 'RecipientPhone': RecipientPhone, 'SmsConsentSnapshot': SmsConsentSnapshot, 'CreatedByUserId': CreatedByUserId, 'CreatedByAgentId': CreatedByAgentId, 'CreatedAtUtc': JsonConverters.toJson(CreatedAtUtc,'DateTime',context!), 'ExpiresAtUtc': JsonConverters.toJson(ExpiresAtUtc,'DateTime',context!), 'MaxViews': MaxViews, 'ViewCount': ViewCount, 'RevokedAtUtc': JsonConverters.toJson(RevokedAtUtc,'DateTime',context!), 'RevokedByUserId': RevokedByUserId, 'TenantId': TenantId }; getTypeName() => "CustomerLink"; TypeContext? context = _ctx; } class CustomerLinkExtended extends CustomerLink implements IConvertible { String? RecipientDisplayName; String? RecipientType; String? Status; CustomerLinkExtended({this.RecipientDisplayName,this.RecipientType,this.Status}); CustomerLinkExtended.fromJson(Map json) { fromMap(json); } fromMap(Map json) { super.fromMap(json); RecipientDisplayName = json['RecipientDisplayName']; RecipientType = json['RecipientType']; Status = json['Status']; return this; } Map toJson() => super.toJson()..addAll({ 'RecipientDisplayName': RecipientDisplayName, 'RecipientType': RecipientType, 'Status': Status }); getTypeName() => "CustomerLinkExtended"; TypeContext? context = _ctx; } class CustomerLinkListResponse implements IConvertible { ResponseStatus? ResponseStatus; List? Links = []; CustomerLinkListResponse({this.ResponseStatus,this.Links}); CustomerLinkListResponse.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!); Links = JsonConverters.fromJson(json['Links'],'List',context!); return this; } Map toJson() => { 'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!), 'Links': JsonConverters.toJson(Links,'List',context!) }; getTypeName() => "CustomerLinkListResponse"; TypeContext? context = _ctx; } // @Route("/v1/customerlink/resource/{ResourceType}/{ResourceUid}", "GET,OPTIONS") class CustomerLinkListRequest implements IReturn, IConvertible, IGet { String? ResourceType; String? ResourceUid; CustomerLinkListRequest({this.ResourceType,this.ResourceUid}); CustomerLinkListRequest.fromJson(Map json) { fromMap(json); } fromMap(Map json) { ResourceType = json['ResourceType']; ResourceUid = json['ResourceUid']; return this; } Map toJson() => { 'ResourceType': ResourceType, 'ResourceUid': ResourceUid }; createResponse() => CustomerLinkListResponse(); getResponseTypeName() => "CustomerLinkListResponse"; getTypeName() => "CustomerLinkListRequest"; TypeContext? context = _ctx; } TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: { 'CustomerLink': TypeInfo(TypeOf.Class, create:() => CustomerLink()), 'CustomerLinkExtended': TypeInfo(TypeOf.Class, create:() => CustomerLinkExtended()), 'CustomerLinkListResponse': TypeInfo(TypeOf.Class, create:() => CustomerLinkListResponse()), 'List': TypeInfo(TypeOf.Class, create:() => []), 'CustomerLinkListRequest': TypeInfo(TypeOf.Class, create:() => CustomerLinkListRequest()), });