// @generated by protoc-gen-es v1.7.2 with parameter "target=ts"
// @generated from file flyteidl/admin/project_domain_attributes.proto (package flyteidl.admin, syntax proto3)
/* eslint-disable */
// @ts-nocheck

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

/**
 * Defines a set of custom matching attributes which defines resource defaults for a project and domain.
 * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributes
 */
export class ProjectDomainAttributes extends Message<ProjectDomainAttributes> {
  /**
   * Unique project id for which this set of attributes will be applied.
   *
   * @generated from field: string project = 1;
   */
  project = "";

  /**
   * Unique domain id for which this set of attributes will be applied.
   *
   * @generated from field: string domain = 2;
   */
  domain = "";

  /**
   * @generated from field: flyteidl.admin.MatchingAttributes matching_attributes = 3;
   */
  matchingAttributes?: MatchingAttributes;

  /**
   * Optional, org key applied to the attributes.
   *
   * @generated from field: string org = 4;
   */
  org = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "flyteidl.admin.ProjectDomainAttributes";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "domain", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "matching_attributes", kind: "message", T: MatchingAttributes },
    { no: 4, name: "org", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * Sets custom attributes for a project-domain combination.
 * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributesUpdateRequest
 */
export class ProjectDomainAttributesUpdateRequest extends Message<ProjectDomainAttributesUpdateRequest> {
  /**
   * +required
   *
   * @generated from field: flyteidl.admin.ProjectDomainAttributes attributes = 1;
   */
  attributes?: ProjectDomainAttributes;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "flyteidl.admin.ProjectDomainAttributesUpdateRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "attributes", kind: "message", T: ProjectDomainAttributes },
  ]);

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

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

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

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

/**
 * Purposefully empty, may be populated in the future.
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributesUpdateResponse
 */
export class ProjectDomainAttributesUpdateResponse extends Message<ProjectDomainAttributesUpdateResponse> {
  constructor(data?: PartialMessage<ProjectDomainAttributesUpdateResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

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

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

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

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

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

/**
 * Request to get an individual project domain attribute override.
 * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributesGetRequest
 */
export class ProjectDomainAttributesGetRequest extends Message<ProjectDomainAttributesGetRequest> {
  /**
   * Unique project id which this set of attributes references.
   * +required
   *
   * @generated from field: string project = 1;
   */
  project = "";

  /**
   * Unique domain id which this set of attributes references.
   * +required
   *
   * @generated from field: string domain = 2;
   */
  domain = "";

  /**
   * Which type of matchable attributes to return.
   * +required
   *
   * @generated from field: flyteidl.admin.MatchableResource resource_type = 3;
   */
  resourceType = MatchableResource.TASK_RESOURCE;

  /**
   * Optional, org key applied to the attributes.
   *
   * @generated from field: string org = 4;
   */
  org = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "flyteidl.admin.ProjectDomainAttributesGetRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "domain", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "resource_type", kind: "enum", T: proto3.getEnumType(MatchableResource) },
    { no: 4, name: "org", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * Response to get an individual project domain attribute override.
 * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributesGetResponse
 */
export class ProjectDomainAttributesGetResponse extends Message<ProjectDomainAttributesGetResponse> {
  /**
   * @generated from field: flyteidl.admin.ProjectDomainAttributes attributes = 1;
   */
  attributes?: ProjectDomainAttributes;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "flyteidl.admin.ProjectDomainAttributesGetResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "attributes", kind: "message", T: ProjectDomainAttributes },
  ]);

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

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

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

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

/**
 * Request to delete a set matchable project domain attribute override.
 * For more info on matchable attributes, see :ref:`ref_flyteidl.admin.MatchableAttributesConfiguration`
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributesDeleteRequest
 */
export class ProjectDomainAttributesDeleteRequest extends Message<ProjectDomainAttributesDeleteRequest> {
  /**
   * Unique project id which this set of attributes references.
   * +required
   *
   * @generated from field: string project = 1;
   */
  project = "";

  /**
   * Unique domain id which this set of attributes references.
   * +required
   *
   * @generated from field: string domain = 2;
   */
  domain = "";

  /**
   * Which type of matchable attributes to delete.
   * +required
   *
   * @generated from field: flyteidl.admin.MatchableResource resource_type = 3;
   */
  resourceType = MatchableResource.TASK_RESOURCE;

  /**
   * Optional, org key applied to the attributes.
   *
   * @generated from field: string org = 4;
   */
  org = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "flyteidl.admin.ProjectDomainAttributesDeleteRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "project", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "domain", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "resource_type", kind: "enum", T: proto3.getEnumType(MatchableResource) },
    { no: 4, name: "org", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * Purposefully empty, may be populated in the future.
 *
 * @generated from message flyteidl.admin.ProjectDomainAttributesDeleteResponse
 */
export class ProjectDomainAttributesDeleteResponse extends Message<ProjectDomainAttributesDeleteResponse> {
  constructor(data?: PartialMessage<ProjectDomainAttributesDeleteResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

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

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

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

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

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

