// @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
// @generated from file plm/v1/tool.proto (package plm.v1, syntax proto3)
/* eslint-disable */

import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file plm/v1/tool.proto.
 */
export const file_plm_v1_tool: GenFile = /*@__PURE__*/
  fileDesc("ChFwbG0vdjEvdG9vbC5wcm90bxIGcGxtLnYxIowCCgtUb29sTWVzc2FnZRIKCgJpZBgBIAEoCRIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRItCgR0eXBlGAUgASgOMhAucGxtLnYxLlRvb2xUeXBlQg26SArIAQGCAQQQASgKEi0KBWFjdG9yGAYgASgOMhEucGxtLnYxLlRvb2xBY3RvckILukgIyAEBggECEAESKAoKcHJvcGVydGllcxgHIAMoDjIULnBsbS52MS5Ub29sUHJvcGVydHkSIAoIbW9kZWxfaWQYCCABKAlCCbpIBnIEiPEEAUgAiAEBQgsKCV9tb2RlbF9pZCIyCgxUb29sTWVzc2FnZXMSIgoFdG9vbHMYASADKAsyEy5wbG0udjEuVG9vbE1lc3NhZ2UqxQIKCFRvb2xUeXBlEhkKFVRPT0xfVFlQRV9VTlNQRUNJRklFRBAAEhUKEVRPT0xfVFlQRV9DVVRUSU5HEAoSFQoRVE9PTF9UWVBFX1NIQVBJTkcQFBIXChNUT09MX1RZUEVfRkFTVEVOSU5HEB4SFgoSVE9PTF9UWVBFX0dSSVBQSU5HECgSFQoRVE9PTF9UWVBFX1RVUk5JTkcQMhIWChJUT09MX1RZUEVfU1RSSUtJTkcQPBIXChNUT09MX1RZUEVfTUVBU1VSSU5HEEYSFQoRVE9PTF9UWVBFX01BUktJTkcQUBIXChNUT09MX1RZUEVfRklOSVNISU5HEFoSFgoSVE9PTF9UWVBFX0FCUkFTSVZFEGQSFAoQVE9PTF9UWVBFX1NBRkVUWRBuEhkKFVRPT0xfVFlQRV9FTEVDVFJPTklDUxB4KqwBCgxUb29sUHJvcGVydHkSHQoZVE9PTF9QUk9QRVJUWV9VTlNQRUNJRklFRBAAEiMKH1RPT0xfUFJPUEVSVFlfVE9SUVVFX0NPTlRST0xMRUQQARIaChZUT09MX1BST1BFUlRZX0VTRF9TQUZFEAISGwoXVE9PTF9QUk9QRVJUWV9JTlNVTEFURUQQAxIfChtUT09MX1BST1BFUlRZX0NPTExBQk9SQVRJVkUQBCpqCglUb29sQWN0b3ISGgoWVE9PTF9BQ1RPUl9VTlNQRUNJRklFRBAAEhQKEFRPT0xfQUNUT1JfSFVNQU4QARIUChBUT09MX0FDVE9SX1JPQk9UEAISFQoRVE9PTF9BQ1RPUl9IWUJSSUQQA0KMAQoKY29tLnBsbS52MUIJVG9vbFByb3RvUAFaMWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wbG0vdjE7cGxtdjGiAgNQWFiqAg9NZXNzYWdlcy5QbG0uVjHKAgZQbG1cVjHiAhJQbG1cVjFcR1BCTWV0YWRhdGHqAgdQbG06OlYxYgZwcm90bzM", [file_buf_validate_validate, file_validation_v1_predefined_string_rules]);

/**
 * @generated from message plm.v1.ToolMessage
 */
export type ToolMessage = Message<"plm.v1.ToolMessage"> & {
  /**
   * @generated from field: string id = 1;
   */
  id: string;

  /**
   * @generated from field: string name = 2;
   */
  name: string;

  /**
   * @generated from field: string icon = 3;
   */
  icon: string;

  /**
   * @generated from field: string description = 4;
   */
  description: string;

  /**
   * @generated from field: plm.v1.ToolType type = 5;
   */
  type: ToolType;

  /**
   * @generated from field: plm.v1.ToolActor actor = 6;
   */
  actor: ToolActor;

  /**
   * @generated from field: repeated plm.v1.ToolProperty properties = 7;
   */
  properties: ToolProperty[];

  /**
   * @generated from field: optional string model_id = 8;
   */
  modelId?: string;
};

/**
 * Describes the message plm.v1.ToolMessage.
 * Use `create(ToolMessageSchema)` to create a new message.
 */
export const ToolMessageSchema: GenMessage<ToolMessage> = /*@__PURE__*/
  messageDesc(file_plm_v1_tool, 0);

/**
 * @generated from message plm.v1.ToolMessages
 */
export type ToolMessages = Message<"plm.v1.ToolMessages"> & {
  /**
   * @generated from field: repeated plm.v1.ToolMessage tools = 1;
   */
  tools: ToolMessage[];
};

/**
 * Describes the message plm.v1.ToolMessages.
 * Use `create(ToolMessagesSchema)` to create a new message.
 */
export const ToolMessagesSchema: GenMessage<ToolMessages> = /*@__PURE__*/
  messageDesc(file_plm_v1_tool, 1);

/**
 * @generated from enum plm.v1.ToolType
 */
export enum ToolType {
  /**
   * @generated from enum value: TOOL_TYPE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: TOOL_TYPE_CUTTING = 10;
   */
  CUTTING = 10,

  /**
   * @generated from enum value: TOOL_TYPE_SHAPING = 20;
   */
  SHAPING = 20,

  /**
   * @generated from enum value: TOOL_TYPE_FASTENING = 30;
   */
  FASTENING = 30,

  /**
   * @generated from enum value: TOOL_TYPE_GRIPPING = 40;
   */
  GRIPPING = 40,

  /**
   * @generated from enum value: TOOL_TYPE_TURNING = 50;
   */
  TURNING = 50,

  /**
   * @generated from enum value: TOOL_TYPE_STRIKING = 60;
   */
  STRIKING = 60,

  /**
   * @generated from enum value: TOOL_TYPE_MEASURING = 70;
   */
  MEASURING = 70,

  /**
   * @generated from enum value: TOOL_TYPE_MARKING = 80;
   */
  MARKING = 80,

  /**
   * @generated from enum value: TOOL_TYPE_FINISHING = 90;
   */
  FINISHING = 90,

  /**
   * @generated from enum value: TOOL_TYPE_ABRASIVE = 100;
   */
  ABRASIVE = 100,

  /**
   * @generated from enum value: TOOL_TYPE_SAFETY = 110;
   */
  SAFETY = 110,

  /**
   * @generated from enum value: TOOL_TYPE_ELECTRONICS = 120;
   */
  ELECTRONICS = 120,
}

/**
 * Describes the enum plm.v1.ToolType.
 */
export const ToolTypeSchema: GenEnum<ToolType> = /*@__PURE__*/
  enumDesc(file_plm_v1_tool, 0);

/**
 * @generated from enum plm.v1.ToolProperty
 */
export enum ToolProperty {
  /**
   * @generated from enum value: TOOL_PROPERTY_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: TOOL_PROPERTY_TORQUE_CONTROLLED = 1;
   */
  TORQUE_CONTROLLED = 1,

  /**
   * @generated from enum value: TOOL_PROPERTY_ESD_SAFE = 2;
   */
  ESD_SAFE = 2,

  /**
   * @generated from enum value: TOOL_PROPERTY_INSULATED = 3;
   */
  INSULATED = 3,

  /**
   * @generated from enum value: TOOL_PROPERTY_COLLABORATIVE = 4;
   */
  COLLABORATIVE = 4,
}

/**
 * Describes the enum plm.v1.ToolProperty.
 */
export const ToolPropertySchema: GenEnum<ToolProperty> = /*@__PURE__*/
  enumDesc(file_plm_v1_tool, 1);

/**
 * @generated from enum plm.v1.ToolActor
 */
export enum ToolActor {
  /**
   * @generated from enum value: TOOL_ACTOR_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: TOOL_ACTOR_HUMAN = 1;
   */
  HUMAN = 1,

  /**
   * @generated from enum value: TOOL_ACTOR_ROBOT = 2;
   */
  ROBOT = 2,

  /**
   * @generated from enum value: TOOL_ACTOR_HYBRID = 3;
   */
  HYBRID = 3,
}

/**
 * Describes the enum plm.v1.ToolActor.
 */
export const ToolActorSchema: GenEnum<ToolActor> = /*@__PURE__*/
  enumDesc(file_plm_v1_tool, 2);

