# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/iot/v1/resources.proto

require 'google/protobuf'

require 'google/api/resource_pb'
require 'google/protobuf/timestamp_pb'
require 'google/rpc/status_pb'

Google::Protobuf::DescriptorPool.generated_pool.build do
  add_file("google/cloud/iot/v1/resources.proto", :syntax => :proto3) do
    add_message "google.cloud.iot.v1.Device" do
      optional :id, :string, 1
      optional :name, :string, 2
      optional :num_id, :uint64, 3
      repeated :credentials, :message, 12, "google.cloud.iot.v1.DeviceCredential"
      optional :last_heartbeat_time, :message, 7, "google.protobuf.Timestamp"
      optional :last_event_time, :message, 8, "google.protobuf.Timestamp"
      optional :last_state_time, :message, 20, "google.protobuf.Timestamp"
      optional :last_config_ack_time, :message, 14, "google.protobuf.Timestamp"
      optional :last_config_send_time, :message, 18, "google.protobuf.Timestamp"
      optional :blocked, :bool, 19
      optional :last_error_time, :message, 10, "google.protobuf.Timestamp"
      optional :last_error_status, :message, 11, "google.rpc.Status"
      optional :config, :message, 13, "google.cloud.iot.v1.DeviceConfig"
      optional :state, :message, 16, "google.cloud.iot.v1.DeviceState"
      optional :log_level, :enum, 21, "google.cloud.iot.v1.LogLevel"
      map :metadata, :string, :string, 17
      optional :gateway_config, :message, 24, "google.cloud.iot.v1.GatewayConfig"
    end
    add_message "google.cloud.iot.v1.GatewayConfig" do
      optional :gateway_type, :enum, 1, "google.cloud.iot.v1.GatewayType"
      optional :gateway_auth_method, :enum, 2, "google.cloud.iot.v1.GatewayAuthMethod"
      optional :last_accessed_gateway_id, :string, 3
      optional :last_accessed_gateway_time, :message, 4, "google.protobuf.Timestamp"
    end
    add_message "google.cloud.iot.v1.DeviceRegistry" do
      optional :id, :string, 1
      optional :name, :string, 2
      repeated :event_notification_configs, :message, 10, "google.cloud.iot.v1.EventNotificationConfig"
      optional :state_notification_config, :message, 7, "google.cloud.iot.v1.StateNotificationConfig"
      optional :mqtt_config, :message, 4, "google.cloud.iot.v1.MqttConfig"
      optional :http_config, :message, 9, "google.cloud.iot.v1.HttpConfig"
      optional :log_level, :enum, 11, "google.cloud.iot.v1.LogLevel"
      repeated :credentials, :message, 8, "google.cloud.iot.v1.RegistryCredential"
    end
    add_message "google.cloud.iot.v1.MqttConfig" do
      optional :mqtt_enabled_state, :enum, 1, "google.cloud.iot.v1.MqttState"
    end
    add_message "google.cloud.iot.v1.HttpConfig" do
      optional :http_enabled_state, :enum, 1, "google.cloud.iot.v1.HttpState"
    end
    add_message "google.cloud.iot.v1.EventNotificationConfig" do
      optional :subfolder_matches, :string, 2
      optional :pubsub_topic_name, :string, 1
    end
    add_message "google.cloud.iot.v1.StateNotificationConfig" do
      optional :pubsub_topic_name, :string, 1
    end
    add_message "google.cloud.iot.v1.RegistryCredential" do
      oneof :credential do
        optional :public_key_certificate, :message, 1, "google.cloud.iot.v1.PublicKeyCertificate"
      end
    end
    add_message "google.cloud.iot.v1.X509CertificateDetails" do
      optional :issuer, :string, 1
      optional :subject, :string, 2
      optional :start_time, :message, 3, "google.protobuf.Timestamp"
      optional :expiry_time, :message, 4, "google.protobuf.Timestamp"
      optional :signature_algorithm, :string, 5
      optional :public_key_type, :string, 6
    end
    add_message "google.cloud.iot.v1.PublicKeyCertificate" do
      optional :format, :enum, 1, "google.cloud.iot.v1.PublicKeyCertificateFormat"
      optional :certificate, :string, 2
      optional :x509_details, :message, 3, "google.cloud.iot.v1.X509CertificateDetails"
    end
    add_message "google.cloud.iot.v1.DeviceCredential" do
      optional :expiration_time, :message, 6, "google.protobuf.Timestamp"
      oneof :credential do
        optional :public_key, :message, 2, "google.cloud.iot.v1.PublicKeyCredential"
      end
    end
    add_message "google.cloud.iot.v1.PublicKeyCredential" do
      optional :format, :enum, 1, "google.cloud.iot.v1.PublicKeyFormat"
      optional :key, :string, 2
    end
    add_message "google.cloud.iot.v1.DeviceConfig" do
      optional :version, :int64, 1
      optional :cloud_update_time, :message, 2, "google.protobuf.Timestamp"
      optional :device_ack_time, :message, 3, "google.protobuf.Timestamp"
      optional :binary_data, :bytes, 4
    end
    add_message "google.cloud.iot.v1.DeviceState" do
      optional :update_time, :message, 1, "google.protobuf.Timestamp"
      optional :binary_data, :bytes, 2
    end
    add_enum "google.cloud.iot.v1.MqttState" do
      value :MQTT_STATE_UNSPECIFIED, 0
      value :MQTT_ENABLED, 1
      value :MQTT_DISABLED, 2
    end
    add_enum "google.cloud.iot.v1.HttpState" do
      value :HTTP_STATE_UNSPECIFIED, 0
      value :HTTP_ENABLED, 1
      value :HTTP_DISABLED, 2
    end
    add_enum "google.cloud.iot.v1.LogLevel" do
      value :LOG_LEVEL_UNSPECIFIED, 0
      value :NONE, 10
      value :ERROR, 20
      value :INFO, 30
      value :DEBUG, 40
    end
    add_enum "google.cloud.iot.v1.GatewayType" do
      value :GATEWAY_TYPE_UNSPECIFIED, 0
      value :GATEWAY, 1
      value :NON_GATEWAY, 2
    end
    add_enum "google.cloud.iot.v1.GatewayAuthMethod" do
      value :GATEWAY_AUTH_METHOD_UNSPECIFIED, 0
      value :ASSOCIATION_ONLY, 1
      value :DEVICE_AUTH_TOKEN_ONLY, 2
      value :ASSOCIATION_AND_DEVICE_AUTH_TOKEN, 3
    end
    add_enum "google.cloud.iot.v1.PublicKeyCertificateFormat" do
      value :UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT, 0
      value :X509_CERTIFICATE_PEM, 1
    end
    add_enum "google.cloud.iot.v1.PublicKeyFormat" do
      value :UNSPECIFIED_PUBLIC_KEY_FORMAT, 0
      value :RSA_PEM, 3
      value :RSA_X509_PEM, 1
      value :ES256_PEM, 2
      value :ES256_X509_PEM, 4
    end
  end
end

module Google
  module Cloud
    module Iot
      module V1
        Device = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.Device").msgclass
        GatewayConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.GatewayConfig").msgclass
        DeviceRegistry = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.DeviceRegistry").msgclass
        MqttConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.MqttConfig").msgclass
        HttpConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.HttpConfig").msgclass
        EventNotificationConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.EventNotificationConfig").msgclass
        StateNotificationConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.StateNotificationConfig").msgclass
        RegistryCredential = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.RegistryCredential").msgclass
        X509CertificateDetails = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.X509CertificateDetails").msgclass
        PublicKeyCertificate = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.PublicKeyCertificate").msgclass
        DeviceCredential = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.DeviceCredential").msgclass
        PublicKeyCredential = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.PublicKeyCredential").msgclass
        DeviceConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.DeviceConfig").msgclass
        DeviceState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.DeviceState").msgclass
        MqttState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.MqttState").enummodule
        HttpState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.HttpState").enummodule
        LogLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.LogLevel").enummodule
        GatewayType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.GatewayType").enummodule
        GatewayAuthMethod = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.GatewayAuthMethod").enummodule
        PublicKeyCertificateFormat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.PublicKeyCertificateFormat").enummodule
        PublicKeyFormat = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.iot.v1.PublicKeyFormat").enummodule
      end
    end
  end
end