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

package com.google.cloud.iot.v1;

public interface DeviceRegistryOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.cloud.iot.v1.DeviceRegistry)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * The identifier of this device registry. For example, `myRegistry`.
   * </pre>
   *
   * <code>string id = 1;</code>
   */
  java.lang.String getId();
  /**
   * <pre>
   * The identifier of this device registry. For example, `myRegistry`.
   * </pre>
   *
   * <code>string id = 1;</code>
   */
  com.google.protobuf.ByteString
      getIdBytes();

  /**
   * <pre>
   * The resource path name. For example,
   * `projects/example-project/locations/us-central1/registries/my-registry`.
   * </pre>
   *
   * <code>string name = 2;</code>
   */
  java.lang.String getName();
  /**
   * <pre>
   * The resource path name. For example,
   * `projects/example-project/locations/us-central1/registries/my-registry`.
   * </pre>
   *
   * <code>string name = 2;</code>
   */
  com.google.protobuf.ByteString
      getNameBytes();

  /**
   * <pre>
   * The configuration for notification of telemetry events received from the
   * device. All telemetry events that were successfully published by the
   * device and acknowledged by Cloud IoT Core are guaranteed to be
   * delivered to Cloud Pub/Sub. If multiple configurations match a message,
   * only the first matching configuration is used. If you try to publish a
   * device telemetry event using MQTT without specifying a Cloud Pub/Sub topic
   * for the device's registry, the connection closes automatically. If you try
   * to do so using an HTTP connection, an error is returned. Up to 10
   * configurations may be provided.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.EventNotificationConfig event_notification_configs = 10;</code>
   */
  java.util.List<com.google.cloud.iot.v1.EventNotificationConfig> 
      getEventNotificationConfigsList();
  /**
   * <pre>
   * The configuration for notification of telemetry events received from the
   * device. All telemetry events that were successfully published by the
   * device and acknowledged by Cloud IoT Core are guaranteed to be
   * delivered to Cloud Pub/Sub. If multiple configurations match a message,
   * only the first matching configuration is used. If you try to publish a
   * device telemetry event using MQTT without specifying a Cloud Pub/Sub topic
   * for the device's registry, the connection closes automatically. If you try
   * to do so using an HTTP connection, an error is returned. Up to 10
   * configurations may be provided.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.EventNotificationConfig event_notification_configs = 10;</code>
   */
  com.google.cloud.iot.v1.EventNotificationConfig getEventNotificationConfigs(int index);
  /**
   * <pre>
   * The configuration for notification of telemetry events received from the
   * device. All telemetry events that were successfully published by the
   * device and acknowledged by Cloud IoT Core are guaranteed to be
   * delivered to Cloud Pub/Sub. If multiple configurations match a message,
   * only the first matching configuration is used. If you try to publish a
   * device telemetry event using MQTT without specifying a Cloud Pub/Sub topic
   * for the device's registry, the connection closes automatically. If you try
   * to do so using an HTTP connection, an error is returned. Up to 10
   * configurations may be provided.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.EventNotificationConfig event_notification_configs = 10;</code>
   */
  int getEventNotificationConfigsCount();
  /**
   * <pre>
   * The configuration for notification of telemetry events received from the
   * device. All telemetry events that were successfully published by the
   * device and acknowledged by Cloud IoT Core are guaranteed to be
   * delivered to Cloud Pub/Sub. If multiple configurations match a message,
   * only the first matching configuration is used. If you try to publish a
   * device telemetry event using MQTT without specifying a Cloud Pub/Sub topic
   * for the device's registry, the connection closes automatically. If you try
   * to do so using an HTTP connection, an error is returned. Up to 10
   * configurations may be provided.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.EventNotificationConfig event_notification_configs = 10;</code>
   */
  java.util.List<? extends com.google.cloud.iot.v1.EventNotificationConfigOrBuilder> 
      getEventNotificationConfigsOrBuilderList();
  /**
   * <pre>
   * The configuration for notification of telemetry events received from the
   * device. All telemetry events that were successfully published by the
   * device and acknowledged by Cloud IoT Core are guaranteed to be
   * delivered to Cloud Pub/Sub. If multiple configurations match a message,
   * only the first matching configuration is used. If you try to publish a
   * device telemetry event using MQTT without specifying a Cloud Pub/Sub topic
   * for the device's registry, the connection closes automatically. If you try
   * to do so using an HTTP connection, an error is returned. Up to 10
   * configurations may be provided.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.EventNotificationConfig event_notification_configs = 10;</code>
   */
  com.google.cloud.iot.v1.EventNotificationConfigOrBuilder getEventNotificationConfigsOrBuilder(
      int index);

  /**
   * <pre>
   * The configuration for notification of new states received from the device.
   * State updates are guaranteed to be stored in the state history, but
   * notifications to Cloud Pub/Sub are not guaranteed. For example, if
   * permissions are misconfigured or the specified topic doesn't exist, no
   * notification will be published but the state will still be stored in Cloud
   * IoT Core.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.StateNotificationConfig state_notification_config = 7;</code>
   */
  boolean hasStateNotificationConfig();
  /**
   * <pre>
   * The configuration for notification of new states received from the device.
   * State updates are guaranteed to be stored in the state history, but
   * notifications to Cloud Pub/Sub are not guaranteed. For example, if
   * permissions are misconfigured or the specified topic doesn't exist, no
   * notification will be published but the state will still be stored in Cloud
   * IoT Core.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.StateNotificationConfig state_notification_config = 7;</code>
   */
  com.google.cloud.iot.v1.StateNotificationConfig getStateNotificationConfig();
  /**
   * <pre>
   * The configuration for notification of new states received from the device.
   * State updates are guaranteed to be stored in the state history, but
   * notifications to Cloud Pub/Sub are not guaranteed. For example, if
   * permissions are misconfigured or the specified topic doesn't exist, no
   * notification will be published but the state will still be stored in Cloud
   * IoT Core.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.StateNotificationConfig state_notification_config = 7;</code>
   */
  com.google.cloud.iot.v1.StateNotificationConfigOrBuilder getStateNotificationConfigOrBuilder();

  /**
   * <pre>
   * The MQTT configuration for this device registry.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.MqttConfig mqtt_config = 4;</code>
   */
  boolean hasMqttConfig();
  /**
   * <pre>
   * The MQTT configuration for this device registry.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.MqttConfig mqtt_config = 4;</code>
   */
  com.google.cloud.iot.v1.MqttConfig getMqttConfig();
  /**
   * <pre>
   * The MQTT configuration for this device registry.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.MqttConfig mqtt_config = 4;</code>
   */
  com.google.cloud.iot.v1.MqttConfigOrBuilder getMqttConfigOrBuilder();

  /**
   * <pre>
   * The DeviceService (HTTP) configuration for this device registry.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.HttpConfig http_config = 9;</code>
   */
  boolean hasHttpConfig();
  /**
   * <pre>
   * The DeviceService (HTTP) configuration for this device registry.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.HttpConfig http_config = 9;</code>
   */
  com.google.cloud.iot.v1.HttpConfig getHttpConfig();
  /**
   * <pre>
   * The DeviceService (HTTP) configuration for this device registry.
   * </pre>
   *
   * <code>.google.cloud.iot.v1.HttpConfig http_config = 9;</code>
   */
  com.google.cloud.iot.v1.HttpConfigOrBuilder getHttpConfigOrBuilder();

  /**
   * <pre>
   * The credentials used to verify the device credentials. No more than 10
   * credentials can be bound to a single registry at a time. The verification
   * process occurs at the time of device creation or update. If this field is
   * empty, no verification is performed. Otherwise, the credentials of a newly
   * created device or added credentials of an updated device should be signed
   * with one of these registry credentials.
   * Note, however, that existing devices will never be affected by
   * modifications to this list of credentials: after a device has been
   * successfully created in a registry, it should be able to connect even if
   * its registry credentials are revoked, deleted, or modified.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.RegistryCredential credentials = 8;</code>
   */
  java.util.List<com.google.cloud.iot.v1.RegistryCredential> 
      getCredentialsList();
  /**
   * <pre>
   * The credentials used to verify the device credentials. No more than 10
   * credentials can be bound to a single registry at a time. The verification
   * process occurs at the time of device creation or update. If this field is
   * empty, no verification is performed. Otherwise, the credentials of a newly
   * created device or added credentials of an updated device should be signed
   * with one of these registry credentials.
   * Note, however, that existing devices will never be affected by
   * modifications to this list of credentials: after a device has been
   * successfully created in a registry, it should be able to connect even if
   * its registry credentials are revoked, deleted, or modified.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.RegistryCredential credentials = 8;</code>
   */
  com.google.cloud.iot.v1.RegistryCredential getCredentials(int index);
  /**
   * <pre>
   * The credentials used to verify the device credentials. No more than 10
   * credentials can be bound to a single registry at a time. The verification
   * process occurs at the time of device creation or update. If this field is
   * empty, no verification is performed. Otherwise, the credentials of a newly
   * created device or added credentials of an updated device should be signed
   * with one of these registry credentials.
   * Note, however, that existing devices will never be affected by
   * modifications to this list of credentials: after a device has been
   * successfully created in a registry, it should be able to connect even if
   * its registry credentials are revoked, deleted, or modified.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.RegistryCredential credentials = 8;</code>
   */
  int getCredentialsCount();
  /**
   * <pre>
   * The credentials used to verify the device credentials. No more than 10
   * credentials can be bound to a single registry at a time. The verification
   * process occurs at the time of device creation or update. If this field is
   * empty, no verification is performed. Otherwise, the credentials of a newly
   * created device or added credentials of an updated device should be signed
   * with one of these registry credentials.
   * Note, however, that existing devices will never be affected by
   * modifications to this list of credentials: after a device has been
   * successfully created in a registry, it should be able to connect even if
   * its registry credentials are revoked, deleted, or modified.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.RegistryCredential credentials = 8;</code>
   */
  java.util.List<? extends com.google.cloud.iot.v1.RegistryCredentialOrBuilder> 
      getCredentialsOrBuilderList();
  /**
   * <pre>
   * The credentials used to verify the device credentials. No more than 10
   * credentials can be bound to a single registry at a time. The verification
   * process occurs at the time of device creation or update. If this field is
   * empty, no verification is performed. Otherwise, the credentials of a newly
   * created device or added credentials of an updated device should be signed
   * with one of these registry credentials.
   * Note, however, that existing devices will never be affected by
   * modifications to this list of credentials: after a device has been
   * successfully created in a registry, it should be able to connect even if
   * its registry credentials are revoked, deleted, or modified.
   * </pre>
   *
   * <code>repeated .google.cloud.iot.v1.RegistryCredential credentials = 8;</code>
   */
  com.google.cloud.iot.v1.RegistryCredentialOrBuilder getCredentialsOrBuilder(
      int index);
}
