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

import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
import { file_buf_validate_validate } from "../../buf/validate/validate_pb";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file edge/v1/edge_gateway.proto.
 */
export const file_edge_v1_edge_gateway: GenFile = /*@__PURE__*/
  fileDesc("ChplZGdlL3YxL2VkZ2VfZ2F0ZXdheS5wcm90bxIHZWRnZS52MSKmAgoVRXhlY3V0ZUNvbW1hbmRSZXF1ZXN0EiEKEHByb3RvY29sX3ZlcnNpb24YASABKAlCB7pIBHICEAESIgoRZGV2aWNlX3Nlc3Npb25faWQYAiABKAlCB7pIBHICEAESHQoMbWVzc2FnZV90eXBlGAMgASgJQge6SARyAhABEh0KDHRpbWVzdGFtcF9tcxgEIAEoA0IHukgEIgIgABIbCgpyZXF1ZXN0X2lkGAUgASgJQge6SARyAhABEh4KDXBheWxvYWRfYnl0ZXMYBiABKAxCB7pIBHoCEAESHQoMcGF5bG9hZF9oYXNoGAcgASgMQge6SAR6AhABEhoKCXNpZ25hdHVyZRgIIAEoDEIHukgEegIQARIQCgh0cmFjZV9pZBgJIAEoCSKxAQoWRXhlY3V0ZUNvbW1hbmRSZXNwb25zZRIYChBwcm90b2NvbF92ZXJzaW9uGAEgASgJEhIKCnJlcXVlc3RfaWQYAiABKAkSFAoMdGltZXN0YW1wX21zGAMgASgDEhMKC3Jlc3VsdF9jb2RlGAQgASgJEhUKDXBheWxvYWRfYnl0ZXMYBSABKAwSFAoMcGF5bG9hZF9oYXNoGAYgASgMEhEKCXNpZ25hdHVyZRgHIAEoDCKeAgoWU3Vic2NyaWJlRXZlbnRzUmVxdWVzdBIhChBwcm90b2NvbF92ZXJzaW9uGAEgASgJQge6SARyAhABEiIKEWRldmljZV9zZXNzaW9uX2lkGAIgASgJQge6SARyAhABEh0KDG1lc3NhZ2VfdHlwZRgDIAEoCUIHukgEcgIQARIdCgx0aW1lc3RhbXBfbXMYBCABKANCB7pIBCICIAASGwoKcmVxdWVzdF9pZBgFIAEoCUIHukgEcgIQARIdCgxwYXlsb2FkX2hhc2gYBiABKAxCB7pIBHoCEAESGgoJc2lnbmF0dXJlGAcgASgMQge6SAR6AhABEhUKDXBheWxvYWRfYnl0ZXMYCCABKAwSEAoIdHJhY2VfaWQYCSABKAkisAEKDEdhdGV3YXlFdmVudBISCgpldmVudF90eXBlGAEgASgJEhAKCGV2ZW50X2lkGAIgASgJEhQKDHRpbWVzdGFtcF9tcxgDIAEoAxIVCg1wYXlsb2FkX2J5dGVzGAQgASgMEhQKDHBheWxvYWRfaGFzaBgFIAEoDBIRCglzaWduYXR1cmUYBiABKAwSEgoKcmVxdWVzdF9pZBgHIAEoCRIQCgh0cmFjZV9pZBgIIAEoCTKpAQoHR2F0ZXdheRJRCg5FeGVjdXRlQ29tbWFuZBIeLmVkZ2UudjEuRXhlY3V0ZUNvbW1hbmRSZXF1ZXN0Gh8uZWRnZS52MS5FeGVjdXRlQ29tbWFuZFJlc3BvbnNlEksKD1N1YnNjcmliZUV2ZW50cxIfLmVkZ2UudjEuU3Vic2NyaWJlRXZlbnRzUmVxdWVzdBoVLmVkZ2UudjEuR2F0ZXdheUV2ZW50MAFCJVojZ2FsYXh5L2dhdGV3YXkvcHJvdG8vZWRnZS92MTtlZGdldjFiBnByb3RvMw", [file_buf_validate_validate]);

/**
 * @generated from message edge.v1.ExecuteCommandRequest
 */
export type ExecuteCommandRequest = Message<"edge.v1.ExecuteCommandRequest"> & {
  /**
   * protocol_version identifies the request envelope version. The gateway
   * accepts only the literal "v1" after required-field validation succeeds.
   *
   * @generated from field: string protocol_version = 1;
   */
  protocolVersion: string;

  /**
   * @generated from field: string device_session_id = 2;
   */
  deviceSessionId: string;

  /**
   * @generated from field: string message_type = 3;
   */
  messageType: string;

  /**
   * @generated from field: int64 timestamp_ms = 4;
   */
  timestampMs: bigint;

  /**
   * @generated from field: string request_id = 5;
   */
  requestId: string;

  /**
   * @generated from field: bytes payload_bytes = 6;
   */
  payloadBytes: Uint8Array;

  /**
   * payload_hash is the raw 32-byte SHA-256 digest of payload_bytes.
   *
   * @generated from field: bytes payload_hash = 7;
   */
  payloadHash: Uint8Array;

  /**
   * @generated from field: bytes signature = 8;
   */
  signature: Uint8Array;

  /**
   * @generated from field: string trace_id = 9;
   */
  traceId: string;
};

/**
 * Describes the message edge.v1.ExecuteCommandRequest.
 * Use `create(ExecuteCommandRequestSchema)` to create a new message.
 */
export const ExecuteCommandRequestSchema: GenMessage<ExecuteCommandRequest> = /*@__PURE__*/
  messageDesc(file_edge_v1_edge_gateway, 0);

/**
 * @generated from message edge.v1.ExecuteCommandResponse
 */
export type ExecuteCommandResponse = Message<"edge.v1.ExecuteCommandResponse"> & {
  /**
   * @generated from field: string protocol_version = 1;
   */
  protocolVersion: string;

  /**
   * @generated from field: string request_id = 2;
   */
  requestId: string;

  /**
   * @generated from field: int64 timestamp_ms = 3;
   */
  timestampMs: bigint;

  /**
   * @generated from field: string result_code = 4;
   */
  resultCode: string;

  /**
   * @generated from field: bytes payload_bytes = 5;
   */
  payloadBytes: Uint8Array;

  /**
   * @generated from field: bytes payload_hash = 6;
   */
  payloadHash: Uint8Array;

  /**
   * @generated from field: bytes signature = 7;
   */
  signature: Uint8Array;
};

/**
 * Describes the message edge.v1.ExecuteCommandResponse.
 * Use `create(ExecuteCommandResponseSchema)` to create a new message.
 */
export const ExecuteCommandResponseSchema: GenMessage<ExecuteCommandResponse> = /*@__PURE__*/
  messageDesc(file_edge_v1_edge_gateway, 1);

/**
 * @generated from message edge.v1.SubscribeEventsRequest
 */
export type SubscribeEventsRequest = Message<"edge.v1.SubscribeEventsRequest"> & {
  /**
   * protocol_version identifies the request envelope version. The gateway
   * accepts only the literal "v1" after required-field validation succeeds.
   *
   * @generated from field: string protocol_version = 1;
   */
  protocolVersion: string;

  /**
   * @generated from field: string device_session_id = 2;
   */
  deviceSessionId: string;

  /**
   * @generated from field: string message_type = 3;
   */
  messageType: string;

  /**
   * @generated from field: int64 timestamp_ms = 4;
   */
  timestampMs: bigint;

  /**
   * @generated from field: string request_id = 5;
   */
  requestId: string;

  /**
   * payload_hash is the raw 32-byte SHA-256 digest of payload_bytes. Empty
   * payloads must use the SHA-256 digest of the empty byte slice.
   *
   * @generated from field: bytes payload_hash = 6;
   */
  payloadHash: Uint8Array;

  /**
   * @generated from field: bytes signature = 7;
   */
  signature: Uint8Array;

  /**
   * @generated from field: bytes payload_bytes = 8;
   */
  payloadBytes: Uint8Array;

  /**
   * @generated from field: string trace_id = 9;
   */
  traceId: string;
};

/**
 * Describes the message edge.v1.SubscribeEventsRequest.
 * Use `create(SubscribeEventsRequestSchema)` to create a new message.
 */
export const SubscribeEventsRequestSchema: GenMessage<SubscribeEventsRequest> = /*@__PURE__*/
  messageDesc(file_edge_v1_edge_gateway, 2);

/**
 * @generated from message edge.v1.GatewayEvent
 */
export type GatewayEvent = Message<"edge.v1.GatewayEvent"> & {
  /**
   * @generated from field: string event_type = 1;
   */
  eventType: string;

  /**
   * @generated from field: string event_id = 2;
   */
  eventId: string;

  /**
   * @generated from field: int64 timestamp_ms = 3;
   */
  timestampMs: bigint;

  /**
   * @generated from field: bytes payload_bytes = 4;
   */
  payloadBytes: Uint8Array;

  /**
   * @generated from field: bytes payload_hash = 5;
   */
  payloadHash: Uint8Array;

  /**
   * @generated from field: bytes signature = 6;
   */
  signature: Uint8Array;

  /**
   * @generated from field: string request_id = 7;
   */
  requestId: string;

  /**
   * @generated from field: string trace_id = 8;
   */
  traceId: string;
};

/**
 * Describes the message edge.v1.GatewayEvent.
 * Use `create(GatewayEventSchema)` to create a new message.
 */
export const GatewayEventSchema: GenMessage<GatewayEvent> = /*@__PURE__*/
  messageDesc(file_edge_v1_edge_gateway, 3);

/**
 * @generated from service edge.v1.Gateway
 */
export const Gateway: GenService<{
  /**
   * @generated from rpc edge.v1.Gateway.ExecuteCommand
   */
  executeCommand: {
    methodKind: "unary";
    input: typeof ExecuteCommandRequestSchema;
    output: typeof ExecuteCommandResponseSchema;
  },
  /**
   * @generated from rpc edge.v1.Gateway.SubscribeEvents
   */
  subscribeEvents: {
    methodKind: "server_streaming";
    input: typeof SubscribeEventsRequestSchema;
    output: typeof GatewayEventSchema;
  },
}> = /*@__PURE__*/
  serviceDesc(file_edge_v1_edge_gateway, 0);

