diff --git a/packages/google-cloud-recaptchaenterprise/protos/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto b/packages/google-cloud-recaptchaenterprise/protos/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto index c28fbde79e3..a2dd1ba2040 100644 --- a/packages/google-cloud-recaptchaenterprise/protos/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto +++ b/packages/google-cloud-recaptchaenterprise/protos/google/cloud/recaptchaenterprise/v1/recaptchaenterprise.proto @@ -115,6 +115,31 @@ service RecaptchaEnterpriseService { }; option (google.api.method_signature) = "name"; } + + // List groups of related accounts. + rpc ListRelatedAccountGroups(ListRelatedAccountGroupsRequest) returns (ListRelatedAccountGroupsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*}/relatedaccountgroups" + }; + option (google.api.method_signature) = "parent"; + } + + // Get the memberships in a group of related accounts. + rpc ListRelatedAccountGroupMemberships(ListRelatedAccountGroupMembershipsRequest) returns (ListRelatedAccountGroupMembershipsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/relatedaccountgroups/*}/memberships" + }; + option (google.api.method_signature) = "parent"; + } + + // Search group memberships related to a given account. + rpc SearchRelatedAccountGroupMemberships(SearchRelatedAccountGroupMembershipsRequest) returns (SearchRelatedAccountGroupMembershipsResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*}/relatedaccountgroupmemberships:search" + body: "*" + }; + option (google.api.method_signature) = "parent,hashed_account_id"; + } } // The create assessment request message. @@ -205,6 +230,13 @@ message AnnotateAssessmentRequest { // Optional. Optional reasons for the annotation that will be assigned to the Event. repeated Reason reasons = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional unique stable hashed user identifier to apply to the assessment. + // This is an alternative to setting the hashed_account_id in + // CreateAssessment, for example when the account identifier is not yet known + // in the initial request. It is recommended that the identifier is hashed + // using hmac-sha256 with stable secret. + bytes hashed_account_id = 4 [(google.api.field_behavior) = OPTIONAL]; } // Empty response for AnnotateAssessment. @@ -231,6 +263,10 @@ message Assessment { // Output only. Properties of the provided event token. TokenProperties token_properties = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Assessment returned by Account Defender when a hashed_account_id is + // provided. + AccountDefenderAssessment account_defender_assessment = 6; } message Event { @@ -253,6 +289,10 @@ message Event { // provided at token generation time on client-side platforms already // integrated with recaptcha enterprise. string expected_action = 5 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Optional unique stable hashed user identifier for the request. The + // identifier should ideally be hashed using sha256 with stable secret. + bytes hashed_account_id = 6 [(google.api.field_behavior) = OPTIONAL]; } // Risk analysis result for an event. @@ -335,6 +375,34 @@ message TokenProperties { string action = 5; } +// Account Defender risk assessment. +message AccountDefenderAssessment { + // Labels returned by Account Defender for this request. + enum AccountDefenderLabel { + // Default unspecified type. + ACCOUNT_DEFENDER_LABEL_UNSPECIFIED = 0; + + // The request matches a known good profile for the user. + PROFILE_MATCH = 1; + + // The request is potentially a suspicious login event and should be further + // verified either via multi-factor authentication or another system. + SUSPICIOUS_LOGIN_ACTIVITY = 2; + + // The request matched a profile that previously had suspicious account + // creation behavior. This could mean this is a fake account. + SUSPICIOUS_ACCOUNT_CREATION = 3; + + // The account in the request has a high number of related accounts. It does + // not necessarily imply that the account is bad but could require + // investigating. + RELATED_ACCOUNTS_NUMBER_HIGH = 4; + } + + // Labels for this request. + repeated AccountDefenderLabel labels = 1; +} + // The create key request message. message CreateKeyRequest { // Required. The name of the project in which the key will be created, in the @@ -510,11 +578,11 @@ message TestingOptions { // challenge depending on risk and trust factors. TESTING_CHALLENGE_UNSPECIFIED = 0; - // Challenge requests for this key will always return a nocaptcha, which + // Challenge requests for this key always return a nocaptcha, which // does not require a solution. NOCAPTCHA = 1; - // Challenge requests for this key will always return an unsolvable + // Challenge requests for this key always return an unsolvable // challenge. UNSOLVABLE_CHALLENGE = 2; } @@ -576,9 +644,9 @@ message WebKeySettings { // Examples: 'example.com' or 'subdomain.example.com' repeated string allowed_domains = 1; - // Required. Whether this key can be used on AMP (Accelerated Mobile Pages) websites. - // This can only be set for the SCORE integration type. - bool allow_amp_traffic = 2 [(google.api.field_behavior) = REQUIRED]; + // If set to true, the key can be used on AMP (Accelerated Mobile Pages) + // websites. This is supported only for the SCORE integration type. + bool allow_amp_traffic = 2; // Required. Describes how this key is integrated with the website. IntegrationType integration_type = 4 [(google.api.field_behavior) = REQUIRED]; @@ -591,7 +659,7 @@ message WebKeySettings { // Settings specific to keys that can be used by Android apps. message AndroidKeySettings { - // If set to true, it means allowed_package_names will not be enforced. + // If set to true, allowed_package_names are not enforced. bool allow_all_package_names = 2; // Android package names of apps allowed to use the key. @@ -601,7 +669,7 @@ message AndroidKeySettings { // Settings specific to keys that can be used by iOS apps. message IOSKeySettings { - // If set to true, it means allowed_bundle_ids will not be enforced. + // If set to true, allowed_bundle_ids are not enforced. bool allow_all_bundle_ids = 2; // iOS bundle ids of apps allowed to use the key. @@ -646,3 +714,156 @@ message ChallengeMetrics { // verification. int64 passed_count = 4; } + +// The request message to list memberships in a related account group. +message ListRelatedAccountGroupMembershipsRequest { + // Required. The resource name for the related account group in the format + // `projects/{project}/relatedaccountgroups/{relatedaccountgroup}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + } + ]; + + // Optional. The maximum number of accounts to return. The service may return fewer than + // this value. + // If unspecified, at most 50 accounts will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListRelatedAccountGroupMemberships` + // call. + // + // When paginating, all other parameters provided to + // `ListRelatedAccountGroupMemberships` must match the call that provided the + // page token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response to a `ListRelatedAccountGroupMemberships` call. +message ListRelatedAccountGroupMembershipsResponse { + // The memberships listed by the query. + repeated RelatedAccountGroupMembership related_account_group_memberships = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// The request message to list related account groups. +message ListRelatedAccountGroupsRequest { + // Required. The name of the project to list related account groups from, in the format + // "projects/{project}". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup" + } + ]; + + // Optional. The maximum number of groups to return. The service may return fewer than + // this value. + // If unspecified, at most 50 groups will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous `ListRelatedAccountGroups` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListRelatedAccountGroups` must match the call that provided the page + // token. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response to a `ListRelatedAccountGroups` call. +message ListRelatedAccountGroupsResponse { + // The groups of related accounts listed by the query. + repeated RelatedAccountGroup related_account_groups = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// The request message to search related account group memberships. +message SearchRelatedAccountGroupMembershipsRequest { + // Required. The name of the project to search related account group memberships from, + // in the format "projects/{project}". + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + } + ]; + + // Optional. The unique stable hashed user identifier we should search connections to. + // The identifier should correspond to a `hashed_account_id` provided in a + // previous CreateAssessment or AnnotateAssessment call. + bytes hashed_account_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The maximum number of groups to return. The service may return fewer than + // this value. + // If unspecified, at most 50 groups will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token, received from a previous + // `SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the + // subsequent page. + // + // When paginating, all other parameters provided to + // `SearchRelatedAccountGroupMemberships` must match the call that provided + // the page token. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; +} + +// The response to a `SearchRelatedAccountGroupMemberships` call. +message SearchRelatedAccountGroupMembershipsResponse { + // The queried memberships. + repeated RelatedAccountGroupMembership related_account_group_memberships = 1; + + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// A membership in a group of related accounts. +message RelatedAccountGroupMembership { + option (google.api.resource) = { + type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + pattern: "projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}" + }; + + // Required. The resource name for this membership in the format + // `projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + } + ]; + + // The unique stable hashed user identifier of the member. The identifier + // corresponds to a `hashed_account_id` provided in a previous + // CreateAssessment or AnnotateAssessment call. + bytes hashed_account_id = 2; +} + +// A group of related accounts. +message RelatedAccountGroup { + option (google.api.resource) = { + type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup" + pattern: "projects/{project}/relatedaccountgroups/{relatedaccountgroup}" + }; + + // Required. The resource name for the related account group in the format + // `projects/{project}/relatedaccountgroups/{related_account_group}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "recaptchaenterprise.googleapis.com/RelatedAccountGroup" + } + ]; +} diff --git a/packages/google-cloud-recaptchaenterprise/protos/protos.d.ts b/packages/google-cloud-recaptchaenterprise/protos/protos.d.ts index 41b0006fecd..5f2fd7b03af 100644 --- a/packages/google-cloud-recaptchaenterprise/protos/protos.d.ts +++ b/packages/google-cloud-recaptchaenterprise/protos/protos.d.ts @@ -171,6 +171,48 @@ export namespace google { * @returns Promise */ public getMetrics(request: google.cloud.recaptchaenterprise.v1.IGetMetricsRequest): Promise; + + /** + * Calls ListRelatedAccountGroups. + * @param request ListRelatedAccountGroupsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListRelatedAccountGroupsResponse + */ + public listRelatedAccountGroups(request: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, callback: google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.ListRelatedAccountGroupsCallback): void; + + /** + * Calls ListRelatedAccountGroups. + * @param request ListRelatedAccountGroupsRequest message or plain object + * @returns Promise + */ + public listRelatedAccountGroups(request: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest): Promise; + + /** + * Calls ListRelatedAccountGroupMemberships. + * @param request ListRelatedAccountGroupMembershipsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and ListRelatedAccountGroupMembershipsResponse + */ + public listRelatedAccountGroupMemberships(request: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, callback: google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.ListRelatedAccountGroupMembershipsCallback): void; + + /** + * Calls ListRelatedAccountGroupMemberships. + * @param request ListRelatedAccountGroupMembershipsRequest message or plain object + * @returns Promise + */ + public listRelatedAccountGroupMemberships(request: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest): Promise; + + /** + * Calls SearchRelatedAccountGroupMemberships. + * @param request SearchRelatedAccountGroupMembershipsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and SearchRelatedAccountGroupMembershipsResponse + */ + public searchRelatedAccountGroupMemberships(request: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, callback: google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.SearchRelatedAccountGroupMembershipsCallback): void; + + /** + * Calls SearchRelatedAccountGroupMemberships. + * @param request SearchRelatedAccountGroupMembershipsRequest message or plain object + * @returns Promise + */ + public searchRelatedAccountGroupMemberships(request: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest): Promise; } namespace RecaptchaEnterpriseService { @@ -237,6 +279,27 @@ export namespace google { * @param [response] Metrics */ type GetMetricsCallback = (error: (Error|null), response?: google.cloud.recaptchaenterprise.v1.Metrics) => void; + + /** + * Callback as used by {@link google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService#listRelatedAccountGroups}. + * @param error Error, if any + * @param [response] ListRelatedAccountGroupsResponse + */ + type ListRelatedAccountGroupsCallback = (error: (Error|null), response?: google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse) => void; + + /** + * Callback as used by {@link google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService#listRelatedAccountGroupMemberships}. + * @param error Error, if any + * @param [response] ListRelatedAccountGroupMembershipsResponse + */ + type ListRelatedAccountGroupMembershipsCallback = (error: (Error|null), response?: google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse) => void; + + /** + * Callback as used by {@link google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService#searchRelatedAccountGroupMemberships}. + * @param error Error, if any + * @param [response] SearchRelatedAccountGroupMembershipsResponse + */ + type SearchRelatedAccountGroupMembershipsCallback = (error: (Error|null), response?: google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse) => void; } /** Properties of a CreateAssessmentRequest. */ @@ -346,6 +409,9 @@ export namespace google { /** AnnotateAssessmentRequest reasons */ reasons?: (google.cloud.recaptchaenterprise.v1.AnnotateAssessmentRequest.Reason[]|null); + + /** AnnotateAssessmentRequest hashedAccountId */ + hashedAccountId?: (Uint8Array|string|null); } /** Represents an AnnotateAssessmentRequest. */ @@ -366,6 +432,9 @@ export namespace google { /** AnnotateAssessmentRequest reasons. */ public reasons: google.cloud.recaptchaenterprise.v1.AnnotateAssessmentRequest.Reason[]; + /** AnnotateAssessmentRequest hashedAccountId. */ + public hashedAccountId: (Uint8Array|string); + /** * Creates a new AnnotateAssessmentRequest instance using the specified properties. * @param [properties] Properties to set @@ -559,6 +628,9 @@ export namespace google { /** Assessment tokenProperties */ tokenProperties?: (google.cloud.recaptchaenterprise.v1.ITokenProperties|null); + + /** Assessment accountDefenderAssessment */ + accountDefenderAssessment?: (google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment|null); } /** Represents an Assessment. */ @@ -582,6 +654,9 @@ export namespace google { /** Assessment tokenProperties. */ public tokenProperties?: (google.cloud.recaptchaenterprise.v1.ITokenProperties|null); + /** Assessment accountDefenderAssessment. */ + public accountDefenderAssessment?: (google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment|null); + /** * Creates a new Assessment instance using the specified properties. * @param [properties] Properties to set @@ -670,6 +745,9 @@ export namespace google { /** Event expectedAction */ expectedAction?: (string|null); + + /** Event hashedAccountId */ + hashedAccountId?: (Uint8Array|string|null); } /** Represents an Event. */ @@ -696,6 +774,9 @@ export namespace google { /** Event expectedAction. */ public expectedAction: string; + /** Event hashedAccountId. */ + public hashedAccountId: (Uint8Array|string); + /** * Creates a new Event instance using the specified properties. * @param [properties] Properties to set @@ -1004,6 +1085,108 @@ export namespace google { } } + /** Properties of an AccountDefenderAssessment. */ + interface IAccountDefenderAssessment { + + /** AccountDefenderAssessment labels */ + labels?: (google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.AccountDefenderLabel[]|null); + } + + /** Represents an AccountDefenderAssessment. */ + class AccountDefenderAssessment implements IAccountDefenderAssessment { + + /** + * Constructs a new AccountDefenderAssessment. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment); + + /** AccountDefenderAssessment labels. */ + public labels: google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.AccountDefenderLabel[]; + + /** + * Creates a new AccountDefenderAssessment instance using the specified properties. + * @param [properties] Properties to set + * @returns AccountDefenderAssessment instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment): google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment; + + /** + * Encodes the specified AccountDefenderAssessment message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.verify|verify} messages. + * @param message AccountDefenderAssessment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified AccountDefenderAssessment message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.verify|verify} messages. + * @param message AccountDefenderAssessment message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an AccountDefenderAssessment message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns AccountDefenderAssessment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment; + + /** + * Decodes an AccountDefenderAssessment message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns AccountDefenderAssessment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment; + + /** + * Verifies an AccountDefenderAssessment message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an AccountDefenderAssessment message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns AccountDefenderAssessment + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment; + + /** + * Creates a plain object from an AccountDefenderAssessment message. Also converts values to other types if specified. + * @param message AccountDefenderAssessment + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this AccountDefenderAssessment to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + namespace AccountDefenderAssessment { + + /** AccountDefenderLabel enum. */ + enum AccountDefenderLabel { + ACCOUNT_DEFENDER_LABEL_UNSPECIFIED = 0, + PROFILE_MATCH = 1, + SUSPICIOUS_LOGIN_ACTIVITY = 2, + SUSPICIOUS_ACCOUNT_CREATION = 3, + RELATED_ACCOUNTS_NUMBER_HIGH = 4 + } + } + /** Properties of a CreateKeyRequest. */ interface ICreateKeyRequest { @@ -2721,6 +2904,792 @@ export namespace google { */ public toJSON(): { [k: string]: any }; } + + /** Properties of a ListRelatedAccountGroupMembershipsRequest. */ + interface IListRelatedAccountGroupMembershipsRequest { + + /** ListRelatedAccountGroupMembershipsRequest parent */ + parent?: (string|null); + + /** ListRelatedAccountGroupMembershipsRequest pageSize */ + pageSize?: (number|null); + + /** ListRelatedAccountGroupMembershipsRequest pageToken */ + pageToken?: (string|null); + } + + /** Represents a ListRelatedAccountGroupMembershipsRequest. */ + class ListRelatedAccountGroupMembershipsRequest implements IListRelatedAccountGroupMembershipsRequest { + + /** + * Constructs a new ListRelatedAccountGroupMembershipsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest); + + /** ListRelatedAccountGroupMembershipsRequest parent. */ + public parent: string; + + /** ListRelatedAccountGroupMembershipsRequest pageSize. */ + public pageSize: number; + + /** ListRelatedAccountGroupMembershipsRequest pageToken. */ + public pageToken: string; + + /** + * Creates a new ListRelatedAccountGroupMembershipsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListRelatedAccountGroupMembershipsRequest instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsRequest message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @param message ListRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsRequest message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @param message ListRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListRelatedAccountGroupMembershipsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest; + + /** + * Decodes a ListRelatedAccountGroupMembershipsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest; + + /** + * Verifies a ListRelatedAccountGroupMembershipsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListRelatedAccountGroupMembershipsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListRelatedAccountGroupMembershipsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest; + + /** + * Creates a plain object from a ListRelatedAccountGroupMembershipsRequest message. Also converts values to other types if specified. + * @param message ListRelatedAccountGroupMembershipsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListRelatedAccountGroupMembershipsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ListRelatedAccountGroupMembershipsResponse. */ + interface IListRelatedAccountGroupMembershipsResponse { + + /** ListRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships */ + relatedAccountGroupMemberships?: (google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[]|null); + + /** ListRelatedAccountGroupMembershipsResponse nextPageToken */ + nextPageToken?: (string|null); + } + + /** Represents a ListRelatedAccountGroupMembershipsResponse. */ + class ListRelatedAccountGroupMembershipsResponse implements IListRelatedAccountGroupMembershipsResponse { + + /** + * Constructs a new ListRelatedAccountGroupMembershipsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse); + + /** ListRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships. */ + public relatedAccountGroupMemberships: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[]; + + /** ListRelatedAccountGroupMembershipsResponse nextPageToken. */ + public nextPageToken: string; + + /** + * Creates a new ListRelatedAccountGroupMembershipsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListRelatedAccountGroupMembershipsResponse instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsResponse message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @param message ListRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsResponse message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @param message ListRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListRelatedAccountGroupMembershipsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse; + + /** + * Decodes a ListRelatedAccountGroupMembershipsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse; + + /** + * Verifies a ListRelatedAccountGroupMembershipsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListRelatedAccountGroupMembershipsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListRelatedAccountGroupMembershipsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse; + + /** + * Creates a plain object from a ListRelatedAccountGroupMembershipsResponse message. Also converts values to other types if specified. + * @param message ListRelatedAccountGroupMembershipsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListRelatedAccountGroupMembershipsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ListRelatedAccountGroupsRequest. */ + interface IListRelatedAccountGroupsRequest { + + /** ListRelatedAccountGroupsRequest parent */ + parent?: (string|null); + + /** ListRelatedAccountGroupsRequest pageSize */ + pageSize?: (number|null); + + /** ListRelatedAccountGroupsRequest pageToken */ + pageToken?: (string|null); + } + + /** Represents a ListRelatedAccountGroupsRequest. */ + class ListRelatedAccountGroupsRequest implements IListRelatedAccountGroupsRequest { + + /** + * Constructs a new ListRelatedAccountGroupsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest); + + /** ListRelatedAccountGroupsRequest parent. */ + public parent: string; + + /** ListRelatedAccountGroupsRequest pageSize. */ + public pageSize: number; + + /** ListRelatedAccountGroupsRequest pageToken. */ + public pageToken: string; + + /** + * Creates a new ListRelatedAccountGroupsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ListRelatedAccountGroupsRequest instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest; + + /** + * Encodes the specified ListRelatedAccountGroupsRequest message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest.verify|verify} messages. + * @param message ListRelatedAccountGroupsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListRelatedAccountGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest.verify|verify} messages. + * @param message ListRelatedAccountGroupsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListRelatedAccountGroupsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListRelatedAccountGroupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest; + + /** + * Decodes a ListRelatedAccountGroupsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListRelatedAccountGroupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest; + + /** + * Verifies a ListRelatedAccountGroupsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListRelatedAccountGroupsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListRelatedAccountGroupsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest; + + /** + * Creates a plain object from a ListRelatedAccountGroupsRequest message. Also converts values to other types if specified. + * @param message ListRelatedAccountGroupsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListRelatedAccountGroupsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a ListRelatedAccountGroupsResponse. */ + interface IListRelatedAccountGroupsResponse { + + /** ListRelatedAccountGroupsResponse relatedAccountGroups */ + relatedAccountGroups?: (google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[]|null); + + /** ListRelatedAccountGroupsResponse nextPageToken */ + nextPageToken?: (string|null); + } + + /** Represents a ListRelatedAccountGroupsResponse. */ + class ListRelatedAccountGroupsResponse implements IListRelatedAccountGroupsResponse { + + /** + * Constructs a new ListRelatedAccountGroupsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse); + + /** ListRelatedAccountGroupsResponse relatedAccountGroups. */ + public relatedAccountGroups: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[]; + + /** ListRelatedAccountGroupsResponse nextPageToken. */ + public nextPageToken: string; + + /** + * Creates a new ListRelatedAccountGroupsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ListRelatedAccountGroupsResponse instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse; + + /** + * Encodes the specified ListRelatedAccountGroupsResponse message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse.verify|verify} messages. + * @param message ListRelatedAccountGroupsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ListRelatedAccountGroupsResponse message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse.verify|verify} messages. + * @param message ListRelatedAccountGroupsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ListRelatedAccountGroupsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ListRelatedAccountGroupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse; + + /** + * Decodes a ListRelatedAccountGroupsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ListRelatedAccountGroupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse; + + /** + * Verifies a ListRelatedAccountGroupsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ListRelatedAccountGroupsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ListRelatedAccountGroupsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse; + + /** + * Creates a plain object from a ListRelatedAccountGroupsResponse message. Also converts values to other types if specified. + * @param message ListRelatedAccountGroupsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ListRelatedAccountGroupsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SearchRelatedAccountGroupMembershipsRequest. */ + interface ISearchRelatedAccountGroupMembershipsRequest { + + /** SearchRelatedAccountGroupMembershipsRequest parent */ + parent?: (string|null); + + /** SearchRelatedAccountGroupMembershipsRequest hashedAccountId */ + hashedAccountId?: (Uint8Array|string|null); + + /** SearchRelatedAccountGroupMembershipsRequest pageSize */ + pageSize?: (number|null); + + /** SearchRelatedAccountGroupMembershipsRequest pageToken */ + pageToken?: (string|null); + } + + /** Represents a SearchRelatedAccountGroupMembershipsRequest. */ + class SearchRelatedAccountGroupMembershipsRequest implements ISearchRelatedAccountGroupMembershipsRequest { + + /** + * Constructs a new SearchRelatedAccountGroupMembershipsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest); + + /** SearchRelatedAccountGroupMembershipsRequest parent. */ + public parent: string; + + /** SearchRelatedAccountGroupMembershipsRequest hashedAccountId. */ + public hashedAccountId: (Uint8Array|string); + + /** SearchRelatedAccountGroupMembershipsRequest pageSize. */ + public pageSize: number; + + /** SearchRelatedAccountGroupMembershipsRequest pageToken. */ + public pageToken: string; + + /** + * Creates a new SearchRelatedAccountGroupMembershipsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns SearchRelatedAccountGroupMembershipsRequest instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsRequest message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @param message SearchRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsRequest message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @param message SearchRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SearchRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SearchRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest; + + /** + * Verifies a SearchRelatedAccountGroupMembershipsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SearchRelatedAccountGroupMembershipsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SearchRelatedAccountGroupMembershipsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest; + + /** + * Creates a plain object from a SearchRelatedAccountGroupMembershipsRequest message. Also converts values to other types if specified. + * @param message SearchRelatedAccountGroupMembershipsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SearchRelatedAccountGroupMembershipsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a SearchRelatedAccountGroupMembershipsResponse. */ + interface ISearchRelatedAccountGroupMembershipsResponse { + + /** SearchRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships */ + relatedAccountGroupMemberships?: (google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[]|null); + + /** SearchRelatedAccountGroupMembershipsResponse nextPageToken */ + nextPageToken?: (string|null); + } + + /** Represents a SearchRelatedAccountGroupMembershipsResponse. */ + class SearchRelatedAccountGroupMembershipsResponse implements ISearchRelatedAccountGroupMembershipsResponse { + + /** + * Constructs a new SearchRelatedAccountGroupMembershipsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse); + + /** SearchRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships. */ + public relatedAccountGroupMemberships: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[]; + + /** SearchRelatedAccountGroupMembershipsResponse nextPageToken. */ + public nextPageToken: string; + + /** + * Creates a new SearchRelatedAccountGroupMembershipsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns SearchRelatedAccountGroupMembershipsResponse instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsResponse message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @param message SearchRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsResponse message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @param message SearchRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns SearchRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns SearchRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse; + + /** + * Verifies a SearchRelatedAccountGroupMembershipsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a SearchRelatedAccountGroupMembershipsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns SearchRelatedAccountGroupMembershipsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse; + + /** + * Creates a plain object from a SearchRelatedAccountGroupMembershipsResponse message. Also converts values to other types if specified. + * @param message SearchRelatedAccountGroupMembershipsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this SearchRelatedAccountGroupMembershipsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a RelatedAccountGroupMembership. */ + interface IRelatedAccountGroupMembership { + + /** RelatedAccountGroupMembership name */ + name?: (string|null); + + /** RelatedAccountGroupMembership hashedAccountId */ + hashedAccountId?: (Uint8Array|string|null); + } + + /** Represents a RelatedAccountGroupMembership. */ + class RelatedAccountGroupMembership implements IRelatedAccountGroupMembership { + + /** + * Constructs a new RelatedAccountGroupMembership. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership); + + /** RelatedAccountGroupMembership name. */ + public name: string; + + /** RelatedAccountGroupMembership hashedAccountId. */ + public hashedAccountId: (Uint8Array|string); + + /** + * Creates a new RelatedAccountGroupMembership instance using the specified properties. + * @param [properties] Properties to set + * @returns RelatedAccountGroupMembership instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership): google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership; + + /** + * Encodes the specified RelatedAccountGroupMembership message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.verify|verify} messages. + * @param message RelatedAccountGroupMembership message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RelatedAccountGroupMembership message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.verify|verify} messages. + * @param message RelatedAccountGroupMembership message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RelatedAccountGroupMembership message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RelatedAccountGroupMembership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership; + + /** + * Decodes a RelatedAccountGroupMembership message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RelatedAccountGroupMembership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership; + + /** + * Verifies a RelatedAccountGroupMembership message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RelatedAccountGroupMembership message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RelatedAccountGroupMembership + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership; + + /** + * Creates a plain object from a RelatedAccountGroupMembership message. Also converts values to other types if specified. + * @param message RelatedAccountGroupMembership + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RelatedAccountGroupMembership to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } + + /** Properties of a RelatedAccountGroup. */ + interface IRelatedAccountGroup { + + /** RelatedAccountGroup name */ + name?: (string|null); + } + + /** Represents a RelatedAccountGroup. */ + class RelatedAccountGroup implements IRelatedAccountGroup { + + /** + * Constructs a new RelatedAccountGroup. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup); + + /** RelatedAccountGroup name. */ + public name: string; + + /** + * Creates a new RelatedAccountGroup instance using the specified properties. + * @param [properties] Properties to set + * @returns RelatedAccountGroup instance + */ + public static create(properties?: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup): google.cloud.recaptchaenterprise.v1.RelatedAccountGroup; + + /** + * Encodes the specified RelatedAccountGroup message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.verify|verify} messages. + * @param message RelatedAccountGroup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified RelatedAccountGroup message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.verify|verify} messages. + * @param message RelatedAccountGroup message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a RelatedAccountGroup message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns RelatedAccountGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.recaptchaenterprise.v1.RelatedAccountGroup; + + /** + * Decodes a RelatedAccountGroup message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns RelatedAccountGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.recaptchaenterprise.v1.RelatedAccountGroup; + + /** + * Verifies a RelatedAccountGroup message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a RelatedAccountGroup message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns RelatedAccountGroup + */ + public static fromObject(object: { [k: string]: any }): google.cloud.recaptchaenterprise.v1.RelatedAccountGroup; + + /** + * Creates a plain object from a RelatedAccountGroup message. Also converts values to other types if specified. + * @param message RelatedAccountGroup + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.recaptchaenterprise.v1.RelatedAccountGroup, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this RelatedAccountGroup to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + } } /** Namespace v1beta1. */ diff --git a/packages/google-cloud-recaptchaenterprise/protos/protos.js b/packages/google-cloud-recaptchaenterprise/protos/protos.js index 17c66f5c58c..b415fed0ab7 100644 --- a/packages/google-cloud-recaptchaenterprise/protos/protos.js +++ b/packages/google-cloud-recaptchaenterprise/protos/protos.js @@ -395,6 +395,105 @@ * @variation 2 */ + /** + * Callback as used by {@link google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService#listRelatedAccountGroups}. + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @typedef ListRelatedAccountGroupsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse} [response] ListRelatedAccountGroupsResponse + */ + + /** + * Calls ListRelatedAccountGroups. + * @function listRelatedAccountGroups + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @instance + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest} request ListRelatedAccountGroupsRequest message or plain object + * @param {google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.ListRelatedAccountGroupsCallback} callback Node-style callback called with the error, if any, and ListRelatedAccountGroupsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(RecaptchaEnterpriseService.prototype.listRelatedAccountGroups = function listRelatedAccountGroups(request, callback) { + return this.rpcCall(listRelatedAccountGroups, $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest, $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse, request, callback); + }, "name", { value: "ListRelatedAccountGroups" }); + + /** + * Calls ListRelatedAccountGroups. + * @function listRelatedAccountGroups + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @instance + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest} request ListRelatedAccountGroupsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService#listRelatedAccountGroupMemberships}. + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @typedef ListRelatedAccountGroupMembershipsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse} [response] ListRelatedAccountGroupMembershipsResponse + */ + + /** + * Calls ListRelatedAccountGroupMemberships. + * @function listRelatedAccountGroupMemberships + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @instance + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest} request ListRelatedAccountGroupMembershipsRequest message or plain object + * @param {google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.ListRelatedAccountGroupMembershipsCallback} callback Node-style callback called with the error, if any, and ListRelatedAccountGroupMembershipsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(RecaptchaEnterpriseService.prototype.listRelatedAccountGroupMemberships = function listRelatedAccountGroupMemberships(request, callback) { + return this.rpcCall(listRelatedAccountGroupMemberships, $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest, $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse, request, callback); + }, "name", { value: "ListRelatedAccountGroupMemberships" }); + + /** + * Calls ListRelatedAccountGroupMemberships. + * @function listRelatedAccountGroupMemberships + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @instance + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest} request ListRelatedAccountGroupMembershipsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + + /** + * Callback as used by {@link google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService#searchRelatedAccountGroupMemberships}. + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @typedef SearchRelatedAccountGroupMembershipsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse} [response] SearchRelatedAccountGroupMembershipsResponse + */ + + /** + * Calls SearchRelatedAccountGroupMemberships. + * @function searchRelatedAccountGroupMemberships + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @instance + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest} request SearchRelatedAccountGroupMembershipsRequest message or plain object + * @param {google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService.SearchRelatedAccountGroupMembershipsCallback} callback Node-style callback called with the error, if any, and SearchRelatedAccountGroupMembershipsResponse + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(RecaptchaEnterpriseService.prototype.searchRelatedAccountGroupMemberships = function searchRelatedAccountGroupMemberships(request, callback) { + return this.rpcCall(searchRelatedAccountGroupMemberships, $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest, $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse, request, callback); + }, "name", { value: "SearchRelatedAccountGroupMemberships" }); + + /** + * Calls SearchRelatedAccountGroupMemberships. + * @function searchRelatedAccountGroupMemberships + * @memberof google.cloud.recaptchaenterprise.v1.RecaptchaEnterpriseService + * @instance + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest} request SearchRelatedAccountGroupMembershipsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return RecaptchaEnterpriseService; })(); @@ -622,6 +721,7 @@ * @property {string|null} [name] AnnotateAssessmentRequest name * @property {google.cloud.recaptchaenterprise.v1.AnnotateAssessmentRequest.Annotation|null} [annotation] AnnotateAssessmentRequest annotation * @property {Array.|null} [reasons] AnnotateAssessmentRequest reasons + * @property {Uint8Array|null} [hashedAccountId] AnnotateAssessmentRequest hashedAccountId */ /** @@ -664,6 +764,14 @@ */ AnnotateAssessmentRequest.prototype.reasons = $util.emptyArray; + /** + * AnnotateAssessmentRequest hashedAccountId. + * @member {Uint8Array} hashedAccountId + * @memberof google.cloud.recaptchaenterprise.v1.AnnotateAssessmentRequest + * @instance + */ + AnnotateAssessmentRequest.prototype.hashedAccountId = $util.newBuffer([]); + /** * Creates a new AnnotateAssessmentRequest instance using the specified properties. * @function create @@ -698,6 +806,8 @@ writer.int32(message.reasons[i]); writer.ldelim(); } + if (message.hashedAccountId != null && Object.hasOwnProperty.call(message, "hashedAccountId")) + writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.hashedAccountId); return writer; }; @@ -748,6 +858,9 @@ } else message.reasons.push(reader.int32()); break; + case 4: + message.hashedAccountId = reader.bytes(); + break; default: reader.skipType(tag & 7); break; @@ -815,6 +928,9 @@ break; } } + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + if (!(message.hashedAccountId && typeof message.hashedAccountId.length === "number" || $util.isString(message.hashedAccountId))) + return "hashedAccountId: buffer expected"; return null; }; @@ -895,6 +1011,11 @@ break; } } + if (object.hashedAccountId != null) + if (typeof object.hashedAccountId === "string") + $util.base64.decode(object.hashedAccountId, message.hashedAccountId = $util.newBuffer($util.base64.length(object.hashedAccountId)), 0); + else if (object.hashedAccountId.length) + message.hashedAccountId = object.hashedAccountId; return message; }; @@ -916,6 +1037,13 @@ if (options.defaults) { object.name = ""; object.annotation = options.enums === String ? "ANNOTATION_UNSPECIFIED" : 0; + if (options.bytes === String) + object.hashedAccountId = ""; + else { + object.hashedAccountId = []; + if (options.bytes !== Array) + object.hashedAccountId = $util.newBuffer(object.hashedAccountId); + } } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -926,6 +1054,8 @@ for (var j = 0; j < message.reasons.length; ++j) object.reasons[j] = options.enums === String ? $root.google.cloud.recaptchaenterprise.v1.AnnotateAssessmentRequest.Reason[message.reasons[j]] : message.reasons[j]; } + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + object.hashedAccountId = options.bytes === String ? $util.base64.encode(message.hashedAccountId, 0, message.hashedAccountId.length) : options.bytes === Array ? Array.prototype.slice.call(message.hashedAccountId) : message.hashedAccountId; return object; }; @@ -1159,6 +1289,7 @@ * @property {google.cloud.recaptchaenterprise.v1.IEvent|null} [event] Assessment event * @property {google.cloud.recaptchaenterprise.v1.IRiskAnalysis|null} [riskAnalysis] Assessment riskAnalysis * @property {google.cloud.recaptchaenterprise.v1.ITokenProperties|null} [tokenProperties] Assessment tokenProperties + * @property {google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment|null} [accountDefenderAssessment] Assessment accountDefenderAssessment */ /** @@ -1208,6 +1339,14 @@ */ Assessment.prototype.tokenProperties = null; + /** + * Assessment accountDefenderAssessment. + * @member {google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment|null|undefined} accountDefenderAssessment + * @memberof google.cloud.recaptchaenterprise.v1.Assessment + * @instance + */ + Assessment.prototype.accountDefenderAssessment = null; + /** * Creates a new Assessment instance using the specified properties. * @function create @@ -1240,6 +1379,8 @@ $root.google.cloud.recaptchaenterprise.v1.RiskAnalysis.encode(message.riskAnalysis, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.tokenProperties != null && Object.hasOwnProperty.call(message, "tokenProperties")) $root.google.cloud.recaptchaenterprise.v1.TokenProperties.encode(message.tokenProperties, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.accountDefenderAssessment != null && Object.hasOwnProperty.call(message, "accountDefenderAssessment")) + $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.encode(message.accountDefenderAssessment, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); return writer; }; @@ -1286,6 +1427,9 @@ case 4: message.tokenProperties = $root.google.cloud.recaptchaenterprise.v1.TokenProperties.decode(reader, reader.uint32()); break; + case 6: + message.accountDefenderAssessment = $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.decode(reader, reader.uint32()); + break; default: reader.skipType(tag & 7); break; @@ -1339,6 +1483,11 @@ if (error) return "tokenProperties." + error; } + if (message.accountDefenderAssessment != null && message.hasOwnProperty("accountDefenderAssessment")) { + var error = $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.verify(message.accountDefenderAssessment); + if (error) + return "accountDefenderAssessment." + error; + } return null; }; @@ -1371,6 +1520,11 @@ throw TypeError(".google.cloud.recaptchaenterprise.v1.Assessment.tokenProperties: object expected"); message.tokenProperties = $root.google.cloud.recaptchaenterprise.v1.TokenProperties.fromObject(object.tokenProperties); } + if (object.accountDefenderAssessment != null) { + if (typeof object.accountDefenderAssessment !== "object") + throw TypeError(".google.cloud.recaptchaenterprise.v1.Assessment.accountDefenderAssessment: object expected"); + message.accountDefenderAssessment = $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.fromObject(object.accountDefenderAssessment); + } return message; }; @@ -1392,6 +1546,7 @@ object.event = null; object.riskAnalysis = null; object.tokenProperties = null; + object.accountDefenderAssessment = null; } if (message.name != null && message.hasOwnProperty("name")) object.name = message.name; @@ -1401,6 +1556,8 @@ object.riskAnalysis = $root.google.cloud.recaptchaenterprise.v1.RiskAnalysis.toObject(message.riskAnalysis, options); if (message.tokenProperties != null && message.hasOwnProperty("tokenProperties")) object.tokenProperties = $root.google.cloud.recaptchaenterprise.v1.TokenProperties.toObject(message.tokenProperties, options); + if (message.accountDefenderAssessment != null && message.hasOwnProperty("accountDefenderAssessment")) + object.accountDefenderAssessment = $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.toObject(message.accountDefenderAssessment, options); return object; }; @@ -1429,6 +1586,7 @@ * @property {string|null} [userAgent] Event userAgent * @property {string|null} [userIpAddress] Event userIpAddress * @property {string|null} [expectedAction] Event expectedAction + * @property {Uint8Array|null} [hashedAccountId] Event hashedAccountId */ /** @@ -1486,6 +1644,14 @@ */ Event.prototype.expectedAction = ""; + /** + * Event hashedAccountId. + * @member {Uint8Array} hashedAccountId + * @memberof google.cloud.recaptchaenterprise.v1.Event + * @instance + */ + Event.prototype.hashedAccountId = $util.newBuffer([]); + /** * Creates a new Event instance using the specified properties. * @function create @@ -1520,6 +1686,8 @@ writer.uint32(/* id 4, wireType 2 =*/34).string(message.userIpAddress); if (message.expectedAction != null && Object.hasOwnProperty.call(message, "expectedAction")) writer.uint32(/* id 5, wireType 2 =*/42).string(message.expectedAction); + if (message.hashedAccountId != null && Object.hasOwnProperty.call(message, "hashedAccountId")) + writer.uint32(/* id 6, wireType 2 =*/50).bytes(message.hashedAccountId); return writer; }; @@ -1569,6 +1737,9 @@ case 5: message.expectedAction = reader.string(); break; + case 6: + message.hashedAccountId = reader.bytes(); + break; default: reader.skipType(tag & 7); break; @@ -1619,6 +1790,9 @@ if (message.expectedAction != null && message.hasOwnProperty("expectedAction")) if (!$util.isString(message.expectedAction)) return "expectedAction: string expected"; + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + if (!(message.hashedAccountId && typeof message.hashedAccountId.length === "number" || $util.isString(message.hashedAccountId))) + return "hashedAccountId: buffer expected"; return null; }; @@ -1644,6 +1818,11 @@ message.userIpAddress = String(object.userIpAddress); if (object.expectedAction != null) message.expectedAction = String(object.expectedAction); + if (object.hashedAccountId != null) + if (typeof object.hashedAccountId === "string") + $util.base64.decode(object.hashedAccountId, message.hashedAccountId = $util.newBuffer($util.base64.length(object.hashedAccountId)), 0); + else if (object.hashedAccountId.length) + message.hashedAccountId = object.hashedAccountId; return message; }; @@ -1666,6 +1845,13 @@ object.userAgent = ""; object.userIpAddress = ""; object.expectedAction = ""; + if (options.bytes === String) + object.hashedAccountId = ""; + else { + object.hashedAccountId = []; + if (options.bytes !== Array) + object.hashedAccountId = $util.newBuffer(object.hashedAccountId); + } } if (message.token != null && message.hasOwnProperty("token")) object.token = message.token; @@ -1677,6 +1863,8 @@ object.userIpAddress = message.userIpAddress; if (message.expectedAction != null && message.hasOwnProperty("expectedAction")) object.expectedAction = message.expectedAction; + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + object.hashedAccountId = options.bytes === String ? $util.base64.encode(message.hashedAccountId, 0, message.hashedAccountId.length) : options.bytes === Array ? Array.prototype.slice.call(message.hashedAccountId) : message.hashedAccountId; return object; }; @@ -2328,6 +2516,267 @@ return TokenProperties; })(); + v1.AccountDefenderAssessment = (function() { + + /** + * Properties of an AccountDefenderAssessment. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IAccountDefenderAssessment + * @property {Array.|null} [labels] AccountDefenderAssessment labels + */ + + /** + * Constructs a new AccountDefenderAssessment. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents an AccountDefenderAssessment. + * @implements IAccountDefenderAssessment + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment=} [properties] Properties to set + */ + function AccountDefenderAssessment(properties) { + this.labels = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * AccountDefenderAssessment labels. + * @member {Array.} labels + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @instance + */ + AccountDefenderAssessment.prototype.labels = $util.emptyArray; + + /** + * Creates a new AccountDefenderAssessment instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment} AccountDefenderAssessment instance + */ + AccountDefenderAssessment.create = function create(properties) { + return new AccountDefenderAssessment(properties); + }; + + /** + * Encodes the specified AccountDefenderAssessment message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment} message AccountDefenderAssessment message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AccountDefenderAssessment.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.labels != null && message.labels.length) { + writer.uint32(/* id 1, wireType 2 =*/10).fork(); + for (var i = 0; i < message.labels.length; ++i) + writer.int32(message.labels[i]); + writer.ldelim(); + } + return writer; + }; + + /** + * Encodes the specified AccountDefenderAssessment message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {google.cloud.recaptchaenterprise.v1.IAccountDefenderAssessment} message AccountDefenderAssessment message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + AccountDefenderAssessment.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an AccountDefenderAssessment message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment} AccountDefenderAssessment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AccountDefenderAssessment.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.labels && message.labels.length)) + message.labels = []; + if ((tag & 7) === 2) { + var end2 = reader.uint32() + reader.pos; + while (reader.pos < end2) + message.labels.push(reader.int32()); + } else + message.labels.push(reader.int32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an AccountDefenderAssessment message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment} AccountDefenderAssessment + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + AccountDefenderAssessment.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an AccountDefenderAssessment message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + AccountDefenderAssessment.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.labels != null && message.hasOwnProperty("labels")) { + if (!Array.isArray(message.labels)) + return "labels: array expected"; + for (var i = 0; i < message.labels.length; ++i) + switch (message.labels[i]) { + default: + return "labels: enum value[] expected"; + case 0: + case 1: + case 2: + case 3: + case 4: + break; + } + } + return null; + }; + + /** + * Creates an AccountDefenderAssessment message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment} AccountDefenderAssessment + */ + AccountDefenderAssessment.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment(); + if (object.labels) { + if (!Array.isArray(object.labels)) + throw TypeError(".google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.labels: array expected"); + message.labels = []; + for (var i = 0; i < object.labels.length; ++i) + switch (object.labels[i]) { + default: + case "ACCOUNT_DEFENDER_LABEL_UNSPECIFIED": + case 0: + message.labels[i] = 0; + break; + case "PROFILE_MATCH": + case 1: + message.labels[i] = 1; + break; + case "SUSPICIOUS_LOGIN_ACTIVITY": + case 2: + message.labels[i] = 2; + break; + case "SUSPICIOUS_ACCOUNT_CREATION": + case 3: + message.labels[i] = 3; + break; + case "RELATED_ACCOUNTS_NUMBER_HIGH": + case 4: + message.labels[i] = 4; + break; + } + } + return message; + }; + + /** + * Creates a plain object from an AccountDefenderAssessment message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @static + * @param {google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment} message AccountDefenderAssessment + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + AccountDefenderAssessment.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.labels = []; + if (message.labels && message.labels.length) { + object.labels = []; + for (var j = 0; j < message.labels.length; ++j) + object.labels[j] = options.enums === String ? $root.google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.AccountDefenderLabel[message.labels[j]] : message.labels[j]; + } + return object; + }; + + /** + * Converts this AccountDefenderAssessment to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment + * @instance + * @returns {Object.} JSON object + */ + AccountDefenderAssessment.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * AccountDefenderLabel enum. + * @name google.cloud.recaptchaenterprise.v1.AccountDefenderAssessment.AccountDefenderLabel + * @enum {number} + * @property {number} ACCOUNT_DEFENDER_LABEL_UNSPECIFIED=0 ACCOUNT_DEFENDER_LABEL_UNSPECIFIED value + * @property {number} PROFILE_MATCH=1 PROFILE_MATCH value + * @property {number} SUSPICIOUS_LOGIN_ACTIVITY=2 SUSPICIOUS_LOGIN_ACTIVITY value + * @property {number} SUSPICIOUS_ACCOUNT_CREATION=3 SUSPICIOUS_ACCOUNT_CREATION value + * @property {number} RELATED_ACCOUNTS_NUMBER_HIGH=4 RELATED_ACCOUNTS_NUMBER_HIGH value + */ + AccountDefenderAssessment.AccountDefenderLabel = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "ACCOUNT_DEFENDER_LABEL_UNSPECIFIED"] = 0; + values[valuesById[1] = "PROFILE_MATCH"] = 1; + values[valuesById[2] = "SUSPICIOUS_LOGIN_ACTIVITY"] = 2; + values[valuesById[3] = "SUSPICIOUS_ACCOUNT_CREATION"] = 3; + values[valuesById[4] = "RELATED_ACCOUNTS_NUMBER_HIGH"] = 4; + return values; + })(); + + return AccountDefenderAssessment; + })(); + v1.CreateKeyRequest = (function() { /** @@ -6587,6 +7036,1832 @@ return ChallengeMetrics; })(); + v1.ListRelatedAccountGroupMembershipsRequest = (function() { + + /** + * Properties of a ListRelatedAccountGroupMembershipsRequest. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IListRelatedAccountGroupMembershipsRequest + * @property {string|null} [parent] ListRelatedAccountGroupMembershipsRequest parent + * @property {number|null} [pageSize] ListRelatedAccountGroupMembershipsRequest pageSize + * @property {string|null} [pageToken] ListRelatedAccountGroupMembershipsRequest pageToken + */ + + /** + * Constructs a new ListRelatedAccountGroupMembershipsRequest. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a ListRelatedAccountGroupMembershipsRequest. + * @implements IListRelatedAccountGroupMembershipsRequest + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest=} [properties] Properties to set + */ + function ListRelatedAccountGroupMembershipsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListRelatedAccountGroupMembershipsRequest parent. + * @member {string} parent + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @instance + */ + ListRelatedAccountGroupMembershipsRequest.prototype.parent = ""; + + /** + * ListRelatedAccountGroupMembershipsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @instance + */ + ListRelatedAccountGroupMembershipsRequest.prototype.pageSize = 0; + + /** + * ListRelatedAccountGroupMembershipsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @instance + */ + ListRelatedAccountGroupMembershipsRequest.prototype.pageToken = ""; + + /** + * Creates a new ListRelatedAccountGroupMembershipsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest} ListRelatedAccountGroupMembershipsRequest instance + */ + ListRelatedAccountGroupMembershipsRequest.create = function create(properties) { + return new ListRelatedAccountGroupMembershipsRequest(properties); + }; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsRequest message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest} message ListRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupMembershipsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + return writer; + }; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsRequest message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest} message ListRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupMembershipsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListRelatedAccountGroupMembershipsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest} ListRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupMembershipsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.parent = reader.string(); + break; + case 2: + message.pageSize = reader.int32(); + break; + case 3: + message.pageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListRelatedAccountGroupMembershipsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest} ListRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupMembershipsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListRelatedAccountGroupMembershipsRequest message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListRelatedAccountGroupMembershipsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; + + /** + * Creates a ListRelatedAccountGroupMembershipsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest} ListRelatedAccountGroupMembershipsRequest + */ + ListRelatedAccountGroupMembershipsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; + + /** + * Creates a plain object from a ListRelatedAccountGroupMembershipsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest} message ListRelatedAccountGroupMembershipsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListRelatedAccountGroupMembershipsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; + + /** + * Converts this ListRelatedAccountGroupMembershipsRequest to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest + * @instance + * @returns {Object.} JSON object + */ + ListRelatedAccountGroupMembershipsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListRelatedAccountGroupMembershipsRequest; + })(); + + v1.ListRelatedAccountGroupMembershipsResponse = (function() { + + /** + * Properties of a ListRelatedAccountGroupMembershipsResponse. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IListRelatedAccountGroupMembershipsResponse + * @property {Array.|null} [relatedAccountGroupMemberships] ListRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships + * @property {string|null} [nextPageToken] ListRelatedAccountGroupMembershipsResponse nextPageToken + */ + + /** + * Constructs a new ListRelatedAccountGroupMembershipsResponse. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a ListRelatedAccountGroupMembershipsResponse. + * @implements IListRelatedAccountGroupMembershipsResponse + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse=} [properties] Properties to set + */ + function ListRelatedAccountGroupMembershipsResponse(properties) { + this.relatedAccountGroupMemberships = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships. + * @member {Array.} relatedAccountGroupMemberships + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @instance + */ + ListRelatedAccountGroupMembershipsResponse.prototype.relatedAccountGroupMemberships = $util.emptyArray; + + /** + * ListRelatedAccountGroupMembershipsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @instance + */ + ListRelatedAccountGroupMembershipsResponse.prototype.nextPageToken = ""; + + /** + * Creates a new ListRelatedAccountGroupMembershipsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse} ListRelatedAccountGroupMembershipsResponse instance + */ + ListRelatedAccountGroupMembershipsResponse.create = function create(properties) { + return new ListRelatedAccountGroupMembershipsResponse(properties); + }; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsResponse message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse} message ListRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupMembershipsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.relatedAccountGroupMemberships != null && message.relatedAccountGroupMemberships.length) + for (var i = 0; i < message.relatedAccountGroupMemberships.length; ++i) + $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.encode(message.relatedAccountGroupMemberships[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + return writer; + }; + + /** + * Encodes the specified ListRelatedAccountGroupMembershipsResponse message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse} message ListRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupMembershipsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListRelatedAccountGroupMembershipsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse} ListRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupMembershipsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.relatedAccountGroupMemberships && message.relatedAccountGroupMemberships.length)) + message.relatedAccountGroupMemberships = []; + message.relatedAccountGroupMemberships.push($root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.decode(reader, reader.uint32())); + break; + case 2: + message.nextPageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListRelatedAccountGroupMembershipsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse} ListRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupMembershipsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListRelatedAccountGroupMembershipsResponse message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListRelatedAccountGroupMembershipsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.relatedAccountGroupMemberships != null && message.hasOwnProperty("relatedAccountGroupMemberships")) { + if (!Array.isArray(message.relatedAccountGroupMemberships)) + return "relatedAccountGroupMemberships: array expected"; + for (var i = 0; i < message.relatedAccountGroupMemberships.length; ++i) { + var error = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.verify(message.relatedAccountGroupMemberships[i]); + if (error) + return "relatedAccountGroupMemberships." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + return null; + }; + + /** + * Creates a ListRelatedAccountGroupMembershipsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse} ListRelatedAccountGroupMembershipsResponse + */ + ListRelatedAccountGroupMembershipsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse(); + if (object.relatedAccountGroupMemberships) { + if (!Array.isArray(object.relatedAccountGroupMemberships)) + throw TypeError(".google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse.relatedAccountGroupMemberships: array expected"); + message.relatedAccountGroupMemberships = []; + for (var i = 0; i < object.relatedAccountGroupMemberships.length; ++i) { + if (typeof object.relatedAccountGroupMemberships[i] !== "object") + throw TypeError(".google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse.relatedAccountGroupMemberships: object expected"); + message.relatedAccountGroupMemberships[i] = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.fromObject(object.relatedAccountGroupMemberships[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + return message; + }; + + /** + * Creates a plain object from a ListRelatedAccountGroupMembershipsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse} message ListRelatedAccountGroupMembershipsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListRelatedAccountGroupMembershipsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.relatedAccountGroupMemberships = []; + if (options.defaults) + object.nextPageToken = ""; + if (message.relatedAccountGroupMemberships && message.relatedAccountGroupMemberships.length) { + object.relatedAccountGroupMemberships = []; + for (var j = 0; j < message.relatedAccountGroupMemberships.length; ++j) + object.relatedAccountGroupMemberships[j] = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.toObject(message.relatedAccountGroupMemberships[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + return object; + }; + + /** + * Converts this ListRelatedAccountGroupMembershipsResponse to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsResponse + * @instance + * @returns {Object.} JSON object + */ + ListRelatedAccountGroupMembershipsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListRelatedAccountGroupMembershipsResponse; + })(); + + v1.ListRelatedAccountGroupsRequest = (function() { + + /** + * Properties of a ListRelatedAccountGroupsRequest. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IListRelatedAccountGroupsRequest + * @property {string|null} [parent] ListRelatedAccountGroupsRequest parent + * @property {number|null} [pageSize] ListRelatedAccountGroupsRequest pageSize + * @property {string|null} [pageToken] ListRelatedAccountGroupsRequest pageToken + */ + + /** + * Constructs a new ListRelatedAccountGroupsRequest. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a ListRelatedAccountGroupsRequest. + * @implements IListRelatedAccountGroupsRequest + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest=} [properties] Properties to set + */ + function ListRelatedAccountGroupsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListRelatedAccountGroupsRequest parent. + * @member {string} parent + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @instance + */ + ListRelatedAccountGroupsRequest.prototype.parent = ""; + + /** + * ListRelatedAccountGroupsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @instance + */ + ListRelatedAccountGroupsRequest.prototype.pageSize = 0; + + /** + * ListRelatedAccountGroupsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @instance + */ + ListRelatedAccountGroupsRequest.prototype.pageToken = ""; + + /** + * Creates a new ListRelatedAccountGroupsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest} ListRelatedAccountGroupsRequest instance + */ + ListRelatedAccountGroupsRequest.create = function create(properties) { + return new ListRelatedAccountGroupsRequest(properties); + }; + + /** + * Encodes the specified ListRelatedAccountGroupsRequest message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest} message ListRelatedAccountGroupsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.pageToken); + return writer; + }; + + /** + * Encodes the specified ListRelatedAccountGroupsRequest message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest} message ListRelatedAccountGroupsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListRelatedAccountGroupsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest} ListRelatedAccountGroupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.parent = reader.string(); + break; + case 2: + message.pageSize = reader.int32(); + break; + case 3: + message.pageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListRelatedAccountGroupsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest} ListRelatedAccountGroupsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListRelatedAccountGroupsRequest message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListRelatedAccountGroupsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; + + /** + * Creates a ListRelatedAccountGroupsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest} ListRelatedAccountGroupsRequest + */ + ListRelatedAccountGroupsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; + + /** + * Creates a plain object from a ListRelatedAccountGroupsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest} message ListRelatedAccountGroupsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListRelatedAccountGroupsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; + + /** + * Converts this ListRelatedAccountGroupsRequest to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest + * @instance + * @returns {Object.} JSON object + */ + ListRelatedAccountGroupsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListRelatedAccountGroupsRequest; + })(); + + v1.ListRelatedAccountGroupsResponse = (function() { + + /** + * Properties of a ListRelatedAccountGroupsResponse. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IListRelatedAccountGroupsResponse + * @property {Array.|null} [relatedAccountGroups] ListRelatedAccountGroupsResponse relatedAccountGroups + * @property {string|null} [nextPageToken] ListRelatedAccountGroupsResponse nextPageToken + */ + + /** + * Constructs a new ListRelatedAccountGroupsResponse. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a ListRelatedAccountGroupsResponse. + * @implements IListRelatedAccountGroupsResponse + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse=} [properties] Properties to set + */ + function ListRelatedAccountGroupsResponse(properties) { + this.relatedAccountGroups = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ListRelatedAccountGroupsResponse relatedAccountGroups. + * @member {Array.} relatedAccountGroups + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @instance + */ + ListRelatedAccountGroupsResponse.prototype.relatedAccountGroups = $util.emptyArray; + + /** + * ListRelatedAccountGroupsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @instance + */ + ListRelatedAccountGroupsResponse.prototype.nextPageToken = ""; + + /** + * Creates a new ListRelatedAccountGroupsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse} ListRelatedAccountGroupsResponse instance + */ + ListRelatedAccountGroupsResponse.create = function create(properties) { + return new ListRelatedAccountGroupsResponse(properties); + }; + + /** + * Encodes the specified ListRelatedAccountGroupsResponse message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse} message ListRelatedAccountGroupsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.relatedAccountGroups != null && message.relatedAccountGroups.length) + for (var i = 0; i < message.relatedAccountGroups.length; ++i) + $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.encode(message.relatedAccountGroups[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + return writer; + }; + + /** + * Encodes the specified ListRelatedAccountGroupsResponse message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse} message ListRelatedAccountGroupsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ListRelatedAccountGroupsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ListRelatedAccountGroupsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse} ListRelatedAccountGroupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.relatedAccountGroups && message.relatedAccountGroups.length)) + message.relatedAccountGroups = []; + message.relatedAccountGroups.push($root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.decode(reader, reader.uint32())); + break; + case 2: + message.nextPageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ListRelatedAccountGroupsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse} ListRelatedAccountGroupsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ListRelatedAccountGroupsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ListRelatedAccountGroupsResponse message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ListRelatedAccountGroupsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.relatedAccountGroups != null && message.hasOwnProperty("relatedAccountGroups")) { + if (!Array.isArray(message.relatedAccountGroups)) + return "relatedAccountGroups: array expected"; + for (var i = 0; i < message.relatedAccountGroups.length; ++i) { + var error = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.verify(message.relatedAccountGroups[i]); + if (error) + return "relatedAccountGroups." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + return null; + }; + + /** + * Creates a ListRelatedAccountGroupsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse} ListRelatedAccountGroupsResponse + */ + ListRelatedAccountGroupsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse(); + if (object.relatedAccountGroups) { + if (!Array.isArray(object.relatedAccountGroups)) + throw TypeError(".google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse.relatedAccountGroups: array expected"); + message.relatedAccountGroups = []; + for (var i = 0; i < object.relatedAccountGroups.length; ++i) { + if (typeof object.relatedAccountGroups[i] !== "object") + throw TypeError(".google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse.relatedAccountGroups: object expected"); + message.relatedAccountGroups[i] = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.fromObject(object.relatedAccountGroups[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + return message; + }; + + /** + * Creates a plain object from a ListRelatedAccountGroupsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse} message ListRelatedAccountGroupsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ListRelatedAccountGroupsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.relatedAccountGroups = []; + if (options.defaults) + object.nextPageToken = ""; + if (message.relatedAccountGroups && message.relatedAccountGroups.length) { + object.relatedAccountGroups = []; + for (var j = 0; j < message.relatedAccountGroups.length; ++j) + object.relatedAccountGroups[j] = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.toObject(message.relatedAccountGroups[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + return object; + }; + + /** + * Converts this ListRelatedAccountGroupsResponse to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsResponse + * @instance + * @returns {Object.} JSON object + */ + ListRelatedAccountGroupsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return ListRelatedAccountGroupsResponse; + })(); + + v1.SearchRelatedAccountGroupMembershipsRequest = (function() { + + /** + * Properties of a SearchRelatedAccountGroupMembershipsRequest. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface ISearchRelatedAccountGroupMembershipsRequest + * @property {string|null} [parent] SearchRelatedAccountGroupMembershipsRequest parent + * @property {Uint8Array|null} [hashedAccountId] SearchRelatedAccountGroupMembershipsRequest hashedAccountId + * @property {number|null} [pageSize] SearchRelatedAccountGroupMembershipsRequest pageSize + * @property {string|null} [pageToken] SearchRelatedAccountGroupMembershipsRequest pageToken + */ + + /** + * Constructs a new SearchRelatedAccountGroupMembershipsRequest. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a SearchRelatedAccountGroupMembershipsRequest. + * @implements ISearchRelatedAccountGroupMembershipsRequest + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest=} [properties] Properties to set + */ + function SearchRelatedAccountGroupMembershipsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SearchRelatedAccountGroupMembershipsRequest parent. + * @member {string} parent + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @instance + */ + SearchRelatedAccountGroupMembershipsRequest.prototype.parent = ""; + + /** + * SearchRelatedAccountGroupMembershipsRequest hashedAccountId. + * @member {Uint8Array} hashedAccountId + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @instance + */ + SearchRelatedAccountGroupMembershipsRequest.prototype.hashedAccountId = $util.newBuffer([]); + + /** + * SearchRelatedAccountGroupMembershipsRequest pageSize. + * @member {number} pageSize + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @instance + */ + SearchRelatedAccountGroupMembershipsRequest.prototype.pageSize = 0; + + /** + * SearchRelatedAccountGroupMembershipsRequest pageToken. + * @member {string} pageToken + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @instance + */ + SearchRelatedAccountGroupMembershipsRequest.prototype.pageToken = ""; + + /** + * Creates a new SearchRelatedAccountGroupMembershipsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest} SearchRelatedAccountGroupMembershipsRequest instance + */ + SearchRelatedAccountGroupMembershipsRequest.create = function create(properties) { + return new SearchRelatedAccountGroupMembershipsRequest(properties); + }; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsRequest message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest} message SearchRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SearchRelatedAccountGroupMembershipsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.parent != null && Object.hasOwnProperty.call(message, "parent")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.parent); + if (message.hashedAccountId != null && Object.hasOwnProperty.call(message, "hashedAccountId")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.hashedAccountId); + if (message.pageSize != null && Object.hasOwnProperty.call(message, "pageSize")) + writer.uint32(/* id 3, wireType 0 =*/24).int32(message.pageSize); + if (message.pageToken != null && Object.hasOwnProperty.call(message, "pageToken")) + writer.uint32(/* id 4, wireType 2 =*/34).string(message.pageToken); + return writer; + }; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsRequest message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest} message SearchRelatedAccountGroupMembershipsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SearchRelatedAccountGroupMembershipsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest} SearchRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SearchRelatedAccountGroupMembershipsRequest.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.parent = reader.string(); + break; + case 2: + message.hashedAccountId = reader.bytes(); + break; + case 3: + message.pageSize = reader.int32(); + break; + case 4: + message.pageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest} SearchRelatedAccountGroupMembershipsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SearchRelatedAccountGroupMembershipsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SearchRelatedAccountGroupMembershipsRequest message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SearchRelatedAccountGroupMembershipsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.parent != null && message.hasOwnProperty("parent")) + if (!$util.isString(message.parent)) + return "parent: string expected"; + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + if (!(message.hashedAccountId && typeof message.hashedAccountId.length === "number" || $util.isString(message.hashedAccountId))) + return "hashedAccountId: buffer expected"; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + if (!$util.isInteger(message.pageSize)) + return "pageSize: integer expected"; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + if (!$util.isString(message.pageToken)) + return "pageToken: string expected"; + return null; + }; + + /** + * Creates a SearchRelatedAccountGroupMembershipsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest} SearchRelatedAccountGroupMembershipsRequest + */ + SearchRelatedAccountGroupMembershipsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest(); + if (object.parent != null) + message.parent = String(object.parent); + if (object.hashedAccountId != null) + if (typeof object.hashedAccountId === "string") + $util.base64.decode(object.hashedAccountId, message.hashedAccountId = $util.newBuffer($util.base64.length(object.hashedAccountId)), 0); + else if (object.hashedAccountId.length) + message.hashedAccountId = object.hashedAccountId; + if (object.pageSize != null) + message.pageSize = object.pageSize | 0; + if (object.pageToken != null) + message.pageToken = String(object.pageToken); + return message; + }; + + /** + * Creates a plain object from a SearchRelatedAccountGroupMembershipsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @static + * @param {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest} message SearchRelatedAccountGroupMembershipsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SearchRelatedAccountGroupMembershipsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.parent = ""; + if (options.bytes === String) + object.hashedAccountId = ""; + else { + object.hashedAccountId = []; + if (options.bytes !== Array) + object.hashedAccountId = $util.newBuffer(object.hashedAccountId); + } + object.pageSize = 0; + object.pageToken = ""; + } + if (message.parent != null && message.hasOwnProperty("parent")) + object.parent = message.parent; + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + object.hashedAccountId = options.bytes === String ? $util.base64.encode(message.hashedAccountId, 0, message.hashedAccountId.length) : options.bytes === Array ? Array.prototype.slice.call(message.hashedAccountId) : message.hashedAccountId; + if (message.pageSize != null && message.hasOwnProperty("pageSize")) + object.pageSize = message.pageSize; + if (message.pageToken != null && message.hasOwnProperty("pageToken")) + object.pageToken = message.pageToken; + return object; + }; + + /** + * Converts this SearchRelatedAccountGroupMembershipsRequest to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest + * @instance + * @returns {Object.} JSON object + */ + SearchRelatedAccountGroupMembershipsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SearchRelatedAccountGroupMembershipsRequest; + })(); + + v1.SearchRelatedAccountGroupMembershipsResponse = (function() { + + /** + * Properties of a SearchRelatedAccountGroupMembershipsResponse. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface ISearchRelatedAccountGroupMembershipsResponse + * @property {Array.|null} [relatedAccountGroupMemberships] SearchRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships + * @property {string|null} [nextPageToken] SearchRelatedAccountGroupMembershipsResponse nextPageToken + */ + + /** + * Constructs a new SearchRelatedAccountGroupMembershipsResponse. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a SearchRelatedAccountGroupMembershipsResponse. + * @implements ISearchRelatedAccountGroupMembershipsResponse + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse=} [properties] Properties to set + */ + function SearchRelatedAccountGroupMembershipsResponse(properties) { + this.relatedAccountGroupMemberships = []; + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * SearchRelatedAccountGroupMembershipsResponse relatedAccountGroupMemberships. + * @member {Array.} relatedAccountGroupMemberships + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @instance + */ + SearchRelatedAccountGroupMembershipsResponse.prototype.relatedAccountGroupMemberships = $util.emptyArray; + + /** + * SearchRelatedAccountGroupMembershipsResponse nextPageToken. + * @member {string} nextPageToken + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @instance + */ + SearchRelatedAccountGroupMembershipsResponse.prototype.nextPageToken = ""; + + /** + * Creates a new SearchRelatedAccountGroupMembershipsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse} SearchRelatedAccountGroupMembershipsResponse instance + */ + SearchRelatedAccountGroupMembershipsResponse.create = function create(properties) { + return new SearchRelatedAccountGroupMembershipsResponse(properties); + }; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsResponse message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse} message SearchRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SearchRelatedAccountGroupMembershipsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.relatedAccountGroupMemberships != null && message.relatedAccountGroupMemberships.length) + for (var i = 0; i < message.relatedAccountGroupMemberships.length; ++i) + $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.encode(message.relatedAccountGroupMemberships[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.nextPageToken != null && Object.hasOwnProperty.call(message, "nextPageToken")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.nextPageToken); + return writer; + }; + + /** + * Encodes the specified SearchRelatedAccountGroupMembershipsResponse message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse} message SearchRelatedAccountGroupMembershipsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + SearchRelatedAccountGroupMembershipsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse} SearchRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SearchRelatedAccountGroupMembershipsResponse.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + if (!(message.relatedAccountGroupMemberships && message.relatedAccountGroupMemberships.length)) + message.relatedAccountGroupMemberships = []; + message.relatedAccountGroupMemberships.push($root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.decode(reader, reader.uint32())); + break; + case 2: + message.nextPageToken = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a SearchRelatedAccountGroupMembershipsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse} SearchRelatedAccountGroupMembershipsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + SearchRelatedAccountGroupMembershipsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a SearchRelatedAccountGroupMembershipsResponse message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + SearchRelatedAccountGroupMembershipsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.relatedAccountGroupMemberships != null && message.hasOwnProperty("relatedAccountGroupMemberships")) { + if (!Array.isArray(message.relatedAccountGroupMemberships)) + return "relatedAccountGroupMemberships: array expected"; + for (var i = 0; i < message.relatedAccountGroupMemberships.length; ++i) { + var error = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.verify(message.relatedAccountGroupMemberships[i]); + if (error) + return "relatedAccountGroupMemberships." + error; + } + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + if (!$util.isString(message.nextPageToken)) + return "nextPageToken: string expected"; + return null; + }; + + /** + * Creates a SearchRelatedAccountGroupMembershipsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse} SearchRelatedAccountGroupMembershipsResponse + */ + SearchRelatedAccountGroupMembershipsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse(); + if (object.relatedAccountGroupMemberships) { + if (!Array.isArray(object.relatedAccountGroupMemberships)) + throw TypeError(".google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse.relatedAccountGroupMemberships: array expected"); + message.relatedAccountGroupMemberships = []; + for (var i = 0; i < object.relatedAccountGroupMemberships.length; ++i) { + if (typeof object.relatedAccountGroupMemberships[i] !== "object") + throw TypeError(".google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse.relatedAccountGroupMemberships: object expected"); + message.relatedAccountGroupMemberships[i] = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.fromObject(object.relatedAccountGroupMemberships[i]); + } + } + if (object.nextPageToken != null) + message.nextPageToken = String(object.nextPageToken); + return message; + }; + + /** + * Creates a plain object from a SearchRelatedAccountGroupMembershipsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @static + * @param {google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse} message SearchRelatedAccountGroupMembershipsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + SearchRelatedAccountGroupMembershipsResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.arrays || options.defaults) + object.relatedAccountGroupMemberships = []; + if (options.defaults) + object.nextPageToken = ""; + if (message.relatedAccountGroupMemberships && message.relatedAccountGroupMemberships.length) { + object.relatedAccountGroupMemberships = []; + for (var j = 0; j < message.relatedAccountGroupMemberships.length; ++j) + object.relatedAccountGroupMemberships[j] = $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.toObject(message.relatedAccountGroupMemberships[j], options); + } + if (message.nextPageToken != null && message.hasOwnProperty("nextPageToken")) + object.nextPageToken = message.nextPageToken; + return object; + }; + + /** + * Converts this SearchRelatedAccountGroupMembershipsResponse to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsResponse + * @instance + * @returns {Object.} JSON object + */ + SearchRelatedAccountGroupMembershipsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return SearchRelatedAccountGroupMembershipsResponse; + })(); + + v1.RelatedAccountGroupMembership = (function() { + + /** + * Properties of a RelatedAccountGroupMembership. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IRelatedAccountGroupMembership + * @property {string|null} [name] RelatedAccountGroupMembership name + * @property {Uint8Array|null} [hashedAccountId] RelatedAccountGroupMembership hashedAccountId + */ + + /** + * Constructs a new RelatedAccountGroupMembership. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a RelatedAccountGroupMembership. + * @implements IRelatedAccountGroupMembership + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership=} [properties] Properties to set + */ + function RelatedAccountGroupMembership(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RelatedAccountGroupMembership name. + * @member {string} name + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @instance + */ + RelatedAccountGroupMembership.prototype.name = ""; + + /** + * RelatedAccountGroupMembership hashedAccountId. + * @member {Uint8Array} hashedAccountId + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @instance + */ + RelatedAccountGroupMembership.prototype.hashedAccountId = $util.newBuffer([]); + + /** + * Creates a new RelatedAccountGroupMembership instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} RelatedAccountGroupMembership instance + */ + RelatedAccountGroupMembership.create = function create(properties) { + return new RelatedAccountGroupMembership(properties); + }; + + /** + * Encodes the specified RelatedAccountGroupMembership message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership} message RelatedAccountGroupMembership message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RelatedAccountGroupMembership.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.hashedAccountId != null && Object.hasOwnProperty.call(message, "hashedAccountId")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.hashedAccountId); + return writer; + }; + + /** + * Encodes the specified RelatedAccountGroupMembership message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership} message RelatedAccountGroupMembership message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RelatedAccountGroupMembership.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RelatedAccountGroupMembership message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} RelatedAccountGroupMembership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RelatedAccountGroupMembership.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + case 2: + message.hashedAccountId = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RelatedAccountGroupMembership message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} RelatedAccountGroupMembership + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RelatedAccountGroupMembership.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RelatedAccountGroupMembership message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RelatedAccountGroupMembership.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + if (!(message.hashedAccountId && typeof message.hashedAccountId.length === "number" || $util.isString(message.hashedAccountId))) + return "hashedAccountId: buffer expected"; + return null; + }; + + /** + * Creates a RelatedAccountGroupMembership message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} RelatedAccountGroupMembership + */ + RelatedAccountGroupMembership.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership(); + if (object.name != null) + message.name = String(object.name); + if (object.hashedAccountId != null) + if (typeof object.hashedAccountId === "string") + $util.base64.decode(object.hashedAccountId, message.hashedAccountId = $util.newBuffer($util.base64.length(object.hashedAccountId)), 0); + else if (object.hashedAccountId.length) + message.hashedAccountId = object.hashedAccountId; + return message; + }; + + /** + * Creates a plain object from a RelatedAccountGroupMembership message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @static + * @param {google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} message RelatedAccountGroupMembership + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RelatedAccountGroupMembership.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.name = ""; + if (options.bytes === String) + object.hashedAccountId = ""; + else { + object.hashedAccountId = []; + if (options.bytes !== Array) + object.hashedAccountId = $util.newBuffer(object.hashedAccountId); + } + } + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.hashedAccountId != null && message.hasOwnProperty("hashedAccountId")) + object.hashedAccountId = options.bytes === String ? $util.base64.encode(message.hashedAccountId, 0, message.hashedAccountId.length) : options.bytes === Array ? Array.prototype.slice.call(message.hashedAccountId) : message.hashedAccountId; + return object; + }; + + /** + * Converts this RelatedAccountGroupMembership to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + * @instance + * @returns {Object.} JSON object + */ + RelatedAccountGroupMembership.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RelatedAccountGroupMembership; + })(); + + v1.RelatedAccountGroup = (function() { + + /** + * Properties of a RelatedAccountGroup. + * @memberof google.cloud.recaptchaenterprise.v1 + * @interface IRelatedAccountGroup + * @property {string|null} [name] RelatedAccountGroup name + */ + + /** + * Constructs a new RelatedAccountGroup. + * @memberof google.cloud.recaptchaenterprise.v1 + * @classdesc Represents a RelatedAccountGroup. + * @implements IRelatedAccountGroup + * @constructor + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup=} [properties] Properties to set + */ + function RelatedAccountGroup(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * RelatedAccountGroup name. + * @member {string} name + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @instance + */ + RelatedAccountGroup.prototype.name = ""; + + /** + * Creates a new RelatedAccountGroup instance using the specified properties. + * @function create + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup=} [properties] Properties to set + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroup} RelatedAccountGroup instance + */ + RelatedAccountGroup.create = function create(properties) { + return new RelatedAccountGroup(properties); + }; + + /** + * Encodes the specified RelatedAccountGroup message. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.verify|verify} messages. + * @function encode + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup} message RelatedAccountGroup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RelatedAccountGroup.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + return writer; + }; + + /** + * Encodes the specified RelatedAccountGroup message, length delimited. Does not implicitly {@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup} message RelatedAccountGroup message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + RelatedAccountGroup.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a RelatedAccountGroup message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroup} RelatedAccountGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RelatedAccountGroup.decode = function decode(reader, length) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup(); + while (reader.pos < end) { + var tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.name = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a RelatedAccountGroup message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroup} RelatedAccountGroup + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + RelatedAccountGroup.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a RelatedAccountGroup message. + * @function verify + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + RelatedAccountGroup.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates a RelatedAccountGroup message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.recaptchaenterprise.v1.RelatedAccountGroup} RelatedAccountGroup + */ + RelatedAccountGroup.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup) + return object; + var message = new $root.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup(); + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from a RelatedAccountGroup message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @static + * @param {google.cloud.recaptchaenterprise.v1.RelatedAccountGroup} message RelatedAccountGroup + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + RelatedAccountGroup.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + return object; + }; + + /** + * Converts this RelatedAccountGroup to JSON. + * @function toJSON + * @memberof google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + * @instance + * @returns {Object.} JSON object + */ + RelatedAccountGroup.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + return RelatedAccountGroup; + })(); + return v1; })(); diff --git a/packages/google-cloud-recaptchaenterprise/protos/protos.json b/packages/google-cloud-recaptchaenterprise/protos/protos.json index 22c3cee08c0..c9911f0f010 100644 --- a/packages/google-cloud-recaptchaenterprise/protos/protos.json +++ b/packages/google-cloud-recaptchaenterprise/protos/protos.json @@ -171,6 +171,62 @@ "(google.api.method_signature)": "name" } ] + }, + "ListRelatedAccountGroups": { + "requestType": "ListRelatedAccountGroupsRequest", + "responseType": "ListRelatedAccountGroupsResponse", + "options": { + "(google.api.http).get": "/v1/{parent=projects/*}/relatedaccountgroups", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{parent=projects/*}/relatedaccountgroups" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "ListRelatedAccountGroupMemberships": { + "requestType": "ListRelatedAccountGroupMembershipsRequest", + "responseType": "ListRelatedAccountGroupMembershipsResponse", + "options": { + "(google.api.http).get": "/v1/{parent=projects/*/relatedaccountgroups/*}/memberships", + "(google.api.method_signature)": "parent" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "get": "/v1/{parent=projects/*/relatedaccountgroups/*}/memberships" + } + }, + { + "(google.api.method_signature)": "parent" + } + ] + }, + "SearchRelatedAccountGroupMemberships": { + "requestType": "SearchRelatedAccountGroupMembershipsRequest", + "responseType": "SearchRelatedAccountGroupMembershipsResponse", + "options": { + "(google.api.http).post": "/v1/{parent=projects/*}/relatedaccountgroupmemberships:search", + "(google.api.http).body": "*", + "(google.api.method_signature)": "parent,hashed_account_id" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1/{parent=projects/*}/relatedaccountgroupmemberships:search", + "body": "*" + } + }, + { + "(google.api.method_signature)": "parent,hashed_account_id" + } + ] } } }, @@ -217,6 +273,13 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "hashedAccountId": { + "type": "bytes", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } }, "nested": { @@ -276,6 +339,10 @@ "options": { "(google.api.field_behavior)": "OUTPUT_ONLY" } + }, + "accountDefenderAssessment": { + "type": "AccountDefenderAssessment", + "id": 6 } } }, @@ -315,6 +382,13 @@ "options": { "(google.api.field_behavior)": "OPTIONAL" } + }, + "hashedAccountId": { + "type": "bytes", + "id": 6, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } }, @@ -380,6 +454,26 @@ } } }, + "AccountDefenderAssessment": { + "fields": { + "labels": { + "rule": "repeated", + "type": "AccountDefenderLabel", + "id": 1 + } + }, + "nested": { + "AccountDefenderLabel": { + "values": { + "ACCOUNT_DEFENDER_LABEL_UNSPECIFIED": 0, + "PROFILE_MATCH": 1, + "SUSPICIOUS_LOGIN_ACTIVITY": 2, + "SUSPICIOUS_ACCOUNT_CREATION": 3, + "RELATED_ACCOUNTS_NUMBER_HIGH": 4 + } + } + } + }, "CreateKeyRequest": { "fields": { "parent": { @@ -617,10 +711,7 @@ }, "allowAmpTraffic": { "type": "bool", - "id": 2, - "options": { - "(google.api.field_behavior)": "REQUIRED" - } + "id": 2 }, "integrationType": { "type": "IntegrationType", @@ -720,6 +811,166 @@ "id": 4 } } + }, + "ListRelatedAccountGroupMembershipsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + } + }, + "pageSize": { + "type": "int32", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ListRelatedAccountGroupMembershipsResponse": { + "fields": { + "relatedAccountGroupMemberships": { + "rule": "repeated", + "type": "RelatedAccountGroupMembership", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + } + } + }, + "ListRelatedAccountGroupsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "recaptchaenterprise.googleapis.com/RelatedAccountGroup" + } + }, + "pageSize": { + "type": "int32", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "ListRelatedAccountGroupsResponse": { + "fields": { + "relatedAccountGroups": { + "rule": "repeated", + "type": "RelatedAccountGroup", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + } + } + }, + "SearchRelatedAccountGroupMembershipsRequest": { + "fields": { + "parent": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).child_type": "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + } + }, + "hashedAccountId": { + "type": "bytes", + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageSize": { + "type": "int32", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + }, + "pageToken": { + "type": "string", + "id": 4, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } + } + } + }, + "SearchRelatedAccountGroupMembershipsResponse": { + "fields": { + "relatedAccountGroupMemberships": { + "rule": "repeated", + "type": "RelatedAccountGroupMembership", + "id": 1 + }, + "nextPageToken": { + "type": "string", + "id": 2 + } + } + }, + "RelatedAccountGroupMembership": { + "options": { + "(google.api.resource).type": "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership", + "(google.api.resource).pattern": "projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}" + }, + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recaptchaenterprise.googleapis.com/RelatedAccountGroupMembership" + } + }, + "hashedAccountId": { + "type": "bytes", + "id": 2 + } + } + }, + "RelatedAccountGroup": { + "options": { + "(google.api.resource).type": "recaptchaenterprise.googleapis.com/RelatedAccountGroup", + "(google.api.resource).pattern": "projects/{project}/relatedaccountgroups/{relatedaccountgroup}" + }, + "fields": { + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "recaptchaenterprise.googleapis.com/RelatedAccountGroup" + } + } + } } } }, diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.annotate_assessment.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.annotate_assessment.js new file mode 100644 index 00000000000..2779787863e --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.annotate_assessment.js @@ -0,0 +1,74 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_AnnotateAssessment_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the Assessment, in the format + * "projects/{project}/assessments/{assessment}". + */ + // const name = 'abc123' + /** + * Optional. The annotation that will be assigned to the Event. This field can be left + * empty to provide reasons that apply to an event without concluding whether + * the event is legitimate or fraudulent. + */ + // const annotation = '' + /** + * Optional. Optional reasons for the annotation that will be assigned to the Event. + */ + // const reasons = 1234 + /** + * Optional. Optional unique stable hashed user identifier to apply to the assessment. + * This is an alternative to setting the hashed_account_id in + * CreateAssessment, for example when the account identifier is not yet known + * in the initial request. It is recommended that the identifier is hashed + * using hmac-sha256 with stable secret. + */ + // const hashedAccountId = 'Buffer.from('string')' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function annotateAssessment() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.annotateAssessment( + request + ); + console.log(response); + } + + annotateAssessment(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_AnnotateAssessment_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.create_assessment.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.create_assessment.js new file mode 100644 index 00000000000..5fb3cae509f --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.create_assessment.js @@ -0,0 +1,59 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent, assessment) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_CreateAssessment_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project in which the assessment will be created, + * in the format "projects/{project}". + */ + // const parent = 'abc123' + /** + * Required. The assessment details. + */ + // const assessment = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function createAssessment() { + // Construct request + const request = { + parent, + assessment, + }; + + // Run request + const response = await recaptchaenterpriseClient.createAssessment(request); + console.log(response); + } + + createAssessment(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_CreateAssessment_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.create_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.create_key.js new file mode 100644 index 00000000000..971ccdb90aa --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.create_key.js @@ -0,0 +1,59 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent, key) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_CreateKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project in which the key will be created, in the + * format "projects/{project}". + */ + // const parent = 'abc123' + /** + * Required. Information to create a reCAPTCHA Enterprise key. + */ + // const key = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function createKey() { + // Construct request + const request = { + parent, + key, + }; + + // Run request + const response = await recaptchaenterpriseClient.createKey(request); + console.log(response); + } + + createKey(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_CreateKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.delete_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.delete_key.js new file mode 100644 index 00000000000..db974b2e554 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.delete_key.js @@ -0,0 +1,54 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_DeleteKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the key to be deleted, in the format + * "projects/{project}/keys/{key}". + */ + // const name = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function deleteKey() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.deleteKey(request); + console.log(response); + } + + deleteKey(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_DeleteKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.get_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.get_key.js new file mode 100644 index 00000000000..dec6da8097e --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.get_key.js @@ -0,0 +1,54 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_GetKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the requested key, in the format + * "projects/{project}/keys/{key}". + */ + // const name = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function getKey() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.getKey(request); + console.log(response); + } + + getKey(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_GetKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.get_metrics.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.get_metrics.js new file mode 100644 index 00000000000..9227d511010 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.get_metrics.js @@ -0,0 +1,54 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_GetMetrics_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the requested metrics, in the format + * "projects/{project}/keys/{key}/metrics". + */ + // const name = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function getMetrics() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.getMetrics(request); + console.log(response); + } + + getMetrics(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_GetMetrics_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_keys.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_keys.js new file mode 100644 index 00000000000..e1dc8b321fd --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_keys.js @@ -0,0 +1,66 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_ListKeys_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project that contains the keys that will be + * listed, in the format "projects/{project}". + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of keys to return. Default is 10. Max limit is + * 1000. + */ + // const pageSize = 1234 + /** + * Optional. The next_page_token value returned from a previous. + * ListKeysRequest, if any. + */ + // const pageToken = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function listKeys() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = await recaptchaenterpriseClient.listKeysAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + listKeys(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_ListKeys_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_related_account_group_memberships.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_related_account_group_memberships.js new file mode 100644 index 00000000000..f747a9b6077 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_related_account_group_memberships.js @@ -0,0 +1,74 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_ListRelatedAccountGroupMemberships_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name for the related account group in the format + * `projects/{project}/relatedaccountgroups/{relatedaccountgroup}`. + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of accounts to return. The service may return fewer than + * this value. + * If unspecified, at most 50 accounts will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + */ + // const pageSize = 1234 + /** + * Optional. A page token, received from a previous `ListRelatedAccountGroupMemberships` + * call. + * When paginating, all other parameters provided to + * `ListRelatedAccountGroupMemberships` must match the call that provided the + * page token. + */ + // const pageToken = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function listRelatedAccountGroupMemberships() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = + await recaptchaenterpriseClient.listRelatedAccountGroupMembershipsAsync( + request + ); + for await (const response of iterable) { + console.log(response); + } + } + + listRelatedAccountGroupMemberships(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_ListRelatedAccountGroupMemberships_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_related_account_groups.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_related_account_groups.js new file mode 100644 index 00000000000..f5180d65a86 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.list_related_account_groups.js @@ -0,0 +1,72 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_ListRelatedAccountGroups_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project to list related account groups from, in the format + * "projects/{project}". + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + */ + // const pageSize = 1234 + /** + * Optional. A page token, received from a previous `ListRelatedAccountGroups` call. + * Provide this to retrieve the subsequent page. + * When paginating, all other parameters provided to + * `ListRelatedAccountGroups` must match the call that provided the page + * token. + */ + // const pageToken = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function listRelatedAccountGroups() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = + await recaptchaenterpriseClient.listRelatedAccountGroupsAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + listRelatedAccountGroups(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_ListRelatedAccountGroups_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.migrate_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.migrate_key.js new file mode 100644 index 00000000000..08046692fc2 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.migrate_key.js @@ -0,0 +1,54 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_MigrateKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the key to be migrated, in the format + * "projects/{project}/keys/{key}". + */ + // const name = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function migrateKey() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.migrateKey(request); + console.log(response); + } + + migrateKey(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_MigrateKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.search_related_account_group_memberships.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.search_related_account_group_memberships.js new file mode 100644 index 00000000000..febe66f6c51 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.search_related_account_group_memberships.js @@ -0,0 +1,81 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_SearchRelatedAccountGroupMemberships_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project to search related account group memberships from, + * in the format "projects/{project}". + */ + // const parent = 'abc123' + /** + * Optional. The unique stable hashed user identifier we should search connections to. + * The identifier should correspond to a `hashed_account_id` provided in a + * previous CreateAssessment or AnnotateAssessment call. + */ + // const hashedAccountId = 'Buffer.from('string')' + /** + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + */ + // const pageSize = 1234 + /** + * Optional. A page token, received from a previous + * `SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the + * subsequent page. + * When paginating, all other parameters provided to + * `SearchRelatedAccountGroupMemberships` must match the call that provided + * the page token. + */ + // const pageToken = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function searchRelatedAccountGroupMemberships() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = + await recaptchaenterpriseClient.searchRelatedAccountGroupMembershipsAsync( + request + ); + for await (const response of iterable) { + console.log(response); + } + } + + searchRelatedAccountGroupMemberships(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_SearchRelatedAccountGroupMemberships_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.update_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.update_key.js new file mode 100644 index 00000000000..eba40fd8665 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1/recaptcha_enterprise_service.update_key.js @@ -0,0 +1,58 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(key) { + // [START recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_UpdateKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The key to update. + */ + // const key = '' + /** + * Optional. The mask to control which fields of the key get updated. If the mask is not + * present, all fields will be updated. + */ + // const updateMask = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceClient} = + require('@google-cloud/recaptcha-enterprise').v1; + + // Instantiates a client + const recaptchaenterpriseClient = new RecaptchaEnterpriseServiceClient(); + + async function updateKey() { + // Construct request + const request = { + key, + }; + + // Run request + const response = await recaptchaenterpriseClient.updateKey(request); + console.log(response); + } + + updateKey(); + // [END recaptchaenterprise_v1_generated_RecaptchaEnterpriseService_UpdateKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.annotate_assessment.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.annotate_assessment.js new file mode 100644 index 00000000000..65d244cffc3 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.annotate_assessment.js @@ -0,0 +1,62 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name, annotation) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_AnnotateAssessment_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The resource name of the Assessment, in the format + * "projects/{project_number}/assessments/{assessment_id}". + */ + // const name = 'abc123' + /** + * Required. The annotation that will be assigned to the Event. + */ + // const annotation = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function annotateAssessment() { + // Construct request + const request = { + name, + annotation, + }; + + // Run request + const response = await recaptchaenterpriseClient.annotateAssessment( + request + ); + console.log(response); + } + + annotateAssessment(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_AnnotateAssessment_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.create_assessment.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.create_assessment.js new file mode 100644 index 00000000000..0bc42ac63a5 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.create_assessment.js @@ -0,0 +1,60 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent, assessment) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_CreateAssessment_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project in which the assessment will be created, + * in the format "projects/{project_number}". + */ + // const parent = 'abc123' + /** + * Required. The assessment details. + */ + // const assessment = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function createAssessment() { + // Construct request + const request = { + parent, + assessment, + }; + + // Run request + const response = await recaptchaenterpriseClient.createAssessment(request); + console.log(response); + } + + createAssessment(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_CreateAssessment_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.create_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.create_key.js new file mode 100644 index 00000000000..adcbe964af6 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.create_key.js @@ -0,0 +1,60 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent, key) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_CreateKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project in which the key will be created, in the + * format "projects/{project_number}". + */ + // const parent = 'abc123' + /** + * Required. Information to create a reCAPTCHA Enterprise key. + */ + // const key = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function createKey() { + // Construct request + const request = { + parent, + key, + }; + + // Run request + const response = await recaptchaenterpriseClient.createKey(request); + console.log(response); + } + + createKey(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_CreateKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.delete_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.delete_key.js new file mode 100644 index 00000000000..d850d9b5571 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.delete_key.js @@ -0,0 +1,55 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_DeleteKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the key to be deleted, in the format + * "projects/{project_number}/keys/{key_id}". + */ + // const name = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function deleteKey() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.deleteKey(request); + console.log(response); + } + + deleteKey(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_DeleteKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.get_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.get_key.js new file mode 100644 index 00000000000..d6769ad7c10 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.get_key.js @@ -0,0 +1,55 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(name) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_GetKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the requested key, in the format + * "projects/{project_number}/keys/{key_id}". + */ + // const name = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function getKey() { + // Construct request + const request = { + name, + }; + + // Run request + const response = await recaptchaenterpriseClient.getKey(request); + console.log(response); + } + + getKey(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_GetKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.list_keys.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.list_keys.js new file mode 100644 index 00000000000..4685241568b --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.list_keys.js @@ -0,0 +1,67 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(parent) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_ListKeys_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The name of the project that contains the keys that will be + * listed, in the format "projects/{project_number}". + */ + // const parent = 'abc123' + /** + * Optional. The maximum number of keys to return. Default is 10. Max limit is + * 1000. + */ + // const pageSize = 1234 + /** + * Optional. The next_page_token value returned from a previous. + * ListKeysRequest, if any. + */ + // const pageToken = 'abc123' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function listKeys() { + // Construct request + const request = { + parent, + }; + + // Run request + const iterable = await recaptchaenterpriseClient.listKeysAsync(request); + for await (const response of iterable) { + console.log(response); + } + } + + listKeys(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_ListKeys_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.update_key.js b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.update_key.js new file mode 100644 index 00000000000..b1188d41234 --- /dev/null +++ b/packages/google-cloud-recaptchaenterprise/samples/generated/v1beta1/recaptcha_enterprise_service_v1_beta1.update_key.js @@ -0,0 +1,59 @@ +// Copyright 2021 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +'use strict'; + +function main(key) { + // [START recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_UpdateKey_async] + /** + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * Required. The key to update. + */ + // const key = '' + /** + * Optional. The mask to control which field of the key get updated. If the mask is not + * present, all fields will be updated. + */ + // const updateMask = '' + + // Imports the Recaptchaenterprise library + const {RecaptchaEnterpriseServiceV1Beta1Client} = + require('@google-cloud/recaptcha-enterprise').v1beta1; + + // Instantiates a client + const recaptchaenterpriseClient = + new RecaptchaEnterpriseServiceV1Beta1Client(); + + async function updateKey() { + // Construct request + const request = { + key, + }; + + // Run request + const response = await recaptchaenterpriseClient.updateKey(request); + console.log(response); + } + + updateKey(); + // [END recaptchaenterprise_v1beta1_generated_RecaptchaEnterpriseServiceV1Beta1_UpdateKey_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-recaptchaenterprise/samples/package.json b/packages/google-cloud-recaptchaenterprise/samples/package.json index 6da8f225f2f..b83d4d68feb 100644 --- a/packages/google-cloud-recaptchaenterprise/samples/package.json +++ b/packages/google-cloud-recaptchaenterprise/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=8" + "node": ">=10" }, "files": [ "*.js" diff --git a/packages/google-cloud-recaptchaenterprise/src/v1/gapic_metadata.json b/packages/google-cloud-recaptchaenterprise/src/v1/gapic_metadata.json index 1663f2533fe..09321f22a15 100644 --- a/packages/google-cloud-recaptchaenterprise/src/v1/gapic_metadata.json +++ b/packages/google-cloud-recaptchaenterprise/src/v1/gapic_metadata.json @@ -56,6 +56,27 @@ "listKeysStream", "listKeysAsync" ] + }, + "ListRelatedAccountGroups": { + "methods": [ + "listRelatedAccountGroups", + "listRelatedAccountGroupsStream", + "listRelatedAccountGroupsAsync" + ] + }, + "ListRelatedAccountGroupMemberships": { + "methods": [ + "listRelatedAccountGroupMemberships", + "listRelatedAccountGroupMembershipsStream", + "listRelatedAccountGroupMembershipsAsync" + ] + }, + "SearchRelatedAccountGroupMemberships": { + "methods": [ + "searchRelatedAccountGroupMemberships", + "searchRelatedAccountGroupMembershipsStream", + "searchRelatedAccountGroupMembershipsAsync" + ] } } }, @@ -108,6 +129,27 @@ "listKeysStream", "listKeysAsync" ] + }, + "ListRelatedAccountGroups": { + "methods": [ + "listRelatedAccountGroups", + "listRelatedAccountGroupsStream", + "listRelatedAccountGroupsAsync" + ] + }, + "ListRelatedAccountGroupMemberships": { + "methods": [ + "listRelatedAccountGroupMemberships", + "listRelatedAccountGroupMembershipsStream", + "listRelatedAccountGroupMembershipsAsync" + ] + }, + "SearchRelatedAccountGroupMemberships": { + "methods": [ + "searchRelatedAccountGroupMemberships", + "searchRelatedAccountGroupMembershipsStream", + "searchRelatedAccountGroupMembershipsAsync" + ] } } } diff --git a/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client.ts b/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client.ts index 92215b8f2f3..68d28ae4c74 100644 --- a/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client.ts +++ b/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client.ts @@ -177,6 +177,13 @@ export class RecaptchaEnterpriseServiceClient { projectPathTemplate: new this._gaxModule.PathTemplate( 'projects/{project}' ), + relatedAccountGroupPathTemplate: new this._gaxModule.PathTemplate( + 'projects/{project}/relatedaccountgroups/{relatedaccountgroup}' + ), + relatedAccountGroupMembershipPathTemplate: + new this._gaxModule.PathTemplate( + 'projects/{project}/relatedaccountgroups/{relatedaccountgroup}/memberships/{membership}' + ), }; // Some of the methods on this service return "paged" results, @@ -188,6 +195,21 @@ export class RecaptchaEnterpriseServiceClient { 'nextPageToken', 'keys' ), + listRelatedAccountGroups: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'relatedAccountGroups' + ), + listRelatedAccountGroupMemberships: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'relatedAccountGroupMemberships' + ), + searchRelatedAccountGroupMemberships: new this._gaxModule.PageDescriptor( + 'pageToken', + 'nextPageToken', + 'relatedAccountGroupMemberships' + ), }; // Put together the default options sent with requests. @@ -250,6 +272,9 @@ export class RecaptchaEnterpriseServiceClient { 'deleteKey', 'migrateKey', 'getMetrics', + 'listRelatedAccountGroups', + 'listRelatedAccountGroupMemberships', + 'searchRelatedAccountGroupMemberships', ]; for (const methodName of recaptchaEnterpriseServiceStubMethods) { const callPromise = this.recaptchaEnterpriseServiceStub.then( @@ -481,6 +506,12 @@ export class RecaptchaEnterpriseServiceClient { * the event is legitimate or fraudulent. * @param {number[]} [request.reasons] * Optional. Optional reasons for the annotation that will be assigned to the Event. + * @param {Buffer} [request.hashedAccountId] + * Optional. Optional unique stable hashed user identifier to apply to the assessment. + * This is an alternative to setting the hashed_account_id in + * CreateAssessment, for example when the account identifier is not yet known + * in the initial request. It is recommended that the identifier is hashed + * using hmac-sha256 with stable secret. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Promise} - The promise which resolves to an array. @@ -1239,7 +1270,8 @@ export class RecaptchaEnterpriseServiceClient { gax.routingHeader.fromParams({ parent: request.parent || '', }); - const callSettings = new gax.CallSettings(options); + const defaultCallSettings = this._defaults['listKeys']; + const callSettings = defaultCallSettings.merge(options); this.initialize(); return this.descriptors.page.listKeys.createStream( this.innerApiCalls.listKeys as gax.GaxCall, @@ -1292,7 +1324,8 @@ export class RecaptchaEnterpriseServiceClient { parent: request.parent || '', }); options = options || {}; - const callSettings = new gax.CallSettings(options); + const defaultCallSettings = this._defaults['listKeys']; + const callSettings = defaultCallSettings.merge(options); this.initialize(); return this.descriptors.page.listKeys.asyncIterate( this.innerApiCalls['listKeys'] as GaxCall, @@ -1300,6 +1333,697 @@ export class RecaptchaEnterpriseServiceClient { callSettings ) as AsyncIterable; } + listRelatedAccountGroups( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[], + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest | null, + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse + ] + >; + listRelatedAccountGroups( + request: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup + > + ): void; + listRelatedAccountGroups( + request: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + callback: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup + > + ): void; + /** + * List groups of related accounts. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project to list related account groups from, in the format + * "projects/{project}". + * @param {number} [request.pageSize] + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous `ListRelatedAccountGroups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * `ListRelatedAccountGroups` must match the call that provided the page + * token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of [RelatedAccountGroup]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listRelatedAccountGroupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listRelatedAccountGroups( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup + >, + callback?: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup + > + ): Promise< + [ + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[], + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest | null, + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsResponse + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.listRelatedAccountGroups( + request, + options, + callback + ); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project to list related account groups from, in the format + * "projects/{project}". + * @param {number} [request.pageSize] + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous `ListRelatedAccountGroups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * `ListRelatedAccountGroups` must match the call that provided the page + * token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing [RelatedAccountGroup]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listRelatedAccountGroupsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listRelatedAccountGroupsStream( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + const defaultCallSettings = this._defaults['listRelatedAccountGroups']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listRelatedAccountGroups.createStream( + this.innerApiCalls.listRelatedAccountGroups as gax.GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `listRelatedAccountGroups`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project to list related account groups from, in the format + * "projects/{project}". + * @param {number} [request.pageSize] + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous `ListRelatedAccountGroups` call. + * Provide this to retrieve the subsequent page. + * + * When paginating, all other parameters provided to + * `ListRelatedAccountGroups` must match the call that provided the page + * token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [RelatedAccountGroup]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroup}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example + * const iterable = client.listRelatedAccountGroupsAsync(request); + * for await (const response of iterable) { + * // process response + * } + */ + listRelatedAccountGroupsAsync( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupsRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + options = options || {}; + const defaultCallSettings = this._defaults['listRelatedAccountGroups']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listRelatedAccountGroups.asyncIterate( + this.innerApiCalls['listRelatedAccountGroups'] as GaxCall, + request as unknown as RequestType, + callSettings + ) as AsyncIterable; + } + listRelatedAccountGroupMemberships( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[], + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest | null, + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse + ] + >; + listRelatedAccountGroupMemberships( + request: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + > + ): void; + listRelatedAccountGroupMemberships( + request: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + callback: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + > + ): void; + /** + * Get the memberships in a group of related accounts. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name for the related account group in the format + * `projects/{project}/relatedaccountgroups/{relatedaccountgroup}`. + * @param {number} [request.pageSize] + * Optional. The maximum number of accounts to return. The service may return fewer than + * this value. + * If unspecified, at most 50 accounts will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous `ListRelatedAccountGroupMemberships` + * call. + * + * When paginating, all other parameters provided to + * `ListRelatedAccountGroupMemberships` must match the call that provided the + * page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of [RelatedAccountGroupMembership]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `listRelatedAccountGroupMembershipsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listRelatedAccountGroupMemberships( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + >, + callback?: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + > + ): Promise< + [ + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[], + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest | null, + protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsResponse + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.listRelatedAccountGroupMemberships( + request, + options, + callback + ); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name for the related account group in the format + * `projects/{project}/relatedaccountgroups/{relatedaccountgroup}`. + * @param {number} [request.pageSize] + * Optional. The maximum number of accounts to return. The service may return fewer than + * this value. + * If unspecified, at most 50 accounts will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous `ListRelatedAccountGroupMemberships` + * call. + * + * When paginating, all other parameters provided to + * `ListRelatedAccountGroupMemberships` must match the call that provided the + * page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing [RelatedAccountGroupMembership]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `listRelatedAccountGroupMembershipsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + listRelatedAccountGroupMembershipsStream( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + const defaultCallSettings = + this._defaults['listRelatedAccountGroupMemberships']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listRelatedAccountGroupMemberships.createStream( + this.innerApiCalls.listRelatedAccountGroupMemberships as gax.GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `listRelatedAccountGroupMemberships`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The resource name for the related account group in the format + * `projects/{project}/relatedaccountgroups/{relatedaccountgroup}`. + * @param {number} [request.pageSize] + * Optional. The maximum number of accounts to return. The service may return fewer than + * this value. + * If unspecified, at most 50 accounts will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous `ListRelatedAccountGroupMemberships` + * call. + * + * When paginating, all other parameters provided to + * `ListRelatedAccountGroupMemberships` must match the call that provided the + * page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [RelatedAccountGroupMembership]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example + * const iterable = client.listRelatedAccountGroupMembershipsAsync(request); + * for await (const response of iterable) { + * // process response + * } + */ + listRelatedAccountGroupMembershipsAsync( + request?: protos.google.cloud.recaptchaenterprise.v1.IListRelatedAccountGroupMembershipsRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + options = options || {}; + const defaultCallSettings = + this._defaults['listRelatedAccountGroupMemberships']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.listRelatedAccountGroupMemberships.asyncIterate( + this.innerApiCalls['listRelatedAccountGroupMemberships'] as GaxCall, + request as unknown as RequestType, + callSettings + ) as AsyncIterable; + } + searchRelatedAccountGroupMemberships( + request?: protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + options?: CallOptions + ): Promise< + [ + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[], + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest | null, + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse + ] + >; + searchRelatedAccountGroupMemberships( + request: protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + options: CallOptions, + callback: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + > + ): void; + searchRelatedAccountGroupMemberships( + request: protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + callback: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + > + ): void; + /** + * Search group memberships related to a given account. + * + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project to search related account group memberships from, + * in the format "projects/{project}". + * @param {Buffer} [request.hashedAccountId] + * Optional. The unique stable hashed user identifier we should search connections to. + * The identifier should correspond to a `hashed_account_id` provided in a + * previous CreateAssessment or AnnotateAssessment call. + * @param {number} [request.pageSize] + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous + * `SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the + * subsequent page. + * + * When paginating, all other parameters provided to + * `SearchRelatedAccountGroupMemberships` must match the call that provided + * the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is Array of [RelatedAccountGroupMembership]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership}. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed and will merge results from all the pages into this array. + * Note that it can affect your quota. + * We recommend using `searchRelatedAccountGroupMembershipsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + searchRelatedAccountGroupMemberships( + request?: protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + optionsOrCallback?: + | CallOptions + | PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + >, + callback?: PaginationCallback< + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + | protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse + | null + | undefined, + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership + > + ): Promise< + [ + protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[], + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest | null, + protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsResponse + ] + > | void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + this.initialize(); + return this.innerApiCalls.searchRelatedAccountGroupMemberships( + request, + options, + callback + ); + } + + /** + * Equivalent to `method.name.toCamelCase()`, but returns a NodeJS Stream object. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project to search related account group memberships from, + * in the format "projects/{project}". + * @param {Buffer} [request.hashedAccountId] + * Optional. The unique stable hashed user identifier we should search connections to. + * The identifier should correspond to a `hashed_account_id` provided in a + * previous CreateAssessment or AnnotateAssessment call. + * @param {number} [request.pageSize] + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous + * `SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the + * subsequent page. + * + * When paginating, all other parameters provided to + * `SearchRelatedAccountGroupMemberships` must match the call that provided + * the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Stream} + * An object stream which emits an object representing [RelatedAccountGroupMembership]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership} on 'data' event. + * The client library will perform auto-pagination by default: it will call the API as many + * times as needed. Note that it can affect your quota. + * We recommend using `searchRelatedAccountGroupMembershipsAsync()` + * method described below for async iteration which you can stop as needed. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + */ + searchRelatedAccountGroupMembershipsStream( + request?: protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + options?: CallOptions + ): Transform { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + const defaultCallSettings = + this._defaults['searchRelatedAccountGroupMemberships']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.searchRelatedAccountGroupMemberships.createStream( + this.innerApiCalls.searchRelatedAccountGroupMemberships as gax.GaxCall, + request, + callSettings + ); + } + + /** + * Equivalent to `searchRelatedAccountGroupMemberships`, but returns an iterable object. + * + * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. + * @param {Object} request + * The request object that will be sent. + * @param {string} request.parent + * Required. The name of the project to search related account group memberships from, + * in the format "projects/{project}". + * @param {Buffer} [request.hashedAccountId] + * Optional. The unique stable hashed user identifier we should search connections to. + * The identifier should correspond to a `hashed_account_id` provided in a + * previous CreateAssessment or AnnotateAssessment call. + * @param {number} [request.pageSize] + * Optional. The maximum number of groups to return. The service may return fewer than + * this value. + * If unspecified, at most 50 groups will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + * @param {string} [request.pageToken] + * Optional. A page token, received from a previous + * `SearchRelatedAccountGroupMemberships` call. Provide this to retrieve the + * subsequent page. + * + * When paginating, all other parameters provided to + * `SearchRelatedAccountGroupMemberships` must match the call that provided + * the page token. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Object} + * An iterable Object that allows [async iteration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols). + * When you iterate the returned iterable, each element will be an object representing + * [RelatedAccountGroupMembership]{@link google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership}. The API will be called under the hood as needed, once per the page, + * so you can stop the iteration when you don't need more results. + * Please see the + * [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination) + * for more details and examples. + * @example + * const iterable = client.searchRelatedAccountGroupMembershipsAsync(request); + * for await (const response of iterable) { + * // process response + * } + */ + searchRelatedAccountGroupMembershipsAsync( + request?: protos.google.cloud.recaptchaenterprise.v1.ISearchRelatedAccountGroupMembershipsRequest, + options?: CallOptions + ): AsyncIterable { + request = request || {}; + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers['x-goog-request-params'] = + gax.routingHeader.fromParams({ + parent: request.parent || '', + }); + options = options || {}; + const defaultCallSettings = + this._defaults['searchRelatedAccountGroupMemberships']; + const callSettings = defaultCallSettings.merge(options); + this.initialize(); + return this.descriptors.page.searchRelatedAccountGroupMemberships.asyncIterate( + this.innerApiCalls['searchRelatedAccountGroupMemberships'] as GaxCall, + request as unknown as RequestType, + callSettings + ) as AsyncIterable; + } // -------------------- // -- Path templates -- // -------------------- @@ -1437,6 +2161,113 @@ export class RecaptchaEnterpriseServiceClient { return this.pathTemplates.projectPathTemplate.match(projectName).project; } + /** + * Return a fully-qualified relatedAccountGroup resource name string. + * + * @param {string} project + * @param {string} relatedaccountgroup + * @returns {string} Resource name string. + */ + relatedAccountGroupPath(project: string, relatedaccountgroup: string) { + return this.pathTemplates.relatedAccountGroupPathTemplate.render({ + project: project, + relatedaccountgroup: relatedaccountgroup, + }); + } + + /** + * Parse the project from RelatedAccountGroup resource. + * + * @param {string} relatedAccountGroupName + * A fully-qualified path representing RelatedAccountGroup resource. + * @returns {string} A string representing the project. + */ + matchProjectFromRelatedAccountGroupName(relatedAccountGroupName: string) { + return this.pathTemplates.relatedAccountGroupPathTemplate.match( + relatedAccountGroupName + ).project; + } + + /** + * Parse the relatedaccountgroup from RelatedAccountGroup resource. + * + * @param {string} relatedAccountGroupName + * A fully-qualified path representing RelatedAccountGroup resource. + * @returns {string} A string representing the relatedaccountgroup. + */ + matchRelatedaccountgroupFromRelatedAccountGroupName( + relatedAccountGroupName: string + ) { + return this.pathTemplates.relatedAccountGroupPathTemplate.match( + relatedAccountGroupName + ).relatedaccountgroup; + } + + /** + * Return a fully-qualified relatedAccountGroupMembership resource name string. + * + * @param {string} project + * @param {string} relatedaccountgroup + * @param {string} membership + * @returns {string} Resource name string. + */ + relatedAccountGroupMembershipPath( + project: string, + relatedaccountgroup: string, + membership: string + ) { + return this.pathTemplates.relatedAccountGroupMembershipPathTemplate.render({ + project: project, + relatedaccountgroup: relatedaccountgroup, + membership: membership, + }); + } + + /** + * Parse the project from RelatedAccountGroupMembership resource. + * + * @param {string} relatedAccountGroupMembershipName + * A fully-qualified path representing RelatedAccountGroupMembership resource. + * @returns {string} A string representing the project. + */ + matchProjectFromRelatedAccountGroupMembershipName( + relatedAccountGroupMembershipName: string + ) { + return this.pathTemplates.relatedAccountGroupMembershipPathTemplate.match( + relatedAccountGroupMembershipName + ).project; + } + + /** + * Parse the relatedaccountgroup from RelatedAccountGroupMembership resource. + * + * @param {string} relatedAccountGroupMembershipName + * A fully-qualified path representing RelatedAccountGroupMembership resource. + * @returns {string} A string representing the relatedaccountgroup. + */ + matchRelatedaccountgroupFromRelatedAccountGroupMembershipName( + relatedAccountGroupMembershipName: string + ) { + return this.pathTemplates.relatedAccountGroupMembershipPathTemplate.match( + relatedAccountGroupMembershipName + ).relatedaccountgroup; + } + + /** + * Parse the membership from RelatedAccountGroupMembership resource. + * + * @param {string} relatedAccountGroupMembershipName + * A fully-qualified path representing RelatedAccountGroupMembership resource. + * @returns {string} A string representing the membership. + */ + matchMembershipFromRelatedAccountGroupMembershipName( + relatedAccountGroupMembershipName: string + ) { + return this.pathTemplates.relatedAccountGroupMembershipPathTemplate.match( + relatedAccountGroupMembershipName + ).membership; + } + /** * Terminate the gRPC channel and close the client. * diff --git a/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client_config.json b/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client_config.json index ec264c59f16..66fe297cf6f 100644 --- a/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client_config.json +++ b/packages/google-cloud-recaptchaenterprise/src/v1/recaptcha_enterprise_service_client_config.json @@ -62,6 +62,18 @@ "GetMetrics": { "retry_codes_name": "non_idempotent", "retry_params_name": "default" + }, + "ListRelatedAccountGroups": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "ListRelatedAccountGroupMemberships": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" + }, + "SearchRelatedAccountGroupMemberships": { + "retry_codes_name": "non_idempotent", + "retry_params_name": "default" } } } diff --git a/packages/google-cloud-recaptchaenterprise/src/v1beta1/recaptcha_enterprise_service_v1_beta1_client.ts b/packages/google-cloud-recaptchaenterprise/src/v1beta1/recaptcha_enterprise_service_v1_beta1_client.ts index 886beb80ec4..23abb64c4ca 100644 --- a/packages/google-cloud-recaptchaenterprise/src/v1beta1/recaptcha_enterprise_service_v1_beta1_client.ts +++ b/packages/google-cloud-recaptchaenterprise/src/v1beta1/recaptcha_enterprise_service_v1_beta1_client.ts @@ -1064,7 +1064,8 @@ export class RecaptchaEnterpriseServiceV1Beta1Client { gax.routingHeader.fromParams({ parent: request.parent || '', }); - const callSettings = new gax.CallSettings(options); + const defaultCallSettings = this._defaults['listKeys']; + const callSettings = defaultCallSettings.merge(options); this.initialize(); return this.descriptors.page.listKeys.createStream( this.innerApiCalls.listKeys as gax.GaxCall, @@ -1117,7 +1118,8 @@ export class RecaptchaEnterpriseServiceV1Beta1Client { parent: request.parent || '', }); options = options || {}; - const callSettings = new gax.CallSettings(options); + const defaultCallSettings = this._defaults['listKeys']; + const callSettings = defaultCallSettings.merge(options); this.initialize(); return this.descriptors.page.listKeys.asyncIterate( this.innerApiCalls['listKeys'] as GaxCall, diff --git a/packages/google-cloud-recaptchaenterprise/test/gapic_recaptcha_enterprise_service_v1.ts b/packages/google-cloud-recaptchaenterprise/test/gapic_recaptcha_enterprise_service_v1.ts index e2f0967740f..38bb157033c 100644 --- a/packages/google-cloud-recaptchaenterprise/test/gapic_recaptcha_enterprise_service_v1.ts +++ b/packages/google-cloud-recaptchaenterprise/test/gapic_recaptcha_enterprise_service_v1.ts @@ -1477,6 +1477,1078 @@ describe('v1.RecaptchaEnterpriseServiceClient', () => { }); }); + describe('listRelatedAccountGroups', () => { + it('invokes listRelatedAccountGroups without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + ]; + client.innerApiCalls.listRelatedAccountGroups = + stubSimpleCall(expectedResponse); + const [response] = await client.listRelatedAccountGroups(request); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRelatedAccountGroups as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRelatedAccountGroups without error using callback', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + ]; + client.innerApiCalls.listRelatedAccountGroups = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listRelatedAccountGroups( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[] + | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRelatedAccountGroups as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes listRelatedAccountGroups with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listRelatedAccountGroups = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.listRelatedAccountGroups(request), + expectedError + ); + assert( + (client.innerApiCalls.listRelatedAccountGroups as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRelatedAccountGroupsStream without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + ]; + client.descriptors.page.listRelatedAccountGroups.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listRelatedAccountGroupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + ( + client.descriptors.page.listRelatedAccountGroups + .createStream as SinonStub + ) + .getCall(0) + .calledWith(client.innerApiCalls.listRelatedAccountGroups, request) + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroups + .createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('invokes listRelatedAccountGroupsStream with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRelatedAccountGroups.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listRelatedAccountGroupsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + ( + client.descriptors.page.listRelatedAccountGroups + .createStream as SinonStub + ) + .getCall(0) + .calledWith(client.innerApiCalls.listRelatedAccountGroups, request) + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroups + .createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRelatedAccountGroups without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroup() + ), + ]; + client.descriptors.page.listRelatedAccountGroups.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[] = + []; + const iterable = client.listRelatedAccountGroupsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listRelatedAccountGroups + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroups + .asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRelatedAccountGroups with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRelatedAccountGroups.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listRelatedAccountGroupsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroup[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listRelatedAccountGroups + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroups + .asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + }); + + describe('listRelatedAccountGroupMemberships', () => { + it('invokes listRelatedAccountGroupMemberships without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.innerApiCalls.listRelatedAccountGroupMemberships = + stubSimpleCall(expectedResponse); + const [response] = await client.listRelatedAccountGroupMemberships( + request + ); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRelatedAccountGroupMemberships as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRelatedAccountGroupMemberships without error using callback', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.innerApiCalls.listRelatedAccountGroupMemberships = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.listRelatedAccountGroupMemberships( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[] + | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.listRelatedAccountGroupMemberships as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes listRelatedAccountGroupMemberships with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.listRelatedAccountGroupMemberships = stubSimpleCall( + undefined, + expectedError + ); + await assert.rejects( + client.listRelatedAccountGroupMemberships(request), + expectedError + ); + assert( + (client.innerApiCalls.listRelatedAccountGroupMemberships as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes listRelatedAccountGroupMembershipsStream without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.descriptors.page.listRelatedAccountGroupMemberships.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.listRelatedAccountGroupMembershipsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .createStream as SinonStub + ) + .getCall(0) + .calledWith( + client.innerApiCalls.listRelatedAccountGroupMemberships, + request + ) + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('invokes listRelatedAccountGroupMembershipsStream with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRelatedAccountGroupMemberships.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.listRelatedAccountGroupMembershipsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .createStream as SinonStub + ) + .getCall(0) + .calledWith( + client.innerApiCalls.listRelatedAccountGroupMemberships, + request + ) + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRelatedAccountGroupMemberships without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.descriptors.page.listRelatedAccountGroupMemberships.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[] = + []; + const iterable = client.listRelatedAccountGroupMembershipsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with listRelatedAccountGroupMemberships with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.ListRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.listRelatedAccountGroupMemberships.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = client.listRelatedAccountGroupMembershipsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert.strictEqual( + ( + client.descriptors.page.listRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + }); + + describe('searchRelatedAccountGroupMemberships', () => { + it('invokes searchRelatedAccountGroupMemberships without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.innerApiCalls.searchRelatedAccountGroupMemberships = + stubSimpleCall(expectedResponse); + const [response] = await client.searchRelatedAccountGroupMemberships( + request + ); + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.searchRelatedAccountGroupMemberships as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes searchRelatedAccountGroupMemberships without error using callback', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.innerApiCalls.searchRelatedAccountGroupMemberships = + stubSimpleCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.searchRelatedAccountGroupMemberships( + request, + ( + err?: Error | null, + result?: + | protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[] + | null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + } + ); + }); + const response = await promise; + assert.deepStrictEqual(response, expectedResponse); + assert( + (client.innerApiCalls.searchRelatedAccountGroupMemberships as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions /*, callback defined above */) + ); + }); + + it('invokes searchRelatedAccountGroupMemberships with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedOptions = { + otherArgs: { + headers: { + 'x-goog-request-params': expectedHeaderRequestParams, + }, + }, + }; + const expectedError = new Error('expected'); + client.innerApiCalls.searchRelatedAccountGroupMemberships = + stubSimpleCall(undefined, expectedError); + await assert.rejects( + client.searchRelatedAccountGroupMemberships(request), + expectedError + ); + assert( + (client.innerApiCalls.searchRelatedAccountGroupMemberships as SinonStub) + .getCall(0) + .calledWith(request, expectedOptions, undefined) + ); + }); + + it('invokes searchRelatedAccountGroupMembershipsStream without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.descriptors.page.searchRelatedAccountGroupMemberships.createStream = + stubPageStreamingCall(expectedResponse); + const stream = client.searchRelatedAccountGroupMembershipsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + const responses = await promise; + assert.deepStrictEqual(responses, expectedResponse); + assert( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .createStream as SinonStub + ) + .getCall(0) + .calledWith( + client.innerApiCalls.searchRelatedAccountGroupMemberships, + request + ) + ); + assert.strictEqual( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('invokes searchRelatedAccountGroupMembershipsStream with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.searchRelatedAccountGroupMemberships.createStream = + stubPageStreamingCall(undefined, expectedError); + const stream = client.searchRelatedAccountGroupMembershipsStream(request); + const promise = new Promise((resolve, reject) => { + const responses: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership[] = + []; + stream.on( + 'data', + ( + response: protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership + ) => { + responses.push(response); + } + ); + stream.on('end', () => { + resolve(responses); + }); + stream.on('error', (err: Error) => { + reject(err); + }); + }); + await assert.rejects(promise, expectedError); + assert( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .createStream as SinonStub + ) + .getCall(0) + .calledWith( + client.innerApiCalls.searchRelatedAccountGroupMemberships, + request + ) + ); + assert.strictEqual( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .createStream as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with searchRelatedAccountGroupMemberships without error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedResponse = [ + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.RelatedAccountGroupMembership() + ), + ]; + client.descriptors.page.searchRelatedAccountGroupMemberships.asyncIterate = + stubAsyncIterationCall(expectedResponse); + const responses: protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[] = + []; + const iterable = + client.searchRelatedAccountGroupMembershipsAsync(request); + for await (const resource of iterable) { + responses.push(resource!); + } + assert.deepStrictEqual(responses, expectedResponse); + assert.deepStrictEqual( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert.strictEqual( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + + it('uses async iteration with searchRelatedAccountGroupMemberships with error', async () => { + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.recaptchaenterprise.v1.SearchRelatedAccountGroupMembershipsRequest() + ); + request.parent = ''; + const expectedHeaderRequestParams = 'parent='; + const expectedError = new Error('expected'); + client.descriptors.page.searchRelatedAccountGroupMemberships.asyncIterate = + stubAsyncIterationCall(undefined, expectedError); + const iterable = + client.searchRelatedAccountGroupMembershipsAsync(request); + await assert.rejects(async () => { + const responses: protos.google.cloud.recaptchaenterprise.v1.IRelatedAccountGroupMembership[] = + []; + for await (const resource of iterable) { + responses.push(resource!); + } + }); + assert.deepStrictEqual( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[1], + request + ); + assert.strictEqual( + ( + client.descriptors.page.searchRelatedAccountGroupMemberships + .asyncIterate as SinonStub + ).getCall(0).args[2].otherArgs.headers['x-goog-request-params'], + expectedHeaderRequestParams + ); + }); + }); + describe('Path templates', () => { describe('assessment', () => { const fakePath = '/rendered/path/assessment'; @@ -1674,5 +2746,152 @@ describe('v1.RecaptchaEnterpriseServiceClient', () => { ); }); }); + + describe('relatedAccountGroup', () => { + const fakePath = '/rendered/path/relatedAccountGroup'; + const expectedParameters = { + project: 'projectValue', + relatedaccountgroup: 'relatedaccountgroupValue', + }; + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + client.pathTemplates.relatedAccountGroupPathTemplate.render = sinon + .stub() + .returns(fakePath); + client.pathTemplates.relatedAccountGroupPathTemplate.match = sinon + .stub() + .returns(expectedParameters); + + it('relatedAccountGroupPath', () => { + const result = client.relatedAccountGroupPath( + 'projectValue', + 'relatedaccountgroupValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.relatedAccountGroupPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromRelatedAccountGroupName', () => { + const result = client.matchProjectFromRelatedAccountGroupName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + ( + client.pathTemplates.relatedAccountGroupPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRelatedaccountgroupFromRelatedAccountGroupName', () => { + const result = + client.matchRelatedaccountgroupFromRelatedAccountGroupName(fakePath); + assert.strictEqual(result, 'relatedaccountgroupValue'); + assert( + ( + client.pathTemplates.relatedAccountGroupPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); + + describe('relatedAccountGroupMembership', () => { + const fakePath = '/rendered/path/relatedAccountGroupMembership'; + const expectedParameters = { + project: 'projectValue', + relatedaccountgroup: 'relatedaccountgroupValue', + membership: 'membershipValue', + }; + const client = + new recaptchaenterpriseserviceModule.v1.RecaptchaEnterpriseServiceClient( + { + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + } + ); + client.initialize(); + client.pathTemplates.relatedAccountGroupMembershipPathTemplate.render = + sinon.stub().returns(fakePath); + client.pathTemplates.relatedAccountGroupMembershipPathTemplate.match = + sinon.stub().returns(expectedParameters); + + it('relatedAccountGroupMembershipPath', () => { + const result = client.relatedAccountGroupMembershipPath( + 'projectValue', + 'relatedaccountgroupValue', + 'membershipValue' + ); + assert.strictEqual(result, fakePath); + assert( + ( + client.pathTemplates.relatedAccountGroupMembershipPathTemplate + .render as SinonStub + ) + .getCall(-1) + .calledWith(expectedParameters) + ); + }); + + it('matchProjectFromRelatedAccountGroupMembershipName', () => { + const result = + client.matchProjectFromRelatedAccountGroupMembershipName(fakePath); + assert.strictEqual(result, 'projectValue'); + assert( + ( + client.pathTemplates.relatedAccountGroupMembershipPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchRelatedaccountgroupFromRelatedAccountGroupMembershipName', () => { + const result = + client.matchRelatedaccountgroupFromRelatedAccountGroupMembershipName( + fakePath + ); + assert.strictEqual(result, 'relatedaccountgroupValue'); + assert( + ( + client.pathTemplates.relatedAccountGroupMembershipPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + + it('matchMembershipFromRelatedAccountGroupMembershipName', () => { + const result = + client.matchMembershipFromRelatedAccountGroupMembershipName(fakePath); + assert.strictEqual(result, 'membershipValue'); + assert( + ( + client.pathTemplates.relatedAccountGroupMembershipPathTemplate + .match as SinonStub + ) + .getCall(-1) + .calledWith(fakePath) + ); + }); + }); }); });