# Path: google/cloud/iot_v1/types/device_manager.py
# class CreateDeviceRegistryRequest(proto.Message):
# class GetDeviceRegistryRequest(proto.Message):
# class DeleteDeviceRegistryRequest(proto.Message):
# class UpdateDeviceRegistryRequest(proto.Message):
# class ListDeviceRegistriesRequest(proto.Message):
# class ListDeviceRegistriesResponse(proto.Message):
# class CreateDeviceRequest(proto.Message):
# class GetDeviceRequest(proto.Message):
# class UpdateDeviceRequest(proto.Message):
# class DeleteDeviceRequest(proto.Message):
# class ListDevicesRequest(proto.Message):
# class GatewayListOptions(proto.Message):
# class ListDevicesResponse(proto.Message):
# class ModifyCloudToDeviceConfigRequest(proto.Message):
# class ListDeviceConfigVersionsRequest(proto.Message):
# class ListDeviceConfigVersionsResponse(proto.Message):
# class ListDeviceStatesRequest(proto.Message):
# class ListDeviceStatesResponse(proto.Message):
# class SendCommandToDeviceRequest(proto.Message):
# class SendCommandToDeviceResponse(proto.Message):
# class BindDeviceToGatewayRequest(proto.Message):
# class BindDeviceToGatewayResponse(proto.Message):
# class UnbindDeviceFromGatewayRequest(proto.Message):
# class UnbindDeviceFromGatewayResponse(proto.Message):
#     def raw_page(self):
#     def raw_page(self):
# 
# Path: google/cloud/iot_v1/types/resources.py
# class MqttState(proto.Enum):
# class HttpState(proto.Enum):
# class LogLevel(proto.Enum):
# class GatewayType(proto.Enum):
# class GatewayAuthMethod(proto.Enum):
# class PublicKeyCertificateFormat(proto.Enum):
# class PublicKeyFormat(proto.Enum):
# class Device(proto.Message):
# class GatewayConfig(proto.Message):
# class DeviceRegistry(proto.Message):
# class MqttConfig(proto.Message):
# class HttpConfig(proto.Message):
# class EventNotificationConfig(proto.Message):
# class StateNotificationConfig(proto.Message):
# class RegistryCredential(proto.Message):
# class X509CertificateDetails(proto.Message):
# class PublicKeyCertificate(proto.Message):
# class DeviceCredential(proto.Message):
# class PublicKeyCredential(proto.Message):
# class DeviceConfig(proto.Message):
# class DeviceState(proto.Message):
#     MQTT_STATE_UNSPECIFIED = 0
#     MQTT_ENABLED = 1
#     MQTT_DISABLED = 2
#     HTTP_STATE_UNSPECIFIED = 0
#     HTTP_ENABLED = 1
#     HTTP_DISABLED = 2
#     LOG_LEVEL_UNSPECIFIED = 0
#     NONE = 10
#     ERROR = 20
#     INFO = 30
#     DEBUG = 40
#     GATEWAY_TYPE_UNSPECIFIED = 0
#     GATEWAY = 1
#     NON_GATEWAY = 2
#     GATEWAY_AUTH_METHOD_UNSPECIFIED = 0
#     ASSOCIATION_ONLY = 1
#     DEVICE_AUTH_TOKEN_ONLY = 2
#     ASSOCIATION_AND_DEVICE_AUTH_TOKEN = 3
#     UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT = 0
#     X509_CERTIFICATE_PEM = 1
#     UNSPECIFIED_PUBLIC_KEY_FORMAT = 0
#     RSA_PEM = 3
#     RSA_X509_PEM = 1
#     ES256_PEM = 2
#     ES256_X509_PEM = 4


from typing import (
    Any,
    AsyncIterator,
    Awaitable,
    Callable,
    Sequence,
    Tuple,
    Optional,
    Iterator,
)
from google.cloud.iot_v1.types import device_manager
from google.cloud.iot_v1.types import resources
        metadata: Sequence[Tuple[str, str]] = ()
    ):
        """Instantiate the pager.

        Args:
            method (Callable): The method that was originally called, and
                which instantiated this pager.
            request (google.cloud.iot_v1.types.ListDevicesRequest):
                The initial request object.
            response (google.cloud.iot_v1.types.ListDevicesResponse):
                The initial response object.
            metadata (Sequence[Tuple[str, str]]): Strings which should be
                sent along with the request as metadata.
        """
        self._method = method
        self._request = device_manager.ListDevicesRequest(request)
        self._response = response
        self._metadata = metadata

    def __getattr__(self, name: str) -> Any:
        return getattr(self._response, name)

    @property
    def pages(self) -> Iterator[device_manager.ListDevicesResponse]:
        yield self._response
        while self._response.next_page_token:
            self._request.page_token = self._response.next_page_token
            self._response = self._method(self._request, metadata=self._metadata)
            yield self._response


# Path: google/cloud/iot_v1/types/device_manager.py
# class CreateDeviceRegistryRequest(proto.Message):
# class GetDeviceRegistryRequest(proto.Message):
# class DeleteDeviceRegistryRequest(proto.Message):
# class UpdateDeviceRegistryRequest(proto.Message):
# class ListDeviceRegistriesRequest(proto.Message):
# class ListDeviceRegistriesResponse(proto.Message):
# class CreateDeviceRequest(proto.Message):
# class GetDeviceRequest(proto.Message):
# class UpdateDeviceRequest(proto.Message):
# class DeleteDeviceRequest(proto.Message):
# class ListDevicesRequest(proto.Message):
# class GatewayListOptions(proto.Message):
# class ListDevicesResponse(proto.Message):
# class ModifyCloudToDeviceConfigRequest(proto.Message):
# class ListDeviceConfigVersionsRequest(proto.Message):
# class ListDeviceConfigVersionsResponse(proto.Message):
# class ListDeviceStatesRequest(proto.Message):
# class ListDeviceStatesResponse(proto.Message):
# class SendCommandToDeviceRequest(proto.Message):
# class SendCommandToDeviceResponse(proto.Message):
# class BindDeviceToGatewayRequest(proto.Message):
# class BindDeviceToGatewayResponse(proto.Message):
# class UnbindDeviceFromGatewayRequest(proto.Message):
# class UnbindDeviceFromGatewayResponse(proto.Message):
#     def raw_page(self):
#     def raw_page(self):
# 
# Path: google/cloud/iot_v1/types/resources.py
# class MqttState(proto.Enum):
# class HttpState(proto.Enum):
# class LogLevel(proto.Enum):
# class GatewayType(proto.Enum):
# class GatewayAuthMethod(proto.Enum):
# class PublicKeyCertificateFormat(proto.Enum):
# class PublicKeyFormat(proto.Enum):
# class Device(proto.Message):
# class GatewayConfig(proto.Message):
# class DeviceRegistry(proto.Message):
# class MqttConfig(proto.Message):
# class HttpConfig(proto.Message):
# class EventNotificationConfig(proto.Message):
# class StateNotificationConfig(proto.Message):
# class RegistryCredential(proto.Message):
# class X509CertificateDetails(proto.Message):
# class PublicKeyCertificate(proto.Message):
# class DeviceCredential(proto.Message):
# class PublicKeyCredential(proto.Message):
# class DeviceConfig(proto.Message):
# class DeviceState(proto.Message):
#     MQTT_STATE_UNSPECIFIED = 0
#     MQTT_ENABLED = 1
#     MQTT_DISABLED = 2
#     HTTP_STATE_UNSPECIFIED = 0
#     HTTP_ENABLED = 1
#     HTTP_DISABLED = 2
#     LOG_LEVEL_UNSPECIFIED = 0
#     NONE = 10
#     ERROR = 20
#     INFO = 30
#     DEBUG = 40
#     GATEWAY_TYPE_UNSPECIFIED = 0
#     GATEWAY = 1
#     NON_GATEWAY = 2
#     GATEWAY_AUTH_METHOD_UNSPECIFIED = 0
#     ASSOCIATION_ONLY = 1
#     DEVICE_AUTH_TOKEN_ONLY = 2
#     ASSOCIATION_AND_DEVICE_AUTH_TOKEN = 3
#     UNSPECIFIED_PUBLIC_KEY_CERTIFICATE_FORMAT = 0
#     X509_CERTIFICATE_PEM = 1
#     UNSPECIFIED_PUBLIC_KEY_FORMAT = 0
#     RSA_PEM = 3
#     RSA_X509_PEM = 1
#     ES256_PEM = 2
#     ES256_X509_PEM = 4


# Path: google/cloud/iot_v1/services/device_manager/pagers.py
from typing import (
    Any,
    AsyncIterator,
    Awaitable,
    Callable,
    Sequence,
    Tuple,
    Optional,
    Iterator,
)
from google.cloud.iot_v1.types import device_manager
from google.cloud.iot_v1.types import resources

        metadata: Sequence[Tuple[str, str]] = ()
    ):
        """Instantiate the pager.

        Args:
            method (Callable): The method that was originally called, and
                which instantiated this pager.
            request (google.cloud.iot_v1.types.ListDevicesRequest):
                The initial request object.
            response (google.cloud.iot_v1.types.ListDevicesResponse):
                The initial response object.
            metadata (Sequence[Tuple[str, str]]): Strings which should be
                sent along with the request as metadata.
        """
        self._method = method
        self._request = device_manager.ListDevicesRequest(request)
        self._response = response
        self._metadata = metadata

    def __getattr__(self, name: str) -> Any:
        return getattr(self._response, name)

    @property
    def pages(self) -> Iterator[device_manager.ListDevicesResponse]:
        yield self._response
        while self._response.next_page_token:
            self._request.page_token = self._response.next_page_token
            self._response = self._method(self._request, metadata=self._metadata)
            yield self._response


    def __iter__(self) -> Iterator[resources.Device]: