{"version":3,"sources":["node_modules/@vendasta/email/fesm2020/vendasta-email.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, NgModule } from '@angular/core';\nimport { map, mapTo, shareReplay } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$6(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass DateRange {\n static fromProto(proto) {\n let m = new DateRange();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass EmailDomain {\n static fromProto(proto) {\n let m = new EmailDomain();\n m = Object.assign(m, proto);\n if (proto.mail) {\n m.mail = Record.fromProto(proto.mail);\n }\n if (proto.dkim1) {\n m.dkim1 = Record.fromProto(proto.dkim1);\n }\n if (proto.dkim2) {\n m.dkim2 = Record.fromProto(proto.dkim2);\n }\n if (proto.dmarc) {\n m.dmarc = Record.fromProto(proto.dmarc);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.mail !== 'undefined' && this.mail !== null) {\n toReturn['mail'] = 'toApiJson' in this.mail ? this.mail.toApiJson() : this.mail;\n }\n if (typeof this.dkim1 !== 'undefined' && this.dkim1 !== null) {\n toReturn['dkim1'] = 'toApiJson' in this.dkim1 ? this.dkim1.toApiJson() : this.dkim1;\n }\n if (typeof this.dkim2 !== 'undefined' && this.dkim2 !== null) {\n toReturn['dkim2'] = 'toApiJson' in this.dkim2 ? this.dkim2.toApiJson() : this.dkim2;\n }\n if (typeof this.apiKey !== 'undefined') {\n toReturn['apiKey'] = this.apiKey;\n }\n if (typeof this.subUserId !== 'undefined') {\n toReturn['subUserId'] = this.subUserId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.domainId !== 'undefined') {\n toReturn['domainId'] = this.domainId;\n }\n if (typeof this.sendAsEmail !== 'undefined') {\n toReturn['sendAsEmail'] = this.sendAsEmail;\n }\n if (typeof this.sendAsName !== 'undefined') {\n toReturn['sendAsName'] = this.sendAsName;\n }\n if (typeof this.dmarc !== 'undefined' && this.dmarc !== null) {\n toReturn['dmarc'] = 'toApiJson' in this.dmarc ? this.dmarc.toApiJson() : this.dmarc;\n }\n return toReturn;\n }\n}\nclass Record {\n static fromProto(proto) {\n let m = new Record();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.subdomain !== 'undefined') {\n toReturn['subdomain'] = this.subdomain;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.currentValue !== 'undefined') {\n toReturn['currentValue'] = this.currentValue;\n }\n if (typeof this.verified !== 'undefined') {\n toReturn['verified'] = this.verified;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EventType = /*#__PURE__*/function (EventType) {\n EventType[EventType[\"EMPTY\"] = 0] = \"EMPTY\";\n EventType[EventType[\"PROCESSED\"] = 1] = \"PROCESSED\";\n EventType[EventType[\"DELIVERED\"] = 2] = \"DELIVERED\";\n EventType[EventType[\"OPENED\"] = 3] = \"OPENED\";\n EventType[EventType[\"CLICKED\"] = 4] = \"CLICKED\";\n EventType[EventType[\"BOUNCED\"] = 5] = \"BOUNCED\";\n EventType[EventType[\"DEFERRED\"] = 6] = \"DEFERRED\";\n EventType[EventType[\"DROPPED\"] = 7] = \"DROPPED\";\n EventType[EventType[\"SPAMREPORT\"] = 8] = \"SPAMREPORT\";\n EventType[EventType[\"UNSUBSCRIBED\"] = 9] = \"UNSUBSCRIBED\";\n EventType[EventType[\"RESUBSCRIBED\"] = 10] = \"RESUBSCRIBED\";\n return EventType;\n}(EventType || {});\nvar NotificationType = /*#__PURE__*/function (NotificationType) {\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_PRODUCT_UPSELL\"] = 0] = \"NOTIFICATION_TYPE_PRODUCT_UPSELL\";\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_PRODUCT_ADOPTION\"] = 1] = \"NOTIFICATION_TYPE_PRODUCT_ADOPTION\";\n NotificationType[NotificationType[\"NOTIFICATION_TYPE_CUSTOMER_ACQUISITION\"] = 2] = \"NOTIFICATION_TYPE_CUSTOMER_ACQUISITION\";\n return NotificationType;\n}(NotificationType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ContentContentType = /*#__PURE__*/function (ContentContentType) {\n ContentContentType[ContentContentType[\"TEXT_PLAIN\"] = 0] = \"TEXT_PLAIN\";\n ContentContentType[ContentContentType[\"TEXT_HTML\"] = 1] = \"TEXT_HTML\";\n return ContentContentType;\n}(ContentContentType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar BounceSenderType = /*#__PURE__*/function (BounceSenderType) {\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_INVALID\"] = 0] = \"UNBOUNCE_SENDER_TYPE_INVALID\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_PARTNER\"] = 1] = \"UNBOUNCE_SENDER_TYPE_PARTNER\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_BUSINESS\"] = 2] = \"UNBOUNCE_SENDER_TYPE_BUSINESS\";\n BounceSenderType[BounceSenderType[\"UNBOUNCE_SENDER_TYPE_YESWARE\"] = 3] = \"UNBOUNCE_SENDER_TYPE_YESWARE\";\n return BounceSenderType;\n}(BounceSenderType || {});\nvar ChangeEmailDomainStatus = /*#__PURE__*/function (ChangeEmailDomainStatus) {\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_INVALID\"] = 0] = \"CHANGE_EMAIL_DOMAIN_STATUS_INVALID\";\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_ACCEPTED\"] = 1] = \"CHANGE_EMAIL_DOMAIN_STATUS_ACCEPTED\";\n ChangeEmailDomainStatus[ChangeEmailDomainStatus[\"CHANGE_EMAIL_DOMAIN_STATUS_PENDING\"] = 2] = \"CHANGE_EMAIL_DOMAIN_STATUS_PENDING\";\n return ChangeEmailDomainStatus;\n}(ChangeEmailDomainStatus || {});\nvar EmailQueueStatus = /*#__PURE__*/function (EmailQueueStatus) {\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_UNSPECIFIED\"] = 0] = \"EMAIL_QUEUE_STATUS_UNSPECIFIED\";\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_RUNNING\"] = 1] = \"EMAIL_QUEUE_STATUS_RUNNING\";\n EmailQueueStatus[EmailQueueStatus[\"EMAIL_QUEUE_STATUS_DISABLED\"] = 2] = \"EMAIL_QUEUE_STATUS_DISABLED\";\n return EmailQueueStatus;\n}(EmailQueueStatus || {});\nvar Namespace = /*#__PURE__*/function (Namespace) {\n Namespace[Namespace[\"NAMESPACE_INVALID\"] = 0] = \"NAMESPACE_INVALID\";\n Namespace[Namespace[\"NAMESPACE_EMAIL\"] = 1] = \"NAMESPACE_EMAIL\";\n return Namespace;\n}(Namespace || {});\nvar RecipientStatusEnum = /*#__PURE__*/function (RecipientStatusEnum) {\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_INVALID\"] = 0] = \"RECIPIENT_STATUS_INVALID\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_HARD\"] = 1] = \"RECIPIENT_STATUS_HARD\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_SOFT\"] = 2] = \"RECIPIENT_STATUS_SOFT\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_UNKNOWN\"] = 3] = \"RECIPIENT_STATUS_UNKNOWN\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_RESET\"] = 4] = \"RECIPIENT_STATUS_RESET\";\n RecipientStatusEnum[RecipientStatusEnum[\"RECIPIENT_STATUS_NOT_BLOCKED\"] = 5] = \"RECIPIENT_STATUS_NOT_BLOCKED\";\n return RecipientStatusEnum;\n}(RecipientStatusEnum || {});\nvar SenderType = /*#__PURE__*/function (SenderType) {\n SenderType[SenderType[\"SENDER_TYPE_INVALID\"] = 0] = \"SENDER_TYPE_INVALID\";\n SenderType[SenderType[\"SENDER_TYPE_PARTNER\"] = 1] = \"SENDER_TYPE_PARTNER\";\n SenderType[SenderType[\"SENDER_TYPE_BUSINESS\"] = 2] = \"SENDER_TYPE_BUSINESS\";\n return SenderType;\n}(SenderType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass EmailEvent {\n static fromProto(proto) {\n let m = new EmailEvent();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue$4(EventType, proto.eventType);\n }\n if (proto.eventTime) {\n m.eventTime = new Date(proto.eventTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventTime !== 'undefined' && this.eventTime !== null) {\n toReturn['eventTime'] = 'toApiJson' in this.eventTime ? this.eventTime.toApiJson() : this.eventTime;\n }\n if (typeof this.ipAddress !== 'undefined') {\n toReturn['ipAddress'] = this.ipAddress;\n }\n if (typeof this.userAgent !== 'undefined') {\n toReturn['userAgent'] = this.userAgent;\n }\n if (typeof this.urlClicked !== 'undefined') {\n toReturn['urlClicked'] = this.urlClicked;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.urlClickedNormalized !== 'undefined') {\n toReturn['urlClickedNormalized'] = this.urlClickedNormalized;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Attribute {\n static fromProto(proto) {\n let m = new Attribute();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass Bucket {\n static fromProto(proto) {\n let m = new Bucket();\n m = Object.assign(m, proto);\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.bucketName !== 'undefined') {\n toReturn['bucketName'] = this.bucketName;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass ContactParticipant {\n static fromProto(proto) {\n let m = new ContactParticipant();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass Content {\n static fromProto(proto) {\n let m = new Content();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$3(ContentContentType, proto.type);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.sensitive !== 'undefined') {\n toReturn['sensitive'] = this.sensitive;\n }\n return toReturn;\n }\n}\nclass EmailMessage {\n static fromProto(proto) {\n let m = new EmailMessage();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = proto.to.map(Participant.fromProto);\n }\n if (proto.cc) {\n m.cc = proto.cc.map(Participant.fromProto);\n }\n if (proto.bcc) {\n m.bcc = proto.bcc.map(Participant.fromProto);\n }\n if (proto.from) {\n m.from = Participant.fromProto(proto.from);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n if (proto.serviceProviderInfo) {\n m.serviceProviderInfo = ServiceProviderInfo.fromProto(proto.serviceProviderInfo);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.cc !== 'undefined' && this.cc !== null) {\n toReturn['cc'] = 'toApiJson' in this.cc ? this.cc.toApiJson() : this.cc;\n }\n if (typeof this.bcc !== 'undefined' && this.bcc !== null) {\n toReturn['bcc'] = 'toApiJson' in this.bcc ? this.bcc.toApiJson() : this.bcc;\n }\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n if (typeof this.serviceProviderInfo !== 'undefined' && this.serviceProviderInfo !== null) {\n toReturn['serviceProviderInfo'] = 'toApiJson' in this.serviceProviderInfo ? this.serviceProviderInfo.toApiJson() : this.serviceProviderInfo;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n if (typeof this.originUserId !== 'undefined') {\n toReturn['originUserId'] = this.originUserId;\n }\n return toReturn;\n }\n}\nclass EmailMessageV2 {\n static fromProto(proto) {\n let m = new EmailMessageV2();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = UserParticipant.fromProto(proto.to);\n }\n if (proto.from) {\n m.from = Participant.fromProto(proto.from);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n if (proto.serviceProviderInfo) {\n m.serviceProviderInfo = ServiceProviderInfo.fromProto(proto.serviceProviderInfo);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.from !== 'undefined' && this.from !== null) {\n toReturn['from'] = 'toApiJson' in this.from ? this.from.toApiJson() : this.from;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n if (typeof this.serviceProviderInfo !== 'undefined' && this.serviceProviderInfo !== null) {\n toReturn['serviceProviderInfo'] = 'toApiJson' in this.serviceProviderInfo ? this.serviceProviderInfo.toApiJson() : this.serviceProviderInfo;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n return toReturn;\n }\n}\nclass EmailWithCustomDomainMessage {\n static fromProto(proto) {\n let m = new EmailWithCustomDomainMessage();\n m = Object.assign(m, proto);\n if (proto.to) {\n m.to = proto.to.map(Participant.fromProto);\n }\n if (proto.cc) {\n m.cc = proto.cc.map(Participant.fromProto);\n }\n if (proto.bcc) {\n m.bcc = proto.bcc.map(Participant.fromProto);\n }\n if (proto.replyTo) {\n m.replyTo = Participant.fromProto(proto.replyTo);\n }\n if (proto.content) {\n m.content = proto.content.map(Content.fromProto);\n }\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.timestamp) {\n m.timestamp = new Date(proto.timestamp);\n }\n if (proto.headers) {\n m.headers = proto.headers.map(Header.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.to !== 'undefined' && this.to !== null) {\n toReturn['to'] = 'toApiJson' in this.to ? this.to.toApiJson() : this.to;\n }\n if (typeof this.cc !== 'undefined' && this.cc !== null) {\n toReturn['cc'] = 'toApiJson' in this.cc ? this.cc.toApiJson() : this.cc;\n }\n if (typeof this.bcc !== 'undefined' && this.bcc !== null) {\n toReturn['bcc'] = 'toApiJson' in this.bcc ? this.bcc.toApiJson() : this.bcc;\n }\n if (typeof this.replyTo !== 'undefined' && this.replyTo !== null) {\n toReturn['replyTo'] = 'toApiJson' in this.replyTo ? this.replyTo.toApiJson() : this.replyTo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.content !== 'undefined' && this.content !== null) {\n toReturn['content'] = 'toApiJson' in this.content ? this.content.toApiJson() : this.content;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.timestamp !== 'undefined' && this.timestamp !== null) {\n toReturn['timestamp'] = 'toApiJson' in this.timestamp ? this.timestamp.toApiJson() : this.timestamp;\n }\n if (typeof this.headers !== 'undefined' && this.headers !== null) {\n toReturn['headers'] = 'toApiJson' in this.headers ? this.headers.toApiJson() : this.headers;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n return toReturn;\n }\n}\nclass GCSAttachment {\n static fromProto(proto) {\n let m = new GCSAttachment();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.bucket !== 'undefined') {\n toReturn['bucket'] = this.bucket;\n }\n if (typeof this.filename !== 'undefined') {\n toReturn['filename'] = this.filename;\n }\n if (typeof this.attachedFilename !== 'undefined') {\n toReturn['attachedFilename'] = this.attachedFilename;\n }\n return toReturn;\n }\n}\nclass Header {\n static fromProto(proto) {\n let m = new Header();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass Links {\n static fromProto(proto) {\n let m = new Links();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass Participant {\n static fromProto(proto) {\n let m = new Participant();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass ServiceProviderInfo {\n static fromProto(proto) {\n let m = new ServiceProviderInfo();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subUserId !== 'undefined') {\n toReturn['subUserId'] = this.subUserId;\n }\n return toReturn;\n }\n}\nclass URLAttachment {\n static fromProto(proto) {\n let m = new URLAttachment();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.fileUrl !== 'undefined') {\n toReturn['fileUrl'] = this.fileUrl;\n }\n if (typeof this.attachedFilename !== 'undefined') {\n toReturn['attachedFilename'] = this.attachedFilename;\n }\n return toReturn;\n }\n}\nclass UserParticipant {\n static fromProto(proto) {\n let m = new UserParticipant();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass WhiteLabelEmailMessage {\n static fromProto(proto) {\n let m = new WhiteLabelEmailMessage();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.links) {\n m.links = proto.links.map(Links.fromProto);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(GCSAttachment.fromProto);\n }\n if (proto.urlAttachments) {\n m.urlAttachments = proto.urlAttachments.map(URLAttachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlContent !== 'undefined') {\n toReturn['htmlContent'] = this.htmlContent;\n }\n if (typeof this.plainTextContent !== 'undefined') {\n toReturn['plainTextContent'] = this.plainTextContent;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.urlAttachments !== 'undefined' && this.urlAttachments !== null) {\n toReturn['urlAttachments'] = 'toApiJson' in this.urlAttachments ? this.urlAttachments.toApiJson() : this.urlAttachments;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass PartnerEmailQuota {\n static fromProto(proto) {\n let m = new PartnerEmailQuota();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 10);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AttachmentInfo {\n static fromProto(proto) {\n let m = new AttachmentInfo();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filename !== 'undefined') {\n toReturn['filename'] = this.filename;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\n }\n if (typeof this.charset !== 'undefined') {\n toReturn['charset'] = this.charset;\n }\n return toReturn;\n }\n}\nclass Envelope {\n static fromProto(proto) {\n let m = new Envelope();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.toField !== 'undefined') {\n toReturn['toField'] = this.toField;\n }\n if (typeof this.fromField !== 'undefined') {\n toReturn['fromField'] = this.fromField;\n }\n return toReturn;\n }\n}\nclass InboundMessage {\n static fromProto(proto) {\n let m = new InboundMessage();\n m = Object.assign(m, proto);\n if (proto.contentIds) {\n m.contentIds = proto.contentIds.map(Attribute.fromProto);\n }\n if (proto.toField) {\n m.toField = proto.toField.map(Participant.fromProto);\n }\n if (proto.fromField) {\n m.fromField = Participant.fromProto(proto.fromField);\n }\n if (proto.envelope) {\n m.envelope = Envelope.fromProto(proto.envelope);\n }\n if (proto.attachmentInfo) {\n m.attachmentInfo = proto.attachmentInfo.map(AttachmentInfo.fromProto);\n }\n if (proto.charsets) {\n m.charsets = proto.charsets.map(Attribute.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.headers !== 'undefined') {\n toReturn['headers'] = this.headers;\n }\n if (typeof this.dkim !== 'undefined') {\n toReturn['dkim'] = this.dkim;\n }\n if (typeof this.contentIds !== 'undefined' && this.contentIds !== null) {\n toReturn['contentIds'] = 'toApiJson' in this.contentIds ? this.contentIds.toApiJson() : this.contentIds;\n }\n if (typeof this.toField !== 'undefined' && this.toField !== null) {\n toReturn['toField'] = 'toApiJson' in this.toField ? this.toField.toApiJson() : this.toField;\n }\n if (typeof this.fromField !== 'undefined' && this.fromField !== null) {\n toReturn['fromField'] = 'toApiJson' in this.fromField ? this.fromField.toApiJson() : this.fromField;\n }\n if (typeof this.contentText !== 'undefined') {\n toReturn['contentText'] = this.contentText;\n }\n if (typeof this.contentHtml !== 'undefined') {\n toReturn['contentHtml'] = this.contentHtml;\n }\n if (typeof this.senderIp !== 'undefined') {\n toReturn['senderIp'] = this.senderIp;\n }\n if (typeof this.spamReport !== 'undefined') {\n toReturn['spamReport'] = this.spamReport;\n }\n if (typeof this.envelope !== 'undefined' && this.envelope !== null) {\n toReturn['envelope'] = 'toApiJson' in this.envelope ? this.envelope.toApiJson() : this.envelope;\n }\n if (typeof this.attachments !== 'undefined') {\n toReturn['attachments'] = this.attachments;\n }\n if (typeof this.attachmentInfo !== 'undefined' && this.attachmentInfo !== null) {\n toReturn['attachmentInfo'] = 'toApiJson' in this.attachmentInfo ? this.attachmentInfo.toApiJson() : this.attachmentInfo;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.spamScore !== 'undefined') {\n toReturn['spamScore'] = this.spamScore;\n }\n if (typeof this.charsets !== 'undefined' && this.charsets !== null) {\n toReturn['charsets'] = 'toApiJson' in this.charsets ? this.charsets.toApiJson() : this.charsets;\n }\n if (typeof this.spf !== 'undefined') {\n toReturn['spf'] = this.spf;\n }\n if (typeof this.rawMessage !== 'undefined') {\n toReturn['rawMessage'] = this.rawMessage;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass InboundMessageMapping {\n static fromProto(proto) {\n let m = new InboundMessageMapping();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.mappingId !== 'undefined') {\n toReturn['mappingId'] = this.mappingId;\n }\n if (typeof this.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AdminSetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new AdminSetEmailQueuesStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(EmailQueueStatus, proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass BatchSearchRecipientStatusRequest {\n static fromProto(proto) {\n let m = new BatchSearchRecipientStatusRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmails !== 'undefined') {\n toReturn['recipientEmails'] = this.recipientEmails;\n }\n return toReturn;\n }\n}\nclass BatchSearchRecipientStatusResponse {\n static fromProto(proto) {\n let m = new BatchSearchRecipientStatusResponse();\n m = Object.assign(m, proto);\n if (proto.recipientStatuses) {\n m.recipientStatuses = proto.recipientStatuses.map(Status.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.recipientStatuses !== 'undefined' && this.recipientStatuses !== null) {\n toReturn['recipientStatuses'] = 'toApiJson' in this.recipientStatuses ? this.recipientStatuses.toApiJson() : this.recipientStatuses;\n }\n return toReturn;\n }\n}\nclass BounceSender {\n static fromProto(proto) {\n let m = new BounceSender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(BounceSenderType, proto.type);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass BulkUpsertPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new BulkUpsertPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.partnerEmailQuota) {\n m.partnerEmailQuota = proto.partnerEmailQuota.map(PartnerEmailQuotaMutation.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerEmailQuota !== 'undefined' && this.partnerEmailQuota !== null) {\n toReturn['partnerEmailQuota'] = 'toApiJson' in this.partnerEmailQuota ? this.partnerEmailQuota.toApiJson() : this.partnerEmailQuota;\n }\n return toReturn;\n }\n}\nclass Category {\n static fromProto(proto) {\n let m = new Category();\n m = Object.assign(m, proto);\n if (proto.namespace) {\n m.namespace = enumStringToValue(Namespace, proto.namespace);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ChangeEmailDomainRequest {\n static fromProto(proto) {\n let m = new ChangeEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.sendFromUsername !== 'undefined') {\n toReturn['sendFromUsername'] = this.sendFromUsername;\n }\n if (typeof this.replyToEmail !== 'undefined') {\n toReturn['replyToEmail'] = this.replyToEmail;\n }\n if (typeof this.sendFromName !== 'undefined') {\n toReturn['sendFromName'] = this.sendFromName;\n }\n return toReturn;\n }\n}\nclass ChangeEmailDomainResponse {\n static fromProto(proto) {\n let m = new ChangeEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(ChangeEmailDomainStatus, proto.status);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass CreateBlockRequest {\n static fromProto(proto) {\n let m = new CreateBlockRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.conditions !== 'undefined') {\n toReturn['conditions'] = this.conditions;\n }\n return toReturn;\n }\n}\nclass CreateBlockResponse {\n static fromProto(proto) {\n let m = new CreateBlockResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateEmailDomainRequest {\n static fromProto(proto) {\n let m = new CreateEmailDomainRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass CreateEmailDomainWithSendAsRequest {\n static fromProto(proto) {\n let m = new CreateEmailDomainWithSendAsRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.sendAsEmail !== 'undefined') {\n toReturn['sendAsEmail'] = this.sendAsEmail;\n }\n if (typeof this.sendAsName !== 'undefined') {\n toReturn['sendAsName'] = this.sendAsName;\n }\n return toReturn;\n }\n}\nclass CreateInboundMessageMappingRequest {\n static fromProto(proto) {\n let m = new CreateInboundMessageMappingRequest();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n return toReturn;\n }\n}\nclass CreateInboundMessageMappingResponse {\n static fromProto(proto) {\n let m = new CreateInboundMessageMappingResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.mappingId !== 'undefined') {\n toReturn['mappingId'] = this.mappingId;\n }\n return toReturn;\n }\n}\nclass CreatePendingDomainRequest {\n static fromProto(proto) {\n let m = new CreatePendingDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass CustomSender {\n static fromProto(proto) {\n let m = new CustomSender();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.customEmailUsername !== 'undefined') {\n toReturn['customEmailUsername'] = this.customEmailUsername;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass DeleteBlockRequest {\n static fromProto(proto) {\n let m = new DeleteBlockRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteEmailDomainRequest {\n static fromProto(proto) {\n let m = new DeleteEmailDomainRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass DeletePartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new DeletePartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass DeletePendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new DeletePendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass DeleteSubUserRequest {\n static fromProto(proto) {\n let m = new DeleteSubUserRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass EmailEventBucket {\n static fromProto(proto) {\n let m = new EmailEventBucket();\n m = Object.assign(m, proto);\n if (proto.eventRollup) {\n m.eventRollup = proto.eventRollup.map(EmailEventBucketEventRollup.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.bucketName !== 'undefined') {\n toReturn['bucketName'] = this.bucketName;\n }\n if (typeof this.eventRollup !== 'undefined' && this.eventRollup !== null) {\n toReturn['eventRollup'] = 'toApiJson' in this.eventRollup ? this.eventRollup.toApiJson() : this.eventRollup;\n }\n return toReturn;\n }\n}\nclass EmailEventFilter {\n static fromProto(proto) {\n let m = new EmailEventFilter();\n m = Object.assign(m, proto);\n if (proto.notificationTypes) {\n m.notificationTypes = proto.notificationTypes.map(v => enumStringToValue(NotificationType, v));\n }\n if (proto.eventTypes) {\n m.eventTypes = proto.eventTypes.map(v => enumStringToValue(EventType, v));\n }\n if (proto.dateRange) {\n m.dateRange = DateRange.fromProto(proto.dateRange);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.notificationTypes !== 'undefined') {\n toReturn['notificationTypes'] = this.notificationTypes;\n }\n if (typeof this.eventTypes !== 'undefined') {\n toReturn['eventTypes'] = this.eventTypes;\n }\n if (typeof this.dateRange !== 'undefined' && this.dateRange !== null) {\n toReturn['dateRange'] = 'toApiJson' in this.dateRange ? this.dateRange.toApiJson() : this.dateRange;\n }\n return toReturn;\n }\n}\nclass EmailEventBucketEventRollup {\n static fromProto(proto) {\n let m = new EmailEventBucketEventRollup();\n m = Object.assign(m, proto);\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponseEventStats {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponseEventStats();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue(EventType, proto.eventType);\n }\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n if (proto.uniqueCount) {\n m.uniqueCount = parseInt(proto.uniqueCount, 10);\n }\n if (proto.uniqueRecipients) {\n m.uniqueRecipients = parseInt(proto.uniqueRecipients, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n if (typeof this.uniqueCount !== 'undefined') {\n toReturn['uniqueCount'] = this.uniqueCount;\n }\n if (typeof this.uniqueRecipients !== 'undefined') {\n toReturn['uniqueRecipients'] = this.uniqueRecipients;\n }\n return toReturn;\n }\n}\nclass ExportAttributeEventClickStatsRequest {\n static fromProto(proto) {\n let m = new ExportAttributeEventClickStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventLinkStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventLinkStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventLinkStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventLinkStatsResponse();\n m = Object.assign(m, proto);\n if (proto.data) {\n m.data = proto.data.map(LinkStats.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsRequest {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n return toReturn;\n }\n}\nclass GetAttributeEventStatsResponse {\n static fromProto(proto) {\n let m = new GetAttributeEventStatsResponse();\n m = Object.assign(m, proto);\n if (proto.data) {\n m.data = proto.data.map(GetAttributeEventStatsResponseEventStats.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass GetBlockRequest {\n static fromProto(proto) {\n let m = new GetBlockRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetBlockResponse {\n static fromProto(proto) {\n let m = new GetBlockResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.blockType !== 'undefined') {\n toReturn['blockType'] = this.blockType;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.conditions !== 'undefined') {\n toReturn['conditions'] = this.conditions;\n }\n return toReturn;\n }\n}\nclass GetBouncedRecipientRequest {\n static fromProto(proto) {\n let m = new GetBouncedRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = BounceSender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetBouncedRecipientResponse {\n static fromProto(proto) {\n let m = new GetBouncedRecipientResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetCategoriesRequest {\n static fromProto(proto) {\n let m = new GetCategoriesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass GetCategoriesResponse {\n static fromProto(proto) {\n let m = new GetCategoriesResponse();\n m = Object.assign(m, proto);\n if (proto.categories) {\n m.categories = proto.categories.map(Category.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.categories !== 'undefined' && this.categories !== null) {\n toReturn['categories'] = 'toApiJson' in this.categories ? this.categories.toApiJson() : this.categories;\n }\n return toReturn;\n }\n}\nclass GetCategoryPreferencesRequest {\n static fromProto(proto) {\n let m = new GetCategoryPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n return toReturn;\n }\n}\nclass GetCategoryPreferencesResponse {\n static fromProto(proto) {\n let m = new GetCategoryPreferencesResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.optedInEmailCategoryIds !== 'undefined') {\n toReturn['optedInEmailCategoryIds'] = this.optedInEmailCategoryIds;\n }\n if (typeof this.emailPreferenceInitialized !== 'undefined') {\n toReturn['emailPreferenceInitialized'] = this.emailPreferenceInitialized;\n }\n return toReturn;\n }\n}\nclass GetDefaultDomainRequest {\n static fromProto(proto) {\n let m = new GetDefaultDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n return toReturn;\n }\n}\nclass GetDefaultDomainResponse {\n static fromProto(proto) {\n let m = new GetDefaultDomainResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass GetEmailDomainRequest {\n static fromProto(proto) {\n let m = new GetEmailDomainRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass GetEmailDomainResponse {\n static fromProto(proto) {\n let m = new GetEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.domain) {\n m.domain = EmailDomain.fromProto(proto.domain);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.domain !== 'undefined' && this.domain !== null) {\n toReturn['domain'] = 'toApiJson' in this.domain ? this.domain.toApiJson() : this.domain;\n }\n return toReturn;\n }\n}\nclass GetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new GetEmailQueuesStatusRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass GetEmailQueuesStatusResponse {\n static fromProto(proto) {\n let m = new GetEmailQueuesStatusResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.running !== 'undefined') {\n toReturn['running'] = this.running;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageMappingRequest {\n static fromProto(proto) {\n let m = new GetInboundMessageMappingRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageMappingResponse {\n static fromProto(proto) {\n let m = new GetInboundMessageMappingResponse();\n m = Object.assign(m, proto);\n if (proto.inboundMessageMapping) {\n m.inboundMessageMapping = InboundMessageMapping.fromProto(proto.inboundMessageMapping);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.inboundMessageMapping !== 'undefined' && this.inboundMessageMapping !== null) {\n toReturn['inboundMessageMapping'] = 'toApiJson' in this.inboundMessageMapping ? this.inboundMessageMapping.toApiJson() : this.inboundMessageMapping;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageRequest {\n static fromProto(proto) {\n let m = new GetInboundMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass GetInboundMessageResponse {\n static fromProto(proto) {\n let m = new GetInboundMessageResponse();\n m = Object.assign(m, proto);\n if (proto.inboundMessage) {\n m.inboundMessage = InboundMessage.fromProto(proto.inboundMessage);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.inboundMessage !== 'undefined' && this.inboundMessage !== null) {\n toReturn['inboundMessage'] = 'toApiJson' in this.inboundMessage ? this.inboundMessage.toApiJson() : this.inboundMessage;\n }\n return toReturn;\n }\n}\nclass GetMessageRequest {\n static fromProto(proto) {\n let m = new GetMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass GetMessageResponse {\n static fromProto(proto) {\n let m = new GetMessageResponse();\n m = Object.assign(m, proto);\n if (proto.message) {\n m.message = EmailMessage.fromProto(proto.message);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n return toReturn;\n }\n}\nclass GetMultiEmailRollupsRequest {\n static fromProto(proto) {\n let m = new GetMultiEmailRollupsRequest();\n m = Object.assign(m, proto);\n if (proto.buckets) {\n m.buckets = proto.buckets.map(Bucket.fromProto);\n }\n if (proto.filter) {\n m.filter = EmailEventFilter.fromProto(proto.filter);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.buckets !== 'undefined' && this.buckets !== null) {\n toReturn['buckets'] = 'toApiJson' in this.buckets ? this.buckets.toApiJson() : this.buckets;\n }\n if (typeof this.filter !== 'undefined' && this.filter !== null) {\n toReturn['filter'] = 'toApiJson' in this.filter ? this.filter.toApiJson() : this.filter;\n }\n return toReturn;\n }\n}\nclass GetMultiEmailRollupsResponse {\n static fromProto(proto) {\n let m = new GetMultiEmailRollupsResponse();\n m = Object.assign(m, proto);\n if (proto.emailRollups) {\n m.emailRollups = proto.emailRollups.map(EmailEventBucket.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailRollups !== 'undefined' && this.emailRollups !== null) {\n toReturn['emailRollups'] = 'toApiJson' in this.emailRollups ? this.emailRollups.toApiJson() : this.emailRollups;\n }\n return toReturn;\n }\n}\nclass GetMultiMessageRequest {\n static fromProto(proto) {\n let m = new GetMultiMessageRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailIds !== 'undefined') {\n toReturn['emailIds'] = this.emailIds;\n }\n return toReturn;\n }\n}\nclass GetMultiMessageResponse {\n static fromProto(proto) {\n let m = new GetMultiMessageResponse();\n m = Object.assign(m, proto);\n if (proto.messages) {\n m.messages = proto.messages.map(EmailMessage.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.messages !== 'undefined' && this.messages !== null) {\n toReturn['messages'] = 'toApiJson' in this.messages ? this.messages.toApiJson() : this.messages;\n }\n return toReturn;\n }\n}\nclass GetMultiPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new GetMultiPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerIds !== 'undefined') {\n toReturn['partnerIds'] = this.partnerIds;\n }\n return toReturn;\n }\n}\nclass GetMultiPartnerEmailQuotaResponse {\n static fromProto(proto) {\n let m = new GetMultiPartnerEmailQuotaResponse();\n m = Object.assign(m, proto);\n if (proto.partnerEmailQuotas) {\n m.partnerEmailQuotas = proto.partnerEmailQuotas.map(PartnerEmailQuota.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerEmailQuotas !== 'undefined' && this.partnerEmailQuotas !== null) {\n toReturn['partnerEmailQuotas'] = 'toApiJson' in this.partnerEmailQuotas ? this.partnerEmailQuotas.toApiJson() : this.partnerEmailQuotas;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainResponse {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n if (proto.targets) {\n m.targets = GetPendingEmailDomainTargetCNameRecords.fromProto(proto.targets);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.targetSpf !== 'undefined') {\n toReturn['targetSpf'] = this.targetSpf;\n }\n if (typeof this.currentSpf !== 'undefined') {\n toReturn['currentSpf'] = this.currentSpf;\n }\n if (typeof this.sendFromUsername !== 'undefined') {\n toReturn['sendFromUsername'] = this.sendFromUsername;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n return toReturn;\n }\n}\nclass GetPendingEmailDomainTargetCNameRecords {\n static fromProto(proto) {\n let m = new GetPendingEmailDomainTargetCNameRecords();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.mailSubdomain !== 'undefined') {\n toReturn['mailSubdomain'] = this.mailSubdomain;\n }\n if (typeof this.mailValue !== 'undefined') {\n toReturn['mailValue'] = this.mailValue;\n }\n if (typeof this.dkim1Subdomain !== 'undefined') {\n toReturn['dkim1Subdomain'] = this.dkim1Subdomain;\n }\n if (typeof this.dkim1Value !== 'undefined') {\n toReturn['dkim1Value'] = this.dkim1Value;\n }\n if (typeof this.dkim2Subdomain !== 'undefined') {\n toReturn['dkim2Subdomain'] = this.dkim2Subdomain;\n }\n if (typeof this.dkim2Value !== 'undefined') {\n toReturn['dkim2Value'] = this.dkim2Value;\n }\n if (typeof this.dmarcSubdomain !== 'undefined') {\n toReturn['dmarcSubdomain'] = this.dmarcSubdomain;\n }\n if (typeof this.dmarcValue !== 'undefined') {\n toReturn['dmarcValue'] = this.dmarcValue;\n }\n return toReturn;\n }\n}\nclass GetSenderInfoRequest {\n static fromProto(proto) {\n let m = new GetSenderInfoRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass GetSenderInfoResponse {\n static fromProto(proto) {\n let m = new GetSenderInfoResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.isPlatformAuthorized !== 'undefined') {\n toReturn['isPlatformAuthorized'] = this.isPlatformAuthorized;\n }\n if (typeof this.isDefaultForSenderType !== 'undefined') {\n toReturn['isDefaultForSenderType'] = this.isDefaultForSenderType;\n }\n if (typeof this.preferredEmailUsername !== 'undefined') {\n toReturn['preferredEmailUsername'] = this.preferredEmailUsername;\n }\n if (typeof this.preferredEmailDisplayName !== 'undefined') {\n toReturn['preferredEmailDisplayName'] = this.preferredEmailDisplayName;\n }\n if (typeof this.preferredReplyToEmailAddress !== 'undefined') {\n toReturn['preferredReplyToEmailAddress'] = this.preferredReplyToEmailAddress;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribeLinkRequest {\n static fromProto(proto) {\n let m = new GetUnsubscribeLinkRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribeLinkResponse {\n static fromProto(proto) {\n let m = new GetUnsubscribeLinkResponse();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientIds !== 'undefined') {\n toReturn['recipientIds'] = this.recipientIds;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribedRecipientRequest {\n static fromProto(proto) {\n let m = new GetUnsubscribedRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass GetUnsubscribedRecipientResponse {\n static fromProto(proto) {\n let m = new GetUnsubscribedRecipientResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass InboundMessageMappingOptions {\n static fromProto(proto) {\n let m = new InboundMessageMappingOptions();\n m = Object.assign(m, proto);\n if (proto.attributes) {\n m.attributes = proto.attributes.map(Attribute.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.ownerId !== 'undefined') {\n toReturn['ownerId'] = this.ownerId;\n }\n if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n }\n return toReturn;\n }\n}\nclass InitializeSubUserRequest {\n static fromProto(proto) {\n let m = new InitializeSubUserRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass InitiateEmailDomainRectifyRequest {\n static fromProto(proto) {\n let m = new InitiateEmailDomainRectifyRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.bypassFrequencyLimit !== 'undefined') {\n toReturn['bypassFrequencyLimit'] = this.bypassFrequencyLimit;\n }\n return toReturn;\n }\n}\nclass InitiateEmailDomainRollbackRequest {\n static fromProto(proto) {\n let m = new InitiateEmailDomainRollbackRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass LinkClickStats {\n static fromProto(proto) {\n let m = new LinkClickStats();\n m = Object.assign(m, proto);\n if (proto.recipient) {\n m.recipient = LinkClickStatsRecipient.fromProto(proto.recipient);\n }\n if (proto.recentDate) {\n m.recentDate = new Date(proto.recentDate);\n }\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.recentDate !== 'undefined' && this.recentDate !== null) {\n toReturn['recentDate'] = 'toApiJson' in this.recentDate ? this.recentDate.toApiJson() : this.recentDate;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass LinkStats {\n static fromProto(proto) {\n let m = new LinkStats();\n m = Object.assign(m, proto);\n if (proto.totalClicks) {\n m.totalClicks = parseInt(proto.totalClicks, 10);\n }\n if (proto.uniqueClicks) {\n m.uniqueClicks = parseInt(proto.uniqueClicks, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.totalClicks !== 'undefined') {\n toReturn['totalClicks'] = this.totalClicks;\n }\n if (typeof this.uniqueClicks !== 'undefined') {\n toReturn['uniqueClicks'] = this.uniqueClicks;\n }\n if (typeof this.clickRate !== 'undefined') {\n toReturn['clickRate'] = this.clickRate;\n }\n return toReturn;\n }\n}\nclass ListAllDomainsRequest {\n static fromProto(proto) {\n let m = new ListAllDomainsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass ListAllDomainsResponse {\n static fromProto(proto) {\n let m = new ListAllDomainsResponse();\n m = Object.assign(m, proto);\n if (proto.domains) {\n m.domains = proto.domains.map(SenderDomain.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.domains !== 'undefined' && this.domains !== null) {\n toReturn['domains'] = 'toApiJson' in this.domains ? this.domains.toApiJson() : this.domains;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsRequestListEmailEventsFilters {\n static fromProto(proto) {\n let m = new ListEmailEventsRequestListEmailEventsFilters();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsRequest {\n static fromProto(proto) {\n let m = new ListEmailEventsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEmailEventsRequestListEmailEventsFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListEmailEventsResponse {\n static fromProto(proto) {\n let m = new ListEmailEventsResponse();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(EmailEvent.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n return toReturn;\n }\n}\nclass ListEmailsRequestListEmailsFilters {\n static fromProto(proto) {\n let m = new ListEmailsRequestListEmailsFilters();\n m = Object.assign(m, proto);\n if (proto.dateRange) {\n m.dateRange = DateRange.fromProto(proto.dateRange);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.to !== 'undefined') {\n toReturn['to'] = this.to;\n }\n if (typeof this.from !== 'undefined') {\n toReturn['from'] = this.from;\n }\n if (typeof this.dateRange !== 'undefined' && this.dateRange !== null) {\n toReturn['dateRange'] = 'toApiJson' in this.dateRange ? this.dateRange.toApiJson() : this.dateRange;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.espIds !== 'undefined') {\n toReturn['espIds'] = this.espIds;\n }\n if (typeof this.subuserId !== 'undefined') {\n toReturn['subuserId'] = this.subuserId;\n }\n return toReturn;\n }\n}\nclass ListEmailsRequest {\n static fromProto(proto) {\n let m = new ListEmailsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListEmailsRequestListEmailsFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass ListEmailsResponse {\n static fromProto(proto) {\n let m = new ListEmailsResponse();\n m = Object.assign(m, proto);\n if (proto.emails) {\n m.emails = proto.emails.map(EmailMessage.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emails !== 'undefined' && this.emails !== null) {\n toReturn['emails'] = 'toApiJson' in this.emails ? this.emails.toApiJson() : this.emails;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListEventsForAttributesRequest {\n static fromProto(proto) {\n let m = new ListEventsForAttributesRequest();\n m = Object.assign(m, proto);\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.eventTypes) {\n m.eventTypes = proto.eventTypes.map(v => enumStringToValue(EventType, v));\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.eventTypes !== 'undefined') {\n toReturn['eventTypes'] = this.eventTypes;\n }\n return toReturn;\n }\n}\nclass ListEventsForAttributesResponse {\n static fromProto(proto) {\n let m = new ListEventsForAttributesResponse();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(EmailEvent.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeRequest {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.attribute) {\n m.attribute = Attribute.fromProto(proto.attribute);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = ListLinkClickActivityForAttributeRequestPagedRequestOptions.fromProto(proto.pagingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.attribute !== 'undefined' && this.attribute !== null) {\n toReturn['attribute'] = 'toApiJson' in this.attribute ? this.attribute.toApiJson() : this.attribute;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeResponse {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeResponse();\n m = Object.assign(m, proto);\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n if (proto.data) {\n m.data = proto.data.map(LinkClickStats.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass ListSendGridSubUserReputationsRequest {\n static fromProto(proto) {\n let m = new ListSendGridSubUserReputationsRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.cursor) {\n m.cursor = parseInt(proto.cursor, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n return toReturn;\n }\n}\nclass ListSendGridSubUserReputationsResponse {\n static fromProto(proto) {\n let m = new ListSendGridSubUserReputationsResponse();\n m = Object.assign(m, proto);\n if (proto.reputations) {\n m.reputations = proto.reputations.map(SendGridSubUserReputation.fromProto);\n }\n if (proto.nextCursor) {\n m.nextCursor = parseInt(proto.nextCursor, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.reputations !== 'undefined' && this.reputations !== null) {\n toReturn['reputations'] = 'toApiJson' in this.reputations ? this.reputations.toApiJson() : this.reputations;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n return toReturn;\n }\n}\nclass ListSendGridTeammatesRequest {\n static fromProto(proto) {\n let m = new ListSendGridTeammatesRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n return toReturn;\n }\n}\nclass ListSendGridTeammatesResponse {\n static fromProto(proto) {\n let m = new ListSendGridTeammatesResponse();\n m = Object.assign(m, proto);\n if (proto.teammates) {\n m.teammates = proto.teammates.map(SendGridTeammate.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.teammates !== 'undefined' && this.teammates !== null) {\n toReturn['teammates'] = 'toApiJson' in this.teammates ? this.teammates.toApiJson() : this.teammates;\n }\n return toReturn;\n }\n}\nclass ListLinkClickActivityForAttributeRequestPagedRequestOptions {\n static fromProto(proto) {\n let m = new ListLinkClickActivityForAttributeRequestPagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass PartnerEmailQuotaMutation {\n static fromProto(proto) {\n let m = new PartnerEmailQuotaMutation();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n return toReturn;\n }\n}\nclass QuarantineSenderRequest {\n static fromProto(proto) {\n let m = new QuarantineSenderRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass LinkClickStatsRecipient {\n static fromProto(proto) {\n let m = new LinkClickStatsRecipient();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass RedirectEmailRequest {\n static fromProto(proto) {\n let m = new RedirectEmailRequest();\n m = Object.assign(m, proto);\n if (proto.override) {\n m.override = EmailMessage.fromProto(proto.override);\n }\n if (proto.overrideSender) {\n m.overrideSender = Sender.fromProto(proto.overrideSender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.authCheckOnly !== 'undefined') {\n toReturn['authCheckOnly'] = this.authCheckOnly;\n }\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.newRecipientEmailAddress !== 'undefined') {\n toReturn['newRecipientEmailAddress'] = this.newRecipientEmailAddress;\n }\n if (typeof this.includeContent !== 'undefined') {\n toReturn['includeContent'] = this.includeContent;\n }\n if (typeof this.includeAttributes !== 'undefined') {\n toReturn['includeAttributes'] = this.includeAttributes;\n }\n if (typeof this.override !== 'undefined' && this.override !== null) {\n toReturn['override'] = 'toApiJson' in this.override ? this.override.toApiJson() : this.override;\n }\n if (typeof this.overrideSender !== 'undefined' && this.overrideSender !== null) {\n toReturn['overrideSender'] = 'toApiJson' in this.overrideSender ? this.overrideSender.toApiJson() : this.overrideSender;\n }\n return toReturn;\n }\n}\nclass RedirectEmailResponse {\n static fromProto(proto) {\n let m = new RedirectEmailResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.newEmailId !== 'undefined') {\n toReturn['newEmailId'] = this.newEmailId;\n }\n return toReturn;\n }\n}\nclass ResetRecipientStatusRequest {\n static fromProto(proto) {\n let m = new ResetRecipientStatusRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass ResubscribeRecipientFromUnsubscribeLinkRequest {\n static fromProto(proto) {\n let m = new ResubscribeRecipientFromUnsubscribeLinkRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.unsubscribeLinkUrl !== 'undefined') {\n toReturn['unsubscribeLinkUrl'] = this.unsubscribeLinkUrl;\n }\n if (typeof this.unsubscribeLinkId !== 'undefined') {\n toReturn['unsubscribeLinkId'] = this.unsubscribeLinkId;\n }\n return toReturn;\n }\n}\nclass ResubscribeRecipientRequest {\n static fromProto(proto) {\n let m = new ResubscribeRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass SaveCategoryPreferencesRequest {\n static fromProto(proto) {\n let m = new SaveCategoryPreferencesRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.unverifiedEmailAddress !== 'undefined') {\n toReturn['unverifiedEmailAddress'] = this.unverifiedEmailAddress;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.optedInEmailCategoryIds !== 'undefined') {\n toReturn['optedInEmailCategoryIds'] = this.optedInEmailCategoryIds;\n }\n return toReturn;\n }\n}\nclass SendFromAuthorizedDomainRequest {\n static fromProto(proto) {\n let m = new SendFromAuthorizedDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = Participant.fromProto(proto.recipient);\n }\n if (proto.message) {\n m.message = WhiteLabelEmailMessage.fromProto(proto.message);\n }\n if (proto.customSender) {\n m.customSender = CustomSender.fromProto(proto.customSender);\n }\n if (proto.inboundMessageMappingOptions) {\n m.inboundMessageMappingOptions = InboundMessageMappingOptions.fromProto(proto.inboundMessageMappingOptions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.transactional !== 'undefined') {\n toReturn['transactional'] = this.transactional;\n }\n if (typeof this.encryptContentAtRest !== 'undefined') {\n toReturn['encryptContentAtRest'] = this.encryptContentAtRest;\n }\n if (typeof this.customSender !== 'undefined' && this.customSender !== null) {\n toReturn['customSender'] = 'toApiJson' in this.customSender ? this.customSender.toApiJson() : this.customSender;\n }\n if (typeof this.inboundMessageMappingOptions !== 'undefined' && this.inboundMessageMappingOptions !== null) {\n toReturn['inboundMessageMappingOptions'] = 'toApiJson' in this.inboundMessageMappingOptions ? this.inboundMessageMappingOptions.toApiJson() : this.inboundMessageMappingOptions;\n }\n return toReturn;\n }\n}\nclass SendFromAuthorizedDomainResponse {\n static fromProto(proto) {\n let m = new SendFromAuthorizedDomainResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendGridSubUserReputation {\n static fromProto(proto) {\n let m = new SendGridSubUserReputation();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.username !== 'undefined') {\n toReturn['username'] = this.username;\n }\n if (typeof this.reputationPercent !== 'undefined') {\n toReturn['reputationPercent'] = this.reputationPercent;\n }\n return toReturn;\n }\n}\nclass SendGridTeammate {\n static fromProto(proto) {\n let m = new SendGridTeammate();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.fullName !== 'undefined') {\n toReturn['fullName'] = this.fullName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.role !== 'undefined') {\n toReturn['role'] = this.role;\n }\n if (typeof this.slackUserName !== 'undefined') {\n toReturn['slackUserName'] = this.slackUserName;\n }\n if (typeof this.slackUrl !== 'undefined') {\n toReturn['slackUrl'] = this.slackUrl;\n }\n return toReturn;\n }\n}\nclass SendRequest {\n static fromProto(proto) {\n let m = new SendRequest();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailMessage.fromProto(proto.email);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass SendResponse {\n static fromProto(proto) {\n let m = new SendResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendV2Request {\n static fromProto(proto) {\n let m = new SendV2Request();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailMessageV2.fromProto(proto.email);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.espId !== 'undefined') {\n toReturn['espId'] = this.espId;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass SendV2Response {\n static fromProto(proto) {\n let m = new SendV2Response();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendWhitelabelEmailToUserRequest {\n static fromProto(proto) {\n let m = new SendWhitelabelEmailToUserRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipientUser) {\n m.recipientUser = UserParticipant.fromProto(proto.recipientUser);\n }\n if (proto.message) {\n m.message = WhiteLabelEmailMessage.fromProto(proto.message);\n }\n if (proto.userParticipant) {\n m.userParticipant = UserParticipant.fromProto(proto.userParticipant);\n }\n if (proto.contactParticipant) {\n m.contactParticipant = ContactParticipant.fromProto(proto.contactParticipant);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientUser !== 'undefined' && this.recipientUser !== null) {\n toReturn['recipientUser'] = 'toApiJson' in this.recipientUser ? this.recipientUser.toApiJson() : this.recipientUser;\n }\n if (typeof this.message !== 'undefined' && this.message !== null) {\n toReturn['message'] = 'toApiJson' in this.message ? this.message.toApiJson() : this.message;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.transactional !== 'undefined') {\n toReturn['transactional'] = this.transactional;\n }\n if (typeof this.userParticipant !== 'undefined' && this.userParticipant !== null) {\n toReturn['userParticipant'] = 'toApiJson' in this.userParticipant ? this.userParticipant.toApiJson() : this.userParticipant;\n }\n if (typeof this.contactParticipant !== 'undefined' && this.contactParticipant !== null) {\n toReturn['contactParticipant'] = 'toApiJson' in this.contactParticipant ? this.contactParticipant.toApiJson() : this.contactParticipant;\n }\n return toReturn;\n }\n}\nclass SendWhitelabelEmailToUserResponse {\n static fromProto(proto) {\n let m = new SendWhitelabelEmailToUserResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendWithCustomDomainRequest {\n static fromProto(proto) {\n let m = new SendWithCustomDomainRequest();\n m = Object.assign(m, proto);\n if (proto.email) {\n m.email = EmailWithCustomDomainMessage.fromProto(proto.email);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.email !== 'undefined' && this.email !== null) {\n toReturn['email'] = 'toApiJson' in this.email ? this.email.toApiJson() : this.email;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.fallbackEmail !== 'undefined') {\n toReturn['fallbackEmail'] = this.fallbackEmail;\n }\n if (typeof this.fallbackName !== 'undefined') {\n toReturn['fallbackName'] = this.fallbackName;\n }\n if (typeof this.fallbackEspId !== 'undefined') {\n toReturn['fallbackEspId'] = this.fallbackEspId;\n }\n return toReturn;\n }\n}\nclass SendWithCustomDomainResponse {\n static fromProto(proto) {\n let m = new SendWithCustomDomainResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n if (typeof this.customDomainUsed !== 'undefined') {\n toReturn['customDomainUsed'] = this.customDomainUsed;\n }\n return toReturn;\n }\n}\nclass Sender {\n static fromProto(proto) {\n let m = new Sender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(SenderType, proto.type);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass SenderDomain {\n static fromProto(proto) {\n let m = new SenderDomain();\n m = Object.assign(m, proto);\n if (proto.targets) {\n m.targets = GetPendingEmailDomainTargetCNameRecords.fromProto(proto.targets);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sendFromDomain !== 'undefined') {\n toReturn['sendFromDomain'] = this.sendFromDomain;\n }\n if (typeof this.targetSpf !== 'undefined') {\n toReturn['targetSpf'] = this.targetSpf;\n }\n if (typeof this.currentSpf !== 'undefined') {\n toReturn['currentSpf'] = this.currentSpf;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n if (typeof this.isPrimary !== 'undefined') {\n toReturn['isPrimary'] = this.isPrimary;\n }\n return toReturn;\n }\n}\nclass SetEmailQueuesStatusRequest {\n static fromProto(proto) {\n let m = new SetEmailQueuesStatusRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.running !== 'undefined') {\n toReturn['running'] = this.running;\n }\n return toReturn;\n }\n}\nclass Status {\n static fromProto(proto) {\n let m = new Status();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.status) {\n m.status = enumStringToValue(RecipientStatusEnum, proto.status);\n }\n if (proto.infractionCount) {\n m.infractionCount = parseInt(proto.infractionCount, 10);\n }\n if (proto.bounceExpiry) {\n m.bounceExpiry = new Date(proto.bounceExpiry);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.infractionCount !== 'undefined') {\n toReturn['infractionCount'] = this.infractionCount;\n }\n if (typeof this.bounceExpiry !== 'undefined' && this.bounceExpiry !== null) {\n toReturn['bounceExpiry'] = 'toApiJson' in this.bounceExpiry ? this.bounceExpiry.toApiJson() : this.bounceExpiry;\n }\n return toReturn;\n }\n}\nclass UnbounceRecipientRequest {\n static fromProto(proto) {\n let m = new UnbounceRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = BounceSender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientEmail !== 'undefined') {\n toReturn['recipientEmail'] = this.recipientEmail;\n }\n return toReturn;\n }\n}\nclass UpsertPartnerEmailQuotaRequest {\n static fromProto(proto) {\n let m = new UpsertPartnerEmailQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.dailyQuota) {\n m.dailyQuota = parseInt(proto.dailyQuota, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.dailyQuota !== 'undefined') {\n toReturn['dailyQuota'] = this.dailyQuota;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainMismatch {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainMismatch();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.dnsRecordType !== 'undefined') {\n toReturn['dnsRecordType'] = this.dnsRecordType;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.expectedValue !== 'undefined') {\n toReturn['expectedValue'] = this.expectedValue;\n }\n if (typeof this.actualValue !== 'undefined') {\n toReturn['actualValue'] = this.actualValue;\n }\n if (typeof this.matchedPrefix !== 'undefined') {\n toReturn['matchedPrefix'] = this.matchedPrefix;\n }\n if (typeof this.matchedSuffix !== 'undefined') {\n toReturn['matchedSuffix'] = this.matchedSuffix;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainRequest {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass VerifyDefaultDomainResponse {\n static fromProto(proto) {\n let m = new VerifyDefaultDomainResponse();\n m = Object.assign(m, proto);\n if (proto.mismatches) {\n m.mismatches = proto.mismatches.map(VerifyDefaultDomainMismatch.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.allRecordsMatch !== 'undefined') {\n toReturn['allRecordsMatch'] = this.allRecordsMatch;\n }\n if (typeof this.mismatches !== 'undefined' && this.mismatches !== null) {\n toReturn['mismatches'] = 'toApiJson' in this.mismatches ? this.mismatches.toApiJson() : this.mismatches;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainDMARCRequest {\n static fromProto(proto) {\n let m = new VerifyEmailDomainDMARCRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainDMARCResponse {\n static fromProto(proto) {\n let m = new VerifyEmailDomainDMARCResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.dmarcPass !== 'undefined') {\n toReturn['dmarcPass'] = this.dmarcPass;\n }\n if (typeof this.dmarcRecord !== 'undefined') {\n toReturn['dmarcRecord'] = this.dmarcRecord;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\nclass VerifyEmailDomainRequest {\n static fromProto(proto) {\n let m = new VerifyEmailDomainRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.applicationId !== 'undefined') {\n toReturn['applicationId'] = this.applicationId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainMismatch {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainMismatch();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.dnsRecordType !== 'undefined') {\n toReturn['dnsRecordType'] = this.dnsRecordType;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.expectedValue !== 'undefined') {\n toReturn['expectedValue'] = this.expectedValue;\n }\n if (typeof this.actualValue !== 'undefined') {\n toReturn['actualValue'] = this.actualValue;\n }\n if (typeof this.matchedPrefix !== 'undefined') {\n toReturn['matchedPrefix'] = this.matchedPrefix;\n }\n if (typeof this.matchedSuffix !== 'undefined') {\n toReturn['matchedSuffix'] = this.matchedSuffix;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainRequest {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n return toReturn;\n }\n}\nclass VerifyPendingEmailDomainResponse {\n static fromProto(proto) {\n let m = new VerifyPendingEmailDomainResponse();\n m = Object.assign(m, proto);\n if (proto.mismatches) {\n m.mismatches = proto.mismatches.map(VerifyPendingEmailDomainMismatch.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.allRecordsMatch !== 'undefined') {\n toReturn['allRecordsMatch'] = this.allRecordsMatch;\n }\n if (typeof this.mismatches !== 'undefined' && this.mismatches !== null) {\n toReturn['mismatches'] = 'toApiJson' in this.mismatches ? this.mismatches.toApiJson() : this.mismatches;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'email-api.vendasta-local.com',\n 'test': '',\n 'demo': 'email-api-demo.apigateway.co',\n 'prod': 'email-api-prod.apigateway.co',\n 'production': 'email-api-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailApiService = /*#__PURE__*/(() => {\n class EmailApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n send(r) {\n const request = r.toApiJson ? r : new SendRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/Send\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendResponse.fromProto(resp)));\n }\n sendWithCustomDomain(r) {\n const request = r.toApiJson ? r : new SendWithCustomDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SendWithCustomDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWithCustomDomainResponse.fromProto(resp)));\n }\n sendV2(r) {\n const request = r.toApiJson ? r : new SendV2Request(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SendV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendV2Response.fromProto(resp)));\n }\n list(r) {\n const request = r.toApiJson ? r : new ListEmailsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEmailsResponse.fromProto(resp)));\n }\n getEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new GetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetEmailQueuesStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailQueuesStatusResponse.fromProto(resp)));\n }\n setEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new SetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/SetEmailQueuesStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getEmailDomain(r) {\n const request = r.toApiJson ? r : new GetEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailDomainResponse.fromProto(resp)));\n }\n createEmailDomain(r) {\n const request = r.toApiJson ? r : new CreateEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/CreateEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createEmailDomainWithSendAs(r) {\n const request = r.toApiJson ? r : new CreateEmailDomainWithSendAsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/CreateEmailDomainWithSendAs\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n verifyEmailDomain(r) {\n const request = r.toApiJson ? r : new VerifyEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/VerifyEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailDomainResponse.fromProto(resp)));\n }\n deleteEmailDomain(r) {\n const request = r.toApiJson ? r : new DeleteEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/DeleteEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n changeEmailDomain(r) {\n const request = r.toApiJson ? r : new ChangeEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/ChangeEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ChangeEmailDomainResponse.fromProto(resp)));\n }\n getPendingEmailDomain(r) {\n const request = r.toApiJson ? r : new GetPendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/GetPendingEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPendingEmailDomainResponse.fromProto(resp)));\n }\n verifyPendingEmailDomain(r) {\n const request = r.toApiJson ? r : new VerifyPendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/VerifyPendingEmailDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyPendingEmailDomainResponse.fromProto(resp)));\n }\n deletePendingEmailDomain(r) {\n const request = r.toApiJson ? r : new DeletePendingEmailDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailService/DeletePendingEmailDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailApiService.ɵfac = function EmailApiService_Factory(t) {\n return new (t || EmailApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailApiService,\n factory: EmailApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet AdminApiService = /*#__PURE__*/(() => {\n class AdminApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n setEmailQueuesStatus(r) {\n const request = r.toApiJson ? r : new AdminSetEmailQueuesStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/SetEmailQueuesStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n redirectEmail(r) {\n const request = r.toApiJson ? r : new RedirectEmailRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/RedirectEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RedirectEmailResponse.fromProto(resp)));\n }\n resubscribeRecipient(r) {\n const request = r.toApiJson ? r : new ResubscribeRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/ResubscribeRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getUnsubscribedRecipient(r) {\n const request = r.toApiJson ? r : new GetUnsubscribedRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/GetUnsubscribedRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetUnsubscribedRecipientResponse.fromProto(resp)));\n }\n initiateEmailDomainRollback(r) {\n const request = r.toApiJson ? r : new InitiateEmailDomainRollbackRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/InitiateEmailDomainRollback\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n initiateEmailDomainRectify(r) {\n const request = r.toApiJson ? r : new InitiateEmailDomainRectifyRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/InitiateEmailDomainRectify\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getBouncedRecipient(r) {\n const request = r.toApiJson ? r : new GetBouncedRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/GetBouncedRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBouncedRecipientResponse.fromProto(resp)));\n }\n unbounceRecipient(r) {\n const request = r.toApiJson ? r : new UnbounceRecipientRequest(r);\n return this.http.post(this._host + \"/email.v1.Admin/UnbounceRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n AdminApiService.ɵfac = function AdminApiService_Factory(t) {\n return new (t || AdminApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n AdminApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AdminApiService,\n factory: AdminApiService.ɵfac,\n providedIn: 'root'\n });\n return AdminApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AdminService = /*#__PURE__*/(() => {\n class AdminService {\n constructor(api) {\n this.api = api;\n }\n setEmailQueuesStatus(running) {\n let statusEnum = EmailQueueStatus.EMAIL_QUEUE_STATUS_RUNNING;\n if (!running) {\n statusEnum = EmailQueueStatus.EMAIL_QUEUE_STATUS_DISABLED;\n }\n const req = new AdminSetEmailQueuesStatusRequest({\n status: statusEnum\n });\n return this.api.setEmailQueuesStatus(req);\n }\n getUnsubscribedRecipientForPartner(partnerID, recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderId: partnerID,\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getUnsubscribedRecipientForBusiness(recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderType: SenderType.SENDER_TYPE_BUSINESS,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getUnsubscribedRecipientForProduct(recipientEmail) {\n const req = new GetUnsubscribedRecipientRequest({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.getUnsubscribedRecipient(req);\n }\n getBouncedRecipient(sender, recipientEmail) {\n const req = new GetBouncedRecipientRequest({\n sender: sender,\n recipientEmail: recipientEmail\n });\n return this.api.getBouncedRecipient(req);\n }\n unbounceRecipient(sender, recipientEmail) {\n const req = new UnbounceRecipientRequest({\n sender: sender,\n recipientEmail: recipientEmail\n });\n return this.api.unbounceRecipient(req);\n }\n resubscribeRecipientForPartner(partnerID, recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderId: partnerID,\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n resubscribeRecipientForBusiness(recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderType: SenderType.SENDER_TYPE_BUSINESS,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n resubscribeRecipientForProduct(recipientEmail) {\n const req = new ResubscribeRecipientRequest({\n senderType: SenderType.SENDER_TYPE_PARTNER,\n recipientEmail: recipientEmail\n });\n return this.api.resubscribeRecipient(req);\n }\n }\n AdminService.ɵfac = function AdminService_Factory(t) {\n return new (t || AdminService)(i0.ɵɵinject(AdminApiService));\n };\n AdminService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: AdminService,\n factory: AdminService.ɵfac,\n providedIn: 'root'\n });\n return AdminService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailService = /*#__PURE__*/(() => {\n class EmailService {\n constructor(api, admin) {\n this.api = api;\n this.admin = admin;\n }\n createEmailDomain(partnerId, applicationId, businessId, domain, userId = '') {\n const req = CreateEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n domain: domain,\n userId: userId\n });\n return this.api.createEmailDomain(req);\n }\n createEmailDomainWithSendAs(partnerId, applicationId, businessId, domain, sendAsEmail, sendAsName) {\n const req = CreateEmailDomainWithSendAsRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId,\n domain: domain,\n sendAsEmail: sendAsEmail,\n sendAsName: sendAsName\n });\n return this.api.createEmailDomainWithSendAs(req);\n }\n getEmailDomain(partnerId, applicationId, businessId) {\n const req = GetEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId\n });\n return this.api.getEmailDomain(req).pipe(map(r => r.domain));\n }\n verifyEmailDomain(partnerId, applicationId, businessId) {\n const req = VerifyEmailDomainRequest.fromProto({\n partnerId: partnerId,\n applicationId: applicationId,\n businessId: businessId\n });\n return this.api.verifyEmailDomain(req).pipe(map(r => r.domain));\n }\n listEmails(searchTerm, filters, pagingOptions) {\n return this.api.list({\n searchTerm: searchTerm,\n pagingOptions: pagingOptions,\n filters: filters\n });\n }\n getEmailQueuesStatus() {\n const req = GetEmailQueuesStatusRequest.fromProto({});\n return this.api.getEmailQueuesStatus(req).pipe(map(r => r.running));\n }\n /**\n * @deprecated Use AdminService.setEmailQueuesStatus\n */\n setEmailQueuesStatus(running) {\n return this.admin.setEmailQueuesStatus(running);\n }\n }\n EmailService.ɵfac = function EmailService_Factory(t) {\n return new (t || EmailService)(i0.ɵɵinject(EmailApiService), i0.ɵɵinject(AdminService));\n };\n EmailService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailService,\n factory: EmailService.ɵfac,\n providedIn: 'root'\n });\n return EmailService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailEventApiService = /*#__PURE__*/(() => {\n class EmailEventApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n list(r) {\n const request = r.toApiJson ? r : new ListEmailEventsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEmailEventsResponse.fromProto(resp)));\n }\n getMultiEmailRollups(r) {\n const request = r.toApiJson ? r : new GetMultiEmailRollupsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetMultiEmailRollups\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiEmailRollupsResponse.fromProto(resp)));\n }\n listForAttributes(r) {\n const request = r.toApiJson ? r : new ListEventsForAttributesRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ListForAttributes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListEventsForAttributesResponse.fromProto(resp)));\n }\n getAttributeEventStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetAttributeEventStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventStatsResponse.fromProto(resp)));\n }\n getAttributeEventLinkStats(r) {\n const request = r.toApiJson ? r : new GetAttributeEventLinkStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/GetAttributeEventLinkStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAttributeEventLinkStatsResponse.fromProto(resp)));\n }\n listLinkClickActivityForAttribute(r) {\n const request = r.toApiJson ? r : new ListLinkClickActivityForAttributeRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ListLinkClickActivityForAttribute\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListLinkClickActivityForAttributeResponse.fromProto(resp)));\n }\n exportAttributeEventClickStats(r) {\n const request = r.toApiJson ? r : new ExportAttributeEventClickStatsRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailEventService/ExportAttributeEventClickStats\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailEventApiService.ɵfac = function EmailEventApiService_Factory(t) {\n return new (t || EmailEventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailEventApiService,\n factory: EmailEventApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailEventApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet BlocksApiService = /*#__PURE__*/(() => {\n class BlocksApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createBlock(r) {\n const request = r.toApiJson ? r : new CreateBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/CreateBlock\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateBlockResponse.fromProto(resp)));\n }\n getBlock(r) {\n const request = r.toApiJson ? r : new GetBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/GetBlock\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBlockResponse.fromProto(resp)));\n }\n deleteBlock(r) {\n const request = r.toApiJson ? r : new DeleteBlockRequest(r);\n return this.http.post(this._host + \"/email.v1.Blocks/DeleteBlock\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n BlocksApiService.ɵfac = function BlocksApiService_Factory(t) {\n return new (t || BlocksApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n BlocksApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BlocksApiService,\n factory: BlocksApiService.ɵfac,\n providedIn: 'root'\n });\n return BlocksApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet DomainApiService = /*#__PURE__*/(() => {\n class DomainApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createPendingDomain(r) {\n const request = r.toApiJson ? r : new CreatePendingDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/CreatePendingDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPendingEmailDomainResponse.fromProto(resp)));\n }\n listAllDomains(r) {\n const request = r.toApiJson ? r : new ListAllDomainsRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/ListAllDomains\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAllDomainsResponse.fromProto(resp)));\n }\n getDefaultDomain(r) {\n const request = r.toApiJson ? r : new GetDefaultDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/GetDefaultDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetDefaultDomainResponse.fromProto(resp)));\n }\n verifyDefaultDomain(r) {\n const request = r.toApiJson ? r : new VerifyDefaultDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/VerifyDefaultDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyDefaultDomainResponse.fromProto(resp)));\n }\n verifyEmailDomainDmarc(r) {\n const request = r.toApiJson ? r : new VerifyEmailDomainDMARCRequest(r);\n return this.http.post(this._host + \"/email.v1.Domain/VerifyEmailDomainDMARC\", request.toApiJson(), this.apiOptions()).pipe(map(resp => VerifyEmailDomainDMARCResponse.fromProto(resp)));\n }\n }\n DomainApiService.ɵfac = function DomainApiService_Factory(t) {\n return new (t || DomainApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n DomainApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainApiService,\n factory: DomainApiService.ɵfac,\n providedIn: 'root'\n });\n return DomainApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailClientApiService = /*#__PURE__*/(() => {\n class EmailClientApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n resubscribeRecipientFromUnsubscribeLink(r) {\n const request = r.toApiJson ? r : new ResubscribeRecipientFromUnsubscribeLinkRequest(r);\n return this.http.post(this._host + \"/email.v1.EmailClient/ResubscribeRecipientFromUnsubscribeLink\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n EmailClientApiService.ɵfac = function EmailClientApiService_Factory(t) {\n return new (t || EmailClientApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailClientApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailClientApiService,\n factory: EmailClientApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailClientApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InboundMessageMappingApiService = /*#__PURE__*/(() => {\n class InboundMessageMappingApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n createInboundMessageMapping(r) {\n const request = r.toApiJson ? r : new CreateInboundMessageMappingRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageMappingService/CreateInboundMessageMapping\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateInboundMessageMappingResponse.fromProto(resp)));\n }\n getInboundMessageMapping(r) {\n const request = r.toApiJson ? r : new GetInboundMessageMappingRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageMappingService/GetInboundMessageMapping\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetInboundMessageMappingResponse.fromProto(resp)));\n }\n }\n InboundMessageMappingApiService.ɵfac = function InboundMessageMappingApiService_Factory(t) {\n return new (t || InboundMessageMappingApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InboundMessageMappingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboundMessageMappingApiService,\n factory: InboundMessageMappingApiService.ɵfac,\n providedIn: 'root'\n });\n return InboundMessageMappingApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet InboundMessageApiService = /*#__PURE__*/(() => {\n class InboundMessageApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getInboundMessage(r) {\n const request = r.toApiJson ? r : new GetInboundMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.InboundMessageService/GetInboundMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetInboundMessageResponse.fromProto(resp)));\n }\n }\n InboundMessageApiService.ɵfac = function InboundMessageApiService_Factory(t) {\n return new (t || InboundMessageApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n InboundMessageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InboundMessageApiService,\n factory: InboundMessageApiService.ɵfac,\n providedIn: 'root'\n });\n return InboundMessageApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet MessageApiService = /*#__PURE__*/(() => {\n class MessageApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getMessage(r) {\n const request = r.toApiJson ? r : new GetMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.Message/GetMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMessageResponse.fromProto(resp)));\n }\n getMultiMessage(r) {\n const request = r.toApiJson ? r : new GetMultiMessageRequest(r);\n return this.http.post(this._host + \"/email.v1.Message/GetMultiMessage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiMessageResponse.fromProto(resp)));\n }\n }\n MessageApiService.ɵfac = function MessageApiService_Factory(t) {\n return new (t || MessageApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n MessageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageApiService,\n factory: MessageApiService.ɵfac,\n providedIn: 'root'\n });\n return MessageApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet PartnerEmailQuotaApiService = /*#__PURE__*/(() => {\n class PartnerEmailQuotaApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n upsert(r) {\n const request = r.toApiJson ? r : new UpsertPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/Upsert\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n bulkUpsert(r) {\n const request = r.toApiJson ? r : new BulkUpsertPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/BulkUpsert\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeletePartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetMultiPartnerEmailQuotaRequest(r);\n return this.http.post(this._host + \"/email.v1.PartnerEmailQuotaService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiPartnerEmailQuotaResponse.fromProto(resp)));\n }\n }\n PartnerEmailQuotaApiService.ɵfac = function PartnerEmailQuotaApiService_Factory(t) {\n return new (t || PartnerEmailQuotaApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PartnerEmailQuotaApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PartnerEmailQuotaApiService,\n factory: PartnerEmailQuotaApiService.ɵfac,\n providedIn: 'root'\n });\n return PartnerEmailQuotaApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet PreferencesApiService = /*#__PURE__*/(() => {\n class PreferencesApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getCategories(r) {\n const request = r.toApiJson ? r : new GetCategoriesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetCategories\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCategoriesResponse.fromProto(resp)));\n }\n getCategoryPreferences(r) {\n const request = r.toApiJson ? r : new GetCategoryPreferencesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetCategoryPreferences\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCategoryPreferencesResponse.fromProto(resp)));\n }\n saveCategoryPreferences(r) {\n const request = r.toApiJson ? r : new SaveCategoryPreferencesRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/SaveCategoryPreferences\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getUnsubscribeLink(r) {\n const request = r.toApiJson ? r : new GetUnsubscribeLinkRequest(r);\n return this.http.post(this._host + \"/email.v1.Preferences/GetUnsubscribeLink\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetUnsubscribeLinkResponse.fromProto(resp)));\n }\n }\n PreferencesApiService.ɵfac = function PreferencesApiService_Factory(t) {\n return new (t || PreferencesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PreferencesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreferencesApiService,\n factory: PreferencesApiService.ɵfac,\n providedIn: 'root'\n });\n return PreferencesApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RecipientStatusApiService = /*#__PURE__*/(() => {\n class RecipientStatusApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n resetRecipientStatus(r) {\n const request = r.toApiJson ? r : new ResetRecipientStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.RecipientStatus/ResetRecipientStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n batchSearchRecipientStatus(r) {\n const request = r.toApiJson ? r : new BatchSearchRecipientStatusRequest(r);\n return this.http.post(this._host + \"/email.v1.RecipientStatus/BatchSearchRecipientStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BatchSearchRecipientStatusResponse.fromProto(resp)));\n }\n }\n RecipientStatusApiService.ɵfac = function RecipientStatusApiService_Factory(t) {\n return new (t || RecipientStatusApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientStatusApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientStatusApiService,\n factory: RecipientStatusApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientStatusApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SendApiService = /*#__PURE__*/(() => {\n class SendApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n sendWhitelabelEmailToUser(r) {\n const request = r.toApiJson ? r : new SendWhitelabelEmailToUserRequest(r);\n return this.http.post(this._host + \"/email.v1.Send/SendWhitelabelEmailToUser\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendWhitelabelEmailToUserResponse.fromProto(resp)));\n }\n sendFromAuthorizedDomain(r) {\n const request = r.toApiJson ? r : new SendFromAuthorizedDomainRequest(r);\n return this.http.post(this._host + \"/email.v1.Send/SendFromAuthorizedDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendFromAuthorizedDomainResponse.fromProto(resp)));\n }\n }\n SendApiService.ɵfac = function SendApiService_Factory(t) {\n return new (t || SendApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SendApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendApiService,\n factory: SendApiService.ɵfac,\n providedIn: 'root'\n });\n return SendApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SendGridApiService = /*#__PURE__*/(() => {\n class SendGridApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n listSendGridTeammates(r) {\n const request = r.toApiJson ? r : new ListSendGridTeammatesRequest(r);\n return this.http.post(this._host + \"/email.v1.SendGridService/ListSendGridTeammates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSendGridTeammatesResponse.fromProto(resp)));\n }\n listSendGridSubUserReputations(r) {\n const request = r.toApiJson ? r : new ListSendGridSubUserReputationsRequest(r);\n return this.http.post(this._host + \"/email.v1.SendGridService/ListSendGridSubUserReputations\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSendGridSubUserReputationsResponse.fromProto(resp)));\n }\n }\n SendGridApiService.ɵfac = function SendGridApiService_Factory(t) {\n return new (t || SendGridApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SendGridApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendGridApiService,\n factory: SendGridApiService.ɵfac,\n providedIn: 'root'\n });\n return SendGridApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SendersApiService = /*#__PURE__*/(() => {\n class SendersApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n getSenderInfo(r) {\n const request = r.toApiJson ? r : new GetSenderInfoRequest(r);\n return this.http.post(this._host + \"/email.v1.Senders/GetSenderInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSenderInfoResponse.fromProto(resp)));\n }\n quarantineSender(r) {\n const request = r.toApiJson ? r : new QuarantineSenderRequest(r);\n return this.http.post(this._host + \"/email.v1.Senders/QuarantineSender\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SendersApiService.ɵfac = function SendersApiService_Factory(t) {\n return new (t || SendersApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SendersApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendersApiService,\n factory: SendersApiService.ɵfac,\n providedIn: 'root'\n });\n return SendersApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SubUserApiService = /*#__PURE__*/(() => {\n class SubUserApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n initializeSubUser(r) {\n const request = r.toApiJson ? r : new InitializeSubUserRequest(r);\n return this.http.post(this._host + \"/email.v1.SubUser/InitializeSubUser\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteSubUser(r) {\n const request = r.toApiJson ? r : new DeleteSubUserRequest(r);\n return this.http.post(this._host + \"/email.v1.SubUser/DeleteSubUser\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SubUserApiService.ɵfac = function SubUserApiService_Factory(t) {\n return new (t || SubUserApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SubUserApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SubUserApiService,\n factory: SubUserApiService.ɵfac,\n providedIn: 'root'\n });\n return SubUserApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\nlet EmailEventService = /*#__PURE__*/(() => {\n class EmailEventService {\n constructor(api) {\n this.api = api;\n }\n /*\n @params:\n - buckets: a list or names with an key-value pair to build aggregations on. The length of the response\n will be the same length as buckets. The key-value is for an additional filter term to use only for a specific\n aggregation.\n - dateRange: the range of dates to collect aggregations for.\n - partnerId: the partner to filter all aggregations by\n - marketId: the market to filter the aggregations by.\n - notificationTypes: the notification types to filter the aggregations by.\n - eventTypes: the event types to filter the aggregations by\n @returns: an observable containing a list of buckets that correspond have a name, corresponding to the name passed in to\n each bucket object in the request\n @throws: an observable of a HttpErrorResponse if the client is unable to fetch the data\n */\n getEventRollups(buckets, dateRange, partnerId, marketId, notificationTypes, eventTypes) {\n if (!buckets || !buckets.length) {\n throw new HttpErrorResponse({\n status: 409,\n statusText: '1 or more buckets must be passed in'\n });\n }\n const req = new GetMultiEmailRollupsRequest({\n buckets: buckets,\n filter: new EmailEventFilter({\n dateRange: dateRange,\n partnerId: partnerId,\n marketId: marketId,\n notificationTypes: notificationTypes,\n eventTypes: eventTypes\n })\n });\n return this.api.getMultiEmailRollups(req).pipe(map(resp => (resp || {\n emailRollups: null\n }).emailRollups));\n }\n listEvents(emailId, pagingOptions, partnerId, businessId) {\n const filters = new ListEmailEventsRequestListEmailEventsFilters({\n emailId: emailId,\n partnerId: partnerId,\n businessId: businessId\n });\n return this.api.list({\n filters,\n pagingOptions\n });\n }\n getAttributeEventStats(sender, attribute) {\n return this.api.getAttributeEventStats({\n sender: sender,\n attribute: attribute\n });\n }\n getAttributeEventLinkStats(sender, attribute) {\n return this.api.getAttributeEventLinkStats({\n sender: sender,\n attribute: attribute\n });\n }\n listEventsForAttribute(sender, attribute, eventTypes, cursor, pageSize) {\n return this.api.listForAttributes({\n sender: sender,\n attribute: attribute,\n eventTypes: eventTypes,\n cursor: cursor,\n pageSize: pageSize\n });\n }\n listLinkClickActivityForAttribute(sender, attribute, normalizedURL, cursor, pageSize) {\n return this.api.listLinkClickActivityForAttribute({\n sender: sender,\n attribute: attribute,\n normalizedUrl: normalizedURL,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n });\n }\n exportAttributeEventClickStats(sender, attribute, normalizedUrl, userId) {\n return this.api.exportAttributeEventClickStats({\n sender: sender,\n attribute: attribute,\n normalizedUrl: normalizedUrl,\n userId: userId\n });\n }\n }\n EmailEventService.ɵfac = function EmailEventService_Factory(t) {\n return new (t || EmailEventService)(i0.ɵɵinject(EmailEventApiService));\n };\n EmailEventService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailEventService,\n factory: EmailEventService.ɵfac,\n providedIn: 'root'\n });\n return EmailEventService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendgridSubUsersService = /*#__PURE__*/(() => {\n class SendgridSubUsersService {\n constructor(api) {\n this.api = api;\n }\n listSubUserReputations(pageSize = 10, cursor) {\n const req = {\n pageSize: pageSize,\n cursor: cursor\n };\n return this.api.listSendGridSubUserReputations(req);\n }\n }\n SendgridSubUsersService.ɵfac = function SendgridSubUsersService_Factory(t) {\n return new (t || SendgridSubUsersService)(i0.ɵɵinject(SendGridApiService));\n };\n SendgridSubUsersService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendgridSubUsersService,\n factory: SendgridSubUsersService.ɵfac,\n providedIn: 'root'\n });\n return SendgridSubUsersService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendgridTeammatesService = /*#__PURE__*/(() => {\n class SendgridTeammatesService {\n constructor(api) {\n this.api = api;\n }\n list() {\n const req = {};\n return this.api.listSendGridTeammates(req);\n }\n }\n SendgridTeammatesService.ɵfac = function SendgridTeammatesService_Factory(t) {\n return new (t || SendgridTeammatesService)(i0.ɵɵinject(SendGridApiService));\n };\n SendgridTeammatesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendgridTeammatesService,\n factory: SendgridTeammatesService.ɵfac,\n providedIn: 'root'\n });\n return SendgridTeammatesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DomainService = /*#__PURE__*/(() => {\n class DomainService {\n constructor(api, domain) {\n this.api = api;\n this.domain = domain;\n }\n delete(partnerId, appId, businessId) {\n const req = {\n partnerId: partnerId,\n applicationId: appId,\n businessId: businessId\n };\n const observable = this.api.deleteEmailDomain(req).pipe(mapTo(null), shareReplay(1));\n observable.subscribe();\n return observable;\n }\n /**\n * Requests the partner's domain and send-from address to be changed to the\n * provided values.\n * @param partnerID The Partner ID\n * @param newDomain The domain for sending emails (e.g. The \"example.com\" in mail@example.com)\n * @param newEmailUsername The username for sending emails (e.g. The \"mail\" in mail@example.com)\n * @param appId [optional/soon-to-be-deprecated] The application ID to change\n * @param replyTo [optional] A reply-to email that can be included on emails\n * the domain for. Generally leave blank unless you know what you're doing.\n */\n changeForPartner(partnerID, newDomain, newEmailUsername, appId, replyTo, newSendFromName) {\n return this.changeForSender(SenderType.SENDER_TYPE_PARTNER, partnerID, newDomain, newEmailUsername, replyTo, newSendFromName);\n }\n /**\n * Requests the sender's domain and send-from address to be changed to the\n * provided values.\n * @param senderType The Sender type (e.g. partner or business)\n * @param senderID The Sender ID (e.g. partner ID or account group ID)\n * @param newDomain The domain for sending emails (e.g. The \"example.com\" in mail@example.com)\n * @param newEmailUsername The username for sending emails (e.g. The \"mail\" in mail@example.com)\n * @param replyTo [optional] A reply-to email that can be included on emails\n * the domain for. Generally leave blank unless you know what you're doing.\n */\n changeForSender(senderType, senderID, newDomain, newEmailUsername, replyTo, newSendFromName) {\n const req = new ChangeEmailDomainRequest({\n senderType: senderType,\n senderId: senderID,\n sendFromDomain: newDomain,\n sendFromUsername: newEmailUsername,\n replyToEmail: replyTo,\n sendFromName: newSendFromName\n });\n return this.api.changeEmailDomain(req).pipe(map(v => v.status));\n }\n createPendingDomain(senderType, senderId, domain) {\n return this.domain.createPendingDomain({\n sender: new Sender({\n type: senderType,\n id: senderId\n }),\n domain: domain\n });\n }\n deletePendingDomain(senderType, senderId, domain) {\n return this.api.deletePendingEmailDomain({\n senderType: senderType,\n senderId: senderId,\n domain: domain\n }).pipe(map(() => null));\n }\n /**\n * Requests the pending domain for an email sender\n * @param senderType The sender type, (ex. partner, business)\n * @param senderID the sender ID, (ex. partnerID, businessID)\n */\n getPendingEmailDomain(senderType, senderID) {\n const req = new GetPendingEmailDomainRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.api.getPendingEmailDomain(req);\n }\n verifyPendingDomain(senderType, senderID) {\n const req = new VerifyPendingEmailDomainRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.api.verifyPendingEmailDomain(req).pipe(map(v => {\n v.allRecordsMatch = Boolean(v.allRecordsMatch);\n v.mismatches = v.mismatches || [];\n return v;\n }));\n }\n verifyDefaultDomain(senderType, senderId) {\n const req = new VerifyDefaultDomainRequest({\n sender: {\n type: senderType,\n id: senderId\n }\n });\n return this.domain.verifyDefaultDomain(req).pipe(map(v => ({\n allRecordsMatch: Boolean(v.allRecordsMatch),\n mismatches: v.mismatches || []\n })));\n }\n listAllDomains(senderType, senderID) {\n const req = new ListAllDomainsRequest({\n sender: {\n type: senderType,\n id: senderID\n }\n });\n return this.domain.listAllDomains(req).pipe(map(v => {\n v.domains = v.domains || [];\n return v;\n }));\n }\n getDefaultDomain(senderType) {\n const req = new GetDefaultDomainRequest({\n senderType: senderType\n });\n return this.domain.getDefaultDomain(req);\n }\n verifyDMARC(sender) {\n const req = new VerifyEmailDomainDMARCRequest({\n sender: sender\n });\n return this.domain.verifyEmailDomainDmarc(req);\n }\n }\n DomainService.ɵfac = function DomainService_Factory(t) {\n return new (t || DomainService)(i0.ɵɵinject(EmailApiService), i0.ɵɵinject(DomainApiService));\n };\n DomainService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainService,\n factory: DomainService.ɵfac,\n providedIn: 'root'\n });\n return DomainService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet MessageService = /*#__PURE__*/(() => {\n class MessageService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getMessage(emailID) {\n const req = {\n emailId: emailID\n };\n return this.delegate.getMessage(req).pipe(map(v => v.message));\n }\n }\n MessageService.ɵfac = function MessageService_Factory(t) {\n return new (t || MessageService)(i0.ɵɵinject(MessageApiService));\n };\n MessageService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageService,\n factory: MessageService.ɵfac,\n providedIn: 'root'\n });\n return MessageService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PreferencesService = /*#__PURE__*/(() => {\n class PreferencesService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getCategories(senderType, senderID) {\n const req = new GetCategoriesRequest({\n senderType: senderType,\n senderId: senderID\n });\n return this.delegate.getCategories(req);\n }\n saveCategoryPreferencesForUser(senderType, senderID, recipientUserID, optedInEmailCategoryIDs) {\n const req = new SaveCategoryPreferencesRequest({\n senderType: senderType,\n senderId: senderID,\n userId: recipientUserID,\n optedInEmailCategoryIds: optedInEmailCategoryIDs\n });\n return this.delegate.saveCategoryPreferences(req);\n }\n getCategoryPreferences(senderType, senderID, recipientID) {\n const req = new GetCategoryPreferencesRequest({\n senderType: senderType,\n senderId: senderID,\n recipientId: recipientID\n });\n return this.delegate.getCategoryPreferences(req);\n }\n getUnsubscribeLink(linkID) {\n return this.delegate.getUnsubscribeLink({\n id: linkID\n });\n }\n }\n PreferencesService.ɵfac = function PreferencesService_Factory(t) {\n return new (t || PreferencesService)(i0.ɵɵinject(PreferencesApiService));\n };\n PreferencesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreferencesService,\n factory: PreferencesService.ɵfac,\n providedIn: 'root'\n });\n return PreferencesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailClientService = /*#__PURE__*/(() => {\n class EmailClientService {\n constructor(api) {\n this.api = api;\n }\n resubscribeRecipientFromUnsubscribeLink(unsubscribeLinkId) {\n const req = new ResubscribeRecipientFromUnsubscribeLinkRequest({\n unsubscribeLinkId: unsubscribeLinkId\n });\n return this.api.resubscribeRecipientFromUnsubscribeLink(req);\n }\n }\n EmailClientService.ɵfac = function EmailClientService_Factory(t) {\n return new (t || EmailClientService)(i0.ɵɵinject(EmailClientApiService));\n };\n EmailClientService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailClientService,\n factory: EmailClientService.ɵfac,\n providedIn: 'root'\n });\n return EmailClientService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RecipientStatusService = /*#__PURE__*/(() => {\n class RecipientStatusService {\n constructor(delegate) {\n this.delegate = delegate;\n }\n // MAX email list size is 500\n searchRecipientStatus(senderType, senderID, recipientEmails) {\n return this.delegate.batchSearchRecipientStatus({\n sender: {\n type: senderType,\n id: senderID\n },\n recipientEmails: recipientEmails\n });\n }\n }\n RecipientStatusService.ɵfac = function RecipientStatusService_Factory(t) {\n return new (t || RecipientStatusService)(i0.ɵɵinject(RecipientStatusApiService));\n };\n RecipientStatusService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientStatusService,\n factory: RecipientStatusService.ɵfac,\n providedIn: 'root'\n });\n return RecipientStatusService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailModule = /*#__PURE__*/(() => {\n class EmailModule {}\n EmailModule.ɵfac = function EmailModule_Factory(t) {\n return new (t || EmailModule)();\n };\n EmailModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EmailModule\n });\n EmailModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [EmailService, EmailEventService, SendgridSubUsersService, SendgridTeammatesService, DomainService, AdminService, MessageService, PreferencesService, RecipientStatusService, EmailClientService]\n });\n return EmailModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SendersService = /*#__PURE__*/(() => {\n class SendersService {\n constructor(senders) {\n this.senders = senders;\n }\n getEmailSendingInfo(senderType, senderId) {\n const req = {\n sender: {\n type: senderType,\n id: senderId\n }\n };\n return this.senders.getSenderInfo(req);\n }\n }\n SendersService.ɵfac = function SendersService_Factory(t) {\n return new (t || SendersService)(i0.ɵɵinject(SendersApiService));\n };\n SendersService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SendersService,\n factory: SendersService.ɵfac,\n providedIn: 'root'\n });\n return SendersService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst MARKETING_SERVICE_PROVIDER_ID = 'ESP_MARKETING';\nlet MessageSendingService = /*#__PURE__*/(() => {\n class MessageSendingService {\n constructor(emailClientApi) {\n this.emailClientApi = emailClientApi;\n }\n sendMarketingEmailFromPartner(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, partnerID, replyToName, replyToEmailAddress, options) {\n const req = this.buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, MARKETING_SERVICE_PROVIDER_ID, partnerID, replyToName, replyToEmailAddress, \"\", \"\", options);\n return this.emailClientApi.sendV2(req);\n }\n sendMarketingEmailFromBusiness(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, partnerID, businessID, replyToName, replyToEmailAddress, options) {\n const req = this.buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, MARKETING_SERVICE_PROVIDER_ID, partnerID, replyToName, replyToEmailAddress, \"\", businessID, options);\n return this.emailClientApi.sendV2(req);\n }\n buildSendRequest(fromName, fromEmailAddress, recipientUserID, subjectLine, emailContentHtml, espID, partnerID, replyToName, replyToEmailAddress, applicationID, businessID, options) {\n const message = new EmailMessageV2({\n to: {\n userId: recipientUserID\n },\n from: {\n name: fromName,\n emailAddress: fromEmailAddress\n },\n subject: subjectLine,\n content: [{\n type: ContentContentType.TEXT_HTML,\n value: emailContentHtml\n }]\n });\n if (!!replyToName && !!replyToEmailAddress) {\n message.replyTo = {\n name: replyToName,\n emailAddress: replyToEmailAddress\n };\n }\n if (!!options) {\n if (!!options.attributes) {\n message.attributes = options.attributes;\n }\n if (!!options.headers) {\n message.headers = options.headers;\n }\n if (!!options.attachments) {\n message.attachments = options.attachments;\n }\n if (!!options.urlAttachments) {\n message.urlAttachments = options.urlAttachments;\n }\n }\n const req = new SendV2Request({\n email: message,\n partnerId: partnerID,\n espId: espID,\n applicationId: applicationID ? applicationID : '',\n businessId: businessID ? businessID : ''\n });\n if (!!applicationID) {\n req.applicationId = applicationID;\n }\n if (!!businessID) {\n req.businessId = businessID;\n }\n if (!!options?.idempotencyKey) {\n req.idempotencyKey = options.idempotencyKey;\n }\n return req;\n }\n }\n MessageSendingService.ɵfac = function MessageSendingService_Factory(t) {\n return new (t || MessageSendingService)(i0.ɵɵinject(EmailApiService));\n };\n MessageSendingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MessageSendingService,\n factory: MessageSendingService.ɵfac,\n providedIn: 'root'\n });\n return MessageSendingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, AdminService, AdminSetEmailQueuesStatusRequest, AttachmentInfo, Attribute, BatchSearchRecipientStatusRequest, BatchSearchRecipientStatusResponse, BounceSender, BounceSenderType, Bucket, BulkUpsertPartnerEmailQuotaRequest, Category, ChangeEmailDomainRequest, ChangeEmailDomainResponse, ChangeEmailDomainStatus, ContactParticipant, Content, ContentContentType, CreateBlockRequest, CreateBlockResponse, CreateEmailDomainRequest, CreateEmailDomainWithSendAsRequest, CreateInboundMessageMappingRequest, CreateInboundMessageMappingResponse, CreatePendingDomainRequest, CustomSender, DateRange, DeleteBlockRequest, DeleteEmailDomainRequest, DeletePartnerEmailQuotaRequest, DeletePendingEmailDomainRequest, DeleteSubUserRequest, DomainService, EmailClientService, EmailDomain, EmailEvent, EmailEventBucket, EmailEventBucketEventRollup, EmailEventFilter, EmailEventService, EmailMessage, EmailMessageV2, EmailModule, EmailQueueStatus, EmailService, EmailWithCustomDomainMessage, Envelope, EventType, ExportAttributeEventClickStatsRequest, GCSAttachment, GetAttributeEventLinkStatsRequest, GetAttributeEventLinkStatsResponse, GetAttributeEventStatsRequest, GetAttributeEventStatsResponse, GetAttributeEventStatsResponseEventStats, GetBlockRequest, GetBlockResponse, GetBouncedRecipientRequest, GetBouncedRecipientResponse, GetCategoriesRequest, GetCategoriesResponse, GetCategoryPreferencesRequest, GetCategoryPreferencesResponse, GetDefaultDomainRequest, GetDefaultDomainResponse, GetEmailDomainRequest, GetEmailDomainResponse, GetEmailQueuesStatusRequest, GetEmailQueuesStatusResponse, GetInboundMessageMappingRequest, GetInboundMessageMappingResponse, GetInboundMessageRequest, GetInboundMessageResponse, GetMessageRequest, GetMessageResponse, GetMultiEmailRollupsRequest, GetMultiEmailRollupsResponse, GetMultiMessageRequest, GetMultiMessageResponse, GetMultiPartnerEmailQuotaRequest, GetMultiPartnerEmailQuotaResponse, GetPendingEmailDomainRequest, GetPendingEmailDomainResponse, GetPendingEmailDomainTargetCNameRecords, GetSenderInfoRequest, GetSenderInfoResponse, GetUnsubscribeLinkRequest, GetUnsubscribeLinkResponse, GetUnsubscribedRecipientRequest, GetUnsubscribedRecipientResponse, Header, InboundMessage, InboundMessageMapping, InboundMessageMappingOptions, InitializeSubUserRequest, InitiateEmailDomainRectifyRequest, InitiateEmailDomainRollbackRequest, LinkClickStats, LinkClickStatsRecipient, LinkStats, Links, ListAllDomainsRequest, ListAllDomainsResponse, ListEmailEventsRequest, ListEmailEventsRequestListEmailEventsFilters, ListEmailEventsResponse, ListEmailsRequest, ListEmailsRequestListEmailsFilters, ListEmailsResponse, ListEventsForAttributesRequest, ListEventsForAttributesResponse, ListLinkClickActivityForAttributeRequest, ListLinkClickActivityForAttributeRequestPagedRequestOptions, ListLinkClickActivityForAttributeResponse, ListSendGridSubUserReputationsRequest, ListSendGridSubUserReputationsResponse, ListSendGridTeammatesRequest, ListSendGridTeammatesResponse, MessageSendingService, MessageService, Namespace, NotificationType, PagedRequestOptions, PagedResponseMetadata, Participant, PartnerEmailQuota, PartnerEmailQuotaMutation, PreferencesService, QuarantineSenderRequest, RecipientStatusEnum, RecipientStatusService, Record, RedirectEmailRequest, RedirectEmailResponse, ResetRecipientStatusRequest, ResubscribeRecipientFromUnsubscribeLinkRequest, ResubscribeRecipientRequest, SaveCategoryPreferencesRequest, SendFromAuthorizedDomainRequest, SendFromAuthorizedDomainResponse, SendGridSubUserReputation, SendGridTeammate, SendRequest, SendResponse, SendV2Request, SendV2Response, SendWhitelabelEmailToUserRequest, SendWhitelabelEmailToUserResponse, SendWithCustomDomainRequest, SendWithCustomDomainResponse, Sender, SenderDomain, SenderType, SendersService, SendgridSubUsersService, SendgridTeammatesService, ServiceProviderInfo, SetEmailQueuesStatusRequest, Status, URLAttachment, UnbounceRecipientRequest, UpsertPartnerEmailQuotaRequest, UserParticipant, VerifyDefaultDomainMismatch, VerifyDefaultDomainRequest, VerifyDefaultDomainResponse, VerifyEmailDomainDMARCRequest, VerifyEmailDomainDMARCResponse, VerifyEmailDomainRequest, VerifyPendingEmailDomainMismatch, VerifyPendingEmailDomainRequest, VerifyPendingEmailDomainResponse, WhiteLabelEmailMessage };\n"],"mappings":"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","names":["DateRange","_DateRange","proto","m","kwargs","toReturn","EmailDomain","_EmailDomain","proto","m","Record","kwargs","toReturn","_Record","EventType","NotificationType","ContentContentType","BounceSenderType","ChangeEmailDomainStatus","EmailQueueStatus","Namespace","RecipientStatusEnum","SenderType","enumStringToValue$4","enumRef","value","EmailEvent","_EmailEvent","enumStringToValue$3","Attribute","_Attribute","Bucket","_Bucket","Content","_Content","proto","m","enumStringToValue$3","ContentContentType","kwargs","toReturn","EmailMessage","_EmailMessage","Participant","Attribute","Header","GCSAttachment","URLAttachment","ServiceProviderInfo","Links","EmailMessageV2","_EmailMessageV2","UserParticipant","EmailWithCustomDomainMessage","_EmailWithCustomDomainMessage","_GCSAttachment","_Header","_Links","_Participant","_ServiceProviderInfo","_URLAttachment","_UserParticipant","enumStringToValue","enumRef","value","AdminSetEmailQueuesStatusRequest","_AdminSetEmailQueuesStatusRequest","proto","m","EmailQueueStatus","kwargs","toReturn","BatchSearchRecipientStatusRequest","_BatchSearchRecipientStatusRequest","Sender","BatchSearchRecipientStatusResponse","_BatchSearchRecipientStatusResponse","Status","BounceSender","_BounceSender","BounceSenderType","Category","_Category","proto","m","enumStringToValue","Namespace","kwargs","toReturn","ChangeEmailDomainRequest","_ChangeEmailDomainRequest","SenderType","ChangeEmailDomainResponse","_ChangeEmailDomainResponse","ChangeEmailDomainStatus","CreateEmailDomainRequest","_CreateEmailDomainRequest","proto","m","kwargs","toReturn","CreateEmailDomainWithSendAsRequest","_CreateEmailDomainWithSendAsRequest","CreatePendingDomainRequest","_CreatePendingDomainRequest","proto","m","Sender","kwargs","toReturn","DeleteEmailDomainRequest","_DeleteEmailDomainRequest","proto","m","kwargs","toReturn","DeletePendingEmailDomainRequest","_DeletePendingEmailDomainRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","EmailEventBucket","_EmailEventBucket","proto","m","EmailEventBucketEventRollup","kwargs","toReturn","EmailEventFilter","_EmailEventFilter","v","enumStringToValue","NotificationType","EventType","DateRange","_EmailEventBucketEventRollup","GetAttributeEventStatsResponseEventStats","_GetAttributeEventStatsResponseEventStats","ExportAttributeEventClickStatsRequest","_ExportAttributeEventClickStatsRequest","Sender","Attribute","GetAttributeEventLinkStatsRequest","_GetAttributeEventLinkStatsRequest","GetAttributeEventLinkStatsResponse","_GetAttributeEventLinkStatsResponse","LinkStats","GetAttributeEventStatsRequest","_GetAttributeEventStatsRequest","GetAttributeEventStatsResponse","_GetAttributeEventStatsResponse","GetBouncedRecipientRequest","_GetBouncedRecipientRequest","proto","m","BounceSender","kwargs","toReturn","GetBouncedRecipientResponse","_GetBouncedRecipientResponse","GetCategoriesRequest","_GetCategoriesRequest","enumStringToValue","SenderType","GetCategoriesResponse","_GetCategoriesResponse","Category","GetCategoryPreferencesRequest","_GetCategoryPreferencesRequest","GetCategoryPreferencesResponse","_GetCategoryPreferencesResponse","GetDefaultDomainRequest","_GetDefaultDomainRequest","GetDefaultDomainResponse","_GetDefaultDomainResponse","GetEmailDomainRequest","_GetEmailDomainRequest","GetEmailDomainResponse","_GetEmailDomainResponse","EmailDomain","GetEmailQueuesStatusRequest","_GetEmailQueuesStatusRequest","GetEmailQueuesStatusResponse","_GetEmailQueuesStatusResponse","GetMessageRequest","_GetMessageRequest","proto","m","kwargs","toReturn","GetMessageResponse","_GetMessageResponse","EmailMessage","GetMultiEmailRollupsRequest","_GetMultiEmailRollupsRequest","Bucket","EmailEventFilter","GetMultiEmailRollupsResponse","_GetMultiEmailRollupsResponse","EmailEventBucket","GetMultiMessageRequest","_GetMultiMessageRequest","GetMultiMessageResponse","_GetMultiMessageResponse","GetPendingEmailDomainRequest","_GetPendingEmailDomainRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","GetPendingEmailDomainResponse","_GetPendingEmailDomainResponse","GetPendingEmailDomainTargetCNameRecords","_GetPendingEmailDomainTargetCNameRecords","GetSenderInfoRequest","_GetSenderInfoRequest","Sender","GetSenderInfoResponse","_GetSenderInfoResponse","GetUnsubscribeLinkRequest","_GetUnsubscribeLinkRequest","GetUnsubscribeLinkResponse","_GetUnsubscribeLinkResponse","GetUnsubscribedRecipientRequest","_GetUnsubscribedRecipientRequest","GetUnsubscribedRecipientResponse","_GetUnsubscribedRecipientResponse","InitiateEmailDomainRectifyRequest","_InitiateEmailDomainRectifyRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","InitiateEmailDomainRollbackRequest","_InitiateEmailDomainRollbackRequest","LinkClickStats","_LinkClickStats","LinkClickStatsRecipient","LinkStats","_LinkStats","ListAllDomainsRequest","_ListAllDomainsRequest","Sender","ListAllDomainsResponse","_ListAllDomainsResponse","SenderDomain","ListEmailEventsRequestListEmailEventsFilters","_ListEmailEventsRequestListEmailEventsFilters","ListEmailEventsRequest","_ListEmailEventsRequest","PagedRequestOptions","ListEmailEventsResponse","_ListEmailEventsResponse","EmailEvent","PagedResponseMetadata","ListEmailsRequestListEmailsFilters","_ListEmailsRequestListEmailsFilters","DateRange","ListEmailsRequest","_ListEmailsRequest","ListEmailsResponse","_ListEmailsResponse","EmailMessage","ListEventsForAttributesRequest","_ListEventsForAttributesRequest","Attribute","v","EventType","ListEventsForAttributesResponse","_ListEventsForAttributesResponse","ListLinkClickActivityForAttributeRequest","_ListLinkClickActivityForAttributeRequest","ListLinkClickActivityForAttributeRequestPagedRequestOptions","ListLinkClickActivityForAttributeResponse","_ListLinkClickActivityForAttributeResponse","ListSendGridSubUserReputationsRequest","_ListSendGridSubUserReputationsRequest","ListSendGridSubUserReputationsResponse","_ListSendGridSubUserReputationsResponse","SendGridSubUserReputation","ListSendGridTeammatesRequest","_ListSendGridTeammatesRequest","ListSendGridTeammatesResponse","_ListSendGridTeammatesResponse","SendGridTeammate","_ListLinkClickActivityForAttributeRequestPagedRequestOptions","_PagedRequestOptions","_PagedResponseMetadata","QuarantineSenderRequest","_QuarantineSenderRequest","proto","m","enumStringToValue","SenderType","kwargs","toReturn","LinkClickStatsRecipient","_LinkClickStatsRecipient","RedirectEmailRequest","_RedirectEmailRequest","EmailMessage","Sender","RedirectEmailResponse","_RedirectEmailResponse","ResetRecipientStatusRequest","_ResetRecipientStatusRequest","ResubscribeRecipientFromUnsubscribeLinkRequest","_ResubscribeRecipientFromUnsubscribeLinkRequest","ResubscribeRecipientRequest","_ResubscribeRecipientRequest","SaveCategoryPreferencesRequest","_SaveCategoryPreferencesRequest","SendGridSubUserReputation","_SendGridSubUserReputation","proto","m","kwargs","toReturn","SendGridTeammate","_SendGridTeammate","SendRequest","_SendRequest","EmailMessage","SendResponse","_SendResponse","SendV2Request","_SendV2Request","EmailMessageV2","SendV2Response","_SendV2Response","SendWithCustomDomainRequest","_SendWithCustomDomainRequest","proto","m","EmailWithCustomDomainMessage","kwargs","toReturn","SendWithCustomDomainResponse","_SendWithCustomDomainResponse","Sender","_Sender","enumStringToValue","SenderType","SenderDomain","_SenderDomain","GetPendingEmailDomainTargetCNameRecords","SetEmailQueuesStatusRequest","_SetEmailQueuesStatusRequest","Status","_Status","RecipientStatusEnum","UnbounceRecipientRequest","_UnbounceRecipientRequest","BounceSender","VerifyDefaultDomainMismatch","_VerifyDefaultDomainMismatch","proto","m","kwargs","toReturn","VerifyDefaultDomainRequest","_VerifyDefaultDomainRequest","Sender","VerifyDefaultDomainResponse","_VerifyDefaultDomainResponse","VerifyEmailDomainDMARCRequest","_VerifyEmailDomainDMARCRequest","VerifyEmailDomainDMARCResponse","_VerifyEmailDomainDMARCResponse","VerifyEmailDomainRequest","_VerifyEmailDomainRequest","VerifyPendingEmailDomainMismatch","_VerifyPendingEmailDomainMismatch","VerifyPendingEmailDomainRequest","_VerifyPendingEmailDomainRequest","enumStringToValue","SenderType","VerifyPendingEmailDomainResponse","_VerifyPendingEmailDomainResponse","environment","hostMap","HostService","t","ɵɵdefineInjectable","EmailApiService","http","hostService","HttpHeaders","r","request","SendRequest","map","resp","SendResponse","SendWithCustomDomainRequest","SendWithCustomDomainResponse","SendV2Request","SendV2Response","ListEmailsRequest","ListEmailsResponse","GetEmailQueuesStatusRequest","GetEmailQueuesStatusResponse","SetEmailQueuesStatusRequest","__spreadProps","__spreadValues","GetEmailDomainRequest","GetEmailDomainResponse","CreateEmailDomainRequest","CreateEmailDomainWithSendAsRequest","DeleteEmailDomainRequest","ChangeEmailDomainRequest","ChangeEmailDomainResponse","GetPendingEmailDomainRequest","GetPendingEmailDomainResponse","DeletePendingEmailDomainRequest","ɵɵinject","HttpClient","AdminApiService","AdminSetEmailQueuesStatusRequest","RedirectEmailRequest","RedirectEmailResponse","ResubscribeRecipientRequest","GetUnsubscribedRecipientRequest","GetUnsubscribedRecipientResponse","InitiateEmailDomainRollbackRequest","InitiateEmailDomainRectifyRequest","GetBouncedRecipientRequest","GetBouncedRecipientResponse","UnbounceRecipientRequest","AdminService","api","running","statusEnum","EmailQueueStatus","req","partnerID","recipientEmail","sender","EmailService","admin","partnerId","applicationId","businessId","domain","userId","sendAsEmail","sendAsName","searchTerm","filters","pagingOptions","EmailEventApiService","ListEmailEventsRequest","ListEmailEventsResponse","GetMultiEmailRollupsRequest","GetMultiEmailRollupsResponse","ListEventsForAttributesRequest","ListEventsForAttributesResponse","GetAttributeEventStatsRequest","GetAttributeEventStatsResponse","GetAttributeEventLinkStatsRequest","GetAttributeEventLinkStatsResponse","ListLinkClickActivityForAttributeRequest","ListLinkClickActivityForAttributeResponse","ExportAttributeEventClickStatsRequest","DomainApiService","http","hostService","HttpHeaders","r","request","CreatePendingDomainRequest","map","resp","GetPendingEmailDomainResponse","ListAllDomainsRequest","ListAllDomainsResponse","GetDefaultDomainRequest","GetDefaultDomainResponse","VerifyDefaultDomainRequest","VerifyDefaultDomainResponse","VerifyEmailDomainDMARCRequest","VerifyEmailDomainDMARCResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","EmailClientApiService","ResubscribeRecipientFromUnsubscribeLinkRequest","__spreadProps","__spreadValues","MessageApiService","http","hostService","HttpHeaders","r","request","GetMessageRequest","map","resp","GetMessageResponse","GetMultiMessageRequest","GetMultiMessageResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","PreferencesApiService","http","hostService","HttpHeaders","r","request","GetCategoriesRequest","map","resp","GetCategoriesResponse","GetCategoryPreferencesRequest","GetCategoryPreferencesResponse","SaveCategoryPreferencesRequest","__spreadProps","__spreadValues","GetUnsubscribeLinkRequest","GetUnsubscribeLinkResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","RecipientStatusApiService","ResetRecipientStatusRequest","BatchSearchRecipientStatusRequest","BatchSearchRecipientStatusResponse","SendGridApiService","http","hostService","HttpHeaders","r","request","ListSendGridTeammatesRequest","map","resp","ListSendGridTeammatesResponse","ListSendGridSubUserReputationsRequest","ListSendGridSubUserReputationsResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","SendersApiService","GetSenderInfoRequest","GetSenderInfoResponse","QuarantineSenderRequest","__spreadProps","__spreadValues","EmailEventService","api","buckets","dateRange","partnerId","marketId","notificationTypes","eventTypes","HttpErrorResponse","req","GetMultiEmailRollupsRequest","EmailEventFilter","map","resp","emailId","pagingOptions","businessId","filters","ListEmailEventsRequestListEmailEventsFilters","sender","attribute","cursor","pageSize","normalizedURL","normalizedUrl","userId","t","ɵɵinject","EmailEventApiService","ɵɵdefineInjectable","SendgridSubUsersService","SendGridApiService","SendgridTeammatesService","DomainService","domain","appId","observable","mapTo","shareReplay","partnerID","newDomain","newEmailUsername","replyTo","newSendFromName","SenderType","senderType","senderID","ChangeEmailDomainRequest","senderId","Sender","GetPendingEmailDomainRequest","VerifyPendingEmailDomainRequest","v","VerifyDefaultDomainRequest","ListAllDomainsRequest","GetDefaultDomainRequest","VerifyEmailDomainDMARCRequest","EmailApiService","DomainApiService","MessageService","delegate","emailID","MessageApiService","PreferencesService","GetCategoriesRequest","recipientUserID","optedInEmailCategoryIDs","SaveCategoryPreferencesRequest","recipientID","GetCategoryPreferencesRequest","linkID","PreferencesApiService","EmailClientService","unsubscribeLinkId","ResubscribeRecipientFromUnsubscribeLinkRequest","EmailClientApiService","RecipientStatusService","recipientEmails","RecipientStatusApiService","EmailModule","ɵɵdefineNgModule","ɵɵdefineInjector","EmailService","AdminService","SendersService","senders","SendersApiService","MARKETING_SERVICE_PROVIDER_ID","MessageSendingService","emailClientApi","fromName","fromEmailAddress","subjectLine","emailContentHtml","replyToName","replyToEmailAddress","options","businessID","espID","applicationID","message","EmailMessageV2","ContentContentType","SendV2Request"],"x_google_ignoreList":[0]}