{"version":3,"sources":["node_modules/@vendasta/reputation/fesm2020/vendasta-reputation.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Recommendation = /*#__PURE__*/function (Recommendation) {\n  Recommendation[Recommendation[\"RECOMMENDATION_UNSPECIFIED\"] = 0] = \"RECOMMENDATION_UNSPECIFIED\";\n  Recommendation[Recommendation[\"RECOMMENDATION_POSITIVE\"] = 1] = \"RECOMMENDATION_POSITIVE\";\n  Recommendation[Recommendation[\"RECOMMENDATION_NEGATIVE\"] = 2] = \"RECOMMENDATION_NEGATIVE\";\n  return Recommendation;\n}(Recommendation || {});\nvar ReviewActionStatus = /*#__PURE__*/function (ReviewActionStatus) {\n  ReviewActionStatus[ReviewActionStatus[\"REVIEW_ACTION_STATUS_ACTION_REQUIRED\"] = 0] = \"REVIEW_ACTION_STATUS_ACTION_REQUIRED\";\n  ReviewActionStatus[ReviewActionStatus[\"REVIEW_ACTION_STATUS_NO_ACTION_REQUIRED\"] = 1] = \"REVIEW_ACTION_STATUS_NO_ACTION_REQUIRED\";\n  ReviewActionStatus[ReviewActionStatus[\"REVIEW_ACTION_STATUS_OWNER_RESPONDED\"] = 2] = \"REVIEW_ACTION_STATUS_OWNER_RESPONDED\";\n  ReviewActionStatus[ReviewActionStatus[\"REVIEW_ACTION_STATUS_RESPONSE_AWAITING_APPROVAL\"] = 3] = \"REVIEW_ACTION_STATUS_RESPONSE_AWAITING_APPROVAL\";\n  ReviewActionStatus[ReviewActionStatus[\"REVIEW_ACTION_STATUS_DIGITAL_AGENT_RESPONDED\"] = 4] = \"REVIEW_ACTION_STATUS_DIGITAL_AGENT_RESPONDED\";\n  return ReviewActionStatus;\n}(ReviewActionStatus || {});\nvar ReviewDeletedStatus = /*#__PURE__*/function (ReviewDeletedStatus) {\n  ReviewDeletedStatus[ReviewDeletedStatus[\"REVIEW_DELETED_STATUS_EMPTY\"] = 0] = \"REVIEW_DELETED_STATUS_EMPTY\";\n  ReviewDeletedStatus[ReviewDeletedStatus[\"REVIEW_DELETED_STATUS_USER_REMOVED\"] = 1] = \"REVIEW_DELETED_STATUS_USER_REMOVED\";\n  ReviewDeletedStatus[ReviewDeletedStatus[\"REVIEW_DELETED_STATUS_USER_KEPT\"] = 2] = \"REVIEW_DELETED_STATUS_USER_KEPT\";\n  ReviewDeletedStatus[ReviewDeletedStatus[\"REVIEW_DELETED_STATUS_UNSPECIFIED\"] = 3] = \"REVIEW_DELETED_STATUS_UNSPECIFIED\";\n  return ReviewDeletedStatus;\n}(ReviewDeletedStatus || {});\nvar ThirdPartyPublishedStatus = /*#__PURE__*/function (ThirdPartyPublishedStatus) {\n  ThirdPartyPublishedStatus[ThirdPartyPublishedStatus[\"THIRD_PARTY_PUBLISHED_STATUS_EMPTY\"] = 0] = \"THIRD_PARTY_PUBLISHED_STATUS_EMPTY\";\n  ThirdPartyPublishedStatus[ThirdPartyPublishedStatus[\"THIRD_PARTY_PUBLISHED_STATUS_TRUE\"] = 1] = \"THIRD_PARTY_PUBLISHED_STATUS_TRUE\";\n  ThirdPartyPublishedStatus[ThirdPartyPublishedStatus[\"THIRD_PARTY_PUBLISHED_STATUS_FALSE\"] = 2] = \"THIRD_PARTY_PUBLISHED_STATUS_FALSE\";\n  return ThirdPartyPublishedStatus;\n}(ThirdPartyPublishedStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Channel = /*#__PURE__*/function (Channel) {\n  Channel[Channel[\"CHANNEL_UNSPECIFIED\"] = 0] = \"CHANNEL_UNSPECIFIED\";\n  Channel[Channel[\"SMS_FALLBACK_TO_EMAIL\"] = 1] = \"SMS_FALLBACK_TO_EMAIL\";\n  Channel[Channel[\"SMS_ONLY\"] = 2] = \"SMS_ONLY\";\n  Channel[Channel[\"EMAIL_FALLBACK_TO_SMS\"] = 3] = \"EMAIL_FALLBACK_TO_SMS\";\n  Channel[Channel[\"EMAIL_ONLY\"] = 4] = \"EMAIL_ONLY\";\n  Channel[Channel[\"BOTH_EMAIL_AND_SMS\"] = 5] = \"BOTH_EMAIL_AND_SMS\";\n  return Channel;\n}(Channel || {});\nvar DaysOfWeek = /*#__PURE__*/function (DaysOfWeek) {\n  DaysOfWeek[DaysOfWeek[\"DAY_OF_WEEK_UNSPECIFIED\"] = 0] = \"DAY_OF_WEEK_UNSPECIFIED\";\n  DaysOfWeek[DaysOfWeek[\"MONDAY\"] = 1] = \"MONDAY\";\n  DaysOfWeek[DaysOfWeek[\"TUESDAY\"] = 2] = \"TUESDAY\";\n  DaysOfWeek[DaysOfWeek[\"WEDNESDAY\"] = 3] = \"WEDNESDAY\";\n  DaysOfWeek[DaysOfWeek[\"THURSDAY\"] = 4] = \"THURSDAY\";\n  DaysOfWeek[DaysOfWeek[\"FRIDAY\"] = 5] = \"FRIDAY\";\n  DaysOfWeek[DaysOfWeek[\"SATURDAY\"] = 6] = \"SATURDAY\";\n  DaysOfWeek[DaysOfWeek[\"SUNDAY\"] = 7] = \"SUNDAY\";\n  return DaysOfWeek;\n}(DaysOfWeek || {});\nvar Interval = /*#__PURE__*/function (Interval) {\n  Interval[Interval[\"INTERVAL_UNSPECIFIED\"] = 0] = \"INTERVAL_UNSPECIFIED\";\n  Interval[Interval[\"INTERVAL_MINUTES\"] = 1] = \"INTERVAL_MINUTES\";\n  Interval[Interval[\"INTERVAL_HOURS\"] = 2] = \"INTERVAL_HOURS\";\n  Interval[Interval[\"INTERVAL_DAYS\"] = 3] = \"INTERVAL_DAYS\";\n  Interval[Interval[\"INTERVAL_WEEKS\"] = 4] = \"INTERVAL_WEEKS\";\n  Interval[Interval[\"INTERVAL_MONTHS\"] = 5] = \"INTERVAL_MONTHS\";\n  return Interval;\n}(Interval || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar SMSState = /*#__PURE__*/function (SMSState) {\n  SMSState[SMSState[\"SMS_STATE_UNDEFINED\"] = 0] = \"SMS_STATE_UNDEFINED\";\n  SMSState[SMSState[\"SMS_STATE_DISABLED\"] = 1] = \"SMS_STATE_DISABLED\";\n  SMSState[SMSState[\"SMS_STATE_ENABLED\"] = 2] = \"SMS_STATE_ENABLED\";\n  return SMSState;\n}(SMSState || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ReviewWidgetLayout = /*#__PURE__*/function (ReviewWidgetLayout) {\n  ReviewWidgetLayout[ReviewWidgetLayout[\"LAYOUT_UNSPECIFIED\"] = 0] = \"LAYOUT_UNSPECIFIED\";\n  ReviewWidgetLayout[ReviewWidgetLayout[\"LAYOUT_FEED\"] = 1] = \"LAYOUT_FEED\";\n  ReviewWidgetLayout[ReviewWidgetLayout[\"LAYOUT_CAROUSEL\"] = 2] = \"LAYOUT_CAROUSEL\";\n  ReviewWidgetLayout[ReviewWidgetLayout[\"LAYOUT_BADGE\"] = 3] = \"LAYOUT_BADGE\";\n  return ReviewWidgetLayout;\n}(ReviewWidgetLayout || {});\nvar ListWidgetReviewsRequestMinimumRating = /*#__PURE__*/function (ListWidgetReviewsRequestMinimumRating) {\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_UNSPECIFIED\"] = 0] = \"MINIMUM_RATING_UNSPECIFIED\";\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_1\"] = 1] = \"MINIMUM_RATING_1\";\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_2\"] = 2] = \"MINIMUM_RATING_2\";\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_3\"] = 3] = \"MINIMUM_RATING_3\";\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_4\"] = 4] = \"MINIMUM_RATING_4\";\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_5\"] = 5] = \"MINIMUM_RATING_5\";\n  ListWidgetReviewsRequestMinimumRating[ListWidgetReviewsRequestMinimumRating[\"MINIMUM_RATING_MANUALLY_PUBLISHED\"] = 6] = \"MINIMUM_RATING_MANUALLY_PUBLISHED\";\n  return ListWidgetReviewsRequestMinimumRating;\n}(ListWidgetReviewsRequestMinimumRating || {});\nvar CustomizationsOverallRatingDecimalPlaces = /*#__PURE__*/function (CustomizationsOverallRatingDecimalPlaces) {\n  CustomizationsOverallRatingDecimalPlaces[CustomizationsOverallRatingDecimalPlaces[\"OVERALL_RATING_DECIMAL_PLACES_NOT_SET\"] = 0] = \"OVERALL_RATING_DECIMAL_PLACES_NOT_SET\";\n  CustomizationsOverallRatingDecimalPlaces[CustomizationsOverallRatingDecimalPlaces[\"OVERALL_RATING_DECIMAL_PLACES_1\"] = 1] = \"OVERALL_RATING_DECIMAL_PLACES_1\";\n  CustomizationsOverallRatingDecimalPlaces[CustomizationsOverallRatingDecimalPlaces[\"OVERALL_RATING_DECIMAL_PLACES_2\"] = 2] = \"OVERALL_RATING_DECIMAL_PLACES_2\";\n  return CustomizationsOverallRatingDecimalPlaces;\n}(CustomizationsOverallRatingDecimalPlaces || {});\nvar StylingTheme = /*#__PURE__*/function (StylingTheme) {\n  StylingTheme[StylingTheme[\"THEME_UNSPECIFIED\"] = 0] = \"THEME_UNSPECIFIED\";\n  StylingTheme[StylingTheme[\"THEME_LIGHT\"] = 1] = \"THEME_LIGHT\";\n  StylingTheme[StylingTheme[\"THEME_DARK\"] = 2] = \"THEME_DARK\";\n  return StylingTheme;\n}(StylingTheme || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ScoreCategory = /*#__PURE__*/function (ScoreCategory) {\n  ScoreCategory[ScoreCategory[\"UNSET\"] = 0] = \"UNSET\";\n  ScoreCategory[ScoreCategory[\"DETRACTORS\"] = 1] = \"DETRACTORS\";\n  ScoreCategory[ScoreCategory[\"PASSIVES\"] = 2] = \"PASSIVES\";\n  ScoreCategory[ScoreCategory[\"PROMOTERS\"] = 3] = \"PROMOTERS\";\n  return ScoreCategory;\n}(ScoreCategory || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar LimitType = /*#__PURE__*/function (LimitType) {\n  LimitType[LimitType[\"LIMIT_TYPE_UNSPECIFIED\"] = 0] = \"LIMIT_TYPE_UNSPECIFIED\";\n  LimitType[LimitType[\"LIMIT_TYPE_MONTHLY_SMS\"] = 1] = \"LIMIT_TYPE_MONTHLY_SMS\";\n  return LimitType;\n}(LimitType || {});\nvar ListingMatchQuality = /*#__PURE__*/function (ListingMatchQuality) {\n  ListingMatchQuality[ListingMatchQuality[\"LISTING_MATCH_QUALITY_GOOD\"] = 0] = \"LISTING_MATCH_QUALITY_GOOD\";\n  ListingMatchQuality[ListingMatchQuality[\"LISTING_MATCH_QUALITY_POOR\"] = 1] = \"LISTING_MATCH_QUALITY_POOR\";\n  ListingMatchQuality[ListingMatchQuality[\"LISTING_MATCH_QUALITY_NO_MATCH\"] = 2] = \"LISTING_MATCH_QUALITY_NO_MATCH\";\n  return ListingMatchQuality;\n}(ListingMatchQuality || {});\nvar ReviewRequestTemplateType = /*#__PURE__*/function (ReviewRequestTemplateType) {\n  ReviewRequestTemplateType[ReviewRequestTemplateType[\"REVIEW_REQUEST_TEMPLATE_TYPE_UNSPECIFIED\"] = 0] = \"REVIEW_REQUEST_TEMPLATE_TYPE_UNSPECIFIED\";\n  ReviewRequestTemplateType[ReviewRequestTemplateType[\"REVIEW_REQUEST_TEMPLATE_TYPE_EMAIL\"] = 1] = \"REVIEW_REQUEST_TEMPLATE_TYPE_EMAIL\";\n  ReviewRequestTemplateType[ReviewRequestTemplateType[\"REVIEW_REQUEST_TEMPLATE_TYPE_SMS\"] = 2] = \"REVIEW_REQUEST_TEMPLATE_TYPE_SMS\";\n  return ReviewRequestTemplateType;\n}(ReviewRequestTemplateType || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n  SortDirection[SortDirection[\"SORT_DIRECTION_NOT_SET\"] = 0] = \"SORT_DIRECTION_NOT_SET\";\n  SortDirection[SortDirection[\"SORT_DIRECTION_ASCENDING\"] = 1] = \"SORT_DIRECTION_ASCENDING\";\n  SortDirection[SortDirection[\"SORT_DIRECTION_DESCENDING\"] = 2] = \"SORT_DIRECTION_DESCENDING\";\n  return SortDirection;\n}(SortDirection || {});\nvar ListReviewRequestEmailTemplatesRequestSortField = /*#__PURE__*/function (ListReviewRequestEmailTemplatesRequestSortField) {\n  ListReviewRequestEmailTemplatesRequestSortField[ListReviewRequestEmailTemplatesRequestSortField[\"SORT_FIELD_NOT_SET\"] = 0] = \"SORT_FIELD_NOT_SET\";\n  ListReviewRequestEmailTemplatesRequestSortField[ListReviewRequestEmailTemplatesRequestSortField[\"SORT_FIELD_UPDATED\"] = 1] = \"SORT_FIELD_UPDATED\";\n  ListReviewRequestEmailTemplatesRequestSortField[ListReviewRequestEmailTemplatesRequestSortField[\"SORT_FIELD_NAME\"] = 2] = \"SORT_FIELD_NAME\";\n  return ListReviewRequestEmailTemplatesRequestSortField;\n}(ListReviewRequestEmailTemplatesRequestSortField || {});\nvar TemplateType = /*#__PURE__*/function (TemplateType) {\n  TemplateType[TemplateType[\"TEMPLATE_TYPE_UNSPECIFIED\"] = 0] = \"TEMPLATE_TYPE_UNSPECIFIED\";\n  TemplateType[TemplateType[\"TEMPLATE_TYPE_REVIEW_REQUEST\"] = 1] = \"TEMPLATE_TYPE_REVIEW_REQUEST\";\n  TemplateType[TemplateType[\"TEMPLATE_TYPE_NPS_REQUEST\"] = 2] = \"TEMPLATE_TYPE_NPS_REQUEST\";\n  TemplateType[TemplateType[\"TEMPLATE_TYPE_REVIEW_AND_NPS_REQUEST\"] = 3] = \"TEMPLATE_TYPE_REVIEW_AND_NPS_REQUEST\";\n  return TemplateType;\n}(TemplateType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$a(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$9(enumRef, value) {\n  if (typeof value === 'number') {\n    return value;\n  }\n  return enumRef[value];\n}\nclass Review {\n  static fromProto(proto) {\n    let m = new Review();\n    m = Object.assign(m, proto);\n    if (proto.reviewId) {\n      m.reviewId = ReviewIdentifier.fromProto(proto.reviewId);\n    }\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 10);\n    }\n    if (proto.scaledStars) {\n      m.scaledStars = parseInt(proto.scaledStars, 10);\n    }\n    if (proto.reviewer) {\n      m.reviewer = Reviewer.fromProto(proto.reviewer);\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.modified) {\n      m.modified = new Date(proto.modified);\n    }\n    if (proto.actionStatus) {\n      m.actionStatus = enumStringToValue$9(ReviewActionStatus, proto.actionStatus);\n    }\n    if (proto.comments) {\n      m.comments = proto.comments.map(ReviewComment.fromProto);\n    }\n    if (proto.recommendation) {\n      m.recommendation = enumStringToValue$9(Recommendation, proto.recommendation);\n    }\n    if (proto.lastFailedReviewCommentCreated) {\n      m.lastFailedReviewCommentCreated = new Date(proto.lastFailedReviewCommentCreated);\n    }\n    if (proto.edited) {\n      m.edited = new Date(proto.edited);\n    }\n    if (proto.deletedStatus) {\n      m.deletedStatus = enumStringToValue$9(ReviewDeletedStatus, proto.deletedStatus);\n    }\n    if (proto.deleted) {\n      m.deleted = new Date(proto.deleted);\n    }\n    if (proto.thirdPartyPublishedStatus) {\n      m.thirdPartyPublishedStatus = enumStringToValue$9(ThirdPartyPublishedStatus, proto.thirdPartyPublishedStatus);\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.reviewId !== 'undefined' && this.reviewId !== null) {\n      toReturn['reviewId'] = 'toApiJson' in this.reviewId ? this.reviewId.toApiJson() : this.reviewId;\n    }\n    if (typeof this.listingId !== 'undefined') {\n      toReturn['listingId'] = this.listingId;\n    }\n    if (typeof this.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    if (typeof this.externalId !== 'undefined') {\n      toReturn['externalId'] = this.externalId;\n    }\n    if (typeof this.content !== 'undefined') {\n      toReturn['content'] = this.content;\n    }\n    if (typeof this.title !== 'undefined') {\n      toReturn['title'] = this.title;\n    }\n    if (typeof this.rating !== 'undefined') {\n      toReturn['rating'] = this.rating;\n    }\n    if (typeof this.scaledStars !== 'undefined') {\n      toReturn['scaledStars'] = this.scaledStars;\n    }\n    if (typeof this.originalStars !== 'undefined') {\n      toReturn['originalStars'] = this.originalStars;\n    }\n    if (typeof this.url !== 'undefined') {\n      toReturn['url'] = this.url;\n    }\n    if (typeof this.domain !== 'undefined') {\n      toReturn['domain'] = this.domain;\n    }\n    if (typeof this.reviewer !== 'undefined' && this.reviewer !== null) {\n      toReturn['reviewer'] = 'toApiJson' in this.reviewer ? this.reviewer.toApiJson() : this.reviewer;\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.modified !== 'undefined' && this.modified !== null) {\n      toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n    }\n    if (typeof this.actionStatus !== 'undefined') {\n      toReturn['actionStatus'] = this.actionStatus;\n    }\n    if (typeof this.isPublished !== 'undefined') {\n      toReturn['isPublished'] = this.isPublished;\n    }\n    if (typeof this.isSharedByReviewer !== 'undefined') {\n      toReturn['isSharedByReviewer'] = this.isSharedByReviewer;\n    }\n    if (typeof this.newComment !== 'undefined') {\n      toReturn['newComment'] = this.newComment;\n    }\n    if (typeof this.comments !== 'undefined' && this.comments !== null) {\n      toReturn['comments'] = 'toApiJson' in this.comments ? this.comments.toApiJson() : this.comments;\n    }\n    if (typeof this.hasAccuratePublished !== 'undefined') {\n      toReturn['hasAccuratePublished'] = this.hasAccuratePublished;\n    }\n    if (typeof this.recommendation !== 'undefined') {\n      toReturn['recommendation'] = this.recommendation;\n    }\n    if (typeof this.lastFailedReviewCommentCreated !== 'undefined' && this.lastFailedReviewCommentCreated !== null) {\n      toReturn['lastFailedReviewCommentCreated'] = 'toApiJson' in this.lastFailedReviewCommentCreated ? this.lastFailedReviewCommentCreated.toApiJson() : this.lastFailedReviewCommentCreated;\n    }\n    if (typeof this.lastFailedReviewCommentReason !== 'undefined') {\n      toReturn['lastFailedReviewCommentReason'] = this.lastFailedReviewCommentReason;\n    }\n    if (typeof this.lastFailedReviewCommentText !== 'undefined') {\n      toReturn['lastFailedReviewCommentText'] = this.lastFailedReviewCommentText;\n    }\n    if (typeof this.edited !== 'undefined' && this.edited !== null) {\n      toReturn['edited'] = 'toApiJson' in this.edited ? this.edited.toApiJson() : this.edited;\n    }\n    if (typeof this.deletedStatus !== 'undefined') {\n      toReturn['deletedStatus'] = this.deletedStatus;\n    }\n    if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n      toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n    }\n    if (typeof this.thirdPartyPublishedStatus !== 'undefined') {\n      toReturn['thirdPartyPublishedStatus'] = this.thirdPartyPublishedStatus;\n    }\n    if (typeof this.sourceName !== 'undefined') {\n      toReturn['sourceName'] = this.sourceName;\n    }\n    return toReturn;\n  }\n}\nclass ReviewComment {\n  static fromProto(proto) {\n    let m = new ReviewComment();\n    m = Object.assign(m, proto);\n    if (proto.created) {\n      m.created = new Date(proto.created);\n    }\n    if (proto.modified) {\n      m.modified = new Date(proto.modified);\n    }\n    if (proto.published) {\n      m.published = new Date(proto.published);\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.commentId !== 'undefined') {\n      toReturn['commentId'] = this.commentId;\n    }\n    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.text !== 'undefined') {\n      toReturn['text'] = this.text;\n    }\n    if (typeof this.email !== 'undefined') {\n      toReturn['email'] = this.email;\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.externalId !== 'undefined') {\n      toReturn['externalId'] = this.externalId;\n    }\n    if (typeof this.modified !== 'undefined' && this.modified !== null) {\n      toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\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.postedByOwner !== 'undefined') {\n      toReturn['postedByOwner'] = this.postedByOwner;\n    }\n    if (typeof this.postedByDigitAgent !== 'undefined') {\n      toReturn['postedByDigitAgent'] = this.postedByDigitAgent;\n    }\n    if (typeof this.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    return toReturn;\n  }\n}\nclass ReviewHistory {\n  static fromProto(proto) {\n    let m = new ReviewHistory();\n    m = Object.assign(m, proto);\n    if (proto.source) {\n      m.source = parseInt(proto.source, 10);\n    }\n    if (proto.scaledStarRating) {\n      m.scaledStarRating = parseInt(proto.scaledStarRating, 10);\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.reviewLastEdited) {\n      m.reviewLastEdited = new Date(proto.reviewLastEdited);\n    }\n    if (proto.isRecommendation) {\n      m.isRecommendation = enumStringToValue$9(Recommendation, proto.isRecommendation);\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.reviewHistoryId !== 'undefined') {\n      toReturn['reviewHistoryId'] = this.reviewHistoryId;\n    }\n    if (typeof this.listingId !== 'undefined') {\n      toReturn['listingId'] = this.listingId;\n    }\n    if (typeof this.source !== 'undefined') {\n      toReturn['source'] = this.source;\n    }\n    if (typeof this.externalId !== 'undefined') {\n      toReturn['externalId'] = this.externalId;\n    }\n    if (typeof this.content !== 'undefined') {\n      toReturn['content'] = this.content;\n    }\n    if (typeof this.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.scaledStarRating !== 'undefined') {\n      toReturn['scaledStarRating'] = this.scaledStarRating;\n    }\n    if (typeof this.reviewerName !== 'undefined') {\n      toReturn['reviewerName'] = this.reviewerName;\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.reviewLastEdited !== 'undefined' && this.reviewLastEdited !== null) {\n      toReturn['reviewLastEdited'] = 'toApiJson' in this.reviewLastEdited ? this.reviewLastEdited.toApiJson() : this.reviewLastEdited;\n    }\n    if (typeof this.isRecommendation !== 'undefined') {\n      toReturn['isRecommendation'] = this.isRecommendation;\n    }\n    if (typeof this.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    return toReturn;\n  }\n}\nclass ReviewIdentifier {\n  static fromProto(proto) {\n    let m = new ReviewIdentifier();\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    if (typeof this.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    return toReturn;\n  }\n}\nclass Reviewer {\n  static fromProto(proto) {\n    let m = new Reviewer();\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.email !== 'undefined') {\n      toReturn['email'] = this.email;\n    }\n    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.url !== 'undefined') {\n      toReturn['url'] = this.url;\n    }\n    return toReturn;\n  }\n}\nclass ThirdPartyReviewPublishSettings {\n  static fromProto(proto) {\n    let m = new ThirdPartyReviewPublishSettings();\n    m = Object.assign(m, proto);\n    if (proto.minimumPublishRating) {\n      m.minimumPublishRating = parseInt(proto.minimumPublishRating, 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.widgetAllReviewsEnabled !== 'undefined') {\n      toReturn['widgetAllReviewsEnabled'] = this.widgetAllReviewsEnabled;\n    }\n    if (typeof this.minimumPublishRating !== 'undefined') {\n      toReturn['minimumPublishRating'] = this.minimumPublishRating;\n    }\n    return toReturn;\n  }\n}\nfunction enumStringToValue$8(enumRef, value) {\n  if (typeof value === 'number') {\n    return value;\n  }\n  return enumRef[value];\n}\nclass GetLeaveReviewURLsRequest {\n  static fromProto(proto) {\n    let m = new GetLeaveReviewURLsRequest();\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    if (typeof this.sourceIds !== 'undefined') {\n      toReturn['sourceIds'] = this.sourceIds;\n    }\n    return toReturn;\n  }\n}\nclass GetLeaveReviewURLsResponse {\n  static fromProto(proto) {\n    let m = new GetLeaveReviewURLsResponse();\n    m = Object.assign(m, proto);\n    if (proto.urls) {\n      m.urls = Object.keys(proto.urls).reduce((obj, k) => {\n        obj[k] = proto.urls[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.urls !== 'undefined' && this.urls !== null) {\n      toReturn['urls'] = 'toApiJson' in this.urls ? this.urls.toApiJson() : this.urls;\n    }\n    return toReturn;\n  }\n}\nclass PeriodDelay {\n  static fromProto(proto) {\n    let m = new PeriodDelay();\n    m = Object.assign(m, proto);\n    if (proto.delayPeriod) {\n      m.delayPeriod = enumStringToValue$8(Interval, proto.delayPeriod);\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.delayPeriod !== 'undefined') {\n      toReturn['delayPeriod'] = this.delayPeriod;\n    }\n    if (typeof this.numberOfPeriods !== 'undefined') {\n      toReturn['numberOfPeriods'] = this.numberOfPeriods;\n    }\n    return toReturn;\n  }\n}\nclass ReviewRequestTemplate {\n  static fromProto(proto) {\n    let m = new ReviewRequestTemplate();\n    m = Object.assign(m, proto);\n    if (proto.created) {\n      m.created = new Date(proto.created);\n    }\n    if (proto.updated) {\n      m.updated = new Date(proto.updated);\n    }\n    if (proto.deleted) {\n      m.deleted = new Date(proto.deleted);\n    }\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.templateId !== 'undefined') {\n      toReturn['templateId'] = this.templateId;\n    }\n    if (typeof this.externalTemplateId !== 'undefined') {\n      toReturn['externalTemplateId'] = this.externalTemplateId;\n    }\n    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.isDefault !== 'undefined') {\n      toReturn['isDefault'] = this.isDefault;\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.created !== 'undefined' && this.created !== null) {\n      toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n    }\n    if (typeof this.updated !== 'undefined' && this.updated !== null) {\n      toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n    }\n    if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n      toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n    }\n    return toReturn;\n  }\n}\nclass ScheduleReviewRequestRequestScheduleConditions {\n  static fromProto(proto) {\n    let m = new ScheduleReviewRequestRequestScheduleConditions();\n    m = Object.assign(m, proto);\n    if (proto.daysOfWeek) {\n      m.daysOfWeek = proto.daysOfWeek.map(v => enumStringToValue$8(DaysOfWeek, v));\n    }\n    if (proto.initialDelay) {\n      m.initialDelay = PeriodDelay.fromProto(proto.initialDelay);\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.daysOfWeek !== 'undefined') {\n      toReturn['daysOfWeek'] = this.daysOfWeek;\n    }\n    if (typeof this.initialDelay !== 'undefined' && this.initialDelay !== null) {\n      toReturn['initialDelay'] = 'toApiJson' in this.initialDelay ? this.initialDelay.toApiJson() : this.initialDelay;\n    }\n    if (typeof this.timeRangeStartHour !== 'undefined') {\n      toReturn['timeRangeStartHour'] = this.timeRangeStartHour;\n    }\n    if (typeof this.timeRangeStartMinute !== 'undefined') {\n      toReturn['timeRangeStartMinute'] = this.timeRangeStartMinute;\n    }\n    if (typeof this.timeRangeEndHour !== 'undefined') {\n      toReturn['timeRangeEndHour'] = this.timeRangeEndHour;\n    }\n    if (typeof this.timeRangeEndMinute !== 'undefined') {\n      toReturn['timeRangeEndMinute'] = this.timeRangeEndMinute;\n    }\n    if (typeof this.daysUntilNextRequest !== 'undefined') {\n      toReturn['daysUntilNextRequest'] = this.daysUntilNextRequest;\n    }\n    return toReturn;\n  }\n}\nclass ScheduleReviewRequestRequest {\n  static fromProto(proto) {\n    let m = new ScheduleReviewRequestRequest();\n    m = Object.assign(m, proto);\n    if (proto.channel) {\n      m.channel = enumStringToValue$8(Channel, proto.channel);\n    }\n    if (proto.scheduleConditions) {\n      m.scheduleConditions = ScheduleReviewRequestRequestScheduleConditions.fromProto(proto.scheduleConditions);\n    }\n    if (proto.followUps) {\n      m.followUps = proto.followUps.map(PeriodDelay.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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.contactIds !== 'undefined') {\n      toReturn['contactIds'] = this.contactIds;\n    }\n    if (typeof this.channel !== 'undefined') {\n      toReturn['channel'] = this.channel;\n    }\n    if (typeof this.sendNow !== 'undefined') {\n      toReturn['sendNow'] = this.sendNow;\n    }\n    if (typeof this.scheduleConditions !== 'undefined' && this.scheduleConditions !== null) {\n      toReturn['scheduleConditions'] = 'toApiJson' in this.scheduleConditions ? this.scheduleConditions.toApiJson() : this.scheduleConditions;\n    }\n    if (typeof this.followUps !== 'undefined' && this.followUps !== null) {\n      toReturn['followUps'] = 'toApiJson' in this.followUps ? this.followUps.toApiJson() : this.followUps;\n    }\n    return toReturn;\n  }\n}\nclass GetLeaveReviewURLsResponseUrlsEntry {\n  static fromProto(proto) {\n    let m = new GetLeaveReviewURLsResponseUrlsEntry();\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}\nfunction enumStringToValue$7(enumRef, value) {\n  if (typeof value === 'number') {\n    return value;\n  }\n  return enumRef[value];\n}\nclass ConciergeReviewResponse {\n  static fromProto(proto) {\n    let m = new ConciergeReviewResponse();\n    m = Object.assign(m, proto);\n    if (proto.feedbackDate) {\n      m.feedbackDate = new Date(proto.feedbackDate);\n    }\n    if (proto.approvalRequestedDate) {\n      m.approvalRequestedDate = new Date(proto.approvalRequestedDate);\n    }\n    if (proto.created) {\n      m.created = new Date(proto.created);\n    }\n    if (proto.modified) {\n      m.modified = new Date(proto.modified);\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.taskId !== 'undefined') {\n      toReturn['taskId'] = this.taskId;\n    }\n    if (typeof this.response !== 'undefined') {\n      toReturn['response'] = this.response;\n    }\n    if (typeof this.agentName !== 'undefined') {\n      toReturn['agentName'] = this.agentName;\n    }\n    if (typeof this.body !== 'undefined') {\n      toReturn['body'] = this.body;\n    }\n    if (typeof this.replyToEmail !== 'undefined') {\n      toReturn['replyToEmail'] = this.replyToEmail;\n    }\n    if (typeof this.feedback !== 'undefined') {\n      toReturn['feedback'] = this.feedback;\n    }\n    if (typeof this.feedbackProvider !== 'undefined') {\n      toReturn['feedbackProvider'] = this.feedbackProvider;\n    }\n    if (typeof this.commentId !== 'undefined') {\n      toReturn['commentId'] = this.commentId;\n    }\n    if (typeof this.feedbackDate !== 'undefined' && this.feedbackDate !== null) {\n      toReturn['feedbackDate'] = 'toApiJson' in this.feedbackDate ? this.feedbackDate.toApiJson() : this.feedbackDate;\n    }\n    if (typeof this.approvalRequestedDate !== 'undefined' && this.approvalRequestedDate !== null) {\n      toReturn['approvalRequestedDate'] = 'toApiJson' in this.approvalRequestedDate ? this.approvalRequestedDate.toApiJson() : this.approvalRequestedDate;\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.modified !== 'undefined' && this.modified !== null) {\n      toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n    }\n    if (typeof this.partnerName !== 'undefined') {\n      toReturn['partnerName'] = this.partnerName;\n    }\n    if (typeof this.faviconUrl !== 'undefined') {\n      toReturn['faviconUrl'] = this.faviconUrl;\n    }\n    if (typeof this.tags !== 'undefined') {\n      toReturn['tags'] = this.tags;\n    }\n    return toReturn;\n  }\n}\nfunction enumStringToValue$6(enumRef, value) {\n  if (typeof value === 'number') {\n    return value;\n  }\n  return enumRef[value];\n}\nclass GetSMSEnabledRequest {\n  static fromProto(proto) {\n    let m = new GetSMSEnabledRequest();\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 GetSMSEnabledResponse {\n  static fromProto(proto) {\n    let m = new GetSMSEnabledResponse();\n    m = Object.assign(m, proto);\n    if (proto.smsState) {\n      m.smsState = enumStringToValue$6(SMSState, proto.smsState);\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.smsState !== 'undefined') {\n      toReturn['smsState'] = this.smsState;\n    }\n    return toReturn;\n  }\n}\nfunction enumStringToValue$5(enumRef, value) {\n  if (typeof value === 'number') {\n    return value;\n  }\n  return enumRef[value];\n}\nclass CreateReviewRequest {\n  static fromProto(proto) {\n    let m = new CreateReviewRequest();\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    if (typeof this.starRating !== 'undefined') {\n      toReturn['starRating'] = this.starRating;\n    }\n    if (typeof this.reviewerName !== 'undefined') {\n      toReturn['reviewerName'] = this.reviewerName;\n    }\n    if (typeof this.reviewerEmail !== 'undefined') {\n      toReturn['reviewerEmail'] = this.reviewerEmail;\n    }\n    if (typeof this.reviewTitle !== 'undefined') {\n      toReturn['reviewTitle'] = this.reviewTitle;\n    }\n    if (typeof this.reviewContent !== 'undefined') {\n      toReturn['reviewContent'] = this.reviewContent;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewResponse {\n  static fromProto(proto) {\n    let m = new CreateReviewResponse();\n    m = Object.assign(m, proto);\n    if (proto.review) {\n      m.review = Review.fromProto(proto.review);\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.review !== 'undefined' && this.review !== null) {\n      toReturn['review'] = 'toApiJson' in this.review ? this.review.toApiJson() : this.review;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewWidgetRequest {\n  static fromProto(proto) {\n    let m = new CreateReviewWidgetRequest();\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 CreateReviewWidgetResponse {\n  static fromProto(proto) {\n    let m = new CreateReviewWidgetResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviewWidget) {\n      m.reviewWidget = ReviewWidget.fromProto(proto.reviewWidget);\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.reviewWidget !== 'undefined' && this.reviewWidget !== null) {\n      toReturn['reviewWidget'] = 'toApiJson' in this.reviewWidget ? this.reviewWidget.toApiJson() : this.reviewWidget;\n    }\n    return toReturn;\n  }\n}\nclass Customizations {\n  static fromProto(proto) {\n    let m = new Customizations();\n    m = Object.assign(m, proto);\n    if (proto.overallRatingDecimalPlaces) {\n      m.overallRatingDecimalPlaces = enumStringToValue$5(CustomizationsOverallRatingDecimalPlaces, proto.overallRatingDecimalPlaces);\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.overallRatingDecimalPlaces !== 'undefined') {\n      toReturn['overallRatingDecimalPlaces'] = this.overallRatingDecimalPlaces;\n    }\n    if (typeof this.headerText !== 'undefined') {\n      toReturn['headerText'] = this.headerText;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewWidgetByIDRequest {\n  static fromProto(proto) {\n    let m = new GetReviewWidgetByIDRequest();\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.widgetId !== 'undefined') {\n      toReturn['widgetId'] = this.widgetId;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewWidgetByIDResponse {\n  static fromProto(proto) {\n    let m = new GetReviewWidgetByIDResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviewWidget) {\n      m.reviewWidget = ReviewWidget.fromProto(proto.reviewWidget);\n    }\n    if (proto.reviewStats) {\n      m.reviewStats = ReviewStats.fromProto(proto.reviewStats);\n    }\n    if (proto.leaveReviewUrls) {\n      m.leaveReviewUrls = Object.keys(proto.leaveReviewUrls).reduce((obj, k) => {\n        obj[k] = proto.leaveReviewUrls[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.reviewWidget !== 'undefined' && this.reviewWidget !== null) {\n      toReturn['reviewWidget'] = 'toApiJson' in this.reviewWidget ? this.reviewWidget.toApiJson() : this.reviewWidget;\n    }\n    if (typeof this.reviewStats !== 'undefined' && this.reviewStats !== null) {\n      toReturn['reviewStats'] = 'toApiJson' in this.reviewStats ? this.reviewStats.toApiJson() : this.reviewStats;\n    }\n    if (typeof this.leaveReviewUrls !== 'undefined' && this.leaveReviewUrls !== null) {\n      toReturn['leaveReviewUrls'] = 'toApiJson' in this.leaveReviewUrls ? this.leaveReviewUrls.toApiJson() : this.leaveReviewUrls;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewWidgetRequest {\n  static fromProto(proto) {\n    let m = new GetReviewWidgetRequest();\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 GetReviewWidgetResponse {\n  static fromProto(proto) {\n    let m = new GetReviewWidgetResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviewWidget) {\n      m.reviewWidget = ReviewWidget.fromProto(proto.reviewWidget);\n    }\n    if (proto.reviewStats) {\n      m.reviewStats = ReviewStats.fromProto(proto.reviewStats);\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.reviewWidget !== 'undefined' && this.reviewWidget !== null) {\n      toReturn['reviewWidget'] = 'toApiJson' in this.reviewWidget ? this.reviewWidget.toApiJson() : this.reviewWidget;\n    }\n    if (typeof this.reviewStats !== 'undefined' && this.reviewStats !== null) {\n      toReturn['reviewStats'] = 'toApiJson' in this.reviewStats ? this.reviewStats.toApiJson() : this.reviewStats;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewWidgetByIDResponseLeaveReviewUrlsEntry {\n  static fromProto(proto) {\n    let m = new GetReviewWidgetByIDResponseLeaveReviewUrlsEntry();\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 ListWidgetReviewsRequest {\n  static fromProto(proto) {\n    let m = new ListWidgetReviewsRequest();\n    m = Object.assign(m, proto);\n    if (proto.pageSize) {\n      m.pageSize = parseInt(proto.pageSize, 10);\n    }\n    if (proto.minimumRating) {\n      m.minimumRating = enumStringToValue$5(ListWidgetReviewsRequestMinimumRating, proto.minimumRating);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.sourceIds !== 'undefined') {\n      toReturn['sourceIds'] = this.sourceIds;\n    }\n    if (typeof this.cursor !== 'undefined') {\n      toReturn['cursor'] = this.cursor;\n    }\n    if (typeof this.pageSize !== 'undefined') {\n      toReturn['pageSize'] = this.pageSize;\n    }\n    if (typeof this.minimumRating !== 'undefined') {\n      toReturn['minimumRating'] = this.minimumRating;\n    }\n    return toReturn;\n  }\n}\nclass ListWidgetReviewsResponse {\n  static fromProto(proto) {\n    let m = new ListWidgetReviewsResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviews) {\n      m.reviews = proto.reviews.map(Review.fromProto);\n    }\n    if (proto.totalHits) {\n      m.totalHits = parseInt(proto.totalHits, 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.reviews !== 'undefined' && this.reviews !== null) {\n      toReturn['reviews'] = 'toApiJson' in this.reviews ? this.reviews.toApiJson() : this.reviews;\n    }\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.totalHits !== 'undefined') {\n      toReturn['totalHits'] = this.totalHits;\n    }\n    return toReturn;\n  }\n}\nclass ReviewStats {\n  static fromProto(proto) {\n    let m = new ReviewStats();\n    m = Object.assign(m, proto);\n    if (proto.totalCount) {\n      m.totalCount = parseInt(proto.totalCount, 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.averageRating !== 'undefined') {\n      toReturn['averageRating'] = this.averageRating;\n    }\n    if (typeof this.totalCount !== 'undefined') {\n      toReturn['totalCount'] = this.totalCount;\n    }\n    return toReturn;\n  }\n}\nclass ReviewWidget {\n  static fromProto(proto) {\n    let m = new ReviewWidget();\n    m = Object.assign(m, proto);\n    if (proto.layout) {\n      m.layout = enumStringToValue$5(ReviewWidgetLayout, proto.layout);\n    }\n    if (proto.customizations) {\n      m.customizations = Customizations.fromProto(proto.customizations);\n    }\n    if (proto.toggles) {\n      m.toggles = Toggles.fromProto(proto.toggles);\n    }\n    if (proto.styling) {\n      m.styling = Styling.fromProto(proto.styling);\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.widgetId !== 'undefined') {\n      toReturn['widgetId'] = this.widgetId;\n    }\n    if (typeof this.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.leaveReviewDestination !== 'undefined') {\n      toReturn['leaveReviewDestination'] = this.leaveReviewDestination;\n    }\n    if (typeof this.layout !== 'undefined') {\n      toReturn['layout'] = this.layout;\n    }\n    if (typeof this.reviewDisplaySourceIds !== 'undefined') {\n      toReturn['reviewDisplaySourceIds'] = this.reviewDisplaySourceIds;\n    }\n    if (typeof this.customizations !== 'undefined' && this.customizations !== null) {\n      toReturn['customizations'] = 'toApiJson' in this.customizations ? this.customizations.toApiJson() : this.customizations;\n    }\n    if (typeof this.toggles !== 'undefined' && this.toggles !== null) {\n      toReturn['toggles'] = 'toApiJson' in this.toggles ? this.toggles.toApiJson() : this.toggles;\n    }\n    if (typeof this.styling !== 'undefined' && this.styling !== null) {\n      toReturn['styling'] = 'toApiJson' in this.styling ? this.styling.toApiJson() : this.styling;\n    }\n    return toReturn;\n  }\n}\nclass Styling {\n  static fromProto(proto) {\n    let m = new Styling();\n    m = Object.assign(m, proto);\n    if (proto.theme) {\n      m.theme = enumStringToValue$5(StylingTheme, proto.theme);\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.theme !== 'undefined') {\n      toReturn['theme'] = this.theme;\n    }\n    if (typeof this.accentColour !== 'undefined') {\n      toReturn['accentColour'] = this.accentColour;\n    }\n    return toReturn;\n  }\n}\nclass Toggles {\n  static fromProto(proto) {\n    let m = new Toggles();\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.showOverallRatingTitle !== 'undefined') {\n      toReturn['showOverallRatingTitle'] = this.showOverallRatingTitle;\n    }\n    if (typeof this.showOverallRatingCard !== 'undefined') {\n      toReturn['showOverallRatingCard'] = this.showOverallRatingCard;\n    }\n    if (typeof this.showReviewCount !== 'undefined') {\n      toReturn['showReviewCount'] = this.showReviewCount;\n    }\n    if (typeof this.showLeaveAReviewButton !== 'undefined') {\n      toReturn['showLeaveAReviewButton'] = this.showLeaveAReviewButton;\n    }\n    if (typeof this.showHeader !== 'undefined') {\n      toReturn['showHeader'] = this.showHeader;\n    }\n    if (typeof this.showStarRatingSummary !== 'undefined') {\n      toReturn['showStarRatingSummary'] = this.showStarRatingSummary;\n    }\n    if (typeof this.showReviewSource !== 'undefined') {\n      toReturn['showReviewSource'] = this.showReviewSource;\n    }\n    if (typeof this.showReviewStarRating !== 'undefined') {\n      toReturn['showReviewStarRating'] = this.showReviewStarRating;\n    }\n    if (typeof this.showReviewPublishedDate !== 'undefined') {\n      toReturn['showReviewPublishedDate'] = this.showReviewPublishedDate;\n    }\n    return toReturn;\n  }\n}\nclass UpdateReviewWidgetRequest {\n  static fromProto(proto) {\n    let m = new UpdateReviewWidgetRequest();\n    m = Object.assign(m, proto);\n    if (proto.reviewWidget) {\n      m.reviewWidget = ReviewWidget.fromProto(proto.reviewWidget);\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.reviewWidget !== 'undefined' && this.reviewWidget !== null) {\n      toReturn['reviewWidget'] = 'toApiJson' in this.reviewWidget ? this.reviewWidget.toApiJson() : this.reviewWidget;\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}\nfunction enumStringToValue$4(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$3(enumRef, value) {\n  if (typeof value === 'number') {\n    return value;\n  }\n  return enumRef[value];\n}\nclass MethodMetadata {\n  static fromProto(proto) {\n    let m = new MethodMetadata();\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.isPublic !== 'undefined') {\n      toReturn['isPublic'] = this.isPublic;\n    }\n    if (typeof this.scopes !== 'undefined') {\n      toReturn['scopes'] = this.scopes;\n    }\n    return toReturn;\n  }\n}\nclass SDKMetadata {\n  static fromProto(proto) {\n    let m = new SDKMetadata();\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.sdkName !== 'undefined') {\n      toReturn['sdkName'] = this.sdkName;\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 CheckReviewWidgetUsageRequest {\n  static fromProto(proto) {\n    let m = new CheckReviewWidgetUsageRequest();\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.widgetId !== 'undefined') {\n      toReturn['widgetId'] = this.widgetId;\n    }\n    return toReturn;\n  }\n}\nclass CheckReviewWidgetUsageResponse {\n  static fromProto(proto) {\n    let m = new CheckReviewWidgetUsageResponse();\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.isUsed !== 'undefined') {\n      toReturn['isUsed'] = this.isUsed;\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 ListNetPromoterScoresRequestFilters {\n  static fromProto(proto) {\n    let m = new ListNetPromoterScoresRequestFilters();\n    m = Object.assign(m, proto);\n    if (proto.fromDate) {\n      m.fromDate = new Date(proto.fromDate);\n    }\n    if (proto.toDate) {\n      m.toDate = new Date(proto.toDate);\n    }\n    if (proto.scoreCategory) {\n      m.scoreCategory = proto.scoreCategory.map(v => enumStringToValue$1(ScoreCategory, 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.fromDate !== 'undefined' && this.fromDate !== null) {\n      toReturn['fromDate'] = 'toApiJson' in this.fromDate ? this.fromDate.toApiJson() : this.fromDate;\n    }\n    if (typeof this.toDate !== 'undefined' && this.toDate !== null) {\n      toReturn['toDate'] = 'toApiJson' in this.toDate ? this.toDate.toApiJson() : this.toDate;\n    }\n    if (typeof this.scoreCategory !== 'undefined') {\n      toReturn['scoreCategory'] = this.scoreCategory;\n    }\n    return toReturn;\n  }\n}\nclass GetMultiNPSRequest {\n  static fromProto(proto) {\n    let m = new GetMultiNPSRequest();\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.netPromoterScoreIds !== 'undefined') {\n      toReturn['netPromoterScoreIds'] = this.netPromoterScoreIds;\n    }\n    return toReturn;\n  }\n}\nclass GetMultiNPSResponse {\n  static fromProto(proto) {\n    let m = new GetMultiNPSResponse();\n    m = Object.assign(m, proto);\n    if (proto.netPromoterScore) {\n      m.netPromoterScore = proto.netPromoterScore.map(NetPromoterScore.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.netPromoterScore !== 'undefined' && this.netPromoterScore !== null) {\n      toReturn['netPromoterScore'] = 'toApiJson' in this.netPromoterScore ? this.netPromoterScore.toApiJson() : this.netPromoterScore;\n    }\n    return toReturn;\n  }\n}\nclass ImportNPSRequest {\n  static fromProto(proto) {\n    let m = new ImportNPSRequest();\n    m = Object.assign(m, proto);\n    if (proto.score) {\n      m.score = parseInt(proto.score, 10);\n    }\n    if (proto.scoreLeft) {\n      m.scoreLeft = new Date(proto.scoreLeft);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.crmContactId !== 'undefined') {\n      toReturn['crmContactId'] = this.crmContactId;\n    }\n    if (typeof this.score !== 'undefined') {\n      toReturn['score'] = this.score;\n    }\n    if (typeof this.comment !== 'undefined') {\n      toReturn['comment'] = this.comment;\n    }\n    if (typeof this.scoreLeft !== 'undefined' && this.scoreLeft !== null) {\n      toReturn['scoreLeft'] = 'toApiJson' in this.scoreLeft ? this.scoreLeft.toApiJson() : this.scoreLeft;\n    }\n    if (typeof this.attributes !== 'undefined') {\n      toReturn['attributes'] = this.attributes;\n    }\n    return toReturn;\n  }\n}\nclass ImportNPSResponse {\n  static fromProto(proto) {\n    let m = new ImportNPSResponse();\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.netPromoterScoreId !== 'undefined') {\n      toReturn['netPromoterScoreId'] = this.netPromoterScoreId;\n    }\n    return toReturn;\n  }\n}\nclass LeaveNetPromoterScoreRequest {\n  static fromProto(proto) {\n    let m = new LeaveNetPromoterScoreRequest();\n    m = Object.assign(m, proto);\n    if (proto.score) {\n      m.score = parseInt(proto.score, 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.netPromoterScoreId !== 'undefined') {\n      toReturn['netPromoterScoreId'] = this.netPromoterScoreId;\n    }\n    if (typeof this.score !== 'undefined') {\n      toReturn['score'] = this.score;\n    }\n    if (typeof this.comment !== 'undefined') {\n      toReturn['comment'] = this.comment;\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 ListNetPromoterScoresRequest {\n  static fromProto(proto) {\n    let m = new ListNetPromoterScoresRequest();\n    m = Object.assign(m, proto);\n    if (proto.filters) {\n      m.filters = ListNetPromoterScoresRequestFilters.fromProto(proto.filters);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.filters !== 'undefined' && this.filters !== null) {\n      toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n    }\n    if (typeof this.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 ListNetPromoterScoresResponse {\n  static fromProto(proto) {\n    let m = new ListNetPromoterScoresResponse();\n    m = Object.assign(m, proto);\n    if (proto.netPromoterScore) {\n      m.netPromoterScore = proto.netPromoterScore.map(NetPromoterScore.fromProto);\n    }\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.netPromoterScore !== 'undefined' && this.netPromoterScore !== null) {\n      toReturn['netPromoterScore'] = 'toApiJson' in this.netPromoterScore ? this.netPromoterScore.toApiJson() : this.netPromoterScore;\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    if (typeof this.totalResults !== 'undefined') {\n      toReturn['totalResults'] = this.totalResults;\n    }\n    return toReturn;\n  }\n}\nclass NetPromoterScore {\n  static fromProto(proto) {\n    let m = new NetPromoterScore();\n    m = Object.assign(m, proto);\n    if (proto.score) {\n      m.score = parseInt(proto.score, 10);\n    }\n    if (proto.attributes) {\n      m.attributes = proto.attributes.map(NetPromoterScoreAttribute.fromProto);\n    }\n    if (proto.scoreLeftTime) {\n      m.scoreLeftTime = new Date(proto.scoreLeftTime);\n    }\n    if (proto.created) {\n      m.created = new Date(proto.created);\n    }\n    if (proto.updated) {\n      m.updated = new Date(proto.updated);\n    }\n    if (proto.deleted) {\n      m.deleted = new Date(proto.deleted);\n    }\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.netPromoterScoreId !== 'undefined') {\n      toReturn['netPromoterScoreId'] = this.netPromoterScoreId;\n    }\n    if (typeof this.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.score !== 'undefined') {\n      toReturn['score'] = this.score;\n    }\n    if (typeof this.comment !== 'undefined') {\n      toReturn['comment'] = this.comment;\n    }\n    if (typeof this.attributes !== 'undefined' && this.attributes !== null) {\n      toReturn['attributes'] = 'toApiJson' in this.attributes ? this.attributes.toApiJson() : this.attributes;\n    }\n    if (typeof this.scoreLeftTime !== 'undefined' && this.scoreLeftTime !== null) {\n      toReturn['scoreLeftTime'] = 'toApiJson' in this.scoreLeftTime ? this.scoreLeftTime.toApiJson() : this.scoreLeftTime;\n    }\n    if (typeof this.created !== 'undefined' && this.created !== null) {\n      toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n    }\n    if (typeof this.updated !== 'undefined' && this.updated !== null) {\n      toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n    }\n    if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n      toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n    }\n    return toReturn;\n  }\n}\nclass NetPromoterScoreAttribute {\n  static fromProto(proto) {\n    let m = new NetPromoterScoreAttribute();\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 ResendReviewRequest {\n  static fromProto(proto) {\n    let m = new ResendReviewRequest();\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.netPromoterScoreId !== 'undefined') {\n      toReturn['netPromoterScoreId'] = this.netPromoterScoreId;\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 ApproveReviewResponseRequest {\n  static fromProto(proto) {\n    let m = new ApproveReviewResponseRequest();\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    return toReturn;\n  }\n}\nclass SourceAttributeScope {\n  static fromProto(proto) {\n    let m = new SourceAttributeScope();\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.whitelist !== 'undefined') {\n      toReturn['whitelist'] = this.whitelist;\n    }\n    if (typeof this.blacklist !== 'undefined') {\n      toReturn['blacklist'] = this.blacklist;\n    }\n    if (typeof this.isWhitelistedByDefault !== 'undefined') {\n      toReturn['isWhitelistedByDefault'] = this.isWhitelistedByDefault;\n    }\n    return toReturn;\n  }\n}\nclass BingMapsLocation {\n  static fromProto(proto) {\n    let m = new BingMapsLocation();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.address !== 'undefined') {\n      toReturn['address'] = this.address;\n    }\n    if (typeof this.url !== 'undefined') {\n      toReturn['url'] = this.url;\n    }\n    return toReturn;\n  }\n}\nclass CanRespondToReviewRequest {\n  static fromProto(proto) {\n    let m = new CanRespondToReviewRequest();\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.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    if (typeof this.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    return toReturn;\n  }\n}\nclass CanRespondToReviewResponse {\n  static fromProto(proto) {\n    let m = new CanRespondToReviewResponse();\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.canRespond !== 'undefined') {\n      toReturn['canRespond'] = this.canRespond;\n    }\n    if (typeof this.unsupportedReason !== 'undefined') {\n      toReturn['unsupportedReason'] = this.unsupportedReason;\n    }\n    return toReturn;\n  }\n}\nclass CreateBrandReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreateBrandReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.brandId !== 'undefined') {\n      toReturn['brandId'] = this.brandId;\n    }\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 CreateBusinessReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreateBusinessReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\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 CreateDefaultReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreateDefaultReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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 CreateDigitalAgentReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreateDigitalAgentReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\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 CreatePartnerMarketReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreatePartnerMarketReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.marketId !== 'undefined') {\n      toReturn['marketId'] = this.marketId;\n    }\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 CreateReviewCommentRequest {\n  static fromProto(proto) {\n    let m = new CreateReviewCommentRequest();\n    m = Object.assign(m, proto);\n    if (proto.reviewId) {\n      m.reviewId = ReviewIdentifier.fromProto(proto.reviewId);\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.reviewId !== 'undefined' && this.reviewId !== null) {\n      toReturn['reviewId'] = 'toApiJson' in this.reviewId ? this.reviewId.toApiJson() : this.reviewId;\n    }\n    if (typeof this.commentText !== 'undefined') {\n      toReturn['commentText'] = this.commentText;\n    }\n    if (typeof this.commenterEmail !== 'undefined') {\n      toReturn['commenterEmail'] = this.commenterEmail;\n    }\n    if (typeof this.commenterName !== 'undefined') {\n      toReturn['commenterName'] = this.commenterName;\n    }\n    if (typeof this.postedByOwner !== 'undefined') {\n      toReturn['postedByOwner'] = this.postedByOwner;\n    }\n    if (typeof this.shouldPublish !== 'undefined') {\n      toReturn['shouldPublish'] = this.shouldPublish;\n    }\n    if (typeof this.postedByDigitalAgent !== 'undefined') {\n      toReturn['postedByDigitalAgent'] = this.postedByDigitalAgent;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewCommentResponse {\n  static fromProto(proto) {\n    let m = new CreateReviewCommentResponse();\n    m = Object.assign(m, proto);\n    if (proto.created) {\n      m.created = new Date(proto.created);\n    }\n    if (proto.published) {\n      m.published = new Date(proto.published);\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.commentId !== 'undefined') {\n      toReturn['commentId'] = this.commentId;\n    }\n    if (typeof this.commentText !== 'undefined') {\n      toReturn['commentText'] = this.commentText;\n    }\n    if (typeof this.commenterName !== 'undefined') {\n      toReturn['commenterName'] = this.commenterName;\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.published !== 'undefined' && this.published !== null) {\n      toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\n    }\n    if (typeof this.postedByOwner !== 'undefined') {\n      toReturn['postedByOwner'] = this.postedByOwner;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewRequestEmailTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreateReviewRequestEmailTemplateRequest();\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    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.externalId !== 'undefined') {\n      toReturn['externalId'] = this.externalId;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewRequestEmailTemplateResponse {\n  static fromProto(proto) {\n    let m = new CreateReviewRequestEmailTemplateResponse();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewRequestTemplate.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 CreateReviewRequestSMSTemplateRequest {\n  static fromProto(proto) {\n    let m = new CreateReviewRequestSMSTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(TemplateType, proto.templateType);\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.title !== 'undefined') {\n      toReturn['title'] = this.title;\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.content !== 'undefined') {\n      toReturn['content'] = this.content;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    if (typeof this.npsRedirectReviewSource !== 'undefined') {\n      toReturn['npsRedirectReviewSource'] = this.npsRedirectReviewSource;\n    }\n    if (typeof this.reviewSourceId !== 'undefined') {\n      toReturn['reviewSourceId'] = this.reviewSourceId;\n    }\n    if (typeof this.businessLogoUrl !== 'undefined') {\n      toReturn['businessLogoUrl'] = this.businessLogoUrl;\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.includeBusinessLogo !== 'undefined') {\n      toReturn['includeBusinessLogo'] = this.includeBusinessLogo;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewRequestSMSTemplateResponse {\n  static fromProto(proto) {\n    let m = new CreateReviewRequestSMSTemplateResponse();\n    m = Object.assign(m, proto);\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(TemplateType, proto.templateType);\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.externalTemplateId !== 'undefined') {\n      toReturn['externalTemplateId'] = this.externalTemplateId;\n    }\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    return toReturn;\n  }\n}\nclass CreateReviewResponseTemplateResponse {\n  static fromProto(proto) {\n    let m = new CreateReviewResponseTemplateResponse();\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.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    return toReturn;\n  }\n}\nclass DeleteBrandReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new DeleteBrandReviewResponseTemplateRequest();\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.brandId !== 'undefined') {\n      toReturn['brandId'] = this.brandId;\n    }\n    if (typeof this.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    if (typeof this.owner !== 'undefined') {\n      toReturn['owner'] = this.owner;\n    }\n    return toReturn;\n  }\n}\nclass DeleteBusinessReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new DeleteBusinessReviewResponseTemplateRequest();\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.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    if (typeof this.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    if (typeof this.owner !== 'undefined') {\n      toReturn['owner'] = this.owner;\n    }\n    return toReturn;\n  }\n}\nclass DeleteDefaultReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new DeleteDefaultReviewResponseTemplateRequest();\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.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    return toReturn;\n  }\n}\nclass DeleteDigitalAgentReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new DeleteDigitalAgentReviewResponseTemplateRequest();\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.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    return toReturn;\n  }\n}\nclass DeletePartnerMarketReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new DeletePartnerMarketReviewResponseTemplateRequest();\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.marketId !== 'undefined') {\n      toReturn['marketId'] = this.marketId;\n    }\n    if (typeof this.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    if (typeof this.owner !== 'undefined') {\n      toReturn['owner'] = this.owner;\n    }\n    return toReturn;\n  }\n}\nclass DeleteReviewRequestTemplateRequest {\n  static fromProto(proto) {\n    let m = new DeleteReviewRequestTemplateRequest();\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    if (typeof this.templateId !== 'undefined') {\n      toReturn['templateId'] = this.templateId;\n    }\n    return toReturn;\n  }\n}\nclass EmailTemplateData {\n  static fromProto(proto) {\n    let m = new EmailTemplateData();\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.emailTemplateSubject !== 'undefined') {\n      toReturn['emailTemplateSubject'] = this.emailTemplateSubject;\n    }\n    if (typeof this.emailTemplateHtml !== 'undefined') {\n      toReturn['emailTemplateHtml'] = this.emailTemplateHtml;\n    }\n    return toReturn;\n  }\n}\nclass ForceRefreshListingRequest {\n  static fromProto(proto) {\n    let m = new ForceRefreshListingRequest();\n    m = Object.assign(m, proto);\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.listingId !== 'undefined') {\n      toReturn['listingId'] = this.listingId;\n    }\n    if (typeof this.listingUrl !== 'undefined') {\n      toReturn['listingUrl'] = this.listingUrl;\n    }\n    if (typeof this.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    return toReturn;\n  }\n}\nclass GetBusinessSourcesRequest {\n  static fromProto(proto) {\n    let m = new GetBusinessSourcesRequest();\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.accountGroupIds !== 'undefined') {\n      toReturn['accountGroupIds'] = this.accountGroupIds;\n    }\n    return toReturn;\n  }\n}\nclass GetBusinessSourcesResponse {\n  static fromProto(proto) {\n    let m = new GetBusinessSourcesResponse();\n    m = Object.assign(m, proto);\n    if (proto.sourceDetails) {\n      m.sourceDetails = proto.sourceDetails.map(SourceDetails.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.sourceDetails !== 'undefined' && this.sourceDetails !== null) {\n      toReturn['sourceDetails'] = 'toApiJson' in this.sourceDetails ? this.sourceDetails.toApiJson() : this.sourceDetails;\n    }\n    return toReturn;\n  }\n}\nclass GetLimitRequest {\n  static fromProto(proto) {\n    let m = new GetLimitRequest();\n    m = Object.assign(m, proto);\n    if (proto.limitType) {\n      m.limitType = enumStringToValue(LimitType, proto.limitType);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.limitType !== 'undefined') {\n      toReturn['limitType'] = this.limitType;\n    }\n    return toReturn;\n  }\n}\nclass GetLimitResponse {\n  static fromProto(proto) {\n    let m = new GetLimitResponse();\n    m = Object.assign(m, proto);\n    if (proto.limit) {\n      m.limit = parseInt(proto.limit, 10);\n    }\n    if (proto.usage) {\n      m.usage = parseInt(proto.usage, 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.limit !== 'undefined') {\n      toReturn['limit'] = this.limit;\n    }\n    if (typeof this.usage !== 'undefined') {\n      toReturn['usage'] = this.usage;\n    }\n    return toReturn;\n  }\n}\nclass GetListingsRequest {\n  static fromProto(proto) {\n    let m = new GetListingsRequest();\n    m = Object.assign(m, proto);\n    if (proto.listingIds) {\n      m.listingIds = proto.listingIds.map(ListingIdentifier.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.listingIds !== 'undefined' && this.listingIds !== null) {\n      toReturn['listingIds'] = 'toApiJson' in this.listingIds ? this.listingIds.toApiJson() : this.listingIds;\n    }\n    return toReturn;\n  }\n}\nclass GetListingsResponse {\n  static fromProto(proto) {\n    let m = new GetListingsResponse();\n    m = Object.assign(m, proto);\n    if (proto.listings) {\n      m.listings = proto.listings.map(Listing.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.listings !== 'undefined' && this.listings !== null) {\n      toReturn['listings'] = 'toApiJson' in this.listings ? this.listings.toApiJson() : this.listings;\n    }\n    return toReturn;\n  }\n}\nclass GetMultiThirdPartyReviewPublishSettingsRequest {\n  static fromProto(proto) {\n    let m = new GetMultiThirdPartyReviewPublishSettingsRequest();\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.accountGroupIds !== 'undefined') {\n      toReturn['accountGroupIds'] = this.accountGroupIds;\n    }\n    return toReturn;\n  }\n}\nclass GetMultiThirdPartyReviewPublishSettingsResponse {\n  static fromProto(proto) {\n    let m = new GetMultiThirdPartyReviewPublishSettingsResponse();\n    m = Object.assign(m, proto);\n    if (proto.thirdPartyReviewPublishSettings) {\n      m.thirdPartyReviewPublishSettings = Object.keys(proto.thirdPartyReviewPublishSettings).reduce((obj, k) => {\n        obj[k] = ThirdPartyReviewPublishSettings.fromProto(proto.thirdPartyReviewPublishSettings[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.thirdPartyReviewPublishSettings !== 'undefined' && this.thirdPartyReviewPublishSettings !== null) {\n      toReturn['thirdPartyReviewPublishSettings'] = 'toApiJson' in this.thirdPartyReviewPublishSettings ? this.thirdPartyReviewPublishSettings.toApiJson() : this.thirdPartyReviewPublishSettings;\n    }\n    return toReturn;\n  }\n}\nclass GetPartnerWhiteLabelDomainRequest {\n  static fromProto(proto) {\n    let m = new GetPartnerWhiteLabelDomainRequest();\n    m = Object.assign(m, proto);\n    return m;\n  }\n  constructor(kwargs) {\n    if (!kwargs) {\n      return;\n    }\n    Object.assign(this, kwargs);\n  }\n  toApiJson() {\n    const toReturn = {};\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    return toReturn;\n  }\n}\nclass GetPartnerWhiteLabelDomainResponse {\n  static fromProto(proto) {\n    let m = new GetPartnerWhiteLabelDomainResponse();\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.whiteLabelDomain !== 'undefined') {\n      toReturn['whiteLabelDomain'] = this.whiteLabelDomain;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewRequestEmailTemplateRequest {\n  static fromProto(proto) {\n    let m = new GetReviewRequestEmailTemplateRequest();\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    if (typeof this.templateId !== 'undefined') {\n      toReturn['templateId'] = this.templateId;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewRequestEmailTemplateResponse {\n  static fromProto(proto) {\n    let m = new GetReviewRequestEmailTemplateResponse();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewRequestTemplate.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 GetReviewRequestSMSTemplateRequest {\n  static fromProto(proto) {\n    let m = new GetReviewRequestSMSTemplateRequest();\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    if (typeof this.templateId !== 'undefined') {\n      toReturn['templateId'] = this.templateId;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewRequestSMSTemplateResponse {\n  static fromProto(proto) {\n    let m = new GetReviewRequestSMSTemplateResponse();\n    m = Object.assign(m, proto);\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(TemplateType, proto.templateType);\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.externalTemplateId !== 'undefined') {\n      toReturn['externalTemplateId'] = this.externalTemplateId;\n    }\n    if (typeof this.title !== 'undefined') {\n      toReturn['title'] = this.title;\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.content !== 'undefined') {\n      toReturn['content'] = this.content;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    if (typeof this.npsRedirectReviewSource !== 'undefined') {\n      toReturn['npsRedirectReviewSource'] = this.npsRedirectReviewSource;\n    }\n    if (typeof this.reviewSourceId !== 'undefined') {\n      toReturn['reviewSourceId'] = this.reviewSourceId;\n    }\n    if (typeof this.imageUrl !== 'undefined') {\n      toReturn['imageUrl'] = this.imageUrl;\n    }\n    if (typeof this.includeBusinessLogo !== 'undefined') {\n      toReturn['includeBusinessLogo'] = this.includeBusinessLogo;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewResponseRequest {\n  static fromProto(proto) {\n    let m = new GetReviewResponseRequest();\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewResponseResponse {\n  static fromProto(proto) {\n    let m = new GetReviewResponseResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviewResponse) {\n      m.reviewResponse = ConciergeReviewResponse.fromProto(proto.reviewResponse);\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.reviewResponse !== 'undefined' && this.reviewResponse !== null) {\n      toReturn['reviewResponse'] = 'toApiJson' in this.reviewResponse ? this.reviewResponse.toApiJson() : this.reviewResponse;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewSourceInfoRequest {\n  static fromProto(proto) {\n    let m = new GetReviewSourceInfoRequest();\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    if (typeof this.sourceIds !== 'undefined') {\n      toReturn['sourceIds'] = this.sourceIds;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewSourceInfoResponse {\n  static fromProto(proto) {\n    let m = new GetReviewSourceInfoResponse();\n    m = Object.assign(m, proto);\n    if (proto.sourceInfo) {\n      m.sourceInfo = proto.sourceInfo.map(ReviewSourceInfo.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.sourceInfo !== 'undefined' && this.sourceInfo !== null) {\n      toReturn['sourceInfo'] = 'toApiJson' in this.sourceInfo ? this.sourceInfo.toApiJson() : this.sourceInfo;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewsRequest {\n  static fromProto(proto) {\n    let m = new GetReviewsRequest();\n    m = Object.assign(m, proto);\n    if (proto.reviewIds) {\n      m.reviewIds = proto.reviewIds.map(ReviewIdentifier.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.reviewIds !== 'undefined' && this.reviewIds !== null) {\n      toReturn['reviewIds'] = 'toApiJson' in this.reviewIds ? this.reviewIds.toApiJson() : this.reviewIds;\n    }\n    if (typeof this.includeComments !== 'undefined') {\n      toReturn['includeComments'] = this.includeComments;\n    }\n    return toReturn;\n  }\n}\nclass GetReviewsResponse {\n  static fromProto(proto) {\n    let m = new GetReviewsResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviews) {\n      m.reviews = proto.reviews.map(Review.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.reviews !== 'undefined' && this.reviews !== null) {\n      toReturn['reviews'] = 'toApiJson' in this.reviews ? this.reviews.toApiJson() : this.reviews;\n    }\n    return toReturn;\n  }\n}\nclass GetSourceDetailsRequest {\n  static fromProto(proto) {\n    let m = new GetSourceDetailsRequest();\n    m = Object.assign(m, proto);\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.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.marketId !== 'undefined') {\n      toReturn['marketId'] = this.marketId;\n    }\n    if (typeof this.location !== 'undefined') {\n      toReturn['location'] = this.location;\n    }\n    if (typeof this.taxIds !== 'undefined') {\n      toReturn['taxIds'] = this.taxIds;\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 GetSourceDetailsResponse {\n  static fromProto(proto) {\n    let m = new GetSourceDetailsResponse();\n    m = Object.assign(m, proto);\n    if (proto.sources) {\n      m.sources = proto.sources.map(Source.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.sources !== 'undefined' && this.sources !== null) {\n      toReturn['sources'] = 'toApiJson' in this.sources ? this.sources.toApiJson() : this.sources;\n    }\n    return toReturn;\n  }\n}\nclass SourceHTML {\n  static fromProto(proto) {\n    let m = new SourceHTML();\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.description !== 'undefined') {\n      toReturn['description'] = this.description;\n    }\n    if (typeof this.claimListing !== 'undefined') {\n      toReturn['claimListing'] = this.claimListing;\n    }\n    if (typeof this.editListing !== 'undefined') {\n      toReturn['editListing'] = this.editListing;\n    }\n    if (typeof this.createListing !== 'undefined') {\n      toReturn['createListing'] = this.createListing;\n    }\n    return toReturn;\n  }\n}\nclass SourceIcon {\n  static fromProto(proto) {\n    let m = new SourceIcon();\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.url16px !== 'undefined') {\n      toReturn['url16px'] = this.url16px;\n    }\n    if (typeof this.url32px !== 'undefined') {\n      toReturn['url32px'] = this.url32px;\n    }\n    if (typeof this.url50px !== 'undefined') {\n      toReturn['url50px'] = this.url50px;\n    }\n    return toReturn;\n  }\n}\nclass ListBusinessReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new ListBusinessReviewResponseTemplateRequest();\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.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\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.brandId !== 'undefined') {\n      toReturn['brandId'] = this.brandId;\n    }\n    if (typeof this.isDigitalAgent !== 'undefined') {\n      toReturn['isDigitalAgent'] = this.isDigitalAgent;\n    }\n    return toReturn;\n  }\n}\nclass ListBusinessReviewResponseTemplateResponse {\n  static fromProto(proto) {\n    let m = new ListBusinessReviewResponseTemplateResponse();\n    m = Object.assign(m, proto);\n    if (proto.templates) {\n      m.templates = proto.templates.map(ReviewResponseTemplate.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 ListReviewRequestEmailTemplatesRequest {\n  static fromProto(proto) {\n    let m = new ListReviewRequestEmailTemplatesRequest();\n    m = Object.assign(m, proto);\n    if (proto.pagingOptions) {\n      m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n    }\n    if (proto.searchOptions) {\n      m.searchOptions = ListReviewRequestEmailTemplatesRequestSearchOptions.fromProto(proto.searchOptions);\n    }\n    if (proto.sortOptions) {\n      m.sortOptions = ListReviewRequestEmailTemplatesRequestSortOptions.fromProto(proto.sortOptions);\n    }\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(ReviewRequestTemplateType, proto.templateType);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.searchOptions !== 'undefined' && this.searchOptions !== null) {\n      toReturn['searchOptions'] = 'toApiJson' in this.searchOptions ? this.searchOptions.toApiJson() : this.searchOptions;\n    }\n    if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {\n      toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? this.sortOptions.toApiJson() : this.sortOptions;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    return toReturn;\n  }\n}\nclass ListReviewRequestEmailTemplatesResponse {\n  static fromProto(proto) {\n    let m = new ListReviewRequestEmailTemplatesResponse();\n    m = Object.assign(m, proto);\n    if (proto.templates) {\n      m.templates = proto.templates.map(ReviewRequestTemplate.fromProto);\n    }\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.templates !== 'undefined' && this.templates !== null) {\n      toReturn['templates'] = 'toApiJson' in this.templates ? this.templates.toApiJson() : this.templates;\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    if (typeof this.totalResults !== 'undefined') {\n      toReturn['totalResults'] = this.totalResults;\n    }\n    return toReturn;\n  }\n}\nclass Listing {\n  static fromProto(proto) {\n    let m = new Listing();\n    m = Object.assign(m, proto);\n    if (proto.listingIdentifier) {\n      m.listingIdentifier = ListingIdentifier.fromProto(proto.listingIdentifier);\n    }\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 10);\n    }\n    if (proto.nap) {\n      m.nap = NAP.fromProto(proto.nap);\n    }\n    if (proto.matchQuality) {\n      m.matchQuality = enumStringToValue(ListingMatchQuality, proto.matchQuality);\n    }\n    if (proto.score) {\n      m.score = parseInt(proto.score, 10);\n    }\n    if (proto.created) {\n      m.created = new Date(proto.created);\n    }\n    if (proto.modified) {\n      m.modified = new Date(proto.modified);\n    }\n    if (proto.lastScraped) {\n      m.lastScraped = new Date(proto.lastScraped);\n    }\n    if (proto.lastUserRefresh) {\n      m.lastUserRefresh = new Date(proto.lastUserRefresh);\n    }\n    if (proto.missingOn) {\n      m.missingOn = new Date(proto.missingOn);\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.listingIdentifier !== 'undefined' && this.listingIdentifier !== null) {\n      toReturn['listingIdentifier'] = 'toApiJson' in this.listingIdentifier ? this.listingIdentifier.toApiJson() : this.listingIdentifier;\n    }\n    if (typeof this.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    if (typeof this.nap !== 'undefined' && this.nap !== null) {\n      toReturn['nap'] = 'toApiJson' in this.nap ? this.nap.toApiJson() : this.nap;\n    }\n    if (typeof this.url !== 'undefined') {\n      toReturn['url'] = this.url;\n    }\n    if (typeof this.domain !== 'undefined') {\n      toReturn['domain'] = this.domain;\n    }\n    if (typeof this.matchQuality !== 'undefined') {\n      toReturn['matchQuality'] = this.matchQuality;\n    }\n    if (typeof this.score !== 'undefined') {\n      toReturn['score'] = this.score;\n    }\n    if (typeof this.userSubmitted !== 'undefined') {\n      toReturn['userSubmitted'] = this.userSubmitted;\n    }\n    if (typeof this.verified !== 'undefined') {\n      toReturn['verified'] = this.verified;\n    }\n    if (typeof this.missing !== 'undefined') {\n      toReturn['missing'] = this.missing;\n    }\n    if (typeof this.matches !== 'undefined') {\n      toReturn['matches'] = this.matches;\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.modified !== 'undefined' && this.modified !== null) {\n      toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n    }\n    if (typeof this.lastScraped !== 'undefined' && this.lastScraped !== null) {\n      toReturn['lastScraped'] = 'toApiJson' in this.lastScraped ? this.lastScraped.toApiJson() : this.lastScraped;\n    }\n    if (typeof this.lastUserRefresh !== 'undefined' && this.lastUserRefresh !== null) {\n      toReturn['lastUserRefresh'] = 'toApiJson' in this.lastUserRefresh ? this.lastUserRefresh.toApiJson() : this.lastUserRefresh;\n    }\n    if (typeof this.missingOn !== 'undefined' && this.missingOn !== null) {\n      toReturn['missingOn'] = 'toApiJson' in this.missingOn ? this.missingOn.toApiJson() : this.missingOn;\n    }\n    if (typeof this.externalId !== 'undefined') {\n      toReturn['externalId'] = this.externalId;\n    }\n    return toReturn;\n  }\n}\nclass ListingIdentifier {\n  static fromProto(proto) {\n    let m = new ListingIdentifier();\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    if (typeof this.listingId !== 'undefined') {\n      toReturn['listingId'] = this.listingId;\n    }\n    return toReturn;\n  }\n}\nclass SourceListingInteractionHTML {\n  static fromProto(proto) {\n    let m = new SourceListingInteractionHTML();\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.descriptionHtml !== 'undefined') {\n      toReturn['descriptionHtml'] = this.descriptionHtml;\n    }\n    if (typeof this.claimListingHtml !== 'undefined') {\n      toReturn['claimListingHtml'] = this.claimListingHtml;\n    }\n    if (typeof this.editListingHtml !== 'undefined') {\n      toReturn['editListingHtml'] = this.editListingHtml;\n    }\n    if (typeof this.createListingHtml !== 'undefined') {\n      toReturn['createListingHtml'] = this.createListingHtml;\n    }\n    return toReturn;\n  }\n}\nclass LookupListingsRequest {\n  static fromProto(proto) {\n    let m = new LookupListingsRequest();\n    m = Object.assign(m, proto);\n    if (proto.sourceIds) {\n      m.sourceIds = proto.sourceIds.map(i => parseInt(i, 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.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    if (typeof this.sourceIds !== 'undefined') {\n      toReturn['sourceIds'] = this.sourceIds;\n    }\n    if (typeof this.includeAnchorDataMatches !== 'undefined') {\n      toReturn['includeAnchorDataMatches'] = this.includeAnchorDataMatches;\n    }\n    if (typeof this.includeGoodListings !== 'undefined') {\n      toReturn['includeGoodListings'] = this.includeGoodListings;\n    }\n    if (typeof this.includeInternetProviderListings !== 'undefined') {\n      toReturn['includeInternetProviderListings'] = this.includeInternetProviderListings;\n    }\n    if (typeof this.includeNotDoneListings !== 'undefined') {\n      toReturn['includeNotDoneListings'] = this.includeNotDoneListings;\n    }\n    if (typeof this.includePoorListings !== 'undefined') {\n      toReturn['includePoorListings'] = this.includePoorListings;\n    }\n    return toReturn;\n  }\n}\nclass LookupListingsResponse {\n  static fromProto(proto) {\n    let m = new LookupListingsResponse();\n    m = Object.assign(m, proto);\n    if (proto.listingsBySource) {\n      m.listingsBySource = proto.listingsBySource.map(LookupResponseForSource.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.listingsBySource !== 'undefined' && this.listingsBySource !== null) {\n      toReturn['listingsBySource'] = 'toApiJson' in this.listingsBySource ? this.listingsBySource.toApiJson() : this.listingsBySource;\n    }\n    return toReturn;\n  }\n}\nclass LookupResponseForSource {\n  static fromProto(proto) {\n    let m = new LookupResponseForSource();\n    m = Object.assign(m, proto);\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 10);\n    }\n    if (proto.poorListings) {\n      m.poorListings = proto.poorListings.map(Listing.fromProto);\n    }\n    if (proto.goodListings) {\n      m.goodListings = proto.goodListings.map(Listing.fromProto);\n    }\n    if (proto.notDoneListings) {\n      m.notDoneListings = proto.notDoneListings.map(Listing.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.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    if (typeof this.sourceName !== 'undefined') {\n      toReturn['sourceName'] = this.sourceName;\n    }\n    if (typeof this.userFriendlySourceName !== 'undefined') {\n      toReturn['userFriendlySourceName'] = this.userFriendlySourceName;\n    }\n    if (typeof this.poorListings !== 'undefined' && this.poorListings !== null) {\n      toReturn['poorListings'] = 'toApiJson' in this.poorListings ? this.poorListings.toApiJson() : this.poorListings;\n    }\n    if (typeof this.goodListings !== 'undefined' && this.goodListings !== null) {\n      toReturn['goodListings'] = 'toApiJson' in this.goodListings ? this.goodListings.toApiJson() : this.goodListings;\n    }\n    if (typeof this.notDoneListings !== 'undefined' && this.notDoneListings !== null) {\n      toReturn['notDoneListings'] = 'toApiJson' in this.notDoneListings ? this.notDoneListings.toApiJson() : this.notDoneListings;\n    }\n    return toReturn;\n  }\n}\nclass NAP {\n  static fromProto(proto) {\n    let m = new NAP();\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.companyName !== 'undefined') {\n      toReturn['companyName'] = this.companyName;\n    }\n    if (typeof this.address !== 'undefined') {\n      toReturn['address'] = this.address;\n    }\n    if (typeof this.city !== 'undefined') {\n      toReturn['city'] = this.city;\n    }\n    if (typeof this.state !== 'undefined') {\n      toReturn['state'] = this.state;\n    }\n    if (typeof this.zip !== 'undefined') {\n      toReturn['zip'] = this.zip;\n    }\n    if (typeof this.country !== 'undefined') {\n      toReturn['country'] = this.country;\n    }\n    if (typeof this.phone !== 'undefined') {\n      toReturn['phone'] = this.phone;\n    }\n    if (typeof this.website !== 'undefined') {\n      toReturn['website'] = this.website;\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 ProvideFeedbackToReviewResponseRequest {\n  static fromProto(proto) {\n    let m = new ProvideFeedbackToReviewResponseRequest();\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    if (typeof this.feedback !== 'undefined') {\n      toReturn['feedback'] = this.feedback;\n    }\n    return toReturn;\n  }\n}\nclass RefreshBusisinessSourceRequest {\n  static fromProto(proto) {\n    let m = new RefreshBusisinessSourceRequest();\n    m = Object.assign(m, proto);\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    if (typeof this.listingId !== 'undefined') {\n      toReturn['listingId'] = this.listingId;\n    }\n    return toReturn;\n  }\n}\nclass ReviewHistoryRequest {\n  static fromProto(proto) {\n    let m = new ReviewHistoryRequest();\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    return toReturn;\n  }\n}\nclass ReviewHistoryResponse {\n  static fromProto(proto) {\n    let m = new ReviewHistoryResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviewHistory) {\n      m.reviewHistory = proto.reviewHistory.map(ReviewHistory.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.reviewHistory !== 'undefined' && this.reviewHistory !== null) {\n      toReturn['reviewHistory'] = 'toApiJson' in this.reviewHistory ? this.reviewHistory.toApiJson() : this.reviewHistory;\n    }\n    return toReturn;\n  }\n}\nclass ReviewResponseTemplate {\n  static fromProto(proto) {\n    let m = new ReviewResponseTemplate();\n    m = Object.assign(m, proto);\n    if (proto.ratings) {\n      m.ratings = proto.ratings.map(i => parseInt(i, 10));\n    }\n    if (proto.created) {\n      m.created = new Date(proto.created);\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.title !== 'undefined') {\n      toReturn['title'] = this.title;\n    }\n    if (typeof this.categories !== 'undefined') {\n      toReturn['categories'] = this.categories;\n    }\n    if (typeof this.ratings !== 'undefined') {\n      toReturn['ratings'] = this.ratings;\n    }\n    if (typeof this.content !== 'undefined') {\n      toReturn['content'] = this.content;\n    }\n    if (typeof this.responseTemplateId !== 'undefined') {\n      toReturn['responseTemplateId'] = this.responseTemplateId;\n    }\n    if (typeof this.externalTemplateId !== 'undefined') {\n      toReturn['externalTemplateId'] = this.externalTemplateId;\n    }\n    if (typeof this.createdBy !== 'undefined') {\n      toReturn['createdBy'] = this.createdBy;\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.owner !== 'undefined') {\n      toReturn['owner'] = this.owner;\n    }\n    return toReturn;\n  }\n}\nclass ReviewSourceInfo {\n  static fromProto(proto) {\n    let m = new ReviewSourceInfo();\n    m = Object.assign(m, proto);\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 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.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    if (typeof this.displayName !== 'undefined') {\n      toReturn['displayName'] = this.displayName;\n    }\n    if (typeof this.leaveReviewUrl !== 'undefined') {\n      toReturn['leaveReviewUrl'] = this.leaveReviewUrl;\n    }\n    return toReturn;\n  }\n}\nclass SMSTemplateData {\n  static fromProto(proto) {\n    let m = new SMSTemplateData();\n    m = Object.assign(m, proto);\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(TemplateType, proto.templateType);\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.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    if (typeof this.npsRedirectReviewSource !== 'undefined') {\n      toReturn['npsRedirectReviewSource'] = this.npsRedirectReviewSource;\n    }\n    if (typeof this.reviewSourceId !== 'undefined') {\n      toReturn['reviewSourceId'] = this.reviewSourceId;\n    }\n    if (typeof this.businessLogoUrl !== 'undefined') {\n      toReturn['businessLogoUrl'] = this.businessLogoUrl;\n    }\n    if (typeof this.includeBusinessLogo !== 'undefined') {\n      toReturn['includeBusinessLogo'] = this.includeBusinessLogo;\n    }\n    return toReturn;\n  }\n}\nclass SearchBingMapsRequest {\n  static fromProto(proto) {\n    let m = new SearchBingMapsRequest();\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    if (typeof this.companyName !== 'undefined') {\n      toReturn['companyName'] = this.companyName;\n    }\n    return toReturn;\n  }\n}\nclass SearchBingMapsResponse {\n  static fromProto(proto) {\n    let m = new SearchBingMapsResponse();\n    m = Object.assign(m, proto);\n    if (proto.locations) {\n      m.locations = proto.locations.map(BingMapsLocation.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.locations !== 'undefined' && this.locations !== null) {\n      toReturn['locations'] = 'toApiJson' in this.locations ? this.locations.toApiJson() : this.locations;\n    }\n    return toReturn;\n  }\n}\nclass ListReviewRequestEmailTemplatesRequestSearchOptions {\n  static fromProto(proto) {\n    let m = new ListReviewRequestEmailTemplatesRequestSearchOptions();\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.searchTerm !== 'undefined') {\n      toReturn['searchTerm'] = this.searchTerm;\n    }\n    if (typeof this.exactMatch !== 'undefined') {\n      toReturn['exactMatch'] = this.exactMatch;\n    }\n    return toReturn;\n  }\n}\nclass SendPreviewEmailRequest {\n  static fromProto(proto) {\n    let m = new SendPreviewEmailRequest();\n    m = Object.assign(m, proto);\n    if (proto.emailTemplateData) {\n      m.emailTemplateData = EmailTemplateData.fromProto(proto.emailTemplateData);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.emailTemplateData !== 'undefined' && this.emailTemplateData !== null) {\n      toReturn['emailTemplateData'] = 'toApiJson' in this.emailTemplateData ? this.emailTemplateData.toApiJson() : this.emailTemplateData;\n    }\n    if (typeof this.recipientUserId !== 'undefined') {\n      toReturn['recipientUserId'] = this.recipientUserId;\n    }\n    return toReturn;\n  }\n}\nclass SendReviewRequestEmailRequest {\n  static fromProto(proto) {\n    let m = new SendReviewRequestEmailRequest();\n    m = Object.assign(m, proto);\n    if (proto.emailTemplateData) {\n      m.emailTemplateData = EmailTemplateData.fromProto(proto.emailTemplateData);\n    }\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(ReviewRequestTemplateType, proto.templateType);\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.recipientsEmails !== 'undefined') {\n      toReturn['recipientsEmails'] = this.recipientsEmails;\n    }\n    if (typeof this.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.emailTemplateData !== 'undefined' && this.emailTemplateData !== null) {\n      toReturn['emailTemplateData'] = 'toApiJson' in this.emailTemplateData ? this.emailTemplateData.toApiJson() : this.emailTemplateData;\n    }\n    if (typeof this.contactIds !== 'undefined') {\n      toReturn['contactIds'] = this.contactIds;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    if (typeof this.isMultiChannel !== 'undefined') {\n      toReturn['isMultiChannel'] = this.isMultiChannel;\n    }\n    return toReturn;\n  }\n}\nclass SendReviewRequestRequest {\n  static fromProto(proto) {\n    let m = new SendReviewRequestRequest();\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    if (typeof this.contactIds !== 'undefined') {\n      toReturn['contactIds'] = this.contactIds;\n    }\n    return toReturn;\n  }\n}\nclass SendReviewRequestSmsRequest {\n  static fromProto(proto) {\n    let m = new SendReviewRequestSmsRequest();\n    m = Object.assign(m, proto);\n    if (proto.smsTemplateData) {\n      m.smsTemplateData = SMSTemplateData.fromProto(proto.smsTemplateData);\n    }\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(ReviewRequestTemplateType, proto.templateType);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.contactIds !== 'undefined') {\n      toReturn['contactIds'] = this.contactIds;\n    }\n    if (typeof this.messageText !== 'undefined') {\n      toReturn['messageText'] = this.messageText;\n    }\n    if (typeof this.smsTemplateData !== 'undefined' && this.smsTemplateData !== null) {\n      toReturn['smsTemplateData'] = 'toApiJson' in this.smsTemplateData ? this.smsTemplateData.toApiJson() : this.smsTemplateData;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    if (typeof this.isMultiChannel !== 'undefined') {\n      toReturn['isMultiChannel'] = this.isMultiChannel;\n    }\n    return toReturn;\n  }\n}\nclass SetDefaultReviewRequestTemplateRequest {\n  static fromProto(proto) {\n    let m = new SetDefaultReviewRequestTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(ReviewRequestTemplateType, proto.templateType);\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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.templateId !== 'undefined') {\n      toReturn['templateId'] = this.templateId;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    return toReturn;\n  }\n}\nclass ListReviewRequestEmailTemplatesRequestSortOptions {\n  static fromProto(proto) {\n    let m = new ListReviewRequestEmailTemplatesRequestSortOptions();\n    m = Object.assign(m, proto);\n    if (proto.sortDirection) {\n      m.sortDirection = enumStringToValue(SortDirection, proto.sortDirection);\n    }\n    if (proto.sortField) {\n      m.sortField = enumStringToValue(ListReviewRequestEmailTemplatesRequestSortField, proto.sortField);\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.sortDirection !== 'undefined') {\n      toReturn['sortDirection'] = this.sortDirection;\n    }\n    if (typeof this.sortField !== 'undefined') {\n      toReturn['sortField'] = this.sortField;\n    }\n    return toReturn;\n  }\n}\nclass Source {\n  static fromProto(proto) {\n    let m = new Source();\n    m = Object.assign(m, proto);\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 10);\n    }\n    if (proto.icon) {\n      m.icon = SourceIcon.fromProto(proto.icon);\n    }\n    if (proto.partner) {\n      m.partner = SourceAttributeScope.fromProto(proto.partner);\n    }\n    if (proto.location) {\n      m.location = SourceAttributeScope.fromProto(proto.location);\n    }\n    if (proto.taxonomy) {\n      m.taxonomy = SourceAttributeScope.fromProto(proto.taxonomy);\n    }\n    if (proto.submitListingData) {\n      m.submitListingData = SourceSubmitListing.fromProto(proto.submitListingData);\n    }\n    if (proto.listingInteractionHtml) {\n      m.listingInteractionHtml = SourceListingInteractionHTML.fromProto(proto.listingInteractionHtml);\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.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    if (typeof this.name !== 'undefined') {\n      toReturn['name'] = this.name;\n    }\n    if (typeof this.sourceTypeName !== 'undefined') {\n      toReturn['sourceTypeName'] = this.sourceTypeName;\n    }\n    if (typeof this.sourceTypeId !== 'undefined') {\n      toReturn['sourceTypeId'] = this.sourceTypeId;\n    }\n    if (typeof this.icon !== 'undefined' && this.icon !== null) {\n      toReturn['icon'] = 'toApiJson' in this.icon ? this.icon.toApiJson() : this.icon;\n    }\n    if (typeof this.enabled !== 'undefined') {\n      toReturn['enabled'] = this.enabled;\n    }\n    if (typeof this.hasReviews !== 'undefined') {\n      toReturn['hasReviews'] = this.hasReviews;\n    }\n    if (typeof this.hasNoRatingsReviews !== 'undefined') {\n      toReturn['hasNoRatingsReviews'] = this.hasNoRatingsReviews;\n    }\n    if (typeof this.hasListings !== 'undefined') {\n      toReturn['hasListings'] = this.hasListings;\n    }\n    if (typeof this.adminNotes !== 'undefined') {\n      toReturn['adminNotes'] = this.adminNotes;\n    }\n    if (typeof this.supportsSubmittingListings !== 'undefined') {\n      toReturn['supportsSubmittingListings'] = this.supportsSubmittingListings;\n    }\n    if (typeof this.ignoredAnchorDataMatches !== 'undefined') {\n      toReturn['ignoredAnchorDataMatches'] = this.ignoredAnchorDataMatches;\n    }\n    if (typeof this.partner !== 'undefined' && this.partner !== null) {\n      toReturn['partner'] = 'toApiJson' in this.partner ? this.partner.toApiJson() : this.partner;\n    }\n    if (typeof this.location !== 'undefined' && this.location !== null) {\n      toReturn['location'] = 'toApiJson' in this.location ? this.location.toApiJson() : this.location;\n    }\n    if (typeof this.taxonomy !== 'undefined' && this.taxonomy !== null) {\n      toReturn['taxonomy'] = 'toApiJson' in this.taxonomy ? this.taxonomy.toApiJson() : this.taxonomy;\n    }\n    if (typeof this.submitListingData !== 'undefined' && this.submitListingData !== null) {\n      toReturn['submitListingData'] = 'toApiJson' in this.submitListingData ? this.submitListingData.toApiJson() : this.submitListingData;\n    }\n    if (typeof this.listingInteractionHtml !== 'undefined' && this.listingInteractionHtml !== null) {\n      toReturn['listingInteractionHtml'] = 'toApiJson' in this.listingInteractionHtml ? this.listingInteractionHtml.toApiJson() : this.listingInteractionHtml;\n    }\n    return toReturn;\n  }\n}\nclass SourceDetails {\n  static fromProto(proto) {\n    let m = new SourceDetails();\n    m = Object.assign(m, proto);\n    if (proto.sources) {\n      m.sources = proto.sources.map(i => parseInt(i, 10));\n    }\n    if (proto.ignoredSources) {\n      m.ignoredSources = proto.ignoredSources.map(i => parseInt(i, 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.sources !== 'undefined') {\n      toReturn['sources'] = this.sources;\n    }\n    if (typeof this.ignoredSources !== 'undefined') {\n      toReturn['ignoredSources'] = this.ignoredSources;\n    }\n    return toReturn;\n  }\n}\nclass SourceSubmitListing {\n  static fromProto(proto) {\n    let m = new SourceSubmitListing();\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.validationRegex !== 'undefined') {\n      toReturn['validationRegex'] = this.validationRegex;\n    }\n    if (typeof this.helpText !== 'undefined') {\n      toReturn['helpText'] = this.helpText;\n    }\n    if (typeof this.editListingUrl !== 'undefined') {\n      toReturn['editListingUrl'] = this.editListingUrl;\n    }\n    if (typeof this.createListingUrl !== 'undefined') {\n      toReturn['createListingUrl'] = this.createListingUrl;\n    }\n    return toReturn;\n  }\n}\nclass SubmitListingRequest {\n  static fromProto(proto) {\n    let m = new SubmitListingRequest();\n    m = Object.assign(m, proto);\n    if (proto.sourceId) {\n      m.sourceId = parseInt(proto.sourceId, 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.accountGroupId !== 'undefined') {\n      toReturn['accountGroupId'] = this.accountGroupId;\n    }\n    if (typeof this.listingUrl !== 'undefined') {\n      toReturn['listingUrl'] = this.listingUrl;\n    }\n    if (typeof this.sourceId !== 'undefined') {\n      toReturn['sourceId'] = this.sourceId;\n    }\n    return toReturn;\n  }\n}\nclass SubmitListingResponse {\n  static fromProto(proto) {\n    let m = new SubmitListingResponse();\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.listingId !== 'undefined') {\n      toReturn['listingId'] = this.listingId;\n    }\n    return toReturn;\n  }\n}\nclass SuggestReviewResponseRequest {\n  static fromProto(proto) {\n    let m = new SuggestReviewResponseRequest();\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    if (typeof this.inSameLanguage !== 'undefined') {\n      toReturn['inSameLanguage'] = this.inSameLanguage;\n    }\n    return toReturn;\n  }\n}\nclass SuggestReviewResponseResponse {\n  static fromProto(proto) {\n    let m = new SuggestReviewResponseResponse();\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.message !== 'undefined') {\n      toReturn['message'] = this.message;\n    }\n    return toReturn;\n  }\n}\nclass GetMultiThirdPartyReviewPublishSettingsResponseThirdPartyReviewPublishSettingsEntry {\n  static fromProto(proto) {\n    let m = new GetMultiThirdPartyReviewPublishSettingsResponseThirdPartyReviewPublishSettingsEntry();\n    m = Object.assign(m, proto);\n    if (proto.value) {\n      m.value = ThirdPartyReviewPublishSettings.fromProto(proto.value);\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.key !== 'undefined') {\n      toReturn['key'] = this.key;\n    }\n    if (typeof this.value !== 'undefined' && this.value !== null) {\n      toReturn['value'] = 'toApiJson' in this.value ? this.value.toApiJson() : this.value;\n    }\n    return toReturn;\n  }\n}\nclass UpdateBrandReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new UpdateBrandReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    if (typeof this.brandId !== 'undefined') {\n      toReturn['brandId'] = this.brandId;\n    }\n    return toReturn;\n  }\n}\nclass UpdateBusinessReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new UpdateBusinessReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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    if (typeof this.businessId !== 'undefined') {\n      toReturn['businessId'] = this.businessId;\n    }\n    return toReturn;\n  }\n}\nclass UpdateDigitalAgentReviewResponseTemplateRequest {\n  static fromProto(proto) {\n    let m = new UpdateDigitalAgentReviewResponseTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewResponseTemplate.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    if (typeof this.partnerId !== 'undefined') {\n      toReturn['partnerId'] = this.partnerId;\n    }\n    return toReturn;\n  }\n}\nclass UpdateListingRequest {\n  static fromProto(proto) {\n    let m = new UpdateListingRequest();\n    m = Object.assign(m, proto);\n    if (proto.listingId) {\n      m.listingId = ListingIdentifier.fromProto(proto.listingId);\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.listingId !== 'undefined' && this.listingId !== null) {\n      toReturn['listingId'] = 'toApiJson' in this.listingId ? this.listingId.toApiJson() : this.listingId;\n    }\n    if (typeof this.isMine !== 'undefined') {\n      toReturn['isMine'] = this.isMine;\n    }\n    if (typeof this.isVerified !== 'undefined') {\n      toReturn['isVerified'] = this.isVerified;\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 UpdateReviewCommentRequest {\n  static fromProto(proto) {\n    let m = new UpdateReviewCommentRequest();\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.reviewCommentId !== 'undefined') {\n      toReturn['reviewCommentId'] = this.reviewCommentId;\n    }\n    if (typeof this.reviewCommentContent !== 'undefined') {\n      toReturn['reviewCommentContent'] = this.reviewCommentContent;\n    }\n    return toReturn;\n  }\n}\nclass UpdateReviewCommentResponse {\n  static fromProto(proto) {\n    let m = new UpdateReviewCommentResponse();\n    m = Object.assign(m, proto);\n    if (proto.reviewComment) {\n      m.reviewComment = ReviewComment.fromProto(proto.reviewComment);\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.reviewComment !== 'undefined' && this.reviewComment !== null) {\n      toReturn['reviewComment'] = 'toApiJson' in this.reviewComment ? this.reviewComment.toApiJson() : this.reviewComment;\n    }\n    return toReturn;\n  }\n}\nclass UpdateReviewRequest {\n  static fromProto(proto) {\n    let m = new UpdateReviewRequest();\n    m = Object.assign(m, proto);\n    if (proto.reviewId) {\n      m.reviewId = ReviewIdentifier.fromProto(proto.reviewId);\n    }\n    if (proto.actionStatus) {\n      m.actionStatus = enumStringToValue(ReviewActionStatus, proto.actionStatus);\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.reviewId !== 'undefined' && this.reviewId !== null) {\n      toReturn['reviewId'] = 'toApiJson' in this.reviewId ? this.reviewId.toApiJson() : this.reviewId;\n    }\n    if (typeof this.actionStatus !== 'undefined') {\n      toReturn['actionStatus'] = this.actionStatus;\n    }\n    if (typeof this.isPublished !== 'undefined') {\n      toReturn['isPublished'] = this.isPublished;\n    }\n    if (typeof this.isPublishedThirdPartyReview !== 'undefined') {\n      toReturn['isPublishedThirdPartyReview'] = this.isPublishedThirdPartyReview;\n    }\n    if (typeof this.isSharedByReviewer !== 'undefined') {\n      toReturn['isSharedByReviewer'] = this.isSharedByReviewer;\n    }\n    if (typeof this.newComment !== 'undefined') {\n      toReturn['newComment'] = this.newComment;\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 UpdateReviewRequestEmailTemplateRequest {\n  static fromProto(proto) {\n    let m = new UpdateReviewRequestEmailTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.template) {\n      m.template = ReviewRequestTemplate.fromProto(proto.template);\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.template !== 'undefined' && this.template !== null) {\n      toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\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 UpdateReviewRequestSMSTemplateRequest {\n  static fromProto(proto) {\n    let m = new UpdateReviewRequestSMSTemplateRequest();\n    m = Object.assign(m, proto);\n    if (proto.templateType) {\n      m.templateType = enumStringToValue(TemplateType, proto.templateType);\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.templateId !== 'undefined') {\n      toReturn['templateId'] = this.templateId;\n    }\n    if (typeof this.externalTemplateId !== 'undefined') {\n      toReturn['externalTemplateId'] = this.externalTemplateId;\n    }\n    if (typeof this.title !== 'undefined') {\n      toReturn['title'] = this.title;\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.content !== 'undefined') {\n      toReturn['content'] = this.content;\n    }\n    if (typeof this.templateType !== 'undefined') {\n      toReturn['templateType'] = this.templateType;\n    }\n    if (typeof this.npsRedirectReviewSource !== 'undefined') {\n      toReturn['npsRedirectReviewSource'] = this.npsRedirectReviewSource;\n    }\n    if (typeof this.reviewSourceId !== 'undefined') {\n      toReturn['reviewSourceId'] = this.reviewSourceId;\n    }\n    if (typeof this.businessLogoUrl !== 'undefined') {\n      toReturn['businessLogoUrl'] = this.businessLogoUrl;\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.includeBusinessLogo !== 'undefined') {\n      toReturn['includeBusinessLogo'] = this.includeBusinessLogo;\n    }\n    return toReturn;\n  }\n}\nclass UpdateReviewResponse {\n  static fromProto(proto) {\n    let m = new UpdateReviewResponse();\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    return toReturn;\n  }\n}\nclass UpdateReviewUserDeletedInfoRequest {\n  static fromProto(proto) {\n    let m = new UpdateReviewUserDeletedInfoRequest();\n    m = Object.assign(m, proto);\n    if (proto.deletedStatus) {\n      m.deletedStatus = enumStringToValue(ReviewDeletedStatus, proto.deletedStatus);\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.reviewId !== 'undefined') {\n      toReturn['reviewId'] = this.reviewId;\n    }\n    if (typeof this.userId !== 'undefined') {\n      toReturn['userId'] = this.userId;\n    }\n    if (typeof this.deletedStatus !== 'undefined') {\n      toReturn['deletedStatus'] = this.deletedStatus;\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': 'reputation-api.vendasta-local.com',\n  'test': '',\n  'demo': 'reputation-api-demo.apigateway.co',\n  'prod': 'reputation-api-prod.apigateway.co',\n  'production': 'reputation-api-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n  class HostService {\n    get host() {\n      return hostMap[environment.toLowerCase()];\n    }\n    get hostWithScheme() {\n      return 'https://' + this.host;\n    }\n  }\n  HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || 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 AccountApiService = /*#__PURE__*/(() => {\n  class AccountApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getSmsEnabled(r) {\n      const request = r.toApiJson ? r : new GetSMSEnabledRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.AccountService/GetSMSEnabled\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSMSEnabledResponse.fromProto(resp)));\n    }\n  }\n  AccountApiService.ɵfac = function AccountApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || AccountApiService)();\n  };\n  AccountApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: AccountApiService,\n    factory: AccountApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return AccountApiService;\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 ConciergeReviewResponseApiService = /*#__PURE__*/(() => {\n  class ConciergeReviewResponseApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getReviewResponse(r) {\n      const request = r.toApiJson ? r : new GetReviewResponseRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ConciergeReviewResponseService/GetReviewResponse\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewResponseResponse.fromProto(resp)));\n    }\n    approveReviewResponse(r) {\n      const request = r.toApiJson ? r : new ApproveReviewResponseRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ConciergeReviewResponseService/ApproveReviewResponse\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    provideFeedbackToReviewResponse(r) {\n      const request = r.toApiJson ? r : new ProvideFeedbackToReviewResponseRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ConciergeReviewResponseService/ProvideFeedbackToReviewResponse\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n  }\n  ConciergeReviewResponseApiService.ɵfac = function ConciergeReviewResponseApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ConciergeReviewResponseApiService)();\n  };\n  ConciergeReviewResponseApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ConciergeReviewResponseApiService,\n    factory: ConciergeReviewResponseApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ConciergeReviewResponseApiService;\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 LimitApiService = /*#__PURE__*/(() => {\n  class LimitApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getLimit(r) {\n      const request = r.toApiJson ? r : new GetLimitRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.LimitService/GetLimit\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLimitResponse.fromProto(resp)));\n    }\n  }\n  LimitApiService.ɵfac = function LimitApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || LimitApiService)();\n  };\n  LimitApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: LimitApiService,\n    factory: LimitApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return LimitApiService;\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 ListingApiService = /*#__PURE__*/(() => {\n  class ListingApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getListings(r) {\n      const request = r.toApiJson ? r : new GetListingsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ListingService/GetListings\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetListingsResponse.fromProto(resp)));\n    }\n    lookupListings(r) {\n      const request = r.toApiJson ? r : new LookupListingsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ListingService/LookupListings\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupListingsResponse.fromProto(resp)));\n    }\n    updateListing(r) {\n      const request = r.toApiJson ? r : new UpdateListingRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ListingService/UpdateListing\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    submitListing(r) {\n      const request = r.toApiJson ? r : new SubmitListingRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ListingService/SubmitListing\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SubmitListingResponse.fromProto(resp)));\n    }\n    forceRefreshListing(r) {\n      const request = r.toApiJson ? r : new ForceRefreshListingRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ListingService/ForceRefreshListing\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    searchBingMaps(r) {\n      const request = r.toApiJson ? r : new SearchBingMapsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ListingService/SearchBingMaps\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchBingMapsResponse.fromProto(resp)));\n    }\n  }\n  ListingApiService.ɵfac = function ListingApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ListingApiService)();\n  };\n  ListingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ListingApiService,\n    factory: ListingApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ListingApiService;\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 NetPromoterScoreApiService = /*#__PURE__*/(() => {\n  class NetPromoterScoreApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    leaveNetPromoterScore(r) {\n      const request = r.toApiJson ? r : new LeaveNetPromoterScoreRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.NetPromoterScoreService/LeaveNetPromoterScore\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    listNetPromoterScores(r) {\n      const request = r.toApiJson ? r : new ListNetPromoterScoresRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.NetPromoterScoreService/ListNetPromoterScores\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListNetPromoterScoresResponse.fromProto(resp)));\n    }\n    importNps(r) {\n      const request = r.toApiJson ? r : new ImportNPSRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.NetPromoterScoreService/ImportNPS\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ImportNPSResponse.fromProto(resp)));\n    }\n    getMulti(r) {\n      const request = r.toApiJson ? r : new GetMultiNPSRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.NetPromoterScoreService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiNPSResponse.fromProto(resp)));\n    }\n  }\n  NetPromoterScoreApiService.ɵfac = function NetPromoterScoreApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || NetPromoterScoreApiService)();\n  };\n  NetPromoterScoreApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: NetPromoterScoreApiService,\n    factory: NetPromoterScoreApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return NetPromoterScoreApiService;\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 ReviewRequestApiService = /*#__PURE__*/(() => {\n  class ReviewRequestApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    sendReviewRequestEmail(r) {\n      const request = r.toApiJson ? r : new SendReviewRequestEmailRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/SendReviewRequestEmail\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    sendReviewRequestSms(r) {\n      const request = r.toApiJson ? r : new SendReviewRequestSmsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/SendReviewRequestSms\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    createReviewRequestEmailTemplate(r) {\n      const request = r.toApiJson ? r : new CreateReviewRequestEmailTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/CreateReviewRequestEmailTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewRequestEmailTemplateResponse.fromProto(resp)));\n    }\n    getReviewRequestEmailTemplate(r) {\n      const request = r.toApiJson ? r : new GetReviewRequestEmailTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/GetReviewRequestEmailTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewRequestEmailTemplateResponse.fromProto(resp)));\n    }\n    listReviewRequestEmailTemplates(r) {\n      const request = r.toApiJson ? r : new ListReviewRequestEmailTemplatesRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/ListReviewRequestEmailTemplates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListReviewRequestEmailTemplatesResponse.fromProto(resp)));\n    }\n    setDefaultReviewRequestTemplate(r) {\n      const request = r.toApiJson ? r : new SetDefaultReviewRequestTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/SetDefaultReviewRequestTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    updateReviewRequestEmailTemplate(r) {\n      const request = r.toApiJson ? r : new UpdateReviewRequestEmailTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/UpdateReviewRequestEmailTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    deleteReviewRequestEmailTemplate(r) {\n      const request = r.toApiJson ? r : new DeleteReviewRequestTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/DeleteReviewRequestEmailTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    sendReviewRequest(r) {\n      const request = r.toApiJson ? r : new SendReviewRequestRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/SendReviewRequest\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    scheduleReviewRequest(r) {\n      const request = r.toApiJson ? r : new ScheduleReviewRequestRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/ScheduleReviewRequest\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    getLeaveReviewUrLs(r) {\n      const request = r.toApiJson ? r : new GetLeaveReviewURLsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/GetLeaveReviewURLs\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLeaveReviewURLsResponse.fromProto(resp)));\n    }\n    createReviewRequestSmsTemplate(r) {\n      const request = r.toApiJson ? r : new CreateReviewRequestSMSTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/CreateReviewRequestSMSTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewRequestSMSTemplateResponse.fromProto(resp)));\n    }\n    sendPreviewEmail(r) {\n      const request = r.toApiJson ? r : new SendPreviewEmailRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/SendPreviewEmail\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    getReviewRequestSmsTemplate(r) {\n      const request = r.toApiJson ? r : new GetReviewRequestSMSTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/GetReviewRequestSMSTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewRequestSMSTemplateResponse.fromProto(resp)));\n    }\n    updateReviewRequestSmsTemplate(r) {\n      const request = r.toApiJson ? r : new UpdateReviewRequestSMSTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/UpdateReviewRequestSMSTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    resendReview(r) {\n      const request = r.toApiJson ? r : new ResendReviewRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewRequestService/ResendReview\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n  }\n  ReviewRequestApiService.ɵfac = function ReviewRequestApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ReviewRequestApiService)();\n  };\n  ReviewRequestApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ReviewRequestApiService,\n    factory: ReviewRequestApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ReviewRequestApiService;\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 ReviewResponseTemplateApiService = /*#__PURE__*/(() => {\n  class ReviewResponseTemplateApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    createBusinessReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new CreateBusinessReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/CreateBusinessReviewResponseTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewResponseTemplateResponse.fromProto(resp)));\n    }\n    createPartnerMarketReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new CreatePartnerMarketReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/CreatePartnerMarketReviewResponseTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewResponseTemplateResponse.fromProto(resp)));\n    }\n    createBrandReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new CreateBrandReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/CreateBrandReviewResponseTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewResponseTemplateResponse.fromProto(resp)));\n    }\n    createDigitalAgentReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new CreateDigitalAgentReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/CreateDigitalAgentReviewResponseTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewResponseTemplateResponse.fromProto(resp)));\n    }\n    createDefaultReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new CreateDefaultReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/CreateDefaultReviewResponseTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewResponseTemplateResponse.fromProto(resp)));\n    }\n    updateBusinessReviewResponseTemplates(r) {\n      const request = r.toApiJson ? r : new UpdateBusinessReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/UpdateBusinessReviewResponseTemplates\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    updateBrandReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new UpdateBrandReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/UpdateBrandReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    updateDigitalAgentReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new UpdateDigitalAgentReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/UpdateDigitalAgentReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    deleteBusinessReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new DeleteBusinessReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/DeleteBusinessReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    deletePartnerMarketReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new DeletePartnerMarketReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/DeletePartnerMarketReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    deleteBrandReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new DeleteBrandReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/DeleteBrandReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    deleteDigitalAgentReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new DeleteDigitalAgentReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/DeleteDigitalAgentReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    deleteDefaultReviewResponseTemplate(r) {\n      const request = r.toApiJson ? r : new DeleteDefaultReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/DeleteDefaultReviewResponseTemplate\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    listBusinessReviewResponseTemplates(r) {\n      const request = r.toApiJson ? r : new ListBusinessReviewResponseTemplateRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewResponseTemplateService/ListBusinessReviewResponseTemplates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListBusinessReviewResponseTemplateResponse.fromProto(resp)));\n    }\n  }\n  ReviewResponseTemplateApiService.ɵfac = function ReviewResponseTemplateApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ReviewResponseTemplateApiService)();\n  };\n  ReviewResponseTemplateApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ReviewResponseTemplateApiService,\n    factory: ReviewResponseTemplateApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ReviewResponseTemplateApiService;\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 ReviewApiService = /*#__PURE__*/(() => {\n  class ReviewApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getReviews(r) {\n      const request = r.toApiJson ? r : new GetReviewsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/GetReviews\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewsResponse.fromProto(resp)));\n    }\n    updateReview(r) {\n      const request = r.toApiJson ? r : new UpdateReviewRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/UpdateReview\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateReviewResponse.fromProto(resp)));\n    }\n    createReviewComment(r) {\n      const request = r.toApiJson ? r : new CreateReviewCommentRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/CreateReviewComment\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewCommentResponse.fromProto(resp)));\n    }\n    updateReviewComment(r) {\n      const request = r.toApiJson ? r : new UpdateReviewCommentRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/UpdateReviewComment\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateReviewCommentResponse.fromProto(resp)));\n    }\n    canRespondToReview(r) {\n      const request = r.toApiJson ? r : new CanRespondToReviewRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/CanRespondToReview\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CanRespondToReviewResponse.fromProto(resp)));\n    }\n    updateReviewUserDeletedInfo(r) {\n      const request = r.toApiJson ? r : new UpdateReviewUserDeletedInfoRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/UpdateReviewUserDeletedInfo\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    getMultiThirdPartyReviewPublishSettings(r) {\n      const request = r.toApiJson ? r : new GetMultiThirdPartyReviewPublishSettingsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/GetMultiThirdPartyReviewPublishSettings\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiThirdPartyReviewPublishSettingsResponse.fromProto(resp)));\n    }\n    suggestReviewResponse(r) {\n      const request = r.toApiJson ? r : new SuggestReviewResponseRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/SuggestReviewResponse\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SuggestReviewResponseResponse.fromProto(resp)));\n    }\n    getReviewHistory(r) {\n      const request = r.toApiJson ? r : new ReviewHistoryRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewService/GetReviewHistory\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ReviewHistoryResponse.fromProto(resp)));\n    }\n  }\n  ReviewApiService.ɵfac = function ReviewApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ReviewApiService)();\n  };\n  ReviewApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ReviewApiService,\n    factory: ReviewApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ReviewApiService;\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 ReviewWidgetApiService = /*#__PURE__*/(() => {\n  class ReviewWidgetApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    listWidgetReviews(r) {\n      const request = r.toApiJson ? r : new ListWidgetReviewsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetService/ListWidgetReviews\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListWidgetReviewsResponse.fromProto(resp)));\n    }\n    createReviewWidget(r) {\n      const request = r.toApiJson ? r : new CreateReviewWidgetRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetService/CreateReviewWidget\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewWidgetResponse.fromProto(resp)));\n    }\n    updateReviewWidget(r) {\n      const request = r.toApiJson ? r : new UpdateReviewWidgetRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetService/UpdateReviewWidget\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    getReviewWidget(r) {\n      const request = r.toApiJson ? r : new GetReviewWidgetRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetService/GetReviewWidget\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewWidgetResponse.fromProto(resp)));\n    }\n    getReviewWidgetById(r) {\n      const request = r.toApiJson ? r : new GetReviewWidgetByIDRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetService/GetReviewWidgetByID\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewWidgetByIDResponse.fromProto(resp)));\n    }\n    createReview(r) {\n      const request = r.toApiJson ? r : new CreateReviewRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetService/CreateReview\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateReviewResponse.fromProto(resp)));\n    }\n  }\n  ReviewWidgetApiService.ɵfac = function ReviewWidgetApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ReviewWidgetApiService)();\n  };\n  ReviewWidgetApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ReviewWidgetApiService,\n    factory: ReviewWidgetApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ReviewWidgetApiService;\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 ReviewWidgetUsageApiService = /*#__PURE__*/(() => {\n  class ReviewWidgetUsageApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    checkReviewWidgetUsage(r) {\n      const request = r.toApiJson ? r : new CheckReviewWidgetUsageRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.ReviewWidgetUsageService/CheckReviewWidgetUsage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckReviewWidgetUsageResponse.fromProto(resp)));\n    }\n  }\n  ReviewWidgetUsageApiService.ɵfac = function ReviewWidgetUsageApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || ReviewWidgetUsageApiService)();\n  };\n  ReviewWidgetUsageApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: ReviewWidgetUsageApiService,\n    factory: ReviewWidgetUsageApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return ReviewWidgetUsageApiService;\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 SourceApiService = /*#__PURE__*/(() => {\n  class SourceApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getBusinessSources(r) {\n      const request = r.toApiJson ? r : new GetBusinessSourcesRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.SourceService/GetBusinessSources\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetBusinessSourcesResponse.fromProto(resp)));\n    }\n    getSourceDetails(r) {\n      const request = r.toApiJson ? r : new GetSourceDetailsRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.SourceService/GetSourceDetails\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSourceDetailsResponse.fromProto(resp)));\n    }\n    refreshBusinessSource(r) {\n      const request = r.toApiJson ? r : new RefreshBusisinessSourceRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.SourceService/RefreshBusinessSource\", request.toApiJson(), {\n        ...this.apiOptions(),\n        observe: 'response'\n      });\n    }\n    getReviewSourceInfo(r) {\n      const request = r.toApiJson ? r : new GetReviewSourceInfoRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.SourceService/GetReviewSourceInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewSourceInfoResponse.fromProto(resp)));\n    }\n    getReviewSourceInfoInternal(r) {\n      const request = r.toApiJson ? r : new GetReviewSourceInfoRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.SourceService/GetReviewSourceInfoInternal\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetReviewSourceInfoResponse.fromProto(resp)));\n    }\n  }\n  SourceApiService.ɵfac = function SourceApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || SourceApiService)();\n  };\n  SourceApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: SourceApiService,\n    factory: SourceApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return SourceApiService;\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 WhiteLabelDomainApiService = /*#__PURE__*/(() => {\n  class WhiteLabelDomainApiService {\n    constructor() {\n      this.hostService = inject(HostService);\n      this.http = inject(HttpClient);\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    getPartnerWhiteLabelDomain(r) {\n      const request = r.toApiJson ? r : new GetPartnerWhiteLabelDomainRequest(r);\n      return this.http.post(this._host + \"/reputation.v1.WhiteLabelDomainService/GetPartnerWhiteLabelDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPartnerWhiteLabelDomainResponse.fromProto(resp)));\n    }\n  }\n  WhiteLabelDomainApiService.ɵfac = function WhiteLabelDomainApiService_Factory(__ngFactoryType__) {\n    return new (__ngFactoryType__ || WhiteLabelDomainApiService)();\n  };\n  WhiteLabelDomainApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n    token: WhiteLabelDomainApiService,\n    factory: WhiteLabelDomainApiService.ɵfac,\n    providedIn: 'root'\n  });\n  return WhiteLabelDomainApiService;\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 * Generated bundle index. Do not edit.\n */\n\nexport { Access, AccountApiService, ApproveReviewResponseRequest, BingMapsLocation, CanRespondToReviewRequest, CanRespondToReviewResponse, Channel, CheckReviewWidgetUsageRequest, CheckReviewWidgetUsageResponse, ConciergeReviewResponse, ConciergeReviewResponseApiService, CreateBrandReviewResponseTemplateRequest, CreateBusinessReviewResponseTemplateRequest, CreateDefaultReviewResponseTemplateRequest, CreateDigitalAgentReviewResponseTemplateRequest, CreatePartnerMarketReviewResponseTemplateRequest, CreateReviewCommentRequest, CreateReviewCommentResponse, CreateReviewRequest, CreateReviewRequestEmailTemplateRequest, CreateReviewRequestEmailTemplateResponse, CreateReviewRequestSMSTemplateRequest, CreateReviewRequestSMSTemplateResponse, CreateReviewResponse, CreateReviewResponseTemplateResponse, CreateReviewWidgetRequest, CreateReviewWidgetResponse, Customizations, CustomizationsOverallRatingDecimalPlaces, DaysOfWeek, DeleteBrandReviewResponseTemplateRequest, DeleteBusinessReviewResponseTemplateRequest, DeleteDefaultReviewResponseTemplateRequest, DeleteDigitalAgentReviewResponseTemplateRequest, DeletePartnerMarketReviewResponseTemplateRequest, DeleteReviewRequestTemplateRequest, EmailTemplateData, FieldMask, ForceRefreshListingRequest, GetBusinessSourcesRequest, GetBusinessSourcesResponse, GetLeaveReviewURLsRequest, GetLeaveReviewURLsResponse, GetLeaveReviewURLsResponseUrlsEntry, GetLimitRequest, GetLimitResponse, GetListingsRequest, GetListingsResponse, GetMultiNPSRequest, GetMultiNPSResponse, GetMultiThirdPartyReviewPublishSettingsRequest, GetMultiThirdPartyReviewPublishSettingsResponse, GetMultiThirdPartyReviewPublishSettingsResponseThirdPartyReviewPublishSettingsEntry, GetPartnerWhiteLabelDomainRequest, GetPartnerWhiteLabelDomainResponse, GetReviewRequestEmailTemplateRequest, GetReviewRequestEmailTemplateResponse, GetReviewRequestSMSTemplateRequest, GetReviewRequestSMSTemplateResponse, GetReviewResponseRequest, GetReviewResponseResponse, GetReviewSourceInfoRequest, GetReviewSourceInfoResponse, GetReviewWidgetByIDRequest, GetReviewWidgetByIDResponse, GetReviewWidgetByIDResponseLeaveReviewUrlsEntry, GetReviewWidgetRequest, GetReviewWidgetResponse, GetReviewsRequest, GetReviewsResponse, GetSMSEnabledRequest, GetSMSEnabledResponse, GetSourceDetailsRequest, GetSourceDetailsResponse, HostService, ImportNPSRequest, ImportNPSResponse, Interval, LeaveNetPromoterScoreRequest, LimitApiService, LimitType, ListBusinessReviewResponseTemplateRequest, ListBusinessReviewResponseTemplateResponse, ListNetPromoterScoresRequest, ListNetPromoterScoresRequestFilters, ListNetPromoterScoresResponse, ListReviewRequestEmailTemplatesRequest, ListReviewRequestEmailTemplatesRequestSearchOptions, ListReviewRequestEmailTemplatesRequestSortField, ListReviewRequestEmailTemplatesRequestSortOptions, ListReviewRequestEmailTemplatesResponse, ListWidgetReviewsRequest, ListWidgetReviewsRequestMinimumRating, ListWidgetReviewsResponse, Listing, ListingApiService, ListingIdentifier, ListingMatchQuality, LookupListingsRequest, LookupListingsResponse, LookupResponseForSource, MethodMetadata, NAP, NetPromoterScore, NetPromoterScoreApiService, NetPromoterScoreAttribute, PagedRequestOptions, PeriodDelay, ProvideFeedbackToReviewResponseRequest, Recommendation, RefreshBusisinessSourceRequest, ResendReviewRequest, Review, ReviewActionStatus, ReviewApiService, ReviewComment, ReviewDeletedStatus, ReviewHistory, ReviewHistoryRequest, ReviewHistoryResponse, ReviewIdentifier, ReviewRequestApiService, ReviewRequestTemplate, ReviewRequestTemplateType, ReviewResponseTemplate, ReviewResponseTemplateApiService, ReviewSourceInfo, ReviewStats, ReviewWidget, ReviewWidgetApiService, ReviewWidgetLayout, ReviewWidgetUsageApiService, Reviewer, SDKMetadata, SMSState, SMSTemplateData, ScheduleReviewRequestRequest, ScheduleReviewRequestRequestScheduleConditions, ScoreCategory, SearchBingMapsRequest, SearchBingMapsResponse, SendPreviewEmailRequest, SendReviewRequestEmailRequest, SendReviewRequestRequest, SendReviewRequestSmsRequest, SetDefaultReviewRequestTemplateRequest, SortDirection, Source, SourceApiService, SourceAttributeScope, SourceDetails, SourceHTML, SourceIcon, SourceListingInteractionHTML, SourceSubmitListing, Styling, StylingTheme, SubmitListingRequest, SubmitListingResponse, SuggestReviewResponseRequest, SuggestReviewResponseResponse, TemplateType, ThirdPartyPublishedStatus, ThirdPartyReviewPublishSettings, Toggles, UpdateBrandReviewResponseTemplateRequest, UpdateBusinessReviewResponseTemplateRequest, UpdateDigitalAgentReviewResponseTemplateRequest, UpdateListingRequest, UpdateReviewCommentRequest, UpdateReviewCommentResponse, UpdateReviewRequest, UpdateReviewRequestEmailTemplateRequest, UpdateReviewRequestSMSTemplateRequest, UpdateReviewResponse, UpdateReviewUserDeletedInfoRequest, UpdateReviewWidgetRequest, WhiteLabelDomainApiService };\n"],"mappings":"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","names":["enumStringToValue$9","enumRef","value","enumStringToValue$8","enumStringToValue$1","enumStringToValue","Recommendation","ReviewActionStatus","ReviewDeletedStatus","ThirdPartyPublishedStatus","Channel","DaysOfWeek","Interval","ScoreCategory","ListingMatchQuality","ReviewRequestTemplateType","SortDirection","ListReviewRequestEmailTemplatesRequestSortField","TemplateType","FieldMask","Review","ReviewComment","ReviewHistory","ReviewIdentifier","Reviewer","ThirdPartyReviewPublishSettings","GetLeaveReviewURLsRequest","GetLeaveReviewURLsResponse","PeriodDelay","ReviewRequestTemplate","ScheduleReviewRequestRequestScheduleConditions","ScheduleReviewRequestRequest","ConciergeReviewResponse","ListNetPromoterScoresRequestFilters","GetMultiNPSRequest","GetMultiNPSResponse","ImportNPSRequest","ImportNPSResponse","LeaveNetPromoterScoreRequest","ListNetPromoterScoresRequest","ListNetPromoterScoresResponse","NetPromoterScore","NetPromoterScoreAttribute","ResendReviewRequest","ApproveReviewResponseRequest","SourceAttributeScope","BingMapsLocation","CanRespondToReviewRequest","CanRespondToReviewResponse","CreateBrandReviewResponseTemplateRequest","CreateBusinessReviewResponseTemplateRequest","CreateDefaultReviewResponseTemplateRequest","CreateDigitalAgentReviewResponseTemplateRequest","CreatePartnerMarketReviewResponseTemplateRequest","CreateReviewCommentRequest","CreateReviewCommentResponse","CreateReviewRequestEmailTemplateRequest","CreateReviewRequestEmailTemplateResponse","CreateReviewRequestSMSTemplateRequest","CreateReviewRequestSMSTemplateResponse","CreateReviewResponseTemplateResponse","DeleteBrandReviewResponseTemplateRequest","DeleteBusinessReviewResponseTemplateRequest","DeleteDefaultReviewResponseTemplateRequest","DeleteDigitalAgentReviewResponseTemplateRequest","DeletePartnerMarketReviewResponseTemplateRequest","DeleteReviewRequestTemplateRequest","EmailTemplateData","ForceRefreshListingRequest","GetBusinessSourcesRequest","GetBusinessSourcesResponse","GetListingsRequest","GetListingsResponse","GetMultiThirdPartyReviewPublishSettingsRequest","GetMultiThirdPartyReviewPublishSettingsResponse","GetReviewRequestEmailTemplateRequest","GetReviewRequestEmailTemplateResponse","GetReviewRequestSMSTemplateRequest","GetReviewRequestSMSTemplateResponse","GetReviewResponseRequest","GetReviewResponseResponse","GetReviewSourceInfoRequest","GetReviewSourceInfoResponse","GetReviewsRequest","GetReviewsResponse","GetSourceDetailsRequest","GetSourceDetailsResponse","SourceIcon","ListBusinessReviewResponseTemplateRequest","ListBusinessReviewResponseTemplateResponse","ListReviewRequestEmailTemplatesRequest","ListReviewRequestEmailTemplatesResponse","Listing","ListingIdentifier","SourceListingInteractionHTML","LookupListingsRequest","LookupListingsResponse","LookupResponseForSource","NAP","PagedRequestOptions","ProvideFeedbackToReviewResponseRequest","RefreshBusisinessSourceRequest","ReviewHistoryRequest","ReviewHistoryResponse","ReviewResponseTemplate","ReviewSourceInfo","SMSTemplateData","SearchBingMapsRequest","SearchBingMapsResponse","ListReviewRequestEmailTemplatesRequestSearchOptions","SendPreviewEmailRequest","SendReviewRequestEmailRequest","SendReviewRequestRequest","SendReviewRequestSmsRequest","SetDefaultReviewRequestTemplateRequest","ListReviewRequestEmailTemplatesRequestSortOptions","Source","SourceDetails","SourceSubmitListing","SubmitListingRequest","SubmitListingResponse","SuggestReviewResponseRequest","SuggestReviewResponseResponse","UpdateBrandReviewResponseTemplateRequest","UpdateBusinessReviewResponseTemplateRequest","UpdateDigitalAgentReviewResponseTemplateRequest","UpdateListingRequest","UpdateReviewCommentRequest","UpdateReviewCommentResponse","UpdateReviewRequest","UpdateReviewRequestEmailTemplateRequest","UpdateReviewRequestSMSTemplateRequest","UpdateReviewResponse","UpdateReviewUserDeletedInfoRequest","environment","hostMap","HostService","ConciergeReviewResponseApiService","ListingApiService","NetPromoterScoreApiService","ReviewRequestApiService","ReviewResponseTemplateApiService","ReviewApiService","SourceApiService","init_vendasta_reputation","__esmMin","init_core","init_http","init_operators","_FieldMask","proto","m","kwargs","toReturn","_Review","_ReviewComment","_ReviewHistory","_ReviewIdentifier","_Reviewer","_ThirdPartyReviewPublishSettings","_GetLeaveReviewURLsRequest","_GetLeaveReviewURLsResponse","obj","k","_PeriodDelay","_ReviewRequestTemplate","_ScheduleReviewRequestRequestScheduleConditions","v","_ScheduleReviewRequestRequest","_ConciergeReviewResponse","_ListNetPromoterScoresRequestFilters","_GetMultiNPSRequest","_GetMultiNPSResponse","_ImportNPSRequest","_ImportNPSResponse","_LeaveNetPromoterScoreRequest","_ListNetPromoterScoresRequest","_ListNetPromoterScoresResponse","_NetPromoterScore","_NetPromoterScoreAttribute","_ResendReviewRequest","_ApproveReviewResponseRequest","_SourceAttributeScope","_BingMapsLocation","_CanRespondToReviewRequest","_CanRespondToReviewResponse","_CreateBrandReviewResponseTemplateRequest","_CreateBusinessReviewResponseTemplateRequest","_CreateDefaultReviewResponseTemplateRequest","_CreateDigitalAgentReviewResponseTemplateRequest","_CreatePartnerMarketReviewResponseTemplateRequest","_CreateReviewCommentRequest","_CreateReviewCommentResponse","_CreateReviewRequestEmailTemplateRequest","_CreateReviewRequestEmailTemplateResponse","_CreateReviewRequestSMSTemplateRequest","_CreateReviewRequestSMSTemplateResponse","_CreateReviewResponseTemplateResponse","_DeleteBrandReviewResponseTemplateRequest","_DeleteBusinessReviewResponseTemplateRequest","_DeleteDefaultReviewResponseTemplateRequest","_DeleteDigitalAgentReviewResponseTemplateRequest","_DeletePartnerMarketReviewResponseTemplateRequest","_DeleteReviewRequestTemplateRequest","_EmailTemplateData","_ForceRefreshListingRequest","_GetBusinessSourcesRequest","_GetBusinessSourcesResponse","_GetListingsRequest","_GetListingsResponse","_GetMultiThirdPartyReviewPublishSettingsRequest","_GetMultiThirdPartyReviewPublishSettingsResponse","_GetReviewRequestEmailTemplateRequest","_GetReviewRequestEmailTemplateResponse","_GetReviewRequestSMSTemplateRequest","_GetReviewRequestSMSTemplateResponse","_GetReviewResponseRequest","_GetReviewResponseResponse","_GetReviewSourceInfoRequest","_GetReviewSourceInfoResponse","_GetReviewsRequest","_GetReviewsResponse","_GetSourceDetailsRequest","_GetSourceDetailsResponse","_SourceIcon","_ListBusinessReviewResponseTemplateRequest","_ListBusinessReviewResponseTemplateResponse","_ListReviewRequestEmailTemplatesRequest","_ListReviewRequestEmailTemplatesResponse","_Listing","_ListingIdentifier","_SourceListingInteractionHTML","_LookupListingsRequest","i","_LookupListingsResponse","_LookupResponseForSource","_NAP","_PagedRequestOptions","_ProvideFeedbackToReviewResponseRequest","_RefreshBusisinessSourceRequest","_ReviewHistoryRequest","_ReviewHistoryResponse","_ReviewResponseTemplate","_ReviewSourceInfo","_SMSTemplateData","_SearchBingMapsRequest","_SearchBingMapsResponse","_ListReviewRequestEmailTemplatesRequestSearchOptions","_SendPreviewEmailRequest","_SendReviewRequestEmailRequest","_SendReviewRequestRequest","_SendReviewRequestSmsRequest","_SetDefaultReviewRequestTemplateRequest","_ListReviewRequestEmailTemplatesRequestSortOptions","_Source","_SourceDetails","_SourceSubmitListing","_SubmitListingRequest","_SubmitListingResponse","_SuggestReviewResponseRequest","_SuggestReviewResponseResponse","_UpdateBrandReviewResponseTemplateRequest","_UpdateBusinessReviewResponseTemplateRequest","_UpdateDigitalAgentReviewResponseTemplateRequest","_UpdateListingRequest","_UpdateReviewCommentRequest","_UpdateReviewCommentResponse","_UpdateReviewRequest","_UpdateReviewRequestEmailTemplateRequest","_UpdateReviewRequestSMSTemplateRequest","_UpdateReviewResponse","_UpdateReviewUserDeletedInfoRequest","__ngFactoryType__","ɵɵdefineInjectable","inject","HttpClient","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues"],"x_google_ignoreList":[0]}