text: # -*- coding: utf-8 -*-
  # Generated by the protocol buffer compiler.  DO NOT EDIT!
  # source: devices.proto
  """Generated protocol buffer code."""
  from google.protobuf.internal import enum_type_wrapper
  from google.protobuf import descriptor as _descriptor
  from google.protobuf import message as _message
  from google.protobuf import reflection as _reflection
  from google.protobuf import symbol_database as _symbol_database
  # @@protoc_insertion_point(imports)
  
  _sym_db = _symbol_database.Default()
  
  
  from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
  
  
  DESCRIPTOR = _descriptor.FileDescriptor(
    name='devices.proto',
    package='pomerium.dashboard',
    syntax='proto3',
    serialized_options=b'Z+github.com/pomerium/pomerium-console/pkg/pb',
    create_key=_descriptor._internal_create_key,
    serialized_pb=b'\n\rdevices.proto\x12\x12pomerium.dashboard\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe8\n\n\x0fWebAuthnOptions\x12]\n\x0b\x61ttestation\x18\x01 \x01(\x0e\x32\x43.pomerium.dashboard.WebAuthnOptions.AttestationConveyancePreferenceH\x00\x88\x01\x01\x12h\n\x17\x61uthenticator_selection\x18\x02 \x01(\x0b\x32\x42.pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteriaH\x01\x88\x01\x01\x12^\n\x13pub_key_cred_params\x18\x03 \x03(\x0b\x32\x41.pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialParameters\x1a\xd4\x03\n\x1e\x41uthenticatorSelectionCriteria\x12\x62\n\x18\x61uthenticator_attachment\x18\x01 \x01(\x0e\x32;.pomerium.dashboard.WebAuthnOptions.AuthenticatorAttachmentH\x00\x88\x01\x01\x12!\n\x14require_resident_key\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x61\n\x18resident_key_requirement\x18\x03 \x01(\x0e\x32:.pomerium.dashboard.WebAuthnOptions.ResidentKeyRequirementH\x02\x88\x01\x01\x12_\n\x11user_verification\x18\x04 \x01(\x0e\x32?.pomerium.dashboard.WebAuthnOptions.UserVerificationRequirementH\x03\x88\x01\x01\x42\x1b\n\x19_authenticator_attachmentB\x17\n\x15_require_resident_keyB\x1b\n\x19_resident_key_requirementB\x14\n\x12_user_verification\x1aw\n\x1dPublicKeyCredentialParameters\x12\x0b\n\x03\x61lg\x18\x01 \x01(\x03\x12I\n\x04type\x18\x02 \x01(\x0e\x32;.pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialType\"U\n\x1f\x41ttestationConveyancePreference\x12\x08\n\x04NONE\x10\x00\x12\x0c\n\x08INDIRECT\x10\x01\x12\n\n\x06\x44IRECT\x10\x02\x12\x0e\n\nENTERPRISE\x10\x03\";\n\x17\x41uthenticatorAttachment\x12\x0c\n\x08PLATFORM\x10\x00\x12\x12\n\x0e\x43ROSS_PLATFORM\x10\x02\")\n\x17PublicKeyCredentialType\x12\x0e\n\nPUBLIC_KEY\x10\x00\"m\n\x16ResidentKeyRequirement\x12\x1c\n\x18RESIDENT_KEY_DISCOURAGED\x10\x00\x12\x1a\n\x16RESIDENT_KEY_PREFERRED\x10\x01\x12\x19\n\x15RESIDENT_KEY_REQUIRED\x10\x02\"\x81\x01\n\x1bUserVerificationRequirement\x12!\n\x1dUSER_VERIFICATION_DISCOURAGED\x10\x00\x12\x1f\n\x1bUSER_VERIFICATION_PREFERRED\x10\x01\x12\x1e\n\x1aUSER_VERIFICATION_REQUIRED\x10\x02\x42\x0e\n\x0c_attestationB\x1a\n\x18_authenticator_selection\"\xc3\x02\n\nDeviceType\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x05 \x01(\t\x12;\n\x08webauthn\x18\x06 \x01(\x0b\x32\'.pomerium.dashboard.DeviceType.WebAuthnH\x00\x1a@\n\x08WebAuthn\x12\x34\n\x07options\x18\x01 \x01(\x0b\x32#.pomerium.dashboard.WebAuthnOptionsB\x0b\n\tspecifier\"\x9d\x03\n\x10\x44\x65viceEnrollment\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x16\n\x0e\x64\x65vice_type_id\x18\x05 \x01(\t\x12\x1c\n\x14\x64\x65vice_credential_id\x18\x06 \x01(\t\x12\x0f\n\x07user_id\x18\x07 \x01(\t\x12/\n\x0b\x61pproved_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1b\n\x13\x61pproved_by_user_id\x18\t \x01(\t\x12/\n\x0b\x65nrolled_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\nuser_agent\x18\x0b \x01(\t\x12\x12\n\nip_address\x18\x0c \x01(\t\"\xc6\x03\n\x10\x44\x65viceCredential\x12\n\n\x02id\x18\x01 \x01(\t\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bmodified_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\ndeleted_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x16\n\x0e\x64\x65vice_type_id\x18\x05 \x01(\t\x12\x1c\n\x14\x64\x65vice_enrollment_id\x18\x06 \x01(\t\x12\x0f\n\x07user_id\x18\x07 \x01(\t\x12\x41\n\x08webauthn\x18\x08 \x01(\x0b\x32-.pomerium.dashboard.DeviceCredential.WebAuthnH\x00\x1a~\n\x08WebAuthn\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x12\n\npublic_key\x18\x02 \x01(\x0c\x12\x18\n\x10register_options\x18\x03 \x01(\x0c\x12\x19\n\x11register_response\x18\x04 \x01(\x0c\x12\x1d\n\x15\x61uthenticate_response\x18\x05 \x03(\x0c\x42\x0b\n\tspecifier\"O\n\x1b\x44\x65viceOwnerCredentialRecord\x12\n\n\x02id\x18\x01 \x01(\x0c\x12\x10\n\x08owner_id\x18\x02 \x01(\x0c\x12\x12\n\npublic_key\x18\x03 \x01(\x0c\"N\n\x14\x41pproveDeviceRequest\x12\x17\n\rcredential_id\x18\x01 \x01(\tH\x00\x12\x17\n\renrollment_id\x18\x02 \x01(\tH\x00\x42\x04\n\x02id\"o\n\x1d\x43reateDeviceEnrollmentRequest\x12\x38\n\nenrollment\x18\x01 \x01(\x0b\x32$.pomerium.dashboard.DeviceEnrollment\x12\x14\n\x0credirect_url\x18\x02 \x01(\t\"r\n\x1e\x43reateDeviceEnrollmentResponse\x12\x38\n\nenrollment\x18\x01 \x01(\x0b\x32$.pomerium.dashboard.DeviceEnrollment\x12\x16\n\x0e\x65nrollment_url\x18\x02 \x01(\t\"M\n\x13\x44\x65leteDeviceRequest\x12\x17\n\rcredential_id\x18\x01 \x01(\tH\x00\x12\x17\n\renrollment_id\x18\x02 \x01(\tH\x00\x42\x04\n\x02id\"*\n\x17\x44\x65leteDeviceTypeRequest\x12\x0f\n\x07type_id\x18\x01 \x01(\t\"\x82\x01\n\x12ListDevicesRequest\x12\x14\n\x07type_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07user_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pproved_by\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\n\n\x08_type_idB\n\n\x08_user_idB\x0e\n\x0c_approved_by\"\xe3\x02\n\x13ListDevicesResponse\x12?\n\x07\x64\x65vices\x18\x04 \x03(\x0b\x32..pomerium.dashboard.ListDevicesResponse.Device\x1a\x8a\x02\n\x06\x44\x65vice\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.pomerium.dashboard.DeviceType\x12\x38\n\ncredential\x18\x02 \x01(\x0b\x32$.pomerium.dashboard.DeviceCredential\x12\x38\n\nenrollment\x18\x03 \x01(\x0b\x32$.pomerium.dashboard.DeviceEnrollment\x12,\n\x04kind\x18\x04 \x01(\x0e\x32\x1e.pomerium.dashboard.DeviceKind\x12\x11\n\tuser_name\x18\x05 \x01(\t\x12\x1d\n\x15\x61pproved_by_user_name\x18\x06 \x01(\t\"H\n\x17ListDeviceTypesResponse\x12-\n\x05types\x18\x01 \x03(\x0b\x32\x1e.pomerium.dashboard.DeviceType\"D\n\x14SetDeviceTypeRequest\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.pomerium.dashboard.DeviceType\"E\n\x15SetDeviceTypeResponse\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x1e.pomerium.dashboard.DeviceType*U\n\nDeviceKind\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08\x46IDO_U2F\x10\x01\x12\x0b\n\x07\x41NDROID\x10\x02\x12\t\n\x05\x41PPLE\x10\x03\x12\x07\n\x03TPM\x10\x04\x12\x0b\n\x07WINDOWS\x10\x05\x32\xab\x05\n\rDeviceService\x12Q\n\rApproveDevice\x12(.pomerium.dashboard.ApproveDeviceRequest\x1a\x16.google.protobuf.Empty\x12\x7f\n\x16\x43reateDeviceEnrollment\x12\x31.pomerium.dashboard.CreateDeviceEnrollmentRequest\x1a\x32.pomerium.dashboard.CreateDeviceEnrollmentResponse\x12\x64\n\rSetDeviceType\x12(.pomerium.dashboard.SetDeviceTypeRequest\x1a).pomerium.dashboard.SetDeviceTypeResponse\x12O\n\x0c\x44\x65leteDevice\x12\'.pomerium.dashboard.DeleteDeviceRequest\x1a\x16.google.protobuf.Empty\x12W\n\x10\x44\x65leteDeviceType\x12+.pomerium.dashboard.DeleteDeviceTypeRequest\x1a\x16.google.protobuf.Empty\x12^\n\x0bListDevices\x12&.pomerium.dashboard.ListDevicesRequest\x1a\'.pomerium.dashboard.ListDevicesResponse\x12V\n\x0fListDeviceTypes\x12\x16.google.protobuf.Empty\x1a+.pomerium.dashboard.ListDeviceTypesResponseB-Z+github.com/pomerium/pomerium-console/pkg/pbb\x06proto3'
    ,
    dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
  
  _DEVICEKIND = _descriptor.EnumDescriptor(
    name='DeviceKind',
    full_name='pomerium.dashboard.DeviceKind',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='UNKNOWN', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='FIDO_U2F', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='ANDROID', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='APPLE', index=3, number=3,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='TPM', index=4, number=4,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='WINDOWS', index=5, number=5,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=3904,
    serialized_end=3989,
  )
  _sym_db.RegisterEnumDescriptor(_DEVICEKIND)
  
  DeviceKind = enum_type_wrapper.EnumTypeWrapper(_DEVICEKIND)
  UNKNOWN = 0
  FIDO_U2F = 1
  ANDROID = 2
  APPLE = 3
  TPM = 4
  WINDOWS = 5
  
  
  _WEBAUTHNOPTIONS_ATTESTATIONCONVEYANCEPREFERENCE = _descriptor.EnumDescriptor(
    name='AttestationConveyancePreference',
    full_name='pomerium.dashboard.WebAuthnOptions.AttestationConveyancePreference',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='NONE', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='INDIRECT', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='DIRECT', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='ENTERPRISE', index=3, number=3,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1008,
    serialized_end=1093,
  )
  _sym_db.RegisterEnumDescriptor(_WEBAUTHNOPTIONS_ATTESTATIONCONVEYANCEPREFERENCE)
  
  _WEBAUTHNOPTIONS_AUTHENTICATORATTACHMENT = _descriptor.EnumDescriptor(
    name='AuthenticatorAttachment',
    full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorAttachment',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='PLATFORM', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='CROSS_PLATFORM', index=1, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1095,
    serialized_end=1154,
  )
  _sym_db.RegisterEnumDescriptor(_WEBAUTHNOPTIONS_AUTHENTICATORATTACHMENT)
  
  _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALTYPE = _descriptor.EnumDescriptor(
    name='PublicKeyCredentialType',
    full_name='pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialType',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='PUBLIC_KEY', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1156,
    serialized_end=1197,
  )
  _sym_db.RegisterEnumDescriptor(_WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALTYPE)
  
  _WEBAUTHNOPTIONS_RESIDENTKEYREQUIREMENT = _descriptor.EnumDescriptor(
    name='ResidentKeyRequirement',
    full_name='pomerium.dashboard.WebAuthnOptions.ResidentKeyRequirement',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='RESIDENT_KEY_DISCOURAGED', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='RESIDENT_KEY_PREFERRED', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='RESIDENT_KEY_REQUIRED', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1199,
    serialized_end=1308,
  )
  _sym_db.RegisterEnumDescriptor(_WEBAUTHNOPTIONS_RESIDENTKEYREQUIREMENT)
  
  _WEBAUTHNOPTIONS_USERVERIFICATIONREQUIREMENT = _descriptor.EnumDescriptor(
    name='UserVerificationRequirement',
    full_name='pomerium.dashboard.WebAuthnOptions.UserVerificationRequirement',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='USER_VERIFICATION_DISCOURAGED', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='USER_VERIFICATION_PREFERRED', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='USER_VERIFICATION_REQUIRED', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1311,
    serialized_end=1440,
  )
  _sym_db.RegisterEnumDescriptor(_WEBAUTHNOPTIONS_USERVERIFICATIONREQUIREMENT)
  
  
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA = _descriptor.Descriptor(
    name='AuthenticatorSelectionCriteria',
    full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='authenticator_attachment', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria.authenticator_attachment', index=0,
        number=1, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='require_resident_key', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria.require_resident_key', index=1,
        number=2, type=8, cpp_type=7, label=1,
        has_default_value=False, default_value=False,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='resident_key_requirement', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria.resident_key_requirement', index=2,
        number=3, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='user_verification', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria.user_verification', index=3,
        number=4, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='_authenticator_attachment', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria._authenticator_attachment',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='_require_resident_key', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria._require_resident_key',
        index=1, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='_resident_key_requirement', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria._resident_key_requirement',
        index=2, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='_user_verification', full_name='pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria._user_verification',
        index=3, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=417,
    serialized_end=885,
  )
  
  _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALPARAMETERS = _descriptor.Descriptor(
    name='PublicKeyCredentialParameters',
    full_name='pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialParameters',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='alg', full_name='pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialParameters.alg', index=0,
        number=1, type=3, cpp_type=2, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='type', full_name='pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialParameters.type', index=1,
        number=2, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=887,
    serialized_end=1006,
  )
  
  _WEBAUTHNOPTIONS = _descriptor.Descriptor(
    name='WebAuthnOptions',
    full_name='pomerium.dashboard.WebAuthnOptions',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='attestation', full_name='pomerium.dashboard.WebAuthnOptions.attestation', index=0,
        number=1, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='authenticator_selection', full_name='pomerium.dashboard.WebAuthnOptions.authenticator_selection', index=1,
        number=2, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='pub_key_cred_params', full_name='pomerium.dashboard.WebAuthnOptions.pub_key_cred_params', index=2,
        number=3, type=11, cpp_type=10, label=3,
        has_default_value=False, default_value=[],
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[_WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA, _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALPARAMETERS, ],
    enum_types=[
      _WEBAUTHNOPTIONS_ATTESTATIONCONVEYANCEPREFERENCE,
      _WEBAUTHNOPTIONS_AUTHENTICATORATTACHMENT,
      _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALTYPE,
      _WEBAUTHNOPTIONS_RESIDENTKEYREQUIREMENT,
      _WEBAUTHNOPTIONS_USERVERIFICATIONREQUIREMENT,
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='_attestation', full_name='pomerium.dashboard.WebAuthnOptions._attestation',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='_authenticator_selection', full_name='pomerium.dashboard.WebAuthnOptions._authenticator_selection',
        index=1, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=100,
    serialized_end=1484,
  )
  
  
  _DEVICETYPE_WEBAUTHN = _descriptor.Descriptor(
    name='WebAuthn',
    full_name='pomerium.dashboard.DeviceType.WebAuthn',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='options', full_name='pomerium.dashboard.DeviceType.WebAuthn.options', index=0,
        number=1, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1733,
    serialized_end=1797,
  )
  
  _DEVICETYPE = _descriptor.Descriptor(
    name='DeviceType',
    full_name='pomerium.dashboard.DeviceType',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='id', full_name='pomerium.dashboard.DeviceType.id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='created_at', full_name='pomerium.dashboard.DeviceType.created_at', index=1,
        number=2, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='modified_at', full_name='pomerium.dashboard.DeviceType.modified_at', index=2,
        number=3, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='deleted_at', full_name='pomerium.dashboard.DeviceType.deleted_at', index=3,
        number=4, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='name', full_name='pomerium.dashboard.DeviceType.name', index=4,
        number=5, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='webauthn', full_name='pomerium.dashboard.DeviceType.webauthn', index=5,
        number=6, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[_DEVICETYPE_WEBAUTHN, ],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='specifier', full_name='pomerium.dashboard.DeviceType.specifier',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=1487,
    serialized_end=1810,
  )
  
  
  _DEVICEENROLLMENT = _descriptor.Descriptor(
    name='DeviceEnrollment',
    full_name='pomerium.dashboard.DeviceEnrollment',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='id', full_name='pomerium.dashboard.DeviceEnrollment.id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='created_at', full_name='pomerium.dashboard.DeviceEnrollment.created_at', index=1,
        number=2, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='modified_at', full_name='pomerium.dashboard.DeviceEnrollment.modified_at', index=2,
        number=3, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='deleted_at', full_name='pomerium.dashboard.DeviceEnrollment.deleted_at', index=3,
        number=4, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='device_type_id', full_name='pomerium.dashboard.DeviceEnrollment.device_type_id', index=4,
        number=5, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='device_credential_id', full_name='pomerium.dashboard.DeviceEnrollment.device_credential_id', index=5,
        number=6, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='user_id', full_name='pomerium.dashboard.DeviceEnrollment.user_id', index=6,
        number=7, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='approved_at', full_name='pomerium.dashboard.DeviceEnrollment.approved_at', index=7,
        number=8, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='approved_by_user_id', full_name='pomerium.dashboard.DeviceEnrollment.approved_by_user_id', index=8,
        number=9, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='enrolled_at', full_name='pomerium.dashboard.DeviceEnrollment.enrolled_at', index=9,
        number=10, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='user_agent', full_name='pomerium.dashboard.DeviceEnrollment.user_agent', index=10,
        number=11, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='ip_address', full_name='pomerium.dashboard.DeviceEnrollment.ip_address', index=11,
        number=12, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1813,
    serialized_end=2226,
  )
  
  
  _DEVICECREDENTIAL_WEBAUTHN = _descriptor.Descriptor(
    name='WebAuthn',
    full_name='pomerium.dashboard.DeviceCredential.WebAuthn',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='id', full_name='pomerium.dashboard.DeviceCredential.WebAuthn.id', index=0,
        number=1, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='public_key', full_name='pomerium.dashboard.DeviceCredential.WebAuthn.public_key', index=1,
        number=2, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='register_options', full_name='pomerium.dashboard.DeviceCredential.WebAuthn.register_options', index=2,
        number=3, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='register_response', full_name='pomerium.dashboard.DeviceCredential.WebAuthn.register_response', index=3,
        number=4, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='authenticate_response', full_name='pomerium.dashboard.DeviceCredential.WebAuthn.authenticate_response', index=4,
        number=5, type=12, cpp_type=9, label=3,
        has_default_value=False, default_value=[],
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2544,
    serialized_end=2670,
  )
  
  _DEVICECREDENTIAL = _descriptor.Descriptor(
    name='DeviceCredential',
    full_name='pomerium.dashboard.DeviceCredential',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='id', full_name='pomerium.dashboard.DeviceCredential.id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='created_at', full_name='pomerium.dashboard.DeviceCredential.created_at', index=1,
        number=2, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='modified_at', full_name='pomerium.dashboard.DeviceCredential.modified_at', index=2,
        number=3, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='deleted_at', full_name='pomerium.dashboard.DeviceCredential.deleted_at', index=3,
        number=4, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='device_type_id', full_name='pomerium.dashboard.DeviceCredential.device_type_id', index=4,
        number=5, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='device_enrollment_id', full_name='pomerium.dashboard.DeviceCredential.device_enrollment_id', index=5,
        number=6, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='user_id', full_name='pomerium.dashboard.DeviceCredential.user_id', index=6,
        number=7, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='webauthn', full_name='pomerium.dashboard.DeviceCredential.webauthn', index=7,
        number=8, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[_DEVICECREDENTIAL_WEBAUTHN, ],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='specifier', full_name='pomerium.dashboard.DeviceCredential.specifier',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=2229,
    serialized_end=2683,
  )
  
  
  _DEVICEOWNERCREDENTIALRECORD = _descriptor.Descriptor(
    name='DeviceOwnerCredentialRecord',
    full_name='pomerium.dashboard.DeviceOwnerCredentialRecord',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='id', full_name='pomerium.dashboard.DeviceOwnerCredentialRecord.id', index=0,
        number=1, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='owner_id', full_name='pomerium.dashboard.DeviceOwnerCredentialRecord.owner_id', index=1,
        number=2, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='public_key', full_name='pomerium.dashboard.DeviceOwnerCredentialRecord.public_key', index=2,
        number=3, type=12, cpp_type=9, label=1,
        has_default_value=False, default_value=b"",
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2685,
    serialized_end=2764,
  )
  
  
  _APPROVEDEVICEREQUEST = _descriptor.Descriptor(
    name='ApproveDeviceRequest',
    full_name='pomerium.dashboard.ApproveDeviceRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='credential_id', full_name='pomerium.dashboard.ApproveDeviceRequest.credential_id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='enrollment_id', full_name='pomerium.dashboard.ApproveDeviceRequest.enrollment_id', index=1,
        number=2, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='id', full_name='pomerium.dashboard.ApproveDeviceRequest.id',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=2766,
    serialized_end=2844,
  )
  
  
  _CREATEDEVICEENROLLMENTREQUEST = _descriptor.Descriptor(
    name='CreateDeviceEnrollmentRequest',
    full_name='pomerium.dashboard.CreateDeviceEnrollmentRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='enrollment', full_name='pomerium.dashboard.CreateDeviceEnrollmentRequest.enrollment', index=0,
        number=1, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='redirect_url', full_name='pomerium.dashboard.CreateDeviceEnrollmentRequest.redirect_url', index=1,
        number=2, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2846,
    serialized_end=2957,
  )
  
  
  _CREATEDEVICEENROLLMENTRESPONSE = _descriptor.Descriptor(
    name='CreateDeviceEnrollmentResponse',
    full_name='pomerium.dashboard.CreateDeviceEnrollmentResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='enrollment', full_name='pomerium.dashboard.CreateDeviceEnrollmentResponse.enrollment', index=0,
        number=1, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='enrollment_url', full_name='pomerium.dashboard.CreateDeviceEnrollmentResponse.enrollment_url', index=1,
        number=2, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2959,
    serialized_end=3073,
  )
  
  
  _DELETEDEVICEREQUEST = _descriptor.Descriptor(
    name='DeleteDeviceRequest',
    full_name='pomerium.dashboard.DeleteDeviceRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='credential_id', full_name='pomerium.dashboard.DeleteDeviceRequest.credential_id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='enrollment_id', full_name='pomerium.dashboard.DeleteDeviceRequest.enrollment_id', index=1,
        number=2, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='id', full_name='pomerium.dashboard.DeleteDeviceRequest.id',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=3075,
    serialized_end=3152,
  )
  
  
  _DELETEDEVICETYPEREQUEST = _descriptor.Descriptor(
    name='DeleteDeviceTypeRequest',
    full_name='pomerium.dashboard.DeleteDeviceTypeRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='type_id', full_name='pomerium.dashboard.DeleteDeviceTypeRequest.type_id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3154,
    serialized_end=3196,
  )
  
  
  _LISTDEVICESREQUEST = _descriptor.Descriptor(
    name='ListDevicesRequest',
    full_name='pomerium.dashboard.ListDevicesRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='type_id', full_name='pomerium.dashboard.ListDevicesRequest.type_id', index=0,
        number=1, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='user_id', full_name='pomerium.dashboard.ListDevicesRequest.user_id', index=1,
        number=2, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='approved_by', full_name='pomerium.dashboard.ListDevicesRequest.approved_by', index=2,
        number=3, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='_type_id', full_name='pomerium.dashboard.ListDevicesRequest._type_id',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='_user_id', full_name='pomerium.dashboard.ListDevicesRequest._user_id',
        index=1, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='_approved_by', full_name='pomerium.dashboard.ListDevicesRequest._approved_by',
        index=2, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=3199,
    serialized_end=3329,
  )
  
  
  _LISTDEVICESRESPONSE_DEVICE = _descriptor.Descriptor(
    name='Device',
    full_name='pomerium.dashboard.ListDevicesResponse.Device',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='type', full_name='pomerium.dashboard.ListDevicesResponse.Device.type', index=0,
        number=1, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='credential', full_name='pomerium.dashboard.ListDevicesResponse.Device.credential', index=1,
        number=2, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='enrollment', full_name='pomerium.dashboard.ListDevicesResponse.Device.enrollment', index=2,
        number=3, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='kind', full_name='pomerium.dashboard.ListDevicesResponse.Device.kind', index=3,
        number=4, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='user_name', full_name='pomerium.dashboard.ListDevicesResponse.Device.user_name', index=4,
        number=5, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='approved_by_user_name', full_name='pomerium.dashboard.ListDevicesResponse.Device.approved_by_user_name', index=5,
        number=6, type=9, cpp_type=9, label=1,
        has_default_value=False, default_value=b"".decode('utf-8'),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3421,
    serialized_end=3687,
  )
  
  _LISTDEVICESRESPONSE = _descriptor.Descriptor(
    name='ListDevicesResponse',
    full_name='pomerium.dashboard.ListDevicesResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='devices', full_name='pomerium.dashboard.ListDevicesResponse.devices', index=0,
        number=4, type=11, cpp_type=10, label=3,
        has_default_value=False, default_value=[],
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[_LISTDEVICESRESPONSE_DEVICE, ],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3332,
    serialized_end=3687,
  )
  
  
  _LISTDEVICETYPESRESPONSE = _descriptor.Descriptor(
    name='ListDeviceTypesResponse',
    full_name='pomerium.dashboard.ListDeviceTypesResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='types', full_name='pomerium.dashboard.ListDeviceTypesResponse.types', index=0,
        number=1, type=11, cpp_type=10, label=3,
        has_default_value=False, default_value=[],
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3689,
    serialized_end=3761,
  )
  
  
  _SETDEVICETYPEREQUEST = _descriptor.Descriptor(
    name='SetDeviceTypeRequest',
    full_name='pomerium.dashboard.SetDeviceTypeRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='type', full_name='pomerium.dashboard.SetDeviceTypeRequest.type', index=0,
        number=1, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3763,
    serialized_end=3831,
  )
  
  
  _SETDEVICETYPERESPONSE = _descriptor.Descriptor(
    name='SetDeviceTypeResponse',
    full_name='pomerium.dashboard.SetDeviceTypeResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='type', full_name='pomerium.dashboard.SetDeviceTypeResponse.type', index=0,
        number=1, type=11, cpp_type=10, label=1,
        has_default_value=False, default_value=None,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3833,
    serialized_end=3902,
  )
  
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['authenticator_attachment'].enum_type = _WEBAUTHNOPTIONS_AUTHENTICATORATTACHMENT
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['resident_key_requirement'].enum_type = _WEBAUTHNOPTIONS_RESIDENTKEYREQUIREMENT
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['user_verification'].enum_type = _WEBAUTHNOPTIONS_USERVERIFICATIONREQUIREMENT
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_authenticator_attachment'].fields.append(
    _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['authenticator_attachment'])
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['authenticator_attachment'].containing_oneof = _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_authenticator_attachment']
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_require_resident_key'].fields.append(
    _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['require_resident_key'])
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['require_resident_key'].containing_oneof = _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_require_resident_key']
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_resident_key_requirement'].fields.append(
    _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['resident_key_requirement'])
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['resident_key_requirement'].containing_oneof = _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_resident_key_requirement']
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_user_verification'].fields.append(
    _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['user_verification'])
  _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.fields_by_name['user_verification'].containing_oneof = _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA.oneofs_by_name['_user_verification']
  _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALPARAMETERS.fields_by_name['type'].enum_type = _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALTYPE
  _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALPARAMETERS.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS.fields_by_name['attestation'].enum_type = _WEBAUTHNOPTIONS_ATTESTATIONCONVEYANCEPREFERENCE
  _WEBAUTHNOPTIONS.fields_by_name['authenticator_selection'].message_type = _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA
  _WEBAUTHNOPTIONS.fields_by_name['pub_key_cred_params'].message_type = _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALPARAMETERS
  _WEBAUTHNOPTIONS_ATTESTATIONCONVEYANCEPREFERENCE.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS_AUTHENTICATORATTACHMENT.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALTYPE.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS_RESIDENTKEYREQUIREMENT.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS_USERVERIFICATIONREQUIREMENT.containing_type = _WEBAUTHNOPTIONS
  _WEBAUTHNOPTIONS.oneofs_by_name['_attestation'].fields.append(
    _WEBAUTHNOPTIONS.fields_by_name['attestation'])
  _WEBAUTHNOPTIONS.fields_by_name['attestation'].containing_oneof = _WEBAUTHNOPTIONS.oneofs_by_name['_attestation']
  _WEBAUTHNOPTIONS.oneofs_by_name['_authenticator_selection'].fields.append(
    _WEBAUTHNOPTIONS.fields_by_name['authenticator_selection'])
  _WEBAUTHNOPTIONS.fields_by_name['authenticator_selection'].containing_oneof = _WEBAUTHNOPTIONS.oneofs_by_name['_authenticator_selection']
  _DEVICETYPE_WEBAUTHN.fields_by_name['options'].message_type = _WEBAUTHNOPTIONS
  _DEVICETYPE_WEBAUTHN.containing_type = _DEVICETYPE
  _DEVICETYPE.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICETYPE.fields_by_name['modified_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICETYPE.fields_by_name['deleted_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICETYPE.fields_by_name['webauthn'].message_type = _DEVICETYPE_WEBAUTHN
  _DEVICETYPE.oneofs_by_name['specifier'].fields.append(
    _DEVICETYPE.fields_by_name['webauthn'])
  _DEVICETYPE.fields_by_name['webauthn'].containing_oneof = _DEVICETYPE.oneofs_by_name['specifier']
  _DEVICEENROLLMENT.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICEENROLLMENT.fields_by_name['modified_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICEENROLLMENT.fields_by_name['deleted_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICEENROLLMENT.fields_by_name['approved_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICEENROLLMENT.fields_by_name['enrolled_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICECREDENTIAL_WEBAUTHN.containing_type = _DEVICECREDENTIAL
  _DEVICECREDENTIAL.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICECREDENTIAL.fields_by_name['modified_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICECREDENTIAL.fields_by_name['deleted_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _DEVICECREDENTIAL.fields_by_name['webauthn'].message_type = _DEVICECREDENTIAL_WEBAUTHN
  _DEVICECREDENTIAL.oneofs_by_name['specifier'].fields.append(
    _DEVICECREDENTIAL.fields_by_name['webauthn'])
  _DEVICECREDENTIAL.fields_by_name['webauthn'].containing_oneof = _DEVICECREDENTIAL.oneofs_by_name['specifier']
  _APPROVEDEVICEREQUEST.oneofs_by_name['id'].fields.append(
    _APPROVEDEVICEREQUEST.fields_by_name['credential_id'])
  _APPROVEDEVICEREQUEST.fields_by_name['credential_id'].containing_oneof = _APPROVEDEVICEREQUEST.oneofs_by_name['id']
  _APPROVEDEVICEREQUEST.oneofs_by_name['id'].fields.append(
    _APPROVEDEVICEREQUEST.fields_by_name['enrollment_id'])
  _APPROVEDEVICEREQUEST.fields_by_name['enrollment_id'].containing_oneof = _APPROVEDEVICEREQUEST.oneofs_by_name['id']
  _CREATEDEVICEENROLLMENTREQUEST.fields_by_name['enrollment'].message_type = _DEVICEENROLLMENT
  _CREATEDEVICEENROLLMENTRESPONSE.fields_by_name['enrollment'].message_type = _DEVICEENROLLMENT
  _DELETEDEVICEREQUEST.oneofs_by_name['id'].fields.append(
    _DELETEDEVICEREQUEST.fields_by_name['credential_id'])
  _DELETEDEVICEREQUEST.fields_by_name['credential_id'].containing_oneof = _DELETEDEVICEREQUEST.oneofs_by_name['id']
  _DELETEDEVICEREQUEST.oneofs_by_name['id'].fields.append(
    _DELETEDEVICEREQUEST.fields_by_name['enrollment_id'])
  _DELETEDEVICEREQUEST.fields_by_name['enrollment_id'].containing_oneof = _DELETEDEVICEREQUEST.oneofs_by_name['id']
  _LISTDEVICESREQUEST.oneofs_by_name['_type_id'].fields.append(
    _LISTDEVICESREQUEST.fields_by_name['type_id'])
  _LISTDEVICESREQUEST.fields_by_name['type_id'].containing_oneof = _LISTDEVICESREQUEST.oneofs_by_name['_type_id']
  _LISTDEVICESREQUEST.oneofs_by_name['_user_id'].fields.append(
    _LISTDEVICESREQUEST.fields_by_name['user_id'])
  _LISTDEVICESREQUEST.fields_by_name['user_id'].containing_oneof = _LISTDEVICESREQUEST.oneofs_by_name['_user_id']
  _LISTDEVICESREQUEST.oneofs_by_name['_approved_by'].fields.append(
    _LISTDEVICESREQUEST.fields_by_name['approved_by'])
  _LISTDEVICESREQUEST.fields_by_name['approved_by'].containing_oneof = _LISTDEVICESREQUEST.oneofs_by_name['_approved_by']
  _LISTDEVICESRESPONSE_DEVICE.fields_by_name['type'].message_type = _DEVICETYPE
  _LISTDEVICESRESPONSE_DEVICE.fields_by_name['credential'].message_type = _DEVICECREDENTIAL
  _LISTDEVICESRESPONSE_DEVICE.fields_by_name['enrollment'].message_type = _DEVICEENROLLMENT
  _LISTDEVICESRESPONSE_DEVICE.fields_by_name['kind'].enum_type = _DEVICEKIND
  _LISTDEVICESRESPONSE_DEVICE.containing_type = _LISTDEVICESRESPONSE
  _LISTDEVICESRESPONSE.fields_by_name['devices'].message_type = _LISTDEVICESRESPONSE_DEVICE
  _LISTDEVICETYPESRESPONSE.fields_by_name['types'].message_type = _DEVICETYPE
  _SETDEVICETYPEREQUEST.fields_by_name['type'].message_type = _DEVICETYPE
  _SETDEVICETYPERESPONSE.fields_by_name['type'].message_type = _DEVICETYPE
  DESCRIPTOR.message_types_by_name['WebAuthnOptions'] = _WEBAUTHNOPTIONS
  DESCRIPTOR.message_types_by_name['DeviceType'] = _DEVICETYPE
  DESCRIPTOR.message_types_by_name['DeviceEnrollment'] = _DEVICEENROLLMENT
  DESCRIPTOR.message_types_by_name['DeviceCredential'] = _DEVICECREDENTIAL
  DESCRIPTOR.message_types_by_name['DeviceOwnerCredentialRecord'] = _DEVICEOWNERCREDENTIALRECORD
  DESCRIPTOR.message_types_by_name['ApproveDeviceRequest'] = _APPROVEDEVICEREQUEST
  DESCRIPTOR.message_types_by_name['CreateDeviceEnrollmentRequest'] = _CREATEDEVICEENROLLMENTREQUEST
  DESCRIPTOR.message_types_by_name['CreateDeviceEnrollmentResponse'] = _CREATEDEVICEENROLLMENTRESPONSE
  DESCRIPTOR.message_types_by_name['DeleteDeviceRequest'] = _DELETEDEVICEREQUEST
  DESCRIPTOR.message_types_by_name['DeleteDeviceTypeRequest'] = _DELETEDEVICETYPEREQUEST
  DESCRIPTOR.message_types_by_name['ListDevicesRequest'] = _LISTDEVICESREQUEST
  DESCRIPTOR.message_types_by_name['ListDevicesResponse'] = _LISTDEVICESRESPONSE
  DESCRIPTOR.message_types_by_name['ListDeviceTypesResponse'] = _LISTDEVICETYPESRESPONSE
  DESCRIPTOR.message_types_by_name['SetDeviceTypeRequest'] = _SETDEVICETYPEREQUEST
  DESCRIPTOR.message_types_by_name['SetDeviceTypeResponse'] = _SETDEVICETYPERESPONSE
  DESCRIPTOR.enum_types_by_name['DeviceKind'] = _DEVICEKIND
  _sym_db.RegisterFileDescriptor(DESCRIPTOR)
  
  WebAuthnOptions = _reflection.GeneratedProtocolMessageType('WebAuthnOptions', (_message.Message,), {
  
    'AuthenticatorSelectionCriteria' : _reflection.GeneratedProtocolMessageType('AuthenticatorSelectionCriteria', (_message.Message,), {
      'DESCRIPTOR' : _WEBAUTHNOPTIONS_AUTHENTICATORSELECTIONCRITERIA,
      '__module__' : 'devices_pb2'
      # @@protoc_insertion_point(class_scope:pomerium.dashboard.WebAuthnOptions.AuthenticatorSelectionCriteria)
      })
    ,
  
    'PublicKeyCredentialParameters' : _reflection.GeneratedProtocolMessageType('PublicKeyCredentialParameters', (_message.Message,), {
      'DESCRIPTOR' : _WEBAUTHNOPTIONS_PUBLICKEYCREDENTIALPARAMETERS,
      '__module__' : 'devices_pb2'
      # @@protoc_insertion_point(class_scope:pomerium.dashboard.WebAuthnOptions.PublicKeyCredentialParameters)
      })
    ,
    'DESCRIPTOR' : _WEBAUTHNOPTIONS,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.WebAuthnOptions)
    })
  _sym_db.RegisterMessage(WebAuthnOptions)
  _sym_db.RegisterMessage(WebAuthnOptions.AuthenticatorSelectionCriteria)
  _sym_db.RegisterMessage(WebAuthnOptions.PublicKeyCredentialParameters)
  
  DeviceType = _reflection.GeneratedProtocolMessageType('DeviceType', (_message.Message,), {
  
    'WebAuthn' : _reflection.GeneratedProtocolMessageType('WebAuthn', (_message.Message,), {
      'DESCRIPTOR' : _DEVICETYPE_WEBAUTHN,
      '__module__' : 'devices_pb2'
      # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeviceType.WebAuthn)
      })
    ,
    'DESCRIPTOR' : _DEVICETYPE,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeviceType)
    })
  _sym_db.RegisterMessage(DeviceType)
  _sym_db.RegisterMessage(DeviceType.WebAuthn)
  
  DeviceEnrollment = _reflection.GeneratedProtocolMessageType('DeviceEnrollment', (_message.Message,), {
    'DESCRIPTOR' : _DEVICEENROLLMENT,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeviceEnrollment)
    })
  _sym_db.RegisterMessage(DeviceEnrollment)
  
  DeviceCredential = _reflection.GeneratedProtocolMessageType('DeviceCredential', (_message.Message,), {
  
    'WebAuthn' : _reflection.GeneratedProtocolMessageType('WebAuthn', (_message.Message,), {
      'DESCRIPTOR' : _DEVICECREDENTIAL_WEBAUTHN,
      '__module__' : 'devices_pb2'
      # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeviceCredential.WebAuthn)
      })
    ,
    'DESCRIPTOR' : _DEVICECREDENTIAL,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeviceCredential)
    })
  _sym_db.RegisterMessage(DeviceCredential)
  _sym_db.RegisterMessage(DeviceCredential.WebAuthn)
  
  DeviceOwnerCredentialRecord = _reflection.GeneratedProtocolMessageType('DeviceOwnerCredentialRecord', (_message.Message,), {
    'DESCRIPTOR' : _DEVICEOWNERCREDENTIALRECORD,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeviceOwnerCredentialRecord)
    })
  _sym_db.RegisterMessage(DeviceOwnerCredentialRecord)
  
  ApproveDeviceRequest = _reflection.GeneratedProtocolMessageType('ApproveDeviceRequest', (_message.Message,), {
    'DESCRIPTOR' : _APPROVEDEVICEREQUEST,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.ApproveDeviceRequest)
    })
  _sym_db.RegisterMessage(ApproveDeviceRequest)
  
  CreateDeviceEnrollmentRequest = _reflection.GeneratedProtocolMessageType('CreateDeviceEnrollmentRequest', (_message.Message,), {
    'DESCRIPTOR' : _CREATEDEVICEENROLLMENTREQUEST,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.CreateDeviceEnrollmentRequest)
    })
  _sym_db.RegisterMessage(CreateDeviceEnrollmentRequest)
  
  CreateDeviceEnrollmentResponse = _reflection.GeneratedProtocolMessageType('CreateDeviceEnrollmentResponse', (_message.Message,), {
    'DESCRIPTOR' : _CREATEDEVICEENROLLMENTRESPONSE,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.CreateDeviceEnrollmentResponse)
    })
  _sym_db.RegisterMessage(CreateDeviceEnrollmentResponse)
  
  DeleteDeviceRequest = _reflection.GeneratedProtocolMessageType('DeleteDeviceRequest', (_message.Message,), {
    'DESCRIPTOR' : _DELETEDEVICEREQUEST,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeleteDeviceRequest)
    })
  _sym_db.RegisterMessage(DeleteDeviceRequest)
  
  DeleteDeviceTypeRequest = _reflection.GeneratedProtocolMessageType('DeleteDeviceTypeRequest', (_message.Message,), {
    'DESCRIPTOR' : _DELETEDEVICETYPEREQUEST,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.DeleteDeviceTypeRequest)
    })
  _sym_db.RegisterMessage(DeleteDeviceTypeRequest)
  
  ListDevicesRequest = _reflection.GeneratedProtocolMessageType('ListDevicesRequest', (_message.Message,), {
    'DESCRIPTOR' : _LISTDEVICESREQUEST,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.ListDevicesRequest)
    })
  _sym_db.RegisterMessage(ListDevicesRequest)
  
  ListDevicesResponse = _reflection.GeneratedProtocolMessageType('ListDevicesResponse', (_message.Message,), {
  
    'Device' : _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), {
      'DESCRIPTOR' : _LISTDEVICESRESPONSE_DEVICE,
      '__module__' : 'devices_pb2'
      # @@protoc_insertion_point(class_scope:pomerium.dashboard.ListDevicesResponse.Device)
      })
    ,
    'DESCRIPTOR' : _LISTDEVICESRESPONSE,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.ListDevicesResponse)
    })
  _sym_db.RegisterMessage(ListDevicesResponse)
  _sym_db.RegisterMessage(ListDevicesResponse.Device)
  
  ListDeviceTypesResponse = _reflection.GeneratedProtocolMessageType('ListDeviceTypesResponse', (_message.Message,), {
    'DESCRIPTOR' : _LISTDEVICETYPESRESPONSE,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.ListDeviceTypesResponse)
    })
  _sym_db.RegisterMessage(ListDeviceTypesResponse)
  
  SetDeviceTypeRequest = _reflection.GeneratedProtocolMessageType('SetDeviceTypeRequest', (_message.Message,), {
    'DESCRIPTOR' : _SETDEVICETYPEREQUEST,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.SetDeviceTypeRequest)
    })
  _sym_db.RegisterMessage(SetDeviceTypeRequest)
  
  SetDeviceTypeResponse = _reflection.GeneratedProtocolMessageType('SetDeviceTypeResponse', (_message.Message,), {
    'DESCRIPTOR' : _SETDEVICETYPERESPONSE,
    '__module__' : 'devices_pb2'
    # @@protoc_insertion_point(class_scope:pomerium.dashboard.SetDeviceTypeResponse)
    })
  _sym_db.RegisterMessage(SetDeviceTypeResponse)
  
  
  DESCRIPTOR._options = None
  
  _DEVICESERVICE = _descriptor.ServiceDescriptor(
    name='DeviceService',
    full_name='pomerium.dashboard.DeviceService',
    file=DESCRIPTOR,
    index=0,
    serialized_options=None,
    create_key=_descriptor._internal_create_key,
    serialized_start=3992,
    serialized_end=4675,
    methods=[
    _descriptor.MethodDescriptor(
      name='ApproveDevice',
      full_name='pomerium.dashboard.DeviceService.ApproveDevice',
      index=0,
      containing_service=None,
      input_type=_APPROVEDEVICEREQUEST,
      output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
    _descriptor.MethodDescriptor(
      name='CreateDeviceEnrollment',
      full_name='pomerium.dashboard.DeviceService.CreateDeviceEnrollment',
      index=1,
      containing_service=None,
      input_type=_CREATEDEVICEENROLLMENTREQUEST,
      output_type=_CREATEDEVICEENROLLMENTRESPONSE,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
    _descriptor.MethodDescriptor(
      name='SetDeviceType',
      full_name='pomerium.dashboard.DeviceService.SetDeviceType',
      index=2,
      containing_service=None,
      input_type=_SETDEVICETYPEREQUEST,
      output_type=_SETDEVICETYPERESPONSE,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
    _descriptor.MethodDescriptor(
      name='DeleteDevice',
      full_name='pomerium.dashboard.DeviceService.DeleteDevice',
      index=3,
      containing_service=None,
      input_type=_DELETEDEVICEREQUEST,
      output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
    _descriptor.MethodDescriptor(
      name='DeleteDeviceType',
      full_name='pomerium.dashboard.DeviceService.DeleteDeviceType',
      index=4,
      containing_service=None,
      input_type=_DELETEDEVICETYPEREQUEST,
      output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
    _descriptor.MethodDescriptor(
      name='ListDevices',
      full_name='pomerium.dashboard.DeviceService.ListDevices',
      index=5,
      containing_service=None,
      input_type=_LISTDEVICESREQUEST,
      output_type=_LISTDEVICESRESPONSE,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
    _descriptor.MethodDescriptor(
      name='ListDeviceTypes',
      full_name='pomerium.dashboard.DeviceService.ListDeviceTypes',
      index=6,
      containing_service=None,
      input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
      output_type=_LISTDEVICETYPESRESPONSE,
      serialized_options=None,
      create_key=_descriptor._internal_create_key,
    ),
  ])
  _sym_db.RegisterServiceDescriptor(_DEVICESERVICE)
  
  DESCRIPTOR.services_by_name['DeviceService'] = _DEVICESERVICE
  
  # @@protoc_insertion_point(module_scope)
  