// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file user-attributes.proto (package api, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import { RequestProjectHeader } from "./shared_pb.js";

/**
 * @generated from message api.UserAttribute
 */
export class UserAttribute extends Message<UserAttribute> {
  /**
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * @generated from field: string UserID = 2;
   */
  UserID = "";

  /**
   * @generated from field: string PartnerID = 3;
   */
  PartnerID = "";

  /**
   * @generated from field: repeated api.RestrictionActorIDs RestrictionActorIDs = 4;
   */
  RestrictionActorIDs: RestrictionActorIDs[] = [];

  constructor(data?: PartialMessage<UserAttribute>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.UserAttribute";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ProjectID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "UserID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "PartnerID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "RestrictionActorIDs", kind: "message", T: RestrictionActorIDs, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UserAttribute {
    return new UserAttribute().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UserAttribute {
    return new UserAttribute().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UserAttribute {
    return new UserAttribute().fromJsonString(jsonString, options);
  }

  static equals(a: UserAttribute | PlainMessage<UserAttribute> | undefined, b: UserAttribute | PlainMessage<UserAttribute> | undefined): boolean {
    return proto3.util.equals(UserAttribute, a, b);
  }
}

/**
 * @generated from message api.RestrictionActorIDs
 */
export class RestrictionActorIDs extends Message<RestrictionActorIDs> {
  /**
   * @generated from field: string RestrictionID = 1;
   */
  RestrictionID = "";

  /**
   * @generated from field: repeated string ActorIDs = 2;
   */
  ActorIDs: string[] = [];

  constructor(data?: PartialMessage<RestrictionActorIDs>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.RestrictionActorIDs";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "RestrictionID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ActorIDs", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RestrictionActorIDs {
    return new RestrictionActorIDs().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RestrictionActorIDs {
    return new RestrictionActorIDs().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RestrictionActorIDs {
    return new RestrictionActorIDs().fromJsonString(jsonString, options);
  }

  static equals(a: RestrictionActorIDs | PlainMessage<RestrictionActorIDs> | undefined, b: RestrictionActorIDs | PlainMessage<RestrictionActorIDs> | undefined): boolean {
    return proto3.util.equals(RestrictionActorIDs, a, b);
  }
}

/**
 * @generated from message api.GetUserAttributesRequest
 */
export class GetUserAttributesRequest extends Message<GetUserAttributesRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string UserID = 2;
   */
  UserID = "";

  constructor(data?: PartialMessage<GetUserAttributesRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.GetUserAttributesRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "UserID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserAttributesRequest {
    return new GetUserAttributesRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserAttributesRequest {
    return new GetUserAttributesRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserAttributesRequest {
    return new GetUserAttributesRequest().fromJsonString(jsonString, options);
  }

  static equals(a: GetUserAttributesRequest | PlainMessage<GetUserAttributesRequest> | undefined, b: GetUserAttributesRequest | PlainMessage<GetUserAttributesRequest> | undefined): boolean {
    return proto3.util.equals(GetUserAttributesRequest, a, b);
  }
}

/**
 * @generated from message api.GetUserAttributesResult
 */
export class GetUserAttributesResult extends Message<GetUserAttributesResult> {
  /**
   * @generated from field: api.UserAttribute UserAttribute = 1;
   */
  UserAttribute?: UserAttribute;

  constructor(data?: PartialMessage<GetUserAttributesResult>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.GetUserAttributesResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "UserAttribute", kind: "message", T: UserAttribute },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserAttributesResult {
    return new GetUserAttributesResult().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserAttributesResult {
    return new GetUserAttributesResult().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserAttributesResult {
    return new GetUserAttributesResult().fromJsonString(jsonString, options);
  }

  static equals(a: GetUserAttributesResult | PlainMessage<GetUserAttributesResult> | undefined, b: GetUserAttributesResult | PlainMessage<GetUserAttributesResult> | undefined): boolean {
    return proto3.util.equals(GetUserAttributesResult, a, b);
  }
}

/**
 * @generated from message api.PutUserAttributesRequest
 */
export class PutUserAttributesRequest extends Message<PutUserAttributesRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string UserID = 2;
   */
  UserID = "";

  /**
   * @generated from field: string PartnerID = 3;
   */
  PartnerID = "";

  /**
   * @generated from field: repeated api.RestrictionActorIDs RestrictionActorIDs = 4;
   */
  RestrictionActorIDs: RestrictionActorIDs[] = [];

  constructor(data?: PartialMessage<PutUserAttributesRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PutUserAttributesRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "UserID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "PartnerID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "RestrictionActorIDs", kind: "message", T: RestrictionActorIDs, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PutUserAttributesRequest {
    return new PutUserAttributesRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PutUserAttributesRequest {
    return new PutUserAttributesRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PutUserAttributesRequest {
    return new PutUserAttributesRequest().fromJsonString(jsonString, options);
  }

  static equals(a: PutUserAttributesRequest | PlainMessage<PutUserAttributesRequest> | undefined, b: PutUserAttributesRequest | PlainMessage<PutUserAttributesRequest> | undefined): boolean {
    return proto3.util.equals(PutUserAttributesRequest, a, b);
  }
}

/**
 * @generated from message api.PutUserAttributesResult
 */
export class PutUserAttributesResult extends Message<PutUserAttributesResult> {
  /**
   * @generated from field: api.UserAttribute UserAttribute = 1;
   */
  UserAttribute?: UserAttribute;

  constructor(data?: PartialMessage<PutUserAttributesResult>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PutUserAttributesResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "UserAttribute", kind: "message", T: UserAttribute },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PutUserAttributesResult {
    return new PutUserAttributesResult().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PutUserAttributesResult {
    return new PutUserAttributesResult().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PutUserAttributesResult {
    return new PutUserAttributesResult().fromJsonString(jsonString, options);
  }

  static equals(a: PutUserAttributesResult | PlainMessage<PutUserAttributesResult> | undefined, b: PutUserAttributesResult | PlainMessage<PutUserAttributesResult> | undefined): boolean {
    return proto3.util.equals(PutUserAttributesResult, a, b);
  }
}

/**
 * @generated from message api.DeleteUserAttributesRequest
 */
export class DeleteUserAttributesRequest extends Message<DeleteUserAttributesRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string UserID = 2;
   */
  UserID = "";

  constructor(data?: PartialMessage<DeleteUserAttributesRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteUserAttributesRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "UserID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteUserAttributesRequest {
    return new DeleteUserAttributesRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteUserAttributesRequest {
    return new DeleteUserAttributesRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteUserAttributesRequest {
    return new DeleteUserAttributesRequest().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteUserAttributesRequest | PlainMessage<DeleteUserAttributesRequest> | undefined, b: DeleteUserAttributesRequest | PlainMessage<DeleteUserAttributesRequest> | undefined): boolean {
    return proto3.util.equals(DeleteUserAttributesRequest, a, b);
  }
}

/**
 * @generated from message api.DeleteUserAttributesResult
 */
export class DeleteUserAttributesResult extends Message<DeleteUserAttributesResult> {
  constructor(data?: PartialMessage<DeleteUserAttributesResult>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteUserAttributesResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteUserAttributesResult {
    return new DeleteUserAttributesResult().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteUserAttributesResult {
    return new DeleteUserAttributesResult().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteUserAttributesResult {
    return new DeleteUserAttributesResult().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteUserAttributesResult | PlainMessage<DeleteUserAttributesResult> | undefined, b: DeleteUserAttributesResult | PlainMessage<DeleteUserAttributesResult> | undefined): boolean {
    return proto3.util.equals(DeleteUserAttributesResult, a, b);
  }
}

/**
 * @generated from message api.ListUserAttributesRequest
 */
export class ListUserAttributesRequest extends Message<ListUserAttributesRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string PartnerID = 2;
   */
  PartnerID = "";

  constructor(data?: PartialMessage<ListUserAttributesRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ListUserAttributesRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "PartnerID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserAttributesRequest {
    return new ListUserAttributesRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserAttributesRequest {
    return new ListUserAttributesRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserAttributesRequest {
    return new ListUserAttributesRequest().fromJsonString(jsonString, options);
  }

  static equals(a: ListUserAttributesRequest | PlainMessage<ListUserAttributesRequest> | undefined, b: ListUserAttributesRequest | PlainMessage<ListUserAttributesRequest> | undefined): boolean {
    return proto3.util.equals(ListUserAttributesRequest, a, b);
  }
}

/**
 * @generated from message api.ListUserAttributesResult
 */
export class ListUserAttributesResult extends Message<ListUserAttributesResult> {
  /**
   * @generated from field: repeated api.UserAttribute UserAttributes = 1;
   */
  UserAttributes: UserAttribute[] = [];

  constructor(data?: PartialMessage<ListUserAttributesResult>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ListUserAttributesResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "UserAttributes", kind: "message", T: UserAttribute, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserAttributesResult {
    return new ListUserAttributesResult().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserAttributesResult {
    return new ListUserAttributesResult().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserAttributesResult {
    return new ListUserAttributesResult().fromJsonString(jsonString, options);
  }

  static equals(a: ListUserAttributesResult | PlainMessage<ListUserAttributesResult> | undefined, b: ListUserAttributesResult | PlainMessage<ListUserAttributesResult> | undefined): boolean {
    return proto3.util.equals(ListUserAttributesResult, a, b);
  }
}

/**
 * @generated from message api.DeleteForProjectUserAttributesRequest
 */
export class DeleteForProjectUserAttributesRequest extends Message<DeleteForProjectUserAttributesRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  constructor(data?: PartialMessage<DeleteForProjectUserAttributesRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteForProjectUserAttributesRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteForProjectUserAttributesRequest {
    return new DeleteForProjectUserAttributesRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteForProjectUserAttributesRequest {
    return new DeleteForProjectUserAttributesRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteForProjectUserAttributesRequest {
    return new DeleteForProjectUserAttributesRequest().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteForProjectUserAttributesRequest | PlainMessage<DeleteForProjectUserAttributesRequest> | undefined, b: DeleteForProjectUserAttributesRequest | PlainMessage<DeleteForProjectUserAttributesRequest> | undefined): boolean {
    return proto3.util.equals(DeleteForProjectUserAttributesRequest, a, b);
  }
}

/**
 * @generated from message api.DeleteForProjectUserAttributesResult
 */
export class DeleteForProjectUserAttributesResult extends Message<DeleteForProjectUserAttributesResult> {
  constructor(data?: PartialMessage<DeleteForProjectUserAttributesResult>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteForProjectUserAttributesResult";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteForProjectUserAttributesResult {
    return new DeleteForProjectUserAttributesResult().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteForProjectUserAttributesResult {
    return new DeleteForProjectUserAttributesResult().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteForProjectUserAttributesResult {
    return new DeleteForProjectUserAttributesResult().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteForProjectUserAttributesResult | PlainMessage<DeleteForProjectUserAttributesResult> | undefined, b: DeleteForProjectUserAttributesResult | PlainMessage<DeleteForProjectUserAttributesResult> | undefined): boolean {
    return proto3.util.equals(DeleteForProjectUserAttributesResult, a, b);
  }
}

