# Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT.

# typed: true
# frozen_string_literal: true


module OpenApiSDK
  module Operations
  

    class PostGpuEventRequestBody < ::OpenApiSDK::Utils::FieldAugmented
      extend T::Sig


      field :event_type, ::OpenApiSDK::Operations::EventType, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('eventType'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::EventType, false) } }

      field :gpu_provider, ::OpenApiSDK::Operations::GpuProvider, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('gpu_provider'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::GpuProvider, false) } }

      field :machine_id, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('machine_id') } }

      field :timestamp, ::String, { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('timestamp') } }

      field :event_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('event_id') } }

      field :gpu_type, T.nilable(::OpenApiSDK::Operations::GpuType), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('gpuType'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::GpuType, true) } }

      field :is_workspace, T.nilable(T::Boolean), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('is_workspace') } }

      field :user_or_org_id, T.nilable(::String), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('user_or_org_id') } }

      field :ws_gpu_type, T.nilable(::OpenApiSDK::Operations::WsGpuType), { 'format_json': { 'letter_case': ::OpenApiSDK::Utils.field_name('wsGpuType'), 'decoder': Utils.enum_from_string(::OpenApiSDK::Operations::WsGpuType, true) } }


      sig { params(event_type: ::OpenApiSDK::Operations::EventType, gpu_provider: ::OpenApiSDK::Operations::GpuProvider, machine_id: ::String, timestamp: ::String, event_id: T.nilable(::String), gpu_type: T.nilable(::OpenApiSDK::Operations::GpuType), is_workspace: T.nilable(T::Boolean), user_or_org_id: T.nilable(::String), ws_gpu_type: T.nilable(::OpenApiSDK::Operations::WsGpuType)).void }
      def initialize(event_type: nil, gpu_provider: nil, machine_id: nil, timestamp: nil, event_id: nil, gpu_type: nil, is_workspace: nil, user_or_org_id: nil, ws_gpu_type: nil)
        @event_type = event_type
        @gpu_provider = gpu_provider
        @machine_id = machine_id
        @timestamp = timestamp
        @event_id = event_id
        @gpu_type = gpu_type
        @is_workspace = is_workspace
        @user_or_org_id = user_or_org_id
        @ws_gpu_type = ws_gpu_type
      end
    end
  end
end