{"version":3,"sources":["node_modules/@vendasta/campaigns/fesm2020/vendasta-campaigns.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map, mapTo } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EmailBuilderTemplateFocuses = /*#__PURE__*/function (EmailBuilderTemplateFocuses) {\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_UNSPECIFIED\"] = 0] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_UNSPECIFIED\";\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_ACQUIRE\"] = 1] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_ACQUIRE\";\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_UPSELL\"] = 2] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_UPSELL\";\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_ADOPT\"] = 3] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_ADOPT\";\n return EmailBuilderTemplateFocuses;\n}(EmailBuilderTemplateFocuses || {});\nvar ImageAlign = /*#__PURE__*/function (ImageAlign) {\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_UNSPECIFIED\"] = 0] = \"IMAGE_ALIGN_UNSPECIFIED\";\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_LEFT\"] = 1] = \"IMAGE_ALIGN_LEFT\";\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_CENTER\"] = 2] = \"IMAGE_ALIGN_CENTER\";\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_RIGHT\"] = 3] = \"IMAGE_ALIGN_RIGHT\";\n return ImageAlign;\n}(ImageAlign || {});\nvar EmailBuilderTemplateStatuses = /*#__PURE__*/function (EmailBuilderTemplateStatuses) {\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_UNSPECIFIED\"] = 0] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_UNSPECIFIED\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_DRAFT\"] = 1] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_DRAFT\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_PUBLISHED\"] = 2] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_PUBLISHED\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_ACTIVE\"] = 3] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_ACTIVE\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_ARCHIVED\"] = 4] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_ARCHIVED\";\n return EmailBuilderTemplateStatuses;\n}(EmailBuilderTemplateStatuses || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DateDefault = /*#__PURE__*/function (DateDefault) {\n DateDefault[DateDefault[\"DATE_DEFAULT_INVALID\"] = 0] = \"DATE_DEFAULT_INVALID\";\n DateDefault[DateDefault[\"DATE_DEFAULT_TODAY\"] = 1] = \"DATE_DEFAULT_TODAY\";\n DateDefault[DateDefault[\"DATE_DEFAULT_YESTERDAY\"] = 2] = \"DATE_DEFAULT_YESTERDAY\";\n DateDefault[DateDefault[\"DATE_DEFAULT_TOMORROW\"] = 3] = \"DATE_DEFAULT_TOMORROW\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_WEEK\"] = 4] = \"DATE_DEFAULT_THIS_WEEK\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_WEEK\"] = 5] = \"DATE_DEFAULT_LAST_WEEK\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_WEEK\"] = 6] = \"DATE_DEFAULT_NEXT_WEEK\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_MONTH\"] = 7] = \"DATE_DEFAULT_THIS_MONTH\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_MONTH\"] = 8] = \"DATE_DEFAULT_LAST_MONTH\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_MONTH\"] = 9] = \"DATE_DEFAULT_NEXT_MONTH\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_QUARTER\"] = 10] = \"DATE_DEFAULT_THIS_QUARTER\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_QUARTER\"] = 11] = \"DATE_DEFAULT_LAST_QUARTER\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_QUARTER\"] = 12] = \"DATE_DEFAULT_NEXT_QUARTER\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_YEAR\"] = 13] = \"DATE_DEFAULT_THIS_YEAR\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_YEAR\"] = 14] = \"DATE_DEFAULT_LAST_YEAR\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_YEAR\"] = 15] = \"DATE_DEFAULT_NEXT_YEAR\";\n return DateDefault;\n}(DateDefault || {});\nvar FilterGroupOperator = /*#__PURE__*/function (FilterGroupOperator) {\n FilterGroupOperator[FilterGroupOperator[\"FILTER_GROUP_OPERATOR_INVALID\"] = 0] = \"FILTER_GROUP_OPERATOR_INVALID\";\n FilterGroupOperator[FilterGroupOperator[\"FILTER_GROUP_OPERATOR_AND\"] = 1] = \"FILTER_GROUP_OPERATOR_AND\";\n FilterGroupOperator[FilterGroupOperator[\"FILTER_GROUP_OPERATOR_OR\"] = 2] = \"FILTER_GROUP_OPERATOR_OR\";\n return FilterGroupOperator;\n}(FilterGroupOperator || {});\nvar FilterOperator = /*#__PURE__*/function (FilterOperator) {\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_INVALID\"] = 0] = \"FILTER_OPERATOR_INVALID\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_EMPTY\"] = 1] = \"FILTER_OPERATOR_IS_EMPTY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_EMPTY\"] = 2] = \"FILTER_OPERATOR_IS_NOT_EMPTY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS\"] = 3] = \"FILTER_OPERATOR_IS\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT\"] = 4] = \"FILTER_OPERATOR_IS_NOT\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_ANY\"] = 5] = \"FILTER_OPERATOR_IS_ANY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_ANY\"] = 6] = \"FILTER_OPERATOR_IS_NOT_ANY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_ALL\"] = 7] = \"FILTER_OPERATOR_IS_ALL\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_ALL\"] = 8] = \"FILTER_OPERATOR_IS_NOT_ALL\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_CONTAINS\"] = 9] = \"FILTER_OPERATOR_CONTAINS\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_DOES_NOT_CONTAIN\"] = 10] = \"FILTER_OPERATOR_DOES_NOT_CONTAIN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_EQUAL_TO\"] = 11] = \"FILTER_OPERATOR_IS_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_EQUAL_TO\"] = 12] = \"FILTER_OPERATOR_IS_NOT_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_GREATER_THAN\"] = 13] = \"FILTER_OPERATOR_IS_GREATER_THAN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO\"] = 14] = \"FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_LESS_THAN\"] = 15] = \"FILTER_OPERATOR_IS_LESS_THAN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO\"] = 16] = \"FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_BEFORE\"] = 17] = \"FILTER_OPERATOR_IS_BEFORE\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_BEFORE_OR_ON\"] = 18] = \"FILTER_OPERATOR_IS_BEFORE_OR_ON\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_AFTER\"] = 19] = \"FILTER_OPERATOR_IS_AFTER\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_AFTER_OR_ON\"] = 20] = \"FILTER_OPERATOR_IS_AFTER_OR_ON\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_BETWEEN\"] = 21] = \"FILTER_OPERATOR_IS_BETWEEN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_BETWEEN\"] = 22] = \"FILTER_OPERATOR_IS_NOT_BETWEEN\";\n return FilterOperator;\n}(FilterOperator || {});\nvar FilterType = /*#__PURE__*/function (FilterType) {\n FilterType[FilterType[\"FILTER_TYPE_INVALID\"] = 0] = \"FILTER_TYPE_INVALID\";\n FilterType[FilterType[\"FILTER_TYPE_STRING\"] = 1] = \"FILTER_TYPE_STRING\";\n FilterType[FilterType[\"FILTER_TYPE_INTEGER\"] = 2] = \"FILTER_TYPE_INTEGER\";\n FilterType[FilterType[\"FILTER_TYPE_DATE\"] = 3] = \"FILTER_TYPE_DATE\";\n FilterType[FilterType[\"FILTER_TYPE_FLOAT\"] = 4] = \"FILTER_TYPE_FLOAT\";\n FilterType[FilterType[\"FILTER_TYPE_BOOLEAN\"] = 5] = \"FILTER_TYPE_BOOLEAN\";\n FilterType[FilterType[\"FILTER_TYPE_TAG\"] = 6] = \"FILTER_TYPE_TAG\";\n return FilterType;\n}(FilterType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar AsyncWorkStatus = /*#__PURE__*/function (AsyncWorkStatus) {\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_INVALID\"] = 0] = \"ASYNC_WORK_STATUS_INVALID\";\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_IN_PROGRESS\"] = 1] = \"ASYNC_WORK_STATUS_IN_PROGRESS\";\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_COMPLETE\"] = 2] = \"ASYNC_WORK_STATUS_COMPLETE\";\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_ERROR\"] = 3] = \"ASYNC_WORK_STATUS_ERROR\";\n return AsyncWorkStatus;\n}(AsyncWorkStatus || {});\nvar CampaignQuotaCategory = /*#__PURE__*/function (CampaignQuotaCategory) {\n CampaignQuotaCategory[CampaignQuotaCategory[\"CAMPAIGN_QUOTA_TYPE_INVALID\"] = 0] = \"CAMPAIGN_QUOTA_TYPE_INVALID\";\n CampaignQuotaCategory[CampaignQuotaCategory[\"CAMPAIGN_QUOTA_TYPE_EMAIL\"] = 1] = \"CAMPAIGN_QUOTA_TYPE_EMAIL\";\n CampaignQuotaCategory[CampaignQuotaCategory[\"CAMPAIGN_QUOTA_TYPE_SMS\"] = 2] = \"CAMPAIGN_QUOTA_TYPE_SMS\";\n return CampaignQuotaCategory;\n}(CampaignQuotaCategory || {});\nvar CampaignScheduleStatus = /*#__PURE__*/function (CampaignScheduleStatus) {\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_UNSPECIFIED\"] = 0] = \"CAMPAIGN_SCHEDULE_STATUS_UNSPECIFIED\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_ACTIVE\"] = 1] = \"CAMPAIGN_SCHEDULE_STATUS_ACTIVE\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_WAITING_ON_RATE_LIMIT\"] = 2] = \"CAMPAIGN_SCHEDULE_STATUS_WAITING_ON_RATE_LIMIT\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_STOPPED\"] = 3] = \"CAMPAIGN_SCHEDULE_STATUS_STOPPED\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_COMPLETED\"] = 4] = \"CAMPAIGN_SCHEDULE_STATUS_COMPLETED\";\n return CampaignScheduleStatus;\n}(CampaignScheduleStatus || {});\nvar CampaignState = /*#__PURE__*/function (CampaignState) {\n CampaignState[CampaignState[\"CAMPAIGN_STATE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STATE_UNSPECIFIED\";\n CampaignState[CampaignState[\"CAMPAIGN_STATE_ACTIVE\"] = 1] = \"CAMPAIGN_STATE_ACTIVE\";\n CampaignState[CampaignState[\"CAMPAIGN_STATE_IDLE\"] = 2] = \"CAMPAIGN_STATE_IDLE\";\n return CampaignState;\n}(CampaignState || {});\nvar CampaignStepEventType = /*#__PURE__*/function (CampaignStepEventType) {\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STEP_EVENT_TYPE_UNSPECIFIED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_PROCESSED\"] = 1] = \"CAMPAIGN_STEP_EVENT_TYPE_PROCESSED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_DROPPED\"] = 2] = \"CAMPAIGN_STEP_EVENT_TYPE_DROPPED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_DELIVERED\"] = 3] = \"CAMPAIGN_STEP_EVENT_TYPE_DELIVERED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_DEFERRED\"] = 4] = \"CAMPAIGN_STEP_EVENT_TYPE_DEFERRED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_BOUNCE\"] = 5] = \"CAMPAIGN_STEP_EVENT_TYPE_BOUNCE\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_OPEN\"] = 6] = \"CAMPAIGN_STEP_EVENT_TYPE_OPEN\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_CLICK\"] = 7] = \"CAMPAIGN_STEP_EVENT_TYPE_CLICK\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_SPAM_REPORT\"] = 8] = \"CAMPAIGN_STEP_EVENT_TYPE_SPAM_REPORT\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_UNSUBSCRIBE\"] = 9] = \"CAMPAIGN_STEP_EVENT_TYPE_UNSUBSCRIBE\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_CREATED\"] = 10] = \"CAMPAIGN_STEP_EVENT_TYPE_CREATED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_NOT_REQUIRED\"] = 11] = \"CAMPAIGN_STEP_EVENT_TYPE_NOT_REQUIRED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_REFRESHED\"] = 12] = \"CAMPAIGN_STEP_EVENT_TYPE_REFRESHED\";\n return CampaignStepEventType;\n}(CampaignStepEventType || {});\nvar CampaignStepSendStatusType = /*#__PURE__*/function (CampaignStepSendStatusType) {\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSPECIFIED\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSENT\"] = 1] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSENT\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_QUEUED\"] = 2] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_QUEUED\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENDING\"] = 3] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENDING\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENT\"] = 4] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENT\";\n return CampaignStepSendStatusType;\n}(CampaignStepSendStatusType || {});\nvar CampaignStepType = /*#__PURE__*/function (CampaignStepType) {\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STEP_TYPE_UNSPECIFIED\";\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_EMAIL\"] = 1] = \"CAMPAIGN_STEP_TYPE_EMAIL\";\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION\"] = 2] = \"CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION\";\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_SMS\"] = 3] = \"CAMPAIGN_STEP_TYPE_SMS\";\n return CampaignStepType;\n}(CampaignStepType || {});\nvar ContactType = /*#__PURE__*/function (ContactType) {\n ContactType[ContactType[\"CONTACT_TYPE_INVALID\"] = 0] = \"CONTACT_TYPE_INVALID\";\n ContactType[ContactType[\"CONTACT_TYPE_EMAIL\"] = 1] = \"CONTACT_TYPE_EMAIL\";\n return ContactType;\n}(ContactType || {});\nvar DaysOfTheWeek = /*#__PURE__*/function (DaysOfTheWeek) {\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_MONDAY\"] = 0] = \"DAYS_OF_THE_WEEK_MONDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_TUESDAY\"] = 1] = \"DAYS_OF_THE_WEEK_TUESDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_WEDNESDAY\"] = 2] = \"DAYS_OF_THE_WEEK_WEDNESDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_THURSDAY\"] = 3] = \"DAYS_OF_THE_WEEK_THURSDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_FRIDAY\"] = 4] = \"DAYS_OF_THE_WEEK_FRIDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_SATURDAY\"] = 5] = \"DAYS_OF_THE_WEEK_SATURDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_SUNDAY\"] = 6] = \"DAYS_OF_THE_WEEK_SUNDAY\";\n return DaysOfTheWeek;\n}(DaysOfTheWeek || {});\nvar DeletedTagsPolicy = /*#__PURE__*/function (DeletedTagsPolicy) {\n DeletedTagsPolicy[DeletedTagsPolicy[\"DELETED_TAGS_POLICY_EXCLUDE_FROM_RESPONSE\"] = 0] = \"DELETED_TAGS_POLICY_EXCLUDE_FROM_RESPONSE\";\n return DeletedTagsPolicy;\n}(DeletedTagsPolicy || {});\nvar DuplicateCampaignStepStatus = /*#__PURE__*/function (DuplicateCampaignStepStatus) {\n DuplicateCampaignStepStatus[DuplicateCampaignStepStatus[\"DUPLICATE_CAMPAIGN_STEP_STATUS_INVALID\"] = 0] = \"DUPLICATE_CAMPAIGN_STEP_STATUS_INVALID\";\n DuplicateCampaignStepStatus[DuplicateCampaignStepStatus[\"DUPLICATE_CAMPAIGN_STEP_STATUS_IN_PROGRESS\"] = 1] = \"DUPLICATE_CAMPAIGN_STEP_STATUS_IN_PROGRESS\";\n DuplicateCampaignStepStatus[DuplicateCampaignStepStatus[\"DUPLICATE_CAMPAIGN_STEP_STATUS_COMPLETE\"] = 2] = \"DUPLICATE_CAMPAIGN_STEP_STATUS_COMPLETE\";\n return DuplicateCampaignStepStatus;\n}(DuplicateCampaignStepStatus || {});\nvar Feature = /*#__PURE__*/function (Feature) {\n Feature[Feature[\"SEND_UNKNOWN\"] = 0] = \"SEND_UNKNOWN\";\n Feature[Feature[\"SEND_SMS\"] = 1] = \"SEND_SMS\";\n Feature[Feature[\"SEND_EMAIL\"] = 2] = \"SEND_EMAIL\";\n Feature[Feature[\"SEND_SNAPSHOT\"] = 3] = \"SEND_SNAPSHOT\";\n return Feature;\n}(Feature || {});\nvar Focuses = /*#__PURE__*/function (Focuses) {\n Focuses[Focuses[\"FOCUSES_UNSPECIFIED\"] = 0] = \"FOCUSES_UNSPECIFIED\";\n Focuses[Focuses[\"FOCUSES_ACQUIRE\"] = 1] = \"FOCUSES_ACQUIRE\";\n Focuses[Focuses[\"FOCUSES_UPSELL\"] = 2] = \"FOCUSES_UPSELL\";\n Focuses[Focuses[\"FOCUSES_ADOPT\"] = 3] = \"FOCUSES_ADOPT\";\n Focuses[Focuses[\"FOCUSES_NONE\"] = 4] = \"FOCUSES_NONE\";\n return Focuses;\n}(Focuses || {});\nvar Period = /*#__PURE__*/function (Period) {\n Period[Period[\"PERIOD_INVALID\"] = 0] = \"PERIOD_INVALID\";\n Period[Period[\"PERIOD_MONTH\"] = 1] = \"PERIOD_MONTH\";\n return Period;\n}(Period || {});\nvar RecipientCampaignStatus = /*#__PURE__*/function (RecipientCampaignStatus) {\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_UNSPECIFIED\"] = 0] = \"RECIPIENT_CAMPAIGN_STATUS_UNSPECIFIED\";\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_ACTIVE\"] = 1] = \"RECIPIENT_CAMPAIGN_STATUS_ACTIVE\";\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_PAUSED\"] = 2] = \"RECIPIENT_CAMPAIGN_STATUS_PAUSED\";\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_COMPLETED\"] = 3] = \"RECIPIENT_CAMPAIGN_STATUS_COMPLETED\";\n return RecipientCampaignStatus;\n}(RecipientCampaignStatus || {});\nvar RecipientType = /*#__PURE__*/function (RecipientType) {\n RecipientType[RecipientType[\"RECIPIENT_TYPE_INVALID\"] = 0] = \"RECIPIENT_TYPE_INVALID\";\n RecipientType[RecipientType[\"RECIPIENT_TYPE_CRM_CONTACT\"] = 1] = \"RECIPIENT_TYPE_CRM_CONTACT\";\n RecipientType[RecipientType[\"RECIPIENT_TYPE_BUSINESS\"] = 2] = \"RECIPIENT_TYPE_BUSINESS\";\n return RecipientType;\n}(RecipientType || {});\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 || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"SORT_ORDER_INVALID\"] = 0] = \"SORT_ORDER_INVALID\";\n SortDirection[SortDirection[\"SORT_ORDER_ASCENDING\"] = 1] = \"SORT_ORDER_ASCENDING\";\n SortDirection[SortDirection[\"SORT_ORDER_DESCENDING\"] = 2] = \"SORT_ORDER_DESCENDING\";\n return SortDirection;\n}(SortDirection || {});\nvar SortField = /*#__PURE__*/function (SortField) {\n SortField[SortField[\"SORT_FIELDS_INVALID\"] = 0] = \"SORT_FIELDS_INVALID\";\n SortField[SortField[\"SORT_FIELDS_NAME\"] = 1] = \"SORT_FIELDS_NAME\";\n SortField[SortField[\"SORT_FIELDS_CREATED_AT\"] = 2] = \"SORT_FIELDS_CREATED_AT\";\n SortField[SortField[\"SORT_FIELDS_UPDATED_AT\"] = 3] = \"SORT_FIELDS_UPDATED_AT\";\n return SortField;\n}(SortField || {});\nvar Statuses = /*#__PURE__*/function (Statuses) {\n Statuses[Statuses[\"STATUSES_UNSPECIFIED\"] = 0] = \"STATUSES_UNSPECIFIED\";\n Statuses[Statuses[\"STATUSES_DRAFT\"] = 1] = \"STATUSES_DRAFT\";\n Statuses[Statuses[\"STATUSES_PUBLISHED\"] = 2] = \"STATUSES_PUBLISHED\";\n Statuses[Statuses[\"STATUSES_ACTIVE\"] = 3] = \"STATUSES_ACTIVE\";\n Statuses[Statuses[\"STATUSES_ARCHIVED\"] = 4] = \"STATUSES_ARCHIVED\";\n return Statuses;\n}(Statuses || {});\nvar TemplateStatus = /*#__PURE__*/function (TemplateStatus) {\n TemplateStatus[TemplateStatus[\"TEMPLATE_STATUS_INVALID\"] = 0] = \"TEMPLATE_STATUS_INVALID\";\n TemplateStatus[TemplateStatus[\"TEMPLATE_STATUS_DRAFT\"] = 1] = \"TEMPLATE_STATUS_DRAFT\";\n TemplateStatus[TemplateStatus[\"TEMPLATE_STATUS_PUBLISHED\"] = 2] = \"TEMPLATE_STATUS_PUBLISHED\";\n return TemplateStatus;\n}(TemplateStatus || {});\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 Colors {\n static fromProto(proto) {\n let m = new Colors();\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.textColor !== 'undefined') {\n toReturn['textColor'] = this.textColor;\n }\n if (typeof this.titleColor !== 'undefined') {\n toReturn['titleColor'] = this.titleColor;\n }\n if (typeof this.subtitleColor !== 'undefined') {\n toReturn['subtitleColor'] = this.subtitleColor;\n }\n if (typeof this.linkColor !== 'undefined') {\n toReturn['linkColor'] = this.linkColor;\n }\n if (typeof this.footerTextColor !== 'undefined') {\n toReturn['footerTextColor'] = this.footerTextColor;\n }\n if (typeof this.textBackground !== 'undefined') {\n toReturn['textBackground'] = this.textBackground;\n }\n if (typeof this.pageBackground !== 'undefined') {\n toReturn['pageBackground'] = this.pageBackground;\n }\n return toReturn;\n }\n}\nclass EmailBuilderConfiguration {\n static fromProto(proto) {\n let m = new EmailBuilderConfiguration();\n m = Object.assign(m, proto);\n if (proto.googleAnalyticsOptions) {\n m.googleAnalyticsOptions = GoogleAnalyticsOptions.fromProto(proto.googleAnalyticsOptions);\n }\n if (proto.pageSetup) {\n m.pageSetup = PageSetup.fromProto(proto.pageSetup);\n }\n if (proto.topLogo) {\n m.topLogo = TopLogo.fromProto(proto.topLogo);\n }\n if (proto.footer) {\n m.footer = Footer.fromProto(proto.footer);\n }\n if (proto.colors) {\n m.colors = Colors.fromProto(proto.colors);\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.googleAnalyticsOptions !== 'undefined' && this.googleAnalyticsOptions !== null) {\n toReturn['googleAnalyticsOptions'] = 'toApiJson' in this.googleAnalyticsOptions ? this.googleAnalyticsOptions.toApiJson() : this.googleAnalyticsOptions;\n }\n if (typeof this.pageSetup !== 'undefined' && this.pageSetup !== null) {\n toReturn['pageSetup'] = 'toApiJson' in this.pageSetup ? this.pageSetup.toApiJson() : this.pageSetup;\n }\n if (typeof this.topLogo !== 'undefined' && this.topLogo !== null) {\n toReturn['topLogo'] = 'toApiJson' in this.topLogo ? this.topLogo.toApiJson() : this.topLogo;\n }\n if (typeof this.footer !== 'undefined' && this.footer !== null) {\n toReturn['footer'] = 'toApiJson' in this.footer ? this.footer.toApiJson() : this.footer;\n }\n if (typeof this.contentBlocks !== 'undefined') {\n toReturn['contentBlocks'] = this.contentBlocks;\n }\n if (typeof this.colors !== 'undefined' && this.colors !== null) {\n toReturn['colors'] = 'toApiJson' in this.colors ? this.colors.toApiJson() : this.colors;\n }\n return toReturn;\n }\n}\nclass EmailBuilderTemplate {\n static fromProto(proto) {\n let m = new EmailBuilderTemplate();\n m = Object.assign(m, proto);\n if (proto.emailBuilderConfiguration) {\n m.emailBuilderConfiguration = EmailBuilderConfiguration.fromProto(proto.emailBuilderConfiguration);\n }\n if (proto.campaignFocus) {\n m.campaignFocus = enumStringToValue$4(EmailBuilderTemplateFocuses, proto.campaignFocus);\n }\n if (proto.status) {\n m.status = enumStringToValue$4(EmailBuilderTemplateStatuses, proto.status);\n }\n if (proto.parent) {\n m.parent = TemplateReference.fromProto(proto.parent);\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.subjectLine !== 'undefined') {\n toReturn['subjectLine'] = this.subjectLine;\n }\n if (typeof this.previewText !== 'undefined') {\n toReturn['previewText'] = this.previewText;\n }\n if (typeof this.lastModifiedBy !== 'undefined') {\n toReturn['lastModifiedBy'] = this.lastModifiedBy;\n }\n if (typeof this.emailBuilderConfiguration !== 'undefined' && this.emailBuilderConfiguration !== null) {\n toReturn['emailBuilderConfiguration'] = 'toApiJson' in this.emailBuilderConfiguration ? this.emailBuilderConfiguration.toApiJson() : this.emailBuilderConfiguration;\n }\n if (typeof this.createdBy !== 'undefined') {\n toReturn['createdBy'] = this.createdBy;\n }\n if (typeof this.campaignFocus !== 'undefined') {\n toReturn['campaignFocus'] = this.campaignFocus;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.parent !== 'undefined' && this.parent !== null) {\n toReturn['parent'] = 'toApiJson' in this.parent ? this.parent.toApiJson() : this.parent;\n }\n return toReturn;\n }\n}\nclass Footer {\n static fromProto(proto) {\n let m = new Footer();\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.disclaimer !== 'undefined') {\n toReturn['disclaimer'] = this.disclaimer;\n }\n if (typeof this.showContactInfo !== 'undefined') {\n toReturn['showContactInfo'] = this.showContactInfo;\n }\n if (typeof this.showUnsubscribeLinks !== 'undefined') {\n toReturn['showUnsubscribeLinks'] = this.showUnsubscribeLinks;\n }\n return toReturn;\n }\n}\nclass GoogleAnalyticsOptions {\n static fromProto(proto) {\n let m = new GoogleAnalyticsOptions();\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.campaignName !== 'undefined') {\n toReturn['campaignName'] = this.campaignName;\n }\n if (typeof this.campaignSource !== 'undefined') {\n toReturn['campaignSource'] = this.campaignSource;\n }\n return toReturn;\n }\n}\nclass PageSetup {\n static fromProto(proto) {\n let m = new PageSetup();\n m = Object.assign(m, proto);\n if (proto.outerWidth) {\n m.outerWidth = parseInt(proto.outerWidth, 10);\n }\n if (proto.innerWidth) {\n m.innerWidth = parseInt(proto.innerWidth, 10);\n }\n if (proto.topPadding) {\n m.topPadding = parseInt(proto.topPadding, 10);\n }\n if (proto.bottomContentPadding) {\n m.bottomContentPadding = parseInt(proto.bottomContentPadding, 10);\n }\n if (proto.innerHorizontalPadding) {\n m.innerHorizontalPadding = parseInt(proto.innerHorizontalPadding, 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.outerWidth !== 'undefined') {\n toReturn['outerWidth'] = this.outerWidth;\n }\n if (typeof this.innerWidth !== 'undefined') {\n toReturn['innerWidth'] = this.innerWidth;\n }\n if (typeof this.topPadding !== 'undefined') {\n toReturn['topPadding'] = this.topPadding;\n }\n if (typeof this.bottomContentPadding !== 'undefined') {\n toReturn['bottomContentPadding'] = this.bottomContentPadding;\n }\n if (typeof this.innerHorizontalPadding !== 'undefined') {\n toReturn['innerHorizontalPadding'] = this.innerHorizontalPadding;\n }\n return toReturn;\n }\n}\nclass TemplateReference {\n static fromProto(proto) {\n let m = new TemplateReference();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass TopLogo {\n static fromProto(proto) {\n let m = new TopLogo();\n m = Object.assign(m, proto);\n if (proto.width) {\n m.width = parseInt(proto.width, 10);\n }\n if (proto.align) {\n m.align = enumStringToValue$4(ImageAlign, proto.align);\n }\n if (proto.topPadding) {\n m.topPadding = parseInt(proto.topPadding, 10);\n }\n if (proto.bottomPadding) {\n m.bottomPadding = parseInt(proto.bottomPadding, 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.showLogo !== 'undefined') {\n toReturn['showLogo'] = this.showLogo;\n }\n if (typeof this.customImageUrl !== 'undefined') {\n toReturn['customImageUrl'] = this.customImageUrl;\n }\n if (typeof this.width !== 'undefined') {\n toReturn['width'] = this.width;\n }\n if (typeof this.align !== 'undefined') {\n toReturn['align'] = this.align;\n }\n if (typeof this.topPadding !== 'undefined') {\n toReturn['topPadding'] = this.topPadding;\n }\n if (typeof this.bottomPadding !== 'undefined') {\n toReturn['bottomPadding'] = this.bottomPadding;\n }\n if (typeof this.link !== 'undefined') {\n toReturn['link'] = this.link;\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 FieldMask {\n static fromProto(proto) {\n let m = new FieldMask();\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.paths !== 'undefined') {\n toReturn['paths'] = this.paths;\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 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$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Filter {\n static fromProto(proto) {\n let m = new Filter();\n m = Object.assign(m, proto);\n if (proto.operator) {\n m.operator = enumStringToValue$1(FilterOperator, proto.operator);\n }\n if (proto.values) {\n m.values = proto.values.map(FilterValue.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.fieldId !== 'undefined') {\n toReturn['fieldId'] = this.fieldId;\n }\n if (typeof this.operator !== 'undefined') {\n toReturn['operator'] = this.operator;\n }\n if (typeof this.values !== 'undefined' && this.values !== null) {\n toReturn['values'] = 'toApiJson' in this.values ? this.values.toApiJson() : this.values;\n }\n if (typeof this.floatTolerance !== 'undefined') {\n toReturn['floatTolerance'] = this.floatTolerance;\n }\n return toReturn;\n }\n}\nclass FilterGroup {\n static fromProto(proto) {\n let m = new FilterGroup();\n m = Object.assign(m, proto);\n if (proto.operator) {\n m.operator = enumStringToValue$1(FilterGroupOperator, proto.operator);\n }\n if (proto.filters) {\n m.filters = proto.filters.map(Filter.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.operator !== 'undefined') {\n toReturn['operator'] = this.operator;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n return toReturn;\n }\n}\nclass FilterValue {\n static fromProto(proto) {\n let m = new FilterValue();\n m = Object.assign(m, proto);\n if (proto.integer) {\n m.integer = parseInt(proto.integer, 10);\n }\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.dateDefault) {\n m.dateDefault = enumStringToValue$1(DateDefault, proto.dateDefault);\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.boolean !== 'undefined') {\n toReturn['boolean'] = this.boolean;\n }\n if (typeof this.integer !== 'undefined') {\n toReturn['integer'] = this.integer;\n }\n if (typeof this.float !== 'undefined') {\n toReturn['float'] = this.float;\n }\n if (typeof this.string !== 'undefined') {\n toReturn['string'] = this.string;\n }\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.dateDefault !== 'undefined') {\n toReturn['dateDefault'] = this.dateDefault;\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 RecipientClickStatsAccount {\n static fromProto(proto) {\n let m = new RecipientClickStatsAccount();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass ActivateProductForSenderRequest {\n static fromProto(proto) {\n let m = new ActivateProductForSenderRequest();\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.sku !== 'undefined') {\n toReturn['sku'] = this.sku;\n }\n return toReturn;\n }\n}\nclass AddContactToCampaignRequest {\n static fromProto(proto) {\n let m = new AddContactToCampaignRequest();\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 = RecipientV2.fromProto(proto.recipient);\n }\n if (proto.date) {\n m.date = new Date(proto.date);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\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.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n return toReturn;\n }\n}\nclass AddContactToCampaignResponse {\n static fromProto(proto) {\n let m = new AddContactToCampaignResponse();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n return toReturn;\n }\n}\nclass AddStepToCampaignRequest {\n static fromProto(proto) {\n let m = new AddStepToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.stepType) {\n m.stepType = enumStringToValue(CampaignStepType, proto.stepType);\n }\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.stepType !== 'undefined') {\n toReturn['stepType'] = this.stepType;\n }\n if (typeof this.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass AddTagToCampaignRequest {\n static fromProto(proto) {\n let m = new AddTagToCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n return toReturn;\n }\n}\nclass BulkAddContactsToCampaignRequest {\n static fromProto(proto) {\n let m = new BulkAddContactsToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.criteria) {\n m.criteria = RecipientCriteria.fromProto(proto.criteria);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\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.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.criteria !== 'undefined' && this.criteria !== null) {\n toReturn['criteria'] = 'toApiJson' in this.criteria ? this.criteria.toApiJson() : this.criteria;\n }\n return toReturn;\n }\n}\nclass CampaignDetailStats {\n static fromProto(proto) {\n let m = new CampaignDetailStats();\n m = Object.assign(m, proto);\n if (proto.active) {\n m.active = parseInt(proto.active, 10);\n }\n if (proto.clicksPerOpenedEmail) {\n m.clicksPerOpenedEmail = parseInt(proto.clicksPerOpenedEmail, 10);\n }\n if (proto.completed) {\n m.completed = parseInt(proto.completed, 10);\n }\n if (proto.delivered) {\n m.delivered = parseInt(proto.delivered, 10);\n }\n if (proto.opened) {\n m.opened = parseInt(proto.opened, 10);\n }\n if (proto.sent) {\n m.sent = parseInt(proto.sent, 10);\n }\n if (proto.stopped) {\n m.stopped = parseInt(proto.stopped, 10);\n }\n if (proto.totalAccounts) {\n m.totalAccounts = parseInt(proto.totalAccounts, 10);\n }\n if (proto.totalLeads) {\n m.totalLeads = parseInt(proto.totalLeads, 10);\n }\n if (proto.totalRecipients) {\n m.totalRecipients = parseInt(proto.totalRecipients, 10);\n }\n if (proto.undeliverable) {\n m.undeliverable = parseInt(proto.undeliverable, 10);\n }\n if (proto.waitingOnRateLimit) {\n m.waitingOnRateLimit = parseInt(proto.waitingOnRateLimit, 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.active !== 'undefined') {\n toReturn['active'] = this.active;\n }\n if (typeof this.clicksPerOpenedEmail !== 'undefined') {\n toReturn['clicksPerOpenedEmail'] = this.clicksPerOpenedEmail;\n }\n if (typeof this.completed !== 'undefined') {\n toReturn['completed'] = this.completed;\n }\n if (typeof this.delivered !== 'undefined') {\n toReturn['delivered'] = this.delivered;\n }\n if (typeof this.opened !== 'undefined') {\n toReturn['opened'] = this.opened;\n }\n if (typeof this.sent !== 'undefined') {\n toReturn['sent'] = this.sent;\n }\n if (typeof this.stopped !== 'undefined') {\n toReturn['stopped'] = this.stopped;\n }\n if (typeof this.totalAccounts !== 'undefined') {\n toReturn['totalAccounts'] = this.totalAccounts;\n }\n if (typeof this.totalLeads !== 'undefined') {\n toReturn['totalLeads'] = this.totalLeads;\n }\n if (typeof this.totalRecipients !== 'undefined') {\n toReturn['totalRecipients'] = this.totalRecipients;\n }\n if (typeof this.undeliverable !== 'undefined') {\n toReturn['undeliverable'] = this.undeliverable;\n }\n if (typeof this.waitingOnRateLimit !== 'undefined') {\n toReturn['waitingOnRateLimit'] = this.waitingOnRateLimit;\n }\n return toReturn;\n }\n}\nclass CampaignRecipient {\n static fromProto(proto) {\n let m = new CampaignRecipient();\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n return toReturn;\n }\n}\nclass CampaignStepEvent {\n static fromProto(proto) {\n let m = new CampaignStepEvent();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue(CampaignStepEventType, proto.eventType);\n }\n if (proto.eventDate) {\n m.eventDate = new Date(proto.eventDate);\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.eventDate !== 'undefined' && this.eventDate !== null) {\n toReturn['eventDate'] = 'toApiJson' in this.eventDate ? this.eventDate.toApiJson() : this.eventDate;\n }\n return toReturn;\n }\n}\nclass CampaignStepInterface {\n static fromProto(proto) {\n let m = new CampaignStepInterface();\n m = Object.assign(m, proto);\n if (proto.stepType) {\n m.stepType = enumStringToValue(CampaignStepType, proto.stepType);\n }\n if (proto.secondsAfterLastEmail) {\n m.secondsAfterLastEmail = parseInt(proto.secondsAfterLastEmail, 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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.stepType !== 'undefined') {\n toReturn['stepType'] = this.stepType;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.secondsAfterLastEmail !== 'undefined') {\n toReturn['secondsAfterLastEmail'] = this.secondsAfterLastEmail;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass CampaignStepStats {\n static fromProto(proto) {\n let m = new CampaignStepStats();\n m = Object.assign(m, proto);\n if (proto.delivered) {\n m.delivered = parseInt(proto.delivered, 10);\n }\n if (proto.opens) {\n m.opens = parseInt(proto.opens, 10);\n }\n if (proto.bounced) {\n m.bounced = parseInt(proto.bounced, 10);\n }\n if (proto.spam) {\n m.spam = parseInt(proto.spam, 10);\n }\n if (proto.unsubscribed) {\n m.unsubscribed = parseInt(proto.unsubscribed, 10);\n }\n if (proto.dropped) {\n m.dropped = parseInt(proto.dropped, 10);\n }\n if (proto.clicks) {\n m.clicks = parseInt(proto.clicks, 10);\n }\n if (proto.pending) {\n m.pending = parseInt(proto.pending, 10);\n }\n if (proto.created) {\n m.created = parseInt(proto.created, 10);\n }\n if (proto.refreshed) {\n m.refreshed = parseInt(proto.refreshed, 10);\n }\n if (proto.notRequired) {\n m.notRequired = parseInt(proto.notRequired, 10);\n }\n if (proto.sent) {\n m.sent = parseInt(proto.sent, 10);\n }\n if (proto.stopped) {\n m.stopped = parseInt(proto.stopped, 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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.delivered !== 'undefined') {\n toReturn['delivered'] = this.delivered;\n }\n if (typeof this.opens !== 'undefined') {\n toReturn['opens'] = this.opens;\n }\n if (typeof this.openRate !== 'undefined') {\n toReturn['openRate'] = this.openRate;\n }\n if (typeof this.clickToOpenRate !== 'undefined') {\n toReturn['clickToOpenRate'] = this.clickToOpenRate;\n }\n if (typeof this.bounced !== 'undefined') {\n toReturn['bounced'] = this.bounced;\n }\n if (typeof this.spam !== 'undefined') {\n toReturn['spam'] = this.spam;\n }\n if (typeof this.unsubscribed !== 'undefined') {\n toReturn['unsubscribed'] = this.unsubscribed;\n }\n if (typeof this.dropped !== 'undefined') {\n toReturn['dropped'] = this.dropped;\n }\n if (typeof this.clicks !== 'undefined') {\n toReturn['clicks'] = this.clicks;\n }\n if (typeof this.pending !== 'undefined') {\n toReturn['pending'] = this.pending;\n }\n if (typeof this.created !== 'undefined') {\n toReturn['created'] = this.created;\n }\n if (typeof this.refreshed !== 'undefined') {\n toReturn['refreshed'] = this.refreshed;\n }\n if (typeof this.notRequired !== 'undefined') {\n toReturn['notRequired'] = this.notRequired;\n }\n if (typeof this.sent !== 'undefined') {\n toReturn['sent'] = this.sent;\n }\n if (typeof this.stopped !== 'undefined') {\n toReturn['stopped'] = this.stopped;\n }\n return toReturn;\n }\n}\nclass CampaignTag {\n static fromProto(proto) {\n let m = new CampaignTag();\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.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.colour !== 'undefined') {\n toReturn['colour'] = this.colour;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStatusRequest {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStatusRequest();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStatusResponse {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(AsyncWorkStatus, 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 if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStepStatusRequest {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStepStatusRequest();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStepStatusResponse {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStepStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(DuplicateCampaignStepStatus, 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 Contact {\n static fromProto(proto) {\n let m = new Contact();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(ContactType, 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 return toReturn;\n }\n}\nclass ConvertLegacyTemplateRequest {\n static fromProto(proto) {\n let m = new ConvertLegacyTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass ConvertLegacyTemplateResponse {\n static fromProto(proto) {\n let m = new ConvertLegacyTemplateResponse();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass CreateCampaignRequest {\n static fromProto(proto) {\n let m = new CreateCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass CreateCampaignResponse {\n static fromProto(proto) {\n let m = new CreateCampaignResponse();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass CreateEmailTemplateRequest {\n static fromProto(proto) {\n let m = new CreateEmailTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = EmailTemplateStruct.fromProto(proto.template);\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.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass CreateQuotaRequest {\n static fromProto(proto) {\n let m = new CreateQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.type) {\n m.type = enumStringToValue(CampaignQuotaCategory, proto.type);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n if (proto.quotaStartDate) {\n m.quotaStartDate = new Date(proto.quotaStartDate);\n }\n if (proto.quotaEndDate) {\n m.quotaEndDate = new Date(proto.quotaEndDate);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n if (typeof this.quotaStartDate !== 'undefined' && this.quotaStartDate !== null) {\n toReturn['quotaStartDate'] = 'toApiJson' in this.quotaStartDate ? this.quotaStartDate.toApiJson() : this.quotaStartDate;\n }\n if (typeof this.quotaEndDate !== 'undefined' && this.quotaEndDate !== null) {\n toReturn['quotaEndDate'] = 'toApiJson' in this.quotaEndDate ? this.quotaEndDate.toApiJson() : this.quotaEndDate;\n }\n return toReturn;\n }\n}\nclass CreateRecipientCampaignStepEventRequest {\n static fromProto(proto) {\n let m = new CreateRecipientCampaignStepEventRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.eventType) {\n m.eventType = enumStringToValue(CampaignStepEventType, proto.eventType);\n }\n if (proto.eventDate) {\n m.eventDate = new Date(proto.eventDate);\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventDate !== 'undefined' && this.eventDate !== null) {\n toReturn['eventDate'] = 'toApiJson' in this.eventDate ? this.eventDate.toApiJson() : this.eventDate;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.probablyBot !== 'undefined') {\n toReturn['probablyBot'] = this.probablyBot;\n }\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 CreateRecipientRequest {\n static fromProto(proto) {\n let m = new CreateRecipientRequest();\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 = RecipientV2.fromProto(proto.recipient);\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\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.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n return toReturn;\n }\n}\nclass CreateRequest {\n static fromProto(proto) {\n let m = new CreateRequest();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n return toReturn;\n }\n}\nclass CreateResponse {\n static fromProto(proto) {\n let m = new CreateResponse();\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 CreateTagRequest {\n static fromProto(proto) {\n let m = new CreateTagRequest();\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.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.colour !== 'undefined') {\n toReturn['colour'] = this.colour;\n }\n return toReturn;\n }\n}\nclass CreateTagResponse {\n static fromProto(proto) {\n let m = new CreateTagResponse();\n m = Object.assign(m, proto);\n if (proto.campaignTag) {\n m.campaignTag = CampaignTag.fromProto(proto.campaignTag);\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.campaignTag !== 'undefined' && this.campaignTag !== null) {\n toReturn['campaignTag'] = 'toApiJson' in this.campaignTag ? this.campaignTag.toApiJson() : this.campaignTag;\n }\n return toReturn;\n }\n}\nclass DateFilter {\n static fromProto(proto) {\n let m = new DateFilter();\n m = Object.assign(m, proto);\n if (proto.dateLte) {\n m.dateLte = new Date(proto.dateLte);\n }\n if (proto.dateGte) {\n m.dateGte = new Date(proto.dateGte);\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.dateLte !== 'undefined' && this.dateLte !== null) {\n toReturn['dateLte'] = 'toApiJson' in this.dateLte ? this.dateLte.toApiJson() : this.dateLte;\n }\n if (typeof this.dateGte !== 'undefined' && this.dateGte !== null) {\n toReturn['dateGte'] = 'toApiJson' in this.dateGte ? this.dateGte.toApiJson() : this.dateGte;\n }\n return toReturn;\n }\n}\nclass DeactivateProductForSenderRequest {\n static fromProto(proto) {\n let m = new DeactivateProductForSenderRequest();\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.sku !== 'undefined') {\n toReturn['sku'] = this.sku;\n }\n return toReturn;\n }\n}\nclass DeleteCampaignRequest {\n static fromProto(proto) {\n let m = new DeleteCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass DeleteRequest {\n static fromProto(proto) {\n let m = new DeleteRequest();\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 DeleteTagRequest {\n static fromProto(proto) {\n let m = new DeleteTagRequest();\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.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n return toReturn;\n }\n}\nclass DuplicateAndRecommendCampaignRequest {\n static fromProto(proto) {\n let m = new DuplicateAndRecommendCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.campaignDetails) {\n m.campaignDetails = DuplicateCampaignDetails.fromProto(proto.campaignDetails);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignDetails !== 'undefined' && this.campaignDetails !== null) {\n toReturn['campaignDetails'] = 'toApiJson' in this.campaignDetails ? this.campaignDetails.toApiJson() : this.campaignDetails;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignDetails {\n static fromProto(proto) {\n let m = new DuplicateCampaignDetails();\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 return toReturn;\n }\n}\nclass DuplicateCampaignRequest {\n static fromProto(proto) {\n let m = new DuplicateCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.campaignDetails) {\n m.campaignDetails = DuplicateCampaignDetails.fromProto(proto.campaignDetails);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.campaignDetails !== 'undefined' && this.campaignDetails !== null) {\n toReturn['campaignDetails'] = 'toApiJson' in this.campaignDetails ? this.campaignDetails.toApiJson() : this.campaignDetails;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignRequestV2 {\n static fromProto(proto) {\n let m = new DuplicateCampaignRequestV2();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.campaignDetails) {\n m.campaignDetails = DuplicateCampaignDetails.fromProto(proto.campaignDetails);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\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.campaignDetails !== 'undefined' && this.campaignDetails !== null) {\n toReturn['campaignDetails'] = 'toApiJson' in this.campaignDetails ? this.campaignDetails.toApiJson() : this.campaignDetails;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignResponse {\n static fromProto(proto) {\n let m = new DuplicateCampaignResponse();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignStepRequest {\n static fromProto(proto) {\n let m = new DuplicateCampaignStepRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignStepResponse {\n static fromProto(proto) {\n let m = new DuplicateCampaignStepResponse();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass EmailTemplateStruct {\n static fromProto(proto) {\n let m = new EmailTemplateStruct();\n m = Object.assign(m, proto);\n if (proto.campaignFocus) {\n m.campaignFocus = enumStringToValue(Focuses, proto.campaignFocus);\n }\n if (proto.status) {\n m.status = enumStringToValue(TemplateStatus, proto.status);\n }\n if (proto.version) {\n m.version = parseInt(proto.version, 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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.campaignFocus !== 'undefined') {\n toReturn['campaignFocus'] = this.campaignFocus;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.updatedByUserEmail !== 'undefined') {\n toReturn['updatedByUserEmail'] = this.updatedByUserEmail;\n }\n if (typeof this.createdByUserEmail !== 'undefined') {\n toReturn['createdByUserEmail'] = this.createdByUserEmail;\n }\n if (typeof this.publishedByUserEmail !== 'undefined') {\n toReturn['publishedByUserEmail'] = this.publishedByUserEmail;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlBody !== 'undefined') {\n toReturn['htmlBody'] = this.htmlBody;\n }\n if (typeof this.useFullHtml !== 'undefined') {\n toReturn['useFullHtml'] = this.useFullHtml;\n }\n if (typeof this.fullHtml !== 'undefined') {\n toReturn['fullHtml'] = this.fullHtml;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n return toReturn;\n }\n}\nclass ExecuteStepRequest {\n static fromProto(proto) {\n let m = new ExecuteStepRequest();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\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 ExportRecipientLinkClickStatsRequest {\n static fromProto(proto) {\n let m = new ExportRecipientLinkClickStatsRequest();\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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass ExtractLinkTrackingDataForTemplateRequest {\n static fromProto(proto) {\n let m = new ExtractLinkTrackingDataForTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.hydratedTemplateContent !== 'undefined') {\n toReturn['hydratedTemplateContent'] = this.hydratedTemplateContent;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\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.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass ExtractLinkTrackingDataForTemplateResponse {\n static fromProto(proto) {\n let m = new ExtractLinkTrackingDataForTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.links) {\n m.links = proto.links.map(LinkTrackingData.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.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n return toReturn;\n }\n}\nclass GetAggregatedCampaignStatsRequest {\n static fromProto(proto) {\n let m = new GetAggregatedCampaignStatsRequest();\n m = Object.assign(m, proto);\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.states) {\n m.states = proto.states.map(v => enumStringToValue(CampaignState, v));\n }\n if (proto.dateFilter) {\n m.dateFilter = DateFilter.fromProto(proto.dateFilter);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.states !== 'undefined') {\n toReturn['states'] = this.states;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.dateFilter !== 'undefined' && this.dateFilter !== null) {\n toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? this.dateFilter.toApiJson() : this.dateFilter;\n }\n return toReturn;\n }\n}\nclass GetAggregatedCampaignStatsResponse {\n static fromProto(proto) {\n let m = new GetAggregatedCampaignStatsResponse();\n m = Object.assign(m, proto);\n if (proto.totalAccounts) {\n m.totalAccounts = parseInt(proto.totalAccounts, 10);\n }\n if (proto.totalActiveCampaigns) {\n m.totalActiveCampaigns = parseInt(proto.totalActiveCampaigns, 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.totalAccounts !== 'undefined') {\n toReturn['totalAccounts'] = this.totalAccounts;\n }\n if (typeof this.averageClickThroughRate !== 'undefined') {\n toReturn['averageClickThroughRate'] = this.averageClickThroughRate;\n }\n if (typeof this.averageOpenRate !== 'undefined') {\n toReturn['averageOpenRate'] = this.averageOpenRate;\n }\n if (typeof this.totalActiveCampaigns !== 'undefined') {\n toReturn['totalActiveCampaigns'] = this.totalActiveCampaigns;\n }\n return toReturn;\n }\n}\nclass GetAvailableStepTypesForSenderRequest {\n static fromProto(proto) {\n let m = new GetAvailableStepTypesForSenderRequest();\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 GetAvailableStepTypesForSenderResponse {\n static fromProto(proto) {\n let m = new GetAvailableStepTypesForSenderResponse();\n m = Object.assign(m, proto);\n if (proto.availableStepTypes) {\n m.availableStepTypes = proto.availableStepTypes.map(v => enumStringToValue(Feature, 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.availableStepTypes !== 'undefined') {\n toReturn['availableStepTypes'] = this.availableStepTypes;\n }\n return toReturn;\n }\n}\nclass GetCampaignDetailsStatsRequest {\n static fromProto(proto) {\n let m = new GetCampaignDetailsStatsRequest();\n m = Object.assign(m, proto);\n if (proto.dateFilter) {\n m.dateFilter = DateFilter.fromProto(proto.dateFilter);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.dateFilter !== 'undefined' && this.dateFilter !== null) {\n toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? this.dateFilter.toApiJson() : this.dateFilter;\n }\n return toReturn;\n }\n}\nclass GetCampaignDetailsStatsResponse {\n static fromProto(proto) {\n let m = new GetCampaignDetailsStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = CampaignDetailStats.fromProto(proto.stats);\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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n return toReturn;\n }\n}\nclass GetCampaignQuotaRequest {\n static fromProto(proto) {\n let m = new GetCampaignQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.type) {\n m.type = enumStringToValue(CampaignQuotaCategory, proto.type);\n }\n if (proto.datePeriod) {\n m.datePeriod = enumStringToValue(Period, proto.datePeriod);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.datePeriod !== 'undefined') {\n toReturn['datePeriod'] = this.datePeriod;\n }\n return toReturn;\n }\n}\nclass GetCampaignQuotaResponse {\n static fromProto(proto) {\n let m = new GetCampaignQuotaResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n if (proto.quotaStartDate) {\n m.quotaStartDate = new Date(proto.quotaStartDate);\n }\n if (proto.quotaEndDate) {\n m.quotaEndDate = new Date(proto.quotaEndDate);\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.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n if (typeof this.quotaStartDate !== 'undefined' && this.quotaStartDate !== null) {\n toReturn['quotaStartDate'] = 'toApiJson' in this.quotaStartDate ? this.quotaStartDate.toApiJson() : this.quotaStartDate;\n }\n if (typeof this.quotaEndDate !== 'undefined' && this.quotaEndDate !== null) {\n toReturn['quotaEndDate'] = 'toApiJson' in this.quotaEndDate ? this.quotaEndDate.toApiJson() : this.quotaEndDate;\n }\n return toReturn;\n }\n}\nclass GetCampaignRequest {\n static fromProto(proto) {\n let m = new GetCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass GetCampaignResponse {\n static fromProto(proto) {\n let m = new GetCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.campaign) {\n m.campaign = GetterCampaignData.fromProto(proto.campaign);\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.campaign !== 'undefined' && this.campaign !== null) {\n toReturn['campaign'] = 'toApiJson' in this.campaign ? this.campaign.toApiJson() : this.campaign;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepContentRequest {\n static fromProto(proto) {\n let m = new GetCampaignStepContentRequest();\n m = Object.assign(m, proto);\n if (proto.stepData) {\n m.stepData = Object.keys(proto.stepData).reduce((obj, k) => {\n obj[k] = proto.stepData[k];\n return obj;\n }, {});\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.stepData !== 'undefined' && this.stepData !== null) {\n toReturn['stepData'] = 'toApiJson' in this.stepData ? this.stepData.toApiJson() : this.stepData;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepContentResponse {\n static fromProto(proto) {\n let m = new GetCampaignStepContentResponse();\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.html !== 'undefined') {\n toReturn['html'] = this.html;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepStatsRequest {\n static fromProto(proto) {\n let m = new GetCampaignStepStatsRequest();\n m = Object.assign(m, proto);\n if (proto.dateFilter) {\n m.dateFilter = DateFilter.fromProto(proto.dateFilter);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.dateFilter !== 'undefined' && this.dateFilter !== null) {\n toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? this.dateFilter.toApiJson() : this.dateFilter;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepStatsResponse {\n static fromProto(proto) {\n let m = new GetCampaignStepStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stepStats) {\n m.stepStats = proto.stepStats.map(CampaignStepStats.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.stepStats !== 'undefined' && this.stepStats !== null) {\n toReturn['stepStats'] = 'toApiJson' in this.stepStats ? this.stepStats.toApiJson() : this.stepStats;\n }\n return toReturn;\n }\n}\nclass GetConfigRequest {\n static fromProto(proto) {\n let m = new GetConfigRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass GetConfigResponse {\n static fromProto(proto) {\n let m = new GetConfigResponse();\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.timezone !== 'undefined') {\n toReturn['timezone'] = this.timezone;\n }\n if (typeof this.days !== 'undefined') {\n toReturn['days'] = this.days;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplateRequest {\n static fromProto(proto) {\n let m = new GetEmailTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplateResponse {\n static fromProto(proto) {\n let m = new GetEmailTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = EmailTemplateStruct.fromProto(proto.template);\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.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplatesRequest {\n static fromProto(proto) {\n let m = new GetEmailTemplatesRequest();\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.templateIds !== 'undefined') {\n toReturn['templateIds'] = this.templateIds;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplatesResponse {\n static fromProto(proto) {\n let m = new GetEmailTemplatesResponse();\n m = Object.assign(m, proto);\n if (proto.templates) {\n m.templates = proto.templates.map(EmailTemplateStruct.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.templates !== 'undefined' && this.templates !== null) {\n toReturn['templates'] = 'toApiJson' in this.templates ? this.templates.toApiJson() : this.templates;\n }\n return toReturn;\n }\n}\nclass GetLinkStatsRequest {\n static fromProto(proto) {\n let m = new GetLinkStatsRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n return toReturn;\n }\n}\nclass GetLinkStatsResponse {\n static fromProto(proto) {\n let m = new GetLinkStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(LinkStats.fromProto);\n }\n if (proto.totalClicksOnCampaignStep) {\n m.totalClicksOnCampaignStep = parseInt(proto.totalClicksOnCampaignStep, 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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n if (typeof this.totalClicksOnCampaignStep !== 'undefined') {\n toReturn['totalClicksOnCampaignStep'] = this.totalClicksOnCampaignStep;\n }\n return toReturn;\n }\n}\nclass GetMultiCampaignsRequest {\n static fromProto(proto) {\n let m = new GetMultiCampaignsRequest();\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.campaignIds !== 'undefined') {\n toReturn['campaignIds'] = this.campaignIds;\n }\n return toReturn;\n }\n}\nclass GetMultiCampaignsResponse {\n static fromProto(proto) {\n let m = new GetMultiCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(GetterCampaignData.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.campaigns !== 'undefined' && this.campaigns !== null) {\n toReturn['campaigns'] = 'toApiJson' in this.campaigns ? this.campaigns.toApiJson() : this.campaigns;\n }\n return toReturn;\n }\n}\nclass GetRecipientCampaignRequest {\n static fromProto(proto) {\n let m = new GetRecipientCampaignRequest();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n return toReturn;\n }\n}\nclass GetRecipientCampaignResponse {\n static fromProto(proto) {\n let m = new GetRecipientCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = RecipientCampaignStruct.fromProto(proto.recipientCampaign);\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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n return toReturn;\n }\n}\nclass GetRecipientLinkClickStatsRequest {\n static fromProto(proto) {\n let m = new GetRecipientLinkClickStatsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {\n m.pagingOptions = GetRecipientLinkClickStatsRequestPagedRequestOptions.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.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass GetRecipientLinkClickStatsResponse {\n static fromProto(proto) {\n let m = new GetRecipientLinkClickStatsResponse();\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(RecipientClickStats.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 GetRecipientRequest {\n static fromProto(proto) {\n let m = new GetRecipientRequest();\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n return toReturn;\n }\n}\nclass GetRecipientResponse {\n static fromProto(proto) {\n let m = new GetRecipientResponse();\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 = RecipientV2.fromProto(proto.recipient);\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\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.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n return toReturn;\n }\n}\nclass GetRequest {\n static fromProto(proto) {\n let m = new GetRequest();\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 GetResponse {\n static fromProto(proto) {\n let m = new GetResponse();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n return toReturn;\n }\n}\nclass GetterCampaignData {\n static fromProto(proto) {\n let m = new GetterCampaignData();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.campaignSchedule) {\n m.campaignSchedule = proto.campaignSchedule.map(CampaignStepInterface.fromProto);\n }\n if (proto.campaignScheduleVersion) {\n m.campaignScheduleVersion = parseInt(proto.campaignScheduleVersion, 10);\n }\n if (proto.eventsCount) {\n m.eventsCount = parseInt(proto.eventsCount, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(Statuses, proto.status);\n }\n if (proto.published) {\n m.published = new Date(proto.published);\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.campaignSchedule !== 'undefined' && this.campaignSchedule !== null) {\n toReturn['campaignSchedule'] = 'toApiJson' in this.campaignSchedule ? this.campaignSchedule.toApiJson() : this.campaignSchedule;\n }\n if (typeof this.campaignScheduleVersion !== 'undefined') {\n toReturn['campaignScheduleVersion'] = this.campaignScheduleVersion;\n }\n if (typeof this.eventsCount !== 'undefined') {\n toReturn['eventsCount'] = this.eventsCount;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.hiddenForPartners !== 'undefined') {\n toReturn['hiddenForPartners'] = this.hiddenForPartners;\n }\n if (typeof this.isPremade !== 'undefined') {\n toReturn['isPremade'] = this.isPremade;\n }\n if (typeof this.parentCampaignId !== 'undefined') {\n toReturn['parentCampaignId'] = this.parentCampaignId;\n }\n if (typeof this.rootCampaignId !== 'undefined') {\n toReturn['rootCampaignId'] = this.rootCampaignId;\n }\n if (typeof this.createdUser !== 'undefined') {\n toReturn['createdUser'] = this.createdUser;\n }\n if (typeof this.updatedUser !== 'undefined') {\n toReturn['updatedUser'] = this.updatedUser;\n }\n if (typeof this.publishedUser !== 'undefined') {\n toReturn['publishedUser'] = this.publishedUser;\n }\n if (typeof this.emailCategoryId !== 'undefined') {\n toReturn['emailCategoryId'] = this.emailCategoryId;\n }\n if (typeof this.published !== 'undefined' && this.published !== null) {\n toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\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 IsFeatureActiveForSenderRequest {\n static fromProto(proto) {\n let m = new IsFeatureActiveForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.featureId) {\n m.featureId = enumStringToValue(Feature, proto.featureId);\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.featureId !== 'undefined') {\n toReturn['featureId'] = this.featureId;\n }\n return toReturn;\n }\n}\nclass IsFeatureActiveForSenderResponse {\n static fromProto(proto) {\n let m = new IsFeatureActiveForSenderResponse();\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.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n return toReturn;\n }\n}\nclass IsProductActiveForSenderRequest {\n static fromProto(proto) {\n let m = new IsProductActiveForSenderRequest();\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.sku !== 'undefined') {\n toReturn['sku'] = this.sku;\n }\n return toReturn;\n }\n}\nclass IsProductActiveForSenderResponse {\n static fromProto(proto) {\n let m = new IsProductActiveForSenderResponse();\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.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n return toReturn;\n }\n}\nclass LegacyAddAccountGroupToCampaignRequest {\n static fromProto(proto) {\n let m = new LegacyAddAccountGroupToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.scheduledDate) {\n m.scheduledDate = new Date(proto.scheduledDate);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.scheduledDate !== 'undefined' && this.scheduledDate !== null) {\n toReturn['scheduledDate'] = 'toApiJson' in this.scheduledDate ? this.scheduledDate.toApiJson() : this.scheduledDate;\n }\n return toReturn;\n }\n}\nclass LegacyGetRecipientCampaignsByAgidRequest {\n static fromProto(proto) {\n let m = new LegacyGetRecipientCampaignsByAgidRequest();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass LegacyGetRecipientCampaignsByAgidResponse {\n static fromProto(proto) {\n let m = new LegacyGetRecipientCampaignsByAgidResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaignPairs) {\n m.recipientCampaignPairs = proto.recipientCampaignPairs.map(RecipientCampaignPair.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.recipientCampaignPairs !== 'undefined' && this.recipientCampaignPairs !== null) {\n toReturn['recipientCampaignPairs'] = 'toApiJson' in this.recipientCampaignPairs ? this.recipientCampaignPairs.toApiJson() : this.recipientCampaignPairs;\n }\n return toReturn;\n }\n}\nclass LegacyPauseAccountGroupOnCampaignRequest {\n static fromProto(proto) {\n let m = new LegacyPauseAccountGroupOnCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass LegacyRateLimitedAddToCampaignRequest {\n static fromProto(proto) {\n let m = new LegacyRateLimitedAddToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.scheduledDate) {\n m.scheduledDate = new Date(proto.scheduledDate);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.scheduledDate !== 'undefined' && this.scheduledDate !== null) {\n toReturn['scheduledDate'] = 'toApiJson' in this.scheduledDate ? this.scheduledDate.toApiJson() : this.scheduledDate;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.fromName !== 'undefined') {\n toReturn['fromName'] = this.fromName;\n }\n if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n return toReturn;\n }\n}\nclass LegacyRateLimitedAddToCampaignResponse {\n static fromProto(proto) {\n let m = new LegacyRateLimitedAddToCampaignResponse();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n return toReturn;\n }\n}\nclass LegacyUpdateRecipientCampaignStatusRequest {\n static fromProto(proto) {\n let m = new LegacyUpdateRecipientCampaignStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(RecipientCampaignStatus, 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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\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 LinkTrackingData {\n static fromProto(proto) {\n let m = new LinkTrackingData();\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.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.hydratedUrl !== 'undefined') {\n toReturn['hydratedUrl'] = this.hydratedUrl;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsForSenderRequest {\n static fromProto(proto) {\n let m = new ListCampaignStatsForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.states) {\n m.states = proto.states.map(v => enumStringToValue(CampaignState, v));\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.deletedTagsPolicy) {\n m.deletedTagsPolicy = enumStringToValue(DeletedTagsPolicy, proto.deletedTagsPolicy);\n }\n if (proto.sortOptions) {\n m.sortOptions = SortOptions.fromProto(proto.sortOptions);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.states !== 'undefined') {\n toReturn['states'] = this.states;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\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.deletedTagsPolicy !== 'undefined') {\n toReturn['deletedTagsPolicy'] = this.deletedTagsPolicy;\n }\n if (typeof this.tagIds !== 'undefined') {\n toReturn['tagIds'] = this.tagIds;\n }\n if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {\n toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? this.sortOptions.toApiJson() : this.sortOptions;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsForSenderResponse {\n static fromProto(proto) {\n let m = new ListCampaignStatsForSenderResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(ListCampaignStatsStruct.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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\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 ListCampaignStatsRequest {\n static fromProto(proto) {\n let m = new ListCampaignStatsRequest();\n m = Object.assign(m, proto);\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.states) {\n m.states = proto.states.map(v => enumStringToValue(CampaignState, v));\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.deletedTagsPolicy) {\n m.deletedTagsPolicy = enumStringToValue(DeletedTagsPolicy, proto.deletedTagsPolicy);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.states !== 'undefined') {\n toReturn['states'] = this.states;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\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.deletedTagsPolicy !== 'undefined') {\n toReturn['deletedTagsPolicy'] = this.deletedTagsPolicy;\n }\n if (typeof this.tagIds !== 'undefined') {\n toReturn['tagIds'] = this.tagIds;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsResponse {\n static fromProto(proto) {\n let m = new ListCampaignStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(ListCampaignStatsStruct.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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\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 ListCampaignStatsStruct {\n static fromProto(proto) {\n let m = new ListCampaignStatsStruct();\n m = Object.assign(m, proto);\n if (proto.totalAccounts) {\n m.totalAccounts = parseInt(proto.totalAccounts, 10);\n }\n if (proto.activeAccounts) {\n m.activeAccounts = parseInt(proto.activeAccounts, 10);\n }\n if (proto.emailsDelivered) {\n m.emailsDelivered = parseInt(proto.emailsDelivered, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(Statuses, proto.status);\n }\n if (proto.state) {\n m.state = enumStringToValue(CampaignState, proto.state);\n }\n if (proto.eventsCount) {\n m.eventsCount = parseInt(proto.eventsCount, 10);\n }\n if (proto.tags) {\n m.tags = proto.tags.map(ListCampaignTagDetails.fromProto);\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.totalAccounts !== 'undefined') {\n toReturn['totalAccounts'] = this.totalAccounts;\n }\n if (typeof this.activeAccounts !== 'undefined') {\n toReturn['activeAccounts'] = this.activeAccounts;\n }\n if (typeof this.emailsDelivered !== 'undefined') {\n toReturn['emailsDelivered'] = this.emailsDelivered;\n }\n if (typeof this.clickThroughRate !== 'undefined') {\n toReturn['clickThroughRate'] = this.clickThroughRate;\n }\n if (typeof this.openRate !== 'undefined') {\n toReturn['openRate'] = this.openRate;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.automations !== 'undefined') {\n toReturn['automations'] = this.automations;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.eventsCount !== 'undefined') {\n toReturn['eventsCount'] = this.eventsCount;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.tags !== 'undefined' && this.tags !== null) {\n toReturn['tags'] = 'toApiJson' in this.tags ? this.tags.toApiJson() : this.tags;\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 ListCampaignTagDetails {\n static fromProto(proto) {\n let m = new ListCampaignTagDetails();\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.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.color !== 'undefined') {\n toReturn['color'] = this.color;\n }\n return toReturn;\n }\n}\nclass ListCampaignsRequest {\n static fromProto(proto) {\n let m = new ListCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.focuses) {\n m.focuses = proto.focuses.map(v => enumStringToValue(Focuses, v));\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.focuses !== 'undefined') {\n toReturn['focuses'] = this.focuses;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ListCampaignsResponse {\n static fromProto(proto) {\n let m = new ListCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(GetterCampaignData.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.campaigns !== 'undefined' && this.campaigns !== null) {\n toReturn['campaigns'] = 'toApiJson' in this.campaigns ? this.campaigns.toApiJson() : this.campaigns;\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 ListCampaignsV2Request {\n static fromProto(proto) {\n let m = new ListCampaignsV2Request();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.sortOptions) {\n m.sortOptions = SortOptions.fromProto(proto.sortOptions);\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.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {\n toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? this.sortOptions.toApiJson() : this.sortOptions;\n }\n return toReturn;\n }\n}\nclass ListCampaignsV2Response {\n static fromProto(proto) {\n let m = new ListCampaignsV2Response();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(GetterCampaignData.fromProto);\n }\n if (proto.metadata) {\n m.metadata = PagedResponseMetadata.fromProto(proto.metadata);\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.campaigns !== 'undefined' && this.campaigns !== null) {\n toReturn['campaigns'] = 'toApiJson' in this.campaigns ? this.campaigns.toApiJson() : this.campaigns;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n return toReturn;\n }\n}\nclass ListLinksInTemplateRequest {\n static fromProto(proto) {\n let m = new ListLinksInTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass ListLinksInTemplateResponse {\n static fromProto(proto) {\n let m = new ListLinksInTemplateResponse();\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.links !== 'undefined') {\n toReturn['links'] = this.links;\n }\n return toReturn;\n }\n}\nclass ListRecipientCampaignsRequest {\n static fromProto(proto) {\n let m = new ListRecipientCampaignsRequest();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass ListRecipientCampaignsResponse {\n static fromProto(proto) {\n let m = new ListRecipientCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = proto.recipientCampaign.map(RecipientCampaignStruct.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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n return toReturn;\n }\n}\nclass ListRecommendedCampaignsRequest {\n static fromProto(proto) {\n let m = new ListRecommendedCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.focuses) {\n m.focuses = proto.focuses.map(v => enumStringToValue(Focuses, v));\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\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.focuses !== 'undefined') {\n toReturn['focuses'] = this.focuses;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\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 ListTagsForCampaignRequest {\n static fromProto(proto) {\n let m = new ListTagsForCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\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 return toReturn;\n }\n}\nclass ListTagsForCampaignResponse {\n static fromProto(proto) {\n let m = new ListTagsForCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.campaignTags) {\n m.campaignTags = proto.campaignTags.map(CampaignTag.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.campaignTags !== 'undefined' && this.campaignTags !== null) {\n toReturn['campaignTags'] = 'toApiJson' in this.campaignTags ? this.campaignTags.toApiJson() : this.campaignTags;\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 ListTagsForSenderRequest {\n static fromProto(proto) {\n let m = new ListTagsForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\n }\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\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 return toReturn;\n }\n}\nclass ListTagsForSenderResponse {\n static fromProto(proto) {\n let m = new ListTagsForSenderResponse();\n m = Object.assign(m, proto);\n if (proto.campaignTags) {\n m.campaignTags = proto.campaignTags.map(CampaignTag.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.campaignTags !== 'undefined' && this.campaignTags !== null) {\n toReturn['campaignTags'] = 'toApiJson' in this.campaignTags ? this.campaignTags.toApiJson() : this.campaignTags;\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 LookupRecipientCampaignRequest {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignRequest();\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 = RecipientV2.fromProto(proto.recipient);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignResponse {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = RecipientCampaignStruct.fromProto(proto.recipientCampaign);\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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignsRequest {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipients) {\n m.recipients = proto.recipients.map(RecipientV2.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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipients !== 'undefined' && this.recipients !== null) {\n toReturn['recipients'] = 'toApiJson' in this.recipients ? this.recipients.toApiJson() : this.recipients;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignsResponse {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaigns) {\n m.recipientCampaigns = proto.recipientCampaigns.map(RecipientCampaignStruct.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.recipientCampaigns !== 'undefined' && this.recipientCampaigns !== null) {\n toReturn['recipientCampaigns'] = 'toApiJson' in this.recipientCampaigns ? this.recipientCampaigns.toApiJson() : this.recipientCampaigns;\n }\n return toReturn;\n }\n}\nclass GetRecipientLinkClickStatsRequestPagedRequestOptions {\n static fromProto(proto) {\n let m = new GetRecipientLinkClickStatsRequestPagedRequestOptions();\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 PauseCampaignRequest {\n static fromProto(proto) {\n let m = new PauseCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass PreviewEmailTemplateRequest {\n static fromProto(proto) {\n let m = new PreviewEmailTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\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.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\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 PreviewEmailTemplateResponse {\n static fromProto(proto) {\n let m = new PreviewEmailTemplateResponse();\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.templateHtml !== 'undefined') {\n toReturn['templateHtml'] = this.templateHtml;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass RecipientClickStatsRecipient {\n static fromProto(proto) {\n let m = new RecipientClickStatsRecipient();\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 RecipientCampaignPair {\n static fromProto(proto) {\n let m = new RecipientCampaignPair();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = RecipientCampaignStruct.fromProto(proto.recipientCampaign);\n }\n if (proto.recipient) {\n m.recipient = CampaignRecipient.fromProto(proto.recipient);\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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n return toReturn;\n }\n}\nclass RecipientCampaignStepEventStruct {\n static fromProto(proto) {\n let m = new RecipientCampaignStepEventStruct();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.eventType) {\n m.eventType = enumStringToValue(CampaignStepEventType, proto.eventType);\n }\n if (proto.eventDate) {\n m.eventDate = new Date(proto.eventDate);\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\n }\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventDate !== 'undefined' && this.eventDate !== null) {\n toReturn['eventDate'] = 'toApiJson' in this.eventDate ? this.eventDate.toApiJson() : this.eventDate;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.probablyBot !== 'undefined') {\n toReturn['probablyBot'] = this.probablyBot;\n }\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 RecipientCampaignStruct {\n static fromProto(proto) {\n let m = new RecipientCampaignStruct();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(CampaignScheduleStatus, proto.status);\n }\n if (proto.schedule) {\n m.schedule = proto.schedule.map(ScheduledCampaignStepInterface.fromProto);\n }\n if (proto.scheduleStep) {\n m.scheduleStep = parseInt(proto.scheduleStep, 10);\n }\n if (proto.pausedDateTime) {\n m.pausedDateTime = new Date(proto.pausedDateTime);\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.fromName !== 'undefined') {\n toReturn['fromName'] = this.fromName;\n }\n if (typeof this.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n if (typeof this.isCompleted !== 'undefined') {\n toReturn['isCompleted'] = this.isCompleted;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.schedule !== 'undefined' && this.schedule !== null) {\n toReturn['schedule'] = 'toApiJson' in this.schedule ? this.schedule.toApiJson() : this.schedule;\n }\n if (typeof this.scheduleStep !== 'undefined') {\n toReturn['scheduleStep'] = this.scheduleStep;\n }\n if (typeof this.errorMessage !== 'undefined') {\n toReturn['errorMessage'] = this.errorMessage;\n }\n if (typeof this.pausedDateTime !== 'undefined' && this.pausedDateTime !== null) {\n toReturn['pausedDateTime'] = 'toApiJson' in this.pausedDateTime ? this.pausedDateTime.toApiJson() : this.pausedDateTime;\n }\n return toReturn;\n }\n}\nclass RecipientClickStats {\n static fromProto(proto) {\n let m = new RecipientClickStats();\n m = Object.assign(m, proto);\n if (proto.recipient) {\n m.recipient = RecipientClickStatsRecipient.fromProto(proto.recipient);\n }\n if (proto.account) {\n m.account = RecipientClickStatsAccount.fromProto(proto.account);\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.account !== 'undefined' && this.account !== null) {\n toReturn['account'] = 'toApiJson' in this.account ? this.account.toApiJson() : this.account;\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 if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass RecipientCriteria {\n static fromProto(proto) {\n let m = new RecipientCriteria();\n m = Object.assign(m, proto);\n if (proto.filterGroupV2) {\n m.filterGroupV2 = FilterGroup.fromProto(proto.filterGroupV2);\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.filterGroupV2 !== 'undefined' && this.filterGroupV2 !== null) {\n toReturn['filterGroupV2'] = 'toApiJson' in this.filterGroupV2 ? this.filterGroupV2.toApiJson() : this.filterGroupV2;\n }\n return toReturn;\n }\n}\nclass RecipientV2 {\n static fromProto(proto) {\n let m = new RecipientV2();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(RecipientType, proto.type);\n }\n if (proto.contact) {\n m.contact = Contact.fromProto(proto.contact);\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.contact !== 'undefined' && this.contact !== null) {\n toReturn['contact'] = 'toApiJson' in this.contact ? this.contact.toApiJson() : this.contact;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass RemoveTagFromCampaignRequest {\n static fromProto(proto) {\n let m = new RemoveTagFromCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n return toReturn;\n }\n}\nclass RenderRequest {\n static fromProto(proto) {\n let m = new RenderRequest();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n return toReturn;\n }\n}\nclass RenderResponse {\n static fromProto(proto) {\n let m = new RenderResponse();\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.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n return toReturn;\n }\n}\nclass ScheduledCampaignStepInterface {\n static fromProto(proto) {\n let m = new ScheduledCampaignStepInterface();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.campaignStepType) {\n m.campaignStepType = enumStringToValue(CampaignStepType, proto.campaignStepType);\n }\n if (proto.scheduledDate) {\n m.scheduledDate = new Date(proto.scheduledDate);\n }\n if (proto.dateSent) {\n m.dateSent = new Date(proto.dateSent);\n }\n if (proto.secondsAfterLastEmail) {\n m.secondsAfterLastEmail = parseInt(proto.secondsAfterLastEmail, 10);\n }\n if (proto.sendStatus) {\n m.sendStatus = enumStringToValue(CampaignStepSendStatusType, proto.sendStatus);\n }\n if (proto.events) {\n m.events = proto.events.map(CampaignStepEvent.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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.stepId !== 'undefined') {\n toReturn['stepId'] = this.stepId;\n }\n if (typeof this.campaignStepType !== 'undefined') {\n toReturn['campaignStepType'] = this.campaignStepType;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.scheduledDate !== 'undefined' && this.scheduledDate !== null) {\n toReturn['scheduledDate'] = 'toApiJson' in this.scheduledDate ? this.scheduledDate.toApiJson() : this.scheduledDate;\n }\n if (typeof this.dateSent !== 'undefined' && this.dateSent !== null) {\n toReturn['dateSent'] = 'toApiJson' in this.dateSent ? this.dateSent.toApiJson() : this.dateSent;\n }\n if (typeof this.secondsAfterLastEmail !== 'undefined') {\n toReturn['secondsAfterLastEmail'] = this.secondsAfterLastEmail;\n }\n if (typeof this.sendStatus !== 'undefined') {\n toReturn['sendStatus'] = this.sendStatus;\n }\n if (typeof this.completed !== 'undefined') {\n toReturn['completed'] = this.completed;\n }\n if (typeof this.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n return toReturn;\n }\n}\nclass SendCampaignStepTestEmailRequest {\n static fromProto(proto) {\n let m = new SendCampaignStepTestEmailRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.stepData) {\n m.stepData = Object.keys(proto.stepData).reduce((obj, k) => {\n obj[k] = proto.stepData[k];\n return obj;\n }, {});\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.sendToUserId !== 'undefined') {\n toReturn['sendToUserId'] = this.sendToUserId;\n }\n if (typeof this.stepData !== 'undefined' && this.stepData !== null) {\n toReturn['stepData'] = 'toApiJson' in this.stepData ? this.stepData.toApiJson() : this.stepData;\n }\n return toReturn;\n }\n}\nclass SendCampaignStepTestEmailResponse {\n static fromProto(proto) {\n let m = new SendCampaignStepTestEmailResponse();\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 SendRecipientCampaignStepEmailRequest {\n static fromProto(proto) {\n let m = new SendRecipientCampaignStepEmailRequest();\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.ignoreCampaignState !== 'undefined') {\n toReturn['ignoreCampaignState'] = this.ignoreCampaignState;\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\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 SortOptions {\n static fromProto(proto) {\n let m = new SortOptions();\n m = Object.assign(m, proto);\n if (proto.field) {\n m.field = enumStringToValue(SortField, proto.field);\n }\n if (proto.direction) {\n m.direction = enumStringToValue(SortDirection, proto.direction);\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.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n if (typeof this.direction !== 'undefined') {\n toReturn['direction'] = this.direction;\n }\n return toReturn;\n }\n}\nclass SendCampaignStepTestEmailRequestStepDataEntry {\n static fromProto(proto) {\n let m = new SendCampaignStepTestEmailRequestStepDataEntry();\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 GetCampaignStepContentRequestStepDataEntry {\n static fromProto(proto) {\n let m = new GetCampaignStepContentRequestStepDataEntry();\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 StepDataResponse {\n static fromProto(proto) {\n let m = new StepDataResponse();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n return toReturn;\n }\n}\nclass UnpauseCampaignRequest {\n static fromProto(proto) {\n let m = new UnpauseCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass UpdateCampaignNameRequest {\n static fromProto(proto) {\n let m = new UpdateCampaignNameRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n return toReturn;\n }\n}\nclass UpdateConfigRequest {\n static fromProto(proto) {\n let m = new UpdateConfigRequest();\n m = Object.assign(m, proto);\n if (proto.daysEmailsCanBeSent) {\n m.daysEmailsCanBeSent = proto.daysEmailsCanBeSent.map(v => enumStringToValue(DaysOfTheWeek, v));\n }\n if (proto.recipientsAddedRateLimit) {\n m.recipientsAddedRateLimit = parseInt(proto.recipientsAddedRateLimit, 10);\n }\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.timeZoneForEmailsSent !== 'undefined') {\n toReturn['timeZoneForEmailsSent'] = this.timeZoneForEmailsSent;\n }\n if (typeof this.daysEmailsCanBeSent !== 'undefined') {\n toReturn['daysEmailsCanBeSent'] = this.daysEmailsCanBeSent;\n }\n if (typeof this.recipientsAddedRateLimitEnabled !== 'undefined') {\n toReturn['recipientsAddedRateLimitEnabled'] = this.recipientsAddedRateLimitEnabled;\n }\n if (typeof this.recipientsAddedRateLimit !== 'undefined') {\n toReturn['recipientsAddedRateLimit'] = this.recipientsAddedRateLimit;\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.emailSchedulingDay !== 'undefined') {\n toReturn['emailSchedulingDay'] = this.emailSchedulingDay;\n }\n return toReturn;\n }\n}\nclass UpdateConfigResponse {\n static fromProto(proto) {\n let m = new UpdateConfigResponse();\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.timezone !== 'undefined') {\n toReturn['timezone'] = this.timezone;\n }\n if (typeof this.days !== 'undefined') {\n toReturn['days'] = this.days;\n }\n return toReturn;\n }\n}\nclass UpdateEmailTemplateRequest {\n static fromProto(proto) {\n let m = new UpdateEmailTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlBody !== 'undefined') {\n toReturn['htmlBody'] = this.htmlBody;\n }\n if (typeof this.fullHtml !== 'undefined') {\n toReturn['fullHtml'] = this.fullHtml;\n }\n if (typeof this.updatedByUserEmail !== 'undefined') {\n toReturn['updatedByUserEmail'] = this.updatedByUserEmail;\n }\n return toReturn;\n }\n}\nclass UpdateQuotaLimitRequest {\n static fromProto(proto) {\n let m = new UpdateQuotaLimitRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.type) {\n m.type = enumStringToValue(CampaignQuotaCategory, proto.type);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n return toReturn;\n }\n}\nclass UpdateRecipientRequest {\n static fromProto(proto) {\n let m = new UpdateRecipientRequest();\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 = RecipientV2.fromProto(proto.recipient);\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\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.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n return toReturn;\n }\n}\nclass UpdateRequest {\n static fromProto(proto) {\n let m = new UpdateRequest();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateStepOnCampaignRequest {\n static fromProto(proto) {\n let m = new UpdateStepOnCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.secondsAfterLastStep) {\n m.secondsAfterLastStep = parseInt(proto.secondsAfterLastStep, 10);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\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.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.secondsAfterLastStep !== 'undefined') {\n toReturn['secondsAfterLastStep'] = this.secondsAfterLastStep;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertCampaignRequest {\n static fromProto(proto) {\n let m = new UpsertCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.status) {\n m.status = enumStringToValue(Statuses, proto.status);\n }\n if (proto.campaignSchedule) {\n m.campaignSchedule = proto.campaignSchedule.map(CampaignStepInterface.fromProto);\n }\n if (proto.campaignScheduleVersion) {\n m.campaignScheduleVersion = parseInt(proto.campaignScheduleVersion, 10);\n }\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.published) {\n m.published = new Date(proto.published);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.parentCampaignId !== 'undefined') {\n toReturn['parentCampaignId'] = this.parentCampaignId;\n }\n if (typeof this.rootCampaignId !== 'undefined') {\n toReturn['rootCampaignId'] = this.rootCampaignId;\n }\n if (typeof this.createdUser !== 'undefined') {\n toReturn['createdUser'] = this.createdUser;\n }\n if (typeof this.updatedUser !== 'undefined') {\n toReturn['updatedUser'] = this.updatedUser;\n }\n if (typeof this.publishedUser !== 'undefined') {\n toReturn['publishedUser'] = this.publishedUser;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.campaignSchedule !== 'undefined' && this.campaignSchedule !== null) {\n toReturn['campaignSchedule'] = 'toApiJson' in this.campaignSchedule ? this.campaignSchedule.toApiJson() : this.campaignSchedule;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.hiddenForPartners !== 'undefined') {\n toReturn['hiddenForPartners'] = this.hiddenForPartners;\n }\n if (typeof this.campaignScheduleVersion !== 'undefined') {\n toReturn['campaignScheduleVersion'] = this.campaignScheduleVersion;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.published !== 'undefined' && this.published !== null) {\n toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\n }\n if (typeof this.emailCategoryId !== 'undefined') {\n toReturn['emailCategoryId'] = this.emailCategoryId;\n }\n if (typeof this.isPremade !== 'undefined') {\n toReturn['isPremade'] = this.isPremade;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\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 UpsertConfigRequest {\n static fromProto(proto) {\n let m = new UpsertConfigRequest();\n m = Object.assign(m, proto);\n if (proto.daysEmailsCanBeSent) {\n m.daysEmailsCanBeSent = proto.daysEmailsCanBeSent.map(v => enumStringToValue(DaysOfTheWeek, v));\n }\n if (proto.recipientsAddedRateLimit) {\n m.recipientsAddedRateLimit = parseInt(proto.recipientsAddedRateLimit, 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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.timeZoneForEmailsSent !== 'undefined') {\n toReturn['timeZoneForEmailsSent'] = this.timeZoneForEmailsSent;\n }\n if (typeof this.daysEmailsCanBeSent !== 'undefined') {\n toReturn['daysEmailsCanBeSent'] = this.daysEmailsCanBeSent;\n }\n if (typeof this.recipientsAddedRateLimitEnabled !== 'undefined') {\n toReturn['recipientsAddedRateLimitEnabled'] = this.recipientsAddedRateLimitEnabled;\n }\n if (typeof this.recipientsAddedRateLimit !== 'undefined') {\n toReturn['recipientsAddedRateLimit'] = this.recipientsAddedRateLimit;\n }\n return toReturn;\n }\n}\nclass UpsertRecipientCampaignActivatedEventRequest {\n static fromProto(proto) {\n let m = new UpsertRecipientCampaignActivatedEventRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertRecipientCampaignRequest {\n static fromProto(proto) {\n let m = new UpsertRecipientCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(CampaignScheduleStatus, proto.status);\n }\n if (proto.schedule) {\n m.schedule = proto.schedule.map(ScheduledCampaignStepInterface.fromProto);\n }\n if (proto.scheduleStep) {\n m.scheduleStep = parseInt(proto.scheduleStep, 10);\n }\n if (proto.pausedDateTime) {\n m.pausedDateTime = new Date(proto.pausedDateTime);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.fromName !== 'undefined') {\n toReturn['fromName'] = this.fromName;\n }\n if (typeof this.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n if (typeof this.isCompleted !== 'undefined') {\n toReturn['isCompleted'] = this.isCompleted;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.schedule !== 'undefined' && this.schedule !== null) {\n toReturn['schedule'] = 'toApiJson' in this.schedule ? this.schedule.toApiJson() : this.schedule;\n }\n if (typeof this.scheduleStep !== 'undefined') {\n toReturn['scheduleStep'] = this.scheduleStep;\n }\n if (typeof this.errorMessage !== 'undefined') {\n toReturn['errorMessage'] = this.errorMessage;\n }\n if (typeof this.pausedDateTime !== 'undefined' && this.pausedDateTime !== null) {\n toReturn['pausedDateTime'] = 'toApiJson' in this.pausedDateTime ? this.pausedDateTime.toApiJson() : this.pausedDateTime;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertRecipientCampaignStepEventRequest {\n static fromProto(proto) {\n let m = new UpsertRecipientCampaignStepEventRequest();\n m = Object.assign(m, proto);\n if (proto.stepEvent) {\n m.stepEvent = RecipientCampaignStepEventStruct.fromProto(proto.stepEvent);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\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.stepEvent !== 'undefined' && this.stepEvent !== null) {\n toReturn['stepEvent'] = 'toApiJson' in this.stepEvent ? this.stepEvent.toApiJson() : this.stepEvent;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\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': 'campaigns-api.vendasta-local.com',\n 'test': '',\n 'demo': 'campaigns-demo.apigateway.co',\n 'prod': 'campaigns-prod.apigateway.co',\n 'production': 'campaigns-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 ActivationsApiService = /*#__PURE__*/(() => {\n class ActivationsApiService {\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 activateProductForSender(r) {\n const request = r.toApiJson ? r : new ActivateProductForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/ActivateProductForSender\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isProductActive(r) {\n const request = r.toApiJson ? r : new IsProductActiveForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/IsProductActive\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsProductActiveForSenderResponse.fromProto(resp)));\n }\n deactivateProduct(r) {\n const request = r.toApiJson ? r : new DeactivateProductForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/DeactivateProduct\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isFeatureActive(r) {\n const request = r.toApiJson ? r : new IsFeatureActiveForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/IsFeatureActive\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsFeatureActiveForSenderResponse.fromProto(resp)));\n }\n }\n ActivationsApiService.ɵfac = function ActivationsApiService_Factory(t) {\n return new (t || ActivationsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ActivationsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActivationsApiService,\n factory: ActivationsApiService.ɵfac,\n providedIn: 'root'\n });\n return ActivationsApiService;\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 CampaignConfigApiService = /*#__PURE__*/(() => {\n class CampaignConfigApiService {\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 upsertConfig(r) {\n const request = r.toApiJson ? r : new UpsertConfigRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignConfig/UpsertConfig\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getConfig(r) {\n const request = r.toApiJson ? r : new GetConfigRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignConfig/GetConfig\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConfigResponse.fromProto(resp)));\n }\n updateConfig(r) {\n const request = r.toApiJson ? r : new UpdateConfigRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignConfig/UpdateConfig\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateConfigResponse.fromProto(resp)));\n }\n }\n CampaignConfigApiService.ɵfac = function CampaignConfigApiService_Factory(t) {\n return new (t || CampaignConfigApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignConfigApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignConfigApiService,\n factory: CampaignConfigApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignConfigApiService;\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 CampaignQuotaApiService = /*#__PURE__*/(() => {\n class CampaignQuotaApiService {\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 getCampaignQuota(r) {\n const request = r.toApiJson ? r : new GetCampaignQuotaRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignQuota/GetCampaignQuota\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignQuotaResponse.fromProto(resp)));\n }\n createQuota(r) {\n const request = r.toApiJson ? r : new CreateQuotaRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignQuota/CreateQuota\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateQuotaLimit(r) {\n const request = r.toApiJson ? r : new UpdateQuotaLimitRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignQuota/UpdateQuotaLimit\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n CampaignQuotaApiService.ɵfac = function CampaignQuotaApiService_Factory(t) {\n return new (t || CampaignQuotaApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignQuotaApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignQuotaApiService,\n factory: CampaignQuotaApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignQuotaApiService;\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 CampaignStatsApiService = /*#__PURE__*/(() => {\n class CampaignStatsApiService {\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 getAggregatedCampaignStats(r) {\n const request = r.toApiJson ? r : new GetAggregatedCampaignStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetAggregatedCampaignStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAggregatedCampaignStatsResponse.fromProto(resp)));\n }\n listCampaignStats(r) {\n const request = r.toApiJson ? r : new ListCampaignStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/ListCampaignStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignStatsResponse.fromProto(resp)));\n }\n getCampaignDetailsStats(r) {\n const request = r.toApiJson ? r : new GetCampaignDetailsStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetCampaignDetailsStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignDetailsStatsResponse.fromProto(resp)));\n }\n getLinkStats(r) {\n const request = r.toApiJson ? r : new GetLinkStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetLinkStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLinkStatsResponse.fromProto(resp)));\n }\n getRecipientLinkClickStats(r) {\n const request = r.toApiJson ? r : new GetRecipientLinkClickStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetRecipientLinkClickStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetRecipientLinkClickStatsResponse.fromProto(resp)));\n }\n getCampaignStepStats(r) {\n const request = r.toApiJson ? r : new GetCampaignStepStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetCampaignStepStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignStepStatsResponse.fromProto(resp)));\n }\n exportRecipientLinkClickStats(r) {\n const request = r.toApiJson ? r : new ExportRecipientLinkClickStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/ExportRecipientLinkClickStats\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listCampaignStatsForSender(r) {\n const request = r.toApiJson ? r : new ListCampaignStatsForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/ListCampaignStatsForSender\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignStatsForSenderResponse.fromProto(resp)));\n }\n }\n CampaignStatsApiService.ɵfac = function CampaignStatsApiService_Factory(t) {\n return new (t || CampaignStatsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignStatsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignStatsApiService,\n factory: CampaignStatsApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignStatsApiService;\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 CampaignTaggingApiService = /*#__PURE__*/(() => {\n class CampaignTaggingApiService {\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 create(r) {\n const request = r.toApiJson ? r : new CreateTagRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateTagResponse.fromProto(resp)));\n }\n listTagsForSender(r) {\n const request = r.toApiJson ? r : new ListTagsForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/ListTagsForSender\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListTagsForSenderResponse.fromProto(resp)));\n }\n addTagToCampaign(r) {\n const request = r.toApiJson ? r : new AddTagToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/AddTagToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n removeTagFromCampaign(r) {\n const request = r.toApiJson ? r : new RemoveTagFromCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/RemoveTagFromCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listTagsForCampaign(r) {\n const request = r.toApiJson ? r : new ListTagsForCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/ListTagsForCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListTagsForCampaignResponse.fromProto(resp)));\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteTagRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n CampaignTaggingApiService.ɵfac = function CampaignTaggingApiService_Factory(t) {\n return new (t || CampaignTaggingApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignTaggingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignTaggingApiService,\n factory: CampaignTaggingApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignTaggingApiService;\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 CampaignsApiService = /*#__PURE__*/(() => {\n class CampaignsApiService {\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 deleteCampaign(r) {\n const request = r.toApiJson ? r : new DeleteCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DeleteCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n upsertCampaign(r) {\n const request = r.toApiJson ? r : new UpsertCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UpsertCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateCampaignName(r) {\n const request = r.toApiJson ? r : new UpdateCampaignNameRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UpdateCampaignName\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listCampaigns(r) {\n const request = r.toApiJson ? r : new ListCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ListCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignsResponse.fromProto(resp)));\n }\n listRecommendedCampaigns(r) {\n const request = r.toApiJson ? r : new ListRecommendedCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ListRecommendedCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignsResponse.fromProto(resp)));\n }\n getCampaign(r) {\n const request = r.toApiJson ? r : new GetCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignResponse.fromProto(resp)));\n }\n getMultiCampaigns(r) {\n const request = r.toApiJson ? r : new GetMultiCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetMultiCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiCampaignsResponse.fromProto(resp)));\n }\n duplicateCampaignStepAsync(r) {\n const request = r.toApiJson ? r : new DuplicateCampaignStepRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateCampaignStepAsync\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DuplicateCampaignStepResponse.fromProto(resp)));\n }\n checkDuplicateCampaignStepStatus(r) {\n const request = r.toApiJson ? r : new CheckDuplicateCampaignStepStatusRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/CheckDuplicateCampaignStepStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckDuplicateCampaignStepStatusResponse.fromProto(resp)));\n }\n duplicateCampaignAsync(r) {\n const request = r.toApiJson ? r : new DuplicateCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateCampaignAsync\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DuplicateCampaignResponse.fromProto(resp)));\n }\n duplicateCampaignAsyncV2(r) {\n const request = r.toApiJson ? r : new DuplicateCampaignRequestV2(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateCampaignAsyncV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DuplicateCampaignResponse.fromProto(resp)));\n }\n checkDuplicateCampaignStatus(r) {\n const request = r.toApiJson ? r : new CheckDuplicateCampaignStatusRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/CheckDuplicateCampaignStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckDuplicateCampaignStatusResponse.fromProto(resp)));\n }\n duplicateAndRecommendCampaign(r) {\n const request = r.toApiJson ? r : new DuplicateAndRecommendCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateAndRecommendCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n sendRecipientCampaignStepEmail(r) {\n const request = r.toApiJson ? r : new SendRecipientCampaignStepEmailRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/SendRecipientCampaignStepEmail\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n executeStep(r) {\n const request = r.toApiJson ? r : new ExecuteStepRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ExecuteStep\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createCampaign(r) {\n const request = r.toApiJson ? r : new CreateCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/CreateCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateCampaignResponse.fromProto(resp)));\n }\n addStepToCampaign(r) {\n const request = r.toApiJson ? r : new AddStepToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/AddStepToCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => StepDataResponse.fromProto(resp)));\n }\n getCampaignStepContent(r) {\n const request = r.toApiJson ? r : new GetCampaignStepContentRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetCampaignStepContent\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignStepContentResponse.fromProto(resp)));\n }\n sendCampaignStepTestEmail(r) {\n const request = r.toApiJson ? r : new SendCampaignStepTestEmailRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/SendCampaignStepTestEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendCampaignStepTestEmailResponse.fromProto(resp)));\n }\n updateStepOnCampaign(r) {\n const request = r.toApiJson ? r : new UpdateStepOnCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UpdateStepOnCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => StepDataResponse.fromProto(resp)));\n }\n listCampaignsV2(r) {\n const request = r.toApiJson ? r : new ListCampaignsV2Request(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ListCampaignsV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignsV2Response.fromProto(resp)));\n }\n pauseCampaign(r) {\n const request = r.toApiJson ? r : new PauseCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/PauseCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n unpauseCampaign(r) {\n const request = r.toApiJson ? r : new UnpauseCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UnpauseCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAvailableStepTypesForSender(r) {\n const request = r.toApiJson ? r : new GetAvailableStepTypesForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetAvailableStepTypesForSender\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAvailableStepTypesForSenderResponse.fromProto(resp)));\n }\n }\n CampaignsApiService.ɵfac = function CampaignsApiService_Factory(t) {\n return new (t || CampaignsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignsApiService,\n factory: CampaignsApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignsApiService;\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 EmailBuilderApiService = /*#__PURE__*/(() => {\n class EmailBuilderApiService {\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 create(r) {\n const request = r.toApiJson ? r : new CreateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateResponse.fromProto(resp)));\n }\n get(r) {\n const request = r.toApiJson ? r : new GetRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetResponse.fromProto(resp)));\n }\n update(r) {\n const request = r.toApiJson ? r : new UpdateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Update\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n render(r) {\n const request = r.toApiJson ? r : new RenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Render\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RenderResponse.fromProto(resp)));\n }\n convert(r) {\n const request = r.toApiJson ? r : new ConvertLegacyTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Convert\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ConvertLegacyTemplateResponse.fromProto(resp)));\n }\n }\n EmailBuilderApiService.ɵfac = function EmailBuilderApiService_Factory(t) {\n return new (t || EmailBuilderApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailBuilderApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailBuilderApiService,\n factory: EmailBuilderApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailBuilderApiService;\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 EmailTemplateApiService = /*#__PURE__*/(() => {\n class EmailTemplateApiService {\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 createEmailTemplate(r) {\n const request = r.toApiJson ? r : new CreateEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/CreateEmailTemplate\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateEmailTemplate(r) {\n const request = r.toApiJson ? r : new UpdateEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/UpdateEmailTemplate\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getEmailTemplate(r) {\n const request = r.toApiJson ? r : new GetEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/GetEmailTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailTemplateResponse.fromProto(resp)));\n }\n getEmailTemplates(r) {\n const request = r.toApiJson ? r : new GetEmailTemplatesRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/GetEmailTemplates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailTemplatesResponse.fromProto(resp)));\n }\n previewEmailTemplate(r) {\n const request = r.toApiJson ? r : new PreviewEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/PreviewEmailTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => PreviewEmailTemplateResponse.fromProto(resp)));\n }\n listLinksInTemplate(r) {\n const request = r.toApiJson ? r : new ListLinksInTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/ListLinksInTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListLinksInTemplateResponse.fromProto(resp)));\n }\n extractLinkTrackingDataForTemplate(r) {\n const request = r.toApiJson ? r : new ExtractLinkTrackingDataForTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/ExtractLinkTrackingDataForTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ExtractLinkTrackingDataForTemplateResponse.fromProto(resp)));\n }\n }\n EmailTemplateApiService.ɵfac = function EmailTemplateApiService_Factory(t) {\n return new (t || EmailTemplateApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailTemplateApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailTemplateApiService,\n factory: EmailTemplateApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailTemplateApiService;\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 LegacyAppengineAPIApiService = /*#__PURE__*/(() => {\n class LegacyAppengineAPIApiService {\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 rateLimitedAddAccountGroupToCampaign(r) {\n const request = r.toApiJson ? r : new LegacyAddAccountGroupToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/RateLimitedAddAccountGroupToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n rateLimitedAddToCampaign(r) {\n const request = r.toApiJson ? r : new LegacyRateLimitedAddToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/RateLimitedAddToCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LegacyRateLimitedAddToCampaignResponse.fromProto(resp)));\n }\n pauseAccountGroupOnCampaign(r) {\n const request = r.toApiJson ? r : new LegacyPauseAccountGroupOnCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/PauseAccountGroupOnCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getRecipientCampaignsByAgid(r) {\n const request = r.toApiJson ? r : new LegacyGetRecipientCampaignsByAgidRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/GetRecipientCampaignsByAgid\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LegacyGetRecipientCampaignsByAgidResponse.fromProto(resp)));\n }\n updateRecipientCampaignStatus(r) {\n const request = r.toApiJson ? r : new LegacyUpdateRecipientCampaignStatusRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/UpdateRecipientCampaignStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n LegacyAppengineAPIApiService.ɵfac = function LegacyAppengineAPIApiService_Factory(t) {\n return new (t || LegacyAppengineAPIApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n LegacyAppengineAPIApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LegacyAppengineAPIApiService,\n factory: LegacyAppengineAPIApiService.ɵfac,\n providedIn: 'root'\n });\n return LegacyAppengineAPIApiService;\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 RecipientApiService = /*#__PURE__*/(() => {\n class RecipientApiService {\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 createRecipient(r) {\n const request = r.toApiJson ? r : new CreateRecipientRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Recipient/CreateRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateRecipient(r) {\n const request = r.toApiJson ? r : new UpdateRecipientRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Recipient/UpdateRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getRecipient(r) {\n const request = r.toApiJson ? r : new GetRecipientRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Recipient/GetRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetRecipientResponse.fromProto(resp)));\n }\n }\n RecipientApiService.ɵfac = function RecipientApiService_Factory(t) {\n return new (t || RecipientApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientApiService,\n factory: RecipientApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientApiService;\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 RecipientCampaignApiService = /*#__PURE__*/(() => {\n class RecipientCampaignApiService {\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 upsertRecipientCampaign(r) {\n const request = r.toApiJson ? r : new UpsertRecipientCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/UpsertRecipientCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listRecipientCampaigns(r) {\n const request = r.toApiJson ? r : new ListRecipientCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/ListRecipientCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListRecipientCampaignsResponse.fromProto(resp)));\n }\n getRecipientCampaign(r) {\n const request = r.toApiJson ? r : new GetRecipientCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/GetRecipientCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetRecipientCampaignResponse.fromProto(resp)));\n }\n lookupRecipientCampaign(r) {\n const request = r.toApiJson ? r : new LookupRecipientCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/LookupRecipientCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupRecipientCampaignResponse.fromProto(resp)));\n }\n lookupRecipientCampaigns(r) {\n const request = r.toApiJson ? r : new LookupRecipientCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/LookupRecipientCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupRecipientCampaignsResponse.fromProto(resp)));\n }\n addContactToCampaign(r) {\n const request = r.toApiJson ? r : new AddContactToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/AddContactToCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddContactToCampaignResponse.fromProto(resp)));\n }\n bulkAddContactsToCampaign(r) {\n const request = r.toApiJson ? r : new BulkAddContactsToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/BulkAddContactsToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n RecipientCampaignApiService.ɵfac = function RecipientCampaignApiService_Factory(t) {\n return new (t || RecipientCampaignApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientCampaignApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignApiService,\n factory: RecipientCampaignApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignApiService;\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 RecipientCampaignActivatedEventApiService = /*#__PURE__*/(() => {\n class RecipientCampaignActivatedEventApiService {\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 upsertRecipientCampaignActivatedEvent(r) {\n const request = r.toApiJson ? r : new UpsertRecipientCampaignActivatedEventRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaignActivatedEvent/UpsertRecipientCampaignActivatedEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n RecipientCampaignActivatedEventApiService.ɵfac = function RecipientCampaignActivatedEventApiService_Factory(t) {\n return new (t || RecipientCampaignActivatedEventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientCampaignActivatedEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignActivatedEventApiService,\n factory: RecipientCampaignActivatedEventApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignActivatedEventApiService;\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 RecipientCampaignStepEventApiService = /*#__PURE__*/(() => {\n class RecipientCampaignStepEventApiService {\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 createRecipientCampaignStepEvent(r) {\n const request = r.toApiJson ? r : new CreateRecipientCampaignStepEventRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaignStepEvent/CreateRecipientCampaignStepEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n upsertRecipientCampaignStepEvent(r) {\n const request = r.toApiJson ? r : new UpsertRecipientCampaignStepEventRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaignStepEvent/UpsertRecipientCampaignStepEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n RecipientCampaignStepEventApiService.ɵfac = function RecipientCampaignStepEventApiService_Factory(t) {\n return new (t || RecipientCampaignStepEventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientCampaignStepEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignStepEventApiService,\n factory: RecipientCampaignStepEventApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignStepEventApiService;\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// *********************************\n\n/**\n * AllDates is a DateFilter which does not apply any filtering. When used in a\n * filter, you can expect to be returned data which spans all possible dates.\n */\nconst AllDates = new DateFilter();\nlet CampaignService = /*#__PURE__*/(() => {\n class CampaignService {\n constructor(api) {\n this.api = api;\n }\n create(sender, name) {\n return this.api.createCampaign({\n name: name,\n sender: sender,\n focus: Focuses.FOCUSES_NONE\n }).pipe(map(v => v.campaignId));\n }\n delete(campaignId) {\n return this.api.deleteCampaign({\n campaignId: campaignId\n }).pipe(map(() => null));\n }\n addStep(sender, campaignId, stepType, contentId, name) {\n const req = {\n campaignId: campaignId,\n stepType: stepType,\n contentId: contentId,\n sender: sender,\n name: name\n };\n return this.api.addStepToCampaign(req).pipe(map(resp => resp));\n }\n updateStep(sender, campaignId, campaignStepId, contentId, name, secondsAfterLastStep, fm) {\n const req = {\n campaignId: campaignId,\n campaignStepId: campaignStepId,\n contentId: contentId,\n sender: sender,\n name: name,\n secondsAfterLastStep: secondsAfterLastStep,\n fieldMask: fm\n };\n return this.api.updateStepOnCampaign(req).pipe(map(resp => resp));\n }\n get(campaignID) {\n return this.api.getCampaign({\n campaignId: campaignID\n }).pipe(map(resp => resp.campaign), map(campaign => {\n campaign.campaignSchedule = campaign.campaignSchedule || [];\n return campaign;\n }));\n }\n getMulti(campaignIDs) {\n return this.api.getMultiCampaigns({\n campaignIds: campaignIDs\n }).pipe(map(resp => resp.campaigns));\n }\n list(partnerID, focuses, statuses, name, pagingOptions) {\n return this.api.listCampaigns(new ListCampaignsRequest({\n partnerId: partnerID,\n focuses: focuses || [],\n statuses: statuses || [],\n pagingOptions: pagingOptions || {},\n name: name\n })).pipe(map(v => (v.campaigns || []).map(vv => {\n vv.campaignSchedule = vv.campaignSchedule || [];\n vv.hiddenForPartners = vv.hiddenForPartners || [];\n return vv;\n })));\n }\n listRecommendedCampaigns(data) {\n return this.api.listRecommendedCampaigns({\n focuses: data.focuses,\n statuses: data.statuses,\n pagingOptions: data.pagingOptions\n }).pipe(map(resp => resp));\n }\n duplicateCampaignStepAsync(campaignId, stepId) {\n const req = {\n campaignId: campaignId,\n campaignStepId: stepId\n };\n return this.api.duplicateCampaignStepAsync(req).pipe(map(v => v.statusId));\n }\n checkCampaignStepDuplicateStatus(workflowStatusId) {\n const req = {\n statusId: workflowStatusId\n };\n return this.api.checkDuplicateCampaignStepStatus(req).pipe(map(v => v.status));\n }\n duplicateCampaignAsync(campaignId, targetPartnerId) {\n const req = {\n campaignId: campaignId,\n partnerId: targetPartnerId\n };\n return this.api.duplicateCampaignAsync(req).pipe(map(v => v.statusId));\n }\n duplicateCampaignAsyncV2(campaignId, sender) {\n const req = {\n campaignId: campaignId,\n sender: sender\n };\n return this.api.duplicateCampaignAsyncV2(req).pipe(map(v => v.statusId));\n }\n checkCampaignDuplicateStatus(workflowStatusId) {\n const req = {\n statusId: workflowStatusId\n };\n return this.api.checkDuplicateCampaignStatus(req);\n }\n getEmailStepContent(campaignId, campaignStepId, data) {\n return this.api.getCampaignStepContent({\n campaignId: campaignId,\n campaignStepId: campaignStepId,\n stepData: data\n });\n }\n sendStepTestEmail(sender, campaignId, campaignStepId, sendToUserId, data) {\n return this.api.sendCampaignStepTestEmail({\n sender: sender,\n campaignId: campaignId,\n campaignStepId: campaignStepId,\n sendToUserId: sendToUserId,\n stepData: data\n });\n }\n updateStatus(sender, campaignID, status) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n status: status,\n fieldMask: {\n paths: [\"Status\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateName(sender, campaignID, name) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n name: name,\n fieldMask: {\n paths: [\"Name\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateCampaignSchedule(sender, campaignID, campaignSchedule) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n campaignSchedule: campaignSchedule,\n fieldMask: {\n paths: [\"CampaignSchedule\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateCampaignLocale(sender, campaignID, locale) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n locale: locale,\n fieldMask: {\n paths: [\"Locale\"]\n }\n }).pipe(mapTo(undefined));\n }\n listCampaignsV2(sender, statuses, searchTerm, pagingOptions, sortOptions) {\n return this.api.listCampaignsV2({\n sender: sender,\n statuses: statuses || [],\n pagingOptions: pagingOptions || {},\n searchTerm: searchTerm,\n sortOptions: sortOptions || {}\n }).pipe(map(resp => resp));\n }\n pauseCampaign(campaignId) {\n return this.api.pauseCampaign({\n campaignId: campaignId\n }).pipe(mapTo(undefined));\n }\n unpauseCampaign(campaignId) {\n return this.api.unpauseCampaign({\n campaignId: campaignId\n }).pipe(mapTo(undefined));\n }\n getAvailableStepTypesForSender(sender) {\n return this.api.getAvailableStepTypesForSender({\n sender: sender\n }).pipe(map(resp => resp));\n }\n }\n CampaignService.ɵfac = function CampaignService_Factory(t) {\n return new (t || CampaignService)(i0.ɵɵinject(CampaignsApiService));\n };\n CampaignService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignService,\n factory: CampaignService.ɵfac,\n providedIn: 'root'\n });\n return CampaignService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RecipientCampaignService = /*#__PURE__*/(() => {\n class RecipientCampaignService {\n constructor(api) {\n this.api = api;\n }\n list(accountGroupID) {\n return this.api.listRecipientCampaigns({\n accountGroupId: accountGroupID\n }).pipe(map(resp => resp.recipientCampaign));\n }\n addToCampaign(campaignId, sender, recipient, date) {\n return this.api.addContactToCampaign({\n campaignId: campaignId,\n sender: sender,\n recipient: recipient,\n date: date\n }).pipe(map(resp => resp));\n }\n bulkAddToCampaign(campaignId, sender, date, filterGroup, searchTerm) {\n return this.api.bulkAddContactsToCampaign({\n campaignId: campaignId,\n sender: sender,\n date: date,\n criteria: {\n filterGroupV2: filterGroup,\n searchTerm: searchTerm\n }\n }).pipe(map(() => null));\n }\n lookupRecipientCampaign(campaignId, sender, recipient) {\n return this.api.lookupRecipientCampaign({\n campaignId: campaignId,\n sender: sender,\n recipient: recipient\n }).pipe(map(resp => resp));\n }\n lookupRecipientCampaigns(campaignId, sender, recipients) {\n return this.api.lookupRecipientCampaigns({\n campaignId: campaignId,\n sender: sender,\n recipients: recipients\n }).pipe(map(resp => resp));\n }\n getRecipientCampaign(recipientCampaignId) {\n return this.api.getRecipientCampaign({\n recipientCampaignId: recipientCampaignId\n }).pipe(map(resp => resp?.recipientCampaign));\n }\n }\n RecipientCampaignService.ɵfac = function RecipientCampaignService_Factory(t) {\n return new (t || RecipientCampaignService)(i0.ɵɵinject(RecipientCampaignApiService));\n };\n RecipientCampaignService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignService,\n factory: RecipientCampaignService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailTemplateService = /*#__PURE__*/(() => {\n class EmailTemplateService {\n constructor(api) {\n this.api = api;\n }\n get(templateID) {\n return this.api.getEmailTemplate({\n templateId: templateID\n }).pipe(map(resp => resp.template));\n }\n listLinksInTemplate(templateID) {\n return this.api.listLinksInTemplate({\n templateId: templateID\n }).pipe(map(resp => resp.links));\n }\n getMulti(templateIDs) {\n return this.api.getEmailTemplates({\n templateIds: templateIDs\n }).pipe(map(resp => resp.templates));\n }\n previewEmailTemplate(templateId, accountGroupId, partnerId, marketId, locale, userId, sender) {\n const req = {\n templateId: templateId,\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n marketId: marketId,\n locale: locale,\n userId: userId,\n sender: sender\n };\n return this.api.previewEmailTemplate(req).pipe(map(v => ({\n htmlBody: v.templateHtml,\n subject: v.subject,\n name: v.name\n })));\n }\n }\n EmailTemplateService.ɵfac = function EmailTemplateService_Factory(t) {\n return new (t || EmailTemplateService)(i0.ɵɵinject(EmailTemplateApiService));\n };\n EmailTemplateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailTemplateService,\n factory: EmailTemplateService.ɵfac,\n providedIn: 'root'\n });\n return EmailTemplateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * EmailBuilderTemplates are used by the new EmailBuilder (from @vendasta/email-ui)\n * to create and edit email templates. They are different from the legacy\n * EmailTemplates because they store their editable content as JSON, not HTML.\n */\nlet EmailBuilderTemplateService = /*#__PURE__*/(() => {\n class EmailBuilderTemplateService {\n constructor(api) {\n this.api = api;\n }\n createNewTemplate(template) {\n const req = {\n emailBuilderTemplate: template\n };\n return this.api.create(req).pipe(map(v => v.id));\n }\n getTemplate(id) {\n const req = {\n id: id\n };\n return this.api.get(req).pipe(map(v => v.emailBuilderTemplate));\n }\n updateExistingTemplate(template) {\n const req = {\n emailBuilderTemplate: template\n };\n return this.api.update(req).pipe(mapTo(null));\n }\n convertLegacyTemplate(templateId, partnerId) {\n const req = {\n templateId: templateId,\n partnerId: partnerId\n };\n return this.api.convert(req).pipe(map(v => v.templateId));\n }\n }\n EmailBuilderTemplateService.ɵfac = function EmailBuilderTemplateService_Factory(t) {\n return new (t || EmailBuilderTemplateService)(i0.ɵɵinject(EmailBuilderApiService));\n };\n EmailBuilderTemplateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailBuilderTemplateService,\n factory: EmailBuilderTemplateService.ɵfac,\n providedIn: 'root'\n });\n return EmailBuilderTemplateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CampaignStatsService = /*#__PURE__*/(() => {\n class CampaignStatsService {\n constructor(api) {\n this.api = api;\n }\n get(data) {\n return this.api.getAggregatedCampaignStats(data).pipe(map(resp => resp));\n }\n list(data) {\n return this.api.listCampaignStats(data).pipe(map(resp => {\n resp.stats = resp.stats || [];\n resp.stats = resp.stats.map(stat => {\n stat.tags = stat.tags || [];\n return stat;\n });\n return resp;\n }));\n }\n getCampaignDetailsStats(data) {\n return this.api.getCampaignDetailsStats(data).pipe(map(resp => resp));\n }\n getLinkStats(data) {\n return this.api.getLinkStats(data).pipe(map(resp => resp));\n }\n getRecipientLinkClickStats(data) {\n return this.api.getRecipientLinkClickStats(data);\n }\n getCampaignStepStats(data) {\n return this.api.getCampaignStepStats(data).pipe(map(resp => resp));\n }\n exportRecipientLinkClickStats(data) {\n return this.api.exportRecipientLinkClickStats(data).pipe(map(() => null));\n }\n listStatsForSender(data) {\n return this.api.listCampaignStatsForSender(data).pipe(map(v => {\n v.stats = v.stats || [];\n return v;\n }));\n }\n }\n CampaignStatsService.ɵfac = function CampaignStatsService_Factory(t) {\n return new (t || CampaignStatsService)(i0.ɵɵinject(CampaignStatsApiService));\n };\n CampaignStatsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignStatsService,\n factory: CampaignStatsService.ɵfac,\n providedIn: 'root'\n });\n return CampaignStatsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CampaignTaggingService = /*#__PURE__*/(() => {\n class CampaignTaggingService {\n constructor(api) {\n this.api = api;\n }\n create(senderType, senderId, text, colour) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n text: text,\n colour: colour\n };\n return this.api.create(req).pipe(map(resp => resp.campaignTag));\n }\n listTagsForSender(senderType, senderId, cursor, pageSize) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n cursor: cursor,\n pageSize: pageSize\n };\n return this.api.listTagsForSender(req).pipe(map(v => {\n v.campaignTags = v.campaignTags || [];\n return v;\n }));\n }\n addTagToCampaign(senderType, senderId, campaignId, tagId) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n campaignId: campaignId,\n tagId: tagId\n };\n return this.api.addTagToCampaign(req).pipe(map(() => null));\n }\n removeTagFromCampaign(campaignId, tagId) {\n const req = new RemoveTagFromCampaignRequest({\n campaignId: campaignId,\n tagId: tagId\n });\n return this.api.removeTagFromCampaign(req).pipe(map(() => null));\n }\n listTagsForCampaign(campaignId, cursor, pageSize) {\n const req = {\n campaignId: campaignId,\n cursor: cursor,\n pageSize: pageSize\n };\n return this.api.listTagsForCampaign(req).pipe(map(v => {\n v.campaignTags = v.campaignTags || [];\n return v;\n }));\n }\n deleteTag(senderType, senderId, tagId) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n tagId: tagId\n };\n return this.api.delete(req).pipe(map(() => null));\n }\n }\n CampaignTaggingService.ɵfac = function CampaignTaggingService_Factory(t) {\n return new (t || CampaignTaggingService)(i0.ɵɵinject(CampaignTaggingApiService));\n };\n CampaignTaggingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignTaggingService,\n factory: CampaignTaggingService.ɵfac,\n providedIn: 'root'\n });\n return CampaignTaggingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LegacyAppengineService = /*#__PURE__*/(() => {\n class LegacyAppengineService {\n constructor(api) {\n this.api = api;\n }\n updateRecipientCampaignStatus(recipientCampaignId, status) {\n const req = {\n recipientCampaignId: recipientCampaignId,\n status: status\n };\n return this.api.updateRecipientCampaignStatus(req).pipe(map(() => null));\n }\n }\n LegacyAppengineService.ɵfac = function LegacyAppengineService_Factory(t) {\n return new (t || LegacyAppengineService)(i0.ɵɵinject(LegacyAppengineAPIApiService));\n };\n LegacyAppengineService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LegacyAppengineService,\n factory: LegacyAppengineService.ɵfac,\n providedIn: 'root'\n });\n return LegacyAppengineService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ConfigService = /*#__PURE__*/(() => {\n class ConfigService {\n constructor(api) {\n this.api = api;\n }\n getConfig(campaignId) {\n const req = {\n campaignId: campaignId\n };\n return this.api.getConfig(req);\n }\n updateConfig(campaignId, timeZoneForEmailsSent, daysEmailsCanBeSent, recipientsAddedRateLimitEnabled, recipientsAddedRateLimit, sender, emailsCanbeSent) {\n const req = {\n campaignId: campaignId,\n timeZoneForEmailsSent: timeZoneForEmailsSent,\n daysEmailsCanBeSent: daysEmailsCanBeSent,\n recipientsAddedRateLimitEnabled: recipientsAddedRateLimitEnabled,\n recipientsAddedRateLimit: recipientsAddedRateLimit,\n sender: sender,\n emailSchedulingDay: emailsCanbeSent\n };\n return this.api.updateConfig(req);\n }\n }\n ConfigService.ɵfac = function ConfigService_Factory(t) {\n return new (t || ConfigService)(i0.ɵɵinject(CampaignConfigApiService));\n };\n ConfigService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConfigService,\n factory: ConfigService.ɵfac,\n providedIn: 'root'\n });\n return ConfigService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ActivationService = /*#__PURE__*/(() => {\n class ActivationService {\n constructor(api) {\n this.api = api;\n }\n isFeatureActive(sender, feature) {\n const req = {\n sender: sender,\n featureId: feature\n };\n return this.api.isFeatureActive(req).pipe(map(v => v));\n }\n }\n ActivationService.ɵfac = function ActivationService_Factory(t) {\n return new (t || ActivationService)(i0.ɵɵinject(ActivationsApiService));\n };\n ActivationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActivationService,\n factory: ActivationService.ɵfac,\n providedIn: 'root'\n });\n return ActivationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet QuotaService = /*#__PURE__*/(() => {\n class QuotaService {\n constructor(api) {\n this.api = api;\n }\n getCampaignQuota(sender, type, datePeriod) {\n const req = {\n sender: sender,\n type: type,\n datePeriod: datePeriod\n };\n return this.api.getCampaignQuota(req);\n }\n }\n QuotaService.ɵfac = function QuotaService_Factory(t) {\n return new (t || QuotaService)(i0.ɵɵinject(CampaignQuotaApiService));\n };\n QuotaService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: QuotaService,\n factory: QuotaService.ɵfac,\n providedIn: 'root'\n });\n return QuotaService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, ActivateProductForSenderRequest, ActivationService, AddContactToCampaignRequest, AddContactToCampaignResponse, AddStepToCampaignRequest, AddTagToCampaignRequest, AllDates, AsyncWorkStatus, BulkAddContactsToCampaignRequest, CampaignDetailStats, CampaignQuotaCategory, CampaignRecipient, CampaignScheduleStatus, CampaignService, CampaignState, CampaignStatsService, CampaignStepEvent, CampaignStepEventType, CampaignStepInterface, CampaignStepSendStatusType, CampaignStepStats, CampaignStepType, CampaignTag, CampaignTaggingService, CheckDuplicateCampaignStatusRequest, CheckDuplicateCampaignStatusResponse, CheckDuplicateCampaignStepStatusRequest, CheckDuplicateCampaignStepStatusResponse, Colors, ConfigService, Contact, ContactType, ConvertLegacyTemplateRequest, ConvertLegacyTemplateResponse, CreateCampaignRequest, CreateCampaignResponse, CreateEmailTemplateRequest, CreateQuotaRequest, CreateRecipientCampaignStepEventRequest, CreateRecipientRequest, CreateRequest, CreateResponse, CreateTagRequest, CreateTagResponse, DateDefault, DateFilter, DaysOfTheWeek, DeactivateProductForSenderRequest, DeleteCampaignRequest, DeleteRequest, DeleteTagRequest, DeletedTagsPolicy, DuplicateAndRecommendCampaignRequest, DuplicateCampaignDetails, DuplicateCampaignRequest, DuplicateCampaignRequestV2, DuplicateCampaignResponse, DuplicateCampaignStepRequest, DuplicateCampaignStepResponse, DuplicateCampaignStepStatus, EmailBuilderConfiguration, EmailBuilderTemplate, EmailBuilderTemplateFocuses, EmailBuilderTemplateService, EmailBuilderTemplateStatuses, EmailTemplateService, EmailTemplateStruct, ExecuteStepRequest, ExportRecipientLinkClickStatsRequest, ExtractLinkTrackingDataForTemplateRequest, ExtractLinkTrackingDataForTemplateResponse, Feature, FieldMask, Filter, FilterGroup, FilterGroupOperator, FilterOperator, FilterType, FilterValue, Focuses, Footer, GetAggregatedCampaignStatsRequest, GetAggregatedCampaignStatsResponse, GetAvailableStepTypesForSenderRequest, GetAvailableStepTypesForSenderResponse, GetCampaignDetailsStatsRequest, GetCampaignDetailsStatsResponse, GetCampaignQuotaRequest, GetCampaignQuotaResponse, GetCampaignRequest, GetCampaignResponse, GetCampaignStepContentRequest, GetCampaignStepContentRequestStepDataEntry, GetCampaignStepContentResponse, GetCampaignStepStatsRequest, GetCampaignStepStatsResponse, GetConfigRequest, GetConfigResponse, GetEmailTemplateRequest, GetEmailTemplateResponse, GetEmailTemplatesRequest, GetEmailTemplatesResponse, GetLinkStatsRequest, GetLinkStatsResponse, GetMultiCampaignsRequest, GetMultiCampaignsResponse, GetRecipientCampaignRequest, GetRecipientCampaignResponse, GetRecipientLinkClickStatsRequest, GetRecipientLinkClickStatsRequestPagedRequestOptions, GetRecipientLinkClickStatsResponse, GetRecipientRequest, GetRecipientResponse, GetRequest, GetResponse, GetterCampaignData, GoogleAnalyticsOptions, ImageAlign, IsFeatureActiveForSenderRequest, IsFeatureActiveForSenderResponse, IsProductActiveForSenderRequest, IsProductActiveForSenderResponse, LegacyAddAccountGroupToCampaignRequest, LegacyAppengineService, LegacyGetRecipientCampaignsByAgidRequest, LegacyGetRecipientCampaignsByAgidResponse, LegacyPauseAccountGroupOnCampaignRequest, LegacyRateLimitedAddToCampaignRequest, LegacyRateLimitedAddToCampaignResponse, LegacyUpdateRecipientCampaignStatusRequest, LinkStats, LinkTrackingData, ListCampaignStatsForSenderRequest, ListCampaignStatsForSenderResponse, ListCampaignStatsRequest, ListCampaignStatsResponse, ListCampaignStatsStruct, ListCampaignTagDetails, ListCampaignsRequest, ListCampaignsResponse, ListCampaignsV2Request, ListCampaignsV2Response, ListLinksInTemplateRequest, ListLinksInTemplateResponse, ListRecipientCampaignsRequest, ListRecipientCampaignsResponse, ListRecommendedCampaignsRequest, ListTagsForCampaignRequest, ListTagsForCampaignResponse, ListTagsForSenderRequest, ListTagsForSenderResponse, LookupRecipientCampaignRequest, LookupRecipientCampaignResponse, LookupRecipientCampaignsRequest, LookupRecipientCampaignsResponse, PageSetup, PagedRequestOptions, PagedResponseMetadata, PauseCampaignRequest, Period, PreviewEmailTemplateRequest, PreviewEmailTemplateResponse, QuotaService, RecipientCampaignPair, RecipientCampaignService, RecipientCampaignStatus, RecipientCampaignStepEventStruct, RecipientCampaignStruct, RecipientClickStats, RecipientClickStatsAccount, RecipientClickStatsRecipient, RecipientCriteria, RecipientType, RecipientV2, RemoveTagFromCampaignRequest, RenderRequest, RenderResponse, ScheduledCampaignStepInterface, SendCampaignStepTestEmailRequest, SendCampaignStepTestEmailRequestStepDataEntry, SendCampaignStepTestEmailResponse, SendRecipientCampaignStepEmailRequest, Sender, SenderType, SortDirection, SortField, SortOptions, Statuses, StepDataResponse, TemplateReference, TemplateStatus, TopLogo, UnpauseCampaignRequest, UpdateCampaignNameRequest, UpdateConfigRequest, UpdateConfigResponse, UpdateEmailTemplateRequest, UpdateQuotaLimitRequest, UpdateRecipientRequest, UpdateRequest, UpdateStepOnCampaignRequest, UpsertCampaignRequest, UpsertConfigRequest, UpsertRecipientCampaignActivatedEventRequest, UpsertRecipientCampaignRequest, UpsertRecipientCampaignStepEventRequest };\n"],"mappings":"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","names":["DateDefault","FilterGroupOperator","FilterOperator","AsyncWorkStatus","CampaignScheduleStatus","CampaignStepEventType","CampaignStepSendStatusType","CampaignStepType","ContactType","DuplicateCampaignStepStatus","Feature","Focuses","RecipientType","SenderType","SortDirection","SortField","Statuses","FieldMask","_FieldMask","proto","m","kwargs","toReturn","enumStringToValue$1","enumRef","value","Filter","_Filter","proto","m","FilterOperator","FilterValue","kwargs","toReturn","FilterGroup","_FilterGroup","FilterGroupOperator","_FilterValue","DateDefault","enumStringToValue","AddContactToCampaignRequest","_AddContactToCampaignRequest","proto","m","Sender","RecipientV2","kwargs","toReturn","AddContactToCampaignResponse","_AddContactToCampaignResponse","AddStepToCampaignRequest","_AddStepToCampaignRequest","enumStringToValue","CampaignStepType","BulkAddContactsToCampaignRequest","_BulkAddContactsToCampaignRequest","proto","m","Sender","RecipientCriteria","kwargs","toReturn","CampaignStepEvent","_CampaignStepEvent","proto","m","enumStringToValue","CampaignStepEventType","kwargs","toReturn","CampaignStepInterface","_CampaignStepInterface","CampaignStepType","CheckDuplicateCampaignStatusRequest","_CheckDuplicateCampaignStatusRequest","proto","m","kwargs","toReturn","CheckDuplicateCampaignStatusResponse","_CheckDuplicateCampaignStatusResponse","enumStringToValue","AsyncWorkStatus","CheckDuplicateCampaignStepStatusRequest","_CheckDuplicateCampaignStepStatusRequest","CheckDuplicateCampaignStepStatusResponse","_CheckDuplicateCampaignStepStatusResponse","DuplicateCampaignStepStatus","Contact","_Contact","ContactType","CreateCampaignRequest","_CreateCampaignRequest","proto","m","Sender","enumStringToValue","Focuses","kwargs","toReturn","CreateCampaignResponse","_CreateCampaignResponse","DateFilter","_DateFilter","proto","m","kwargs","toReturn","DeleteCampaignRequest","_DeleteCampaignRequest","proto","m","kwargs","toReturn","DuplicateAndRecommendCampaignRequest","_DuplicateAndRecommendCampaignRequest","proto","m","DuplicateCampaignDetails","kwargs","toReturn","_DuplicateCampaignDetails","DuplicateCampaignRequest","_DuplicateCampaignRequest","DuplicateCampaignRequestV2","_DuplicateCampaignRequestV2","Sender","DuplicateCampaignResponse","_DuplicateCampaignResponse","DuplicateCampaignStepRequest","_DuplicateCampaignStepRequest","DuplicateCampaignStepResponse","_DuplicateCampaignStepResponse","ExecuteStepRequest","_ExecuteStepRequest","proto","m","Sender","kwargs","toReturn","GetAvailableStepTypesForSenderRequest","_GetAvailableStepTypesForSenderRequest","proto","m","Sender","kwargs","toReturn","GetAvailableStepTypesForSenderResponse","_GetAvailableStepTypesForSenderResponse","v","enumStringToValue","Feature","GetCampaignRequest","_GetCampaignRequest","proto","m","kwargs","toReturn","GetCampaignResponse","_GetCampaignResponse","GetterCampaignData","GetCampaignStepContentRequest","_GetCampaignStepContentRequest","obj","k","GetCampaignStepContentResponse","_GetCampaignStepContentResponse","GetMultiCampaignsRequest","_GetMultiCampaignsRequest","proto","m","kwargs","toReturn","GetMultiCampaignsResponse","_GetMultiCampaignsResponse","GetterCampaignData","GetRecipientCampaignRequest","_GetRecipientCampaignRequest","GetRecipientCampaignResponse","_GetRecipientCampaignResponse","RecipientCampaignStruct","GetterCampaignData","_GetterCampaignData","proto","m","enumStringToValue","Focuses","CampaignStepInterface","Statuses","kwargs","toReturn","ListCampaignsRequest","_ListCampaignsRequest","proto","m","v","enumStringToValue","Focuses","Statuses","PagedRequestOptions","kwargs","toReturn","ListCampaignsResponse","_ListCampaignsResponse","GetterCampaignData","PagedResponseMetadata","ListCampaignsV2Request","_ListCampaignsV2Request","Sender","SortOptions","ListCampaignsV2Response","_ListCampaignsV2Response","ListRecipientCampaignsRequest","_ListRecipientCampaignsRequest","proto","m","kwargs","toReturn","ListRecipientCampaignsResponse","_ListRecipientCampaignsResponse","RecipientCampaignStruct","ListRecommendedCampaignsRequest","_ListRecommendedCampaignsRequest","v","enumStringToValue","Focuses","Statuses","PagedRequestOptions","LookupRecipientCampaignRequest","_LookupRecipientCampaignRequest","proto","m","Sender","RecipientV2","kwargs","toReturn","LookupRecipientCampaignResponse","_LookupRecipientCampaignResponse","RecipientCampaignStruct","LookupRecipientCampaignsRequest","_LookupRecipientCampaignsRequest","LookupRecipientCampaignsResponse","_LookupRecipientCampaignsResponse","PagedRequestOptions","_PagedRequestOptions","proto","m","kwargs","toReturn","PagedResponseMetadata","_PagedResponseMetadata","PauseCampaignRequest","_PauseCampaignRequest","RecipientCampaignStruct","_RecipientCampaignStruct","proto","m","enumStringToValue","CampaignScheduleStatus","ScheduledCampaignStepInterface","kwargs","toReturn","RecipientCriteria","_RecipientCriteria","proto","m","FilterGroup","kwargs","toReturn","RecipientV2","_RecipientV2","enumStringToValue","RecipientType","Contact","ScheduledCampaignStepInterface","_ScheduledCampaignStepInterface","proto","m","enumStringToValue","CampaignStepType","CampaignStepSendStatusType","CampaignStepEvent","kwargs","toReturn","SendCampaignStepTestEmailRequest","_SendCampaignStepTestEmailRequest","Sender","obj","k","SendCampaignStepTestEmailResponse","_SendCampaignStepTestEmailResponse","SendRecipientCampaignStepEmailRequest","_SendRecipientCampaignStepEmailRequest","_Sender","SenderType","SortOptions","_SortOptions","SortField","SortDirection","StepDataResponse","_StepDataResponse","proto","m","kwargs","toReturn","UnpauseCampaignRequest","_UnpauseCampaignRequest","UpdateCampaignNameRequest","_UpdateCampaignNameRequest","UpdateStepOnCampaignRequest","_UpdateStepOnCampaignRequest","proto","m","Sender","FieldMask","kwargs","toReturn","UpsertCampaignRequest","_UpsertCampaignRequest","enumStringToValue","Focuses","Statuses","CampaignStepInterface","UpsertRecipientCampaignRequest","_UpsertRecipientCampaignRequest","proto","m","enumStringToValue","CampaignScheduleStatus","ScheduledCampaignStepInterface","FieldMask","kwargs","toReturn","environment","hostMap","HostService","t","ɵɵdefineInjectable","CampaignsApiService","http","hostService","HttpHeaders","r","request","DeleteCampaignRequest","__spreadProps","__spreadValues","UpsertCampaignRequest","UpdateCampaignNameRequest","ListCampaignsRequest","map","resp","ListCampaignsResponse","ListRecommendedCampaignsRequest","GetCampaignRequest","GetCampaignResponse","GetMultiCampaignsRequest","GetMultiCampaignsResponse","DuplicateCampaignStepRequest","DuplicateCampaignStepResponse","CheckDuplicateCampaignStepStatusRequest","CheckDuplicateCampaignStepStatusResponse","DuplicateCampaignRequest","DuplicateCampaignResponse","DuplicateCampaignRequestV2","CheckDuplicateCampaignStatusRequest","CheckDuplicateCampaignStatusResponse","DuplicateAndRecommendCampaignRequest","SendRecipientCampaignStepEmailRequest","ExecuteStepRequest","CreateCampaignRequest","CreateCampaignResponse","AddStepToCampaignRequest","StepDataResponse","GetCampaignStepContentRequest","GetCampaignStepContentResponse","SendCampaignStepTestEmailRequest","SendCampaignStepTestEmailResponse","UpdateStepOnCampaignRequest","ListCampaignsV2Request","ListCampaignsV2Response","PauseCampaignRequest","UnpauseCampaignRequest","GetAvailableStepTypesForSenderRequest","GetAvailableStepTypesForSenderResponse","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","RecipientCampaignApiService","http","hostService","HttpHeaders","r","request","UpsertRecipientCampaignRequest","__spreadProps","__spreadValues","ListRecipientCampaignsRequest","map","resp","ListRecipientCampaignsResponse","GetRecipientCampaignRequest","GetRecipientCampaignResponse","LookupRecipientCampaignRequest","LookupRecipientCampaignResponse","LookupRecipientCampaignsRequest","LookupRecipientCampaignsResponse","AddContactToCampaignRequest","AddContactToCampaignResponse","BulkAddContactsToCampaignRequest","t","ɵɵinject","HttpClient","HostService","ɵɵdefineInjectable","AllDates","DateFilter","CampaignService","api","sender","name","Focuses","map","v","campaignId","stepType","contentId","req","resp","campaignStepId","secondsAfterLastStep","fm","campaignID","campaign","campaignIDs","partnerID","focuses","statuses","pagingOptions","ListCampaignsRequest","vv","data","stepId","workflowStatusId","targetPartnerId","sendToUserId","status","mapTo","campaignSchedule","locale","searchTerm","sortOptions","t","ɵɵinject","CampaignsApiService","ɵɵdefineInjectable","RecipientCampaignService","accountGroupID","recipient","date","filterGroup","recipients","recipientCampaignId","RecipientCampaignApiService"],"x_google_ignoreList":[0]}