content: {-# LANGUAGE DataKinds #-}
  {-# LANGUAGE DerivingStrategies #-}
  {-# LANGUAGE DuplicateRecordFields #-}
  {-# LANGUAGE ImportQualifiedPost #-}
  {-# LANGUAGE LambdaCase #-}
  {-# LANGUAGE OverloadedStrings #-}
  {-# LANGUAGE PatternSynonyms #-}
  {-# LANGUAGE RecordWildCards #-}
  {-# LANGUAGE StrictData #-}
  {-# LANGUAGE TypeFamilies #-}
  {-# LANGUAGE NoImplicitPrelude #-}
  {-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
  {-# OPTIONS_GHC -fno-warn-name-shadowing #-}
  {-# OPTIONS_GHC -fno-warn-unused-binds #-}
  {-# OPTIONS_GHC -fno-warn-unused-imports #-}
  {-# OPTIONS_GHC -fno-warn-unused-matches #-}
  
  -- |
  -- Module      : Gogol.CloudIdentity.Internal.Sum
  -- Copyright   : (c) 2015-2025 Brendan Hay
  -- License     : Mozilla Public License, v. 2.0.
  -- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
  --               Toni Cebrián <toni@tonicebrian.com>
  -- Stability   : auto-generated
  -- Portability : non-portable (GHC extensions)
  module Gogol.CloudIdentity.Internal.Sum
    ( -- * Xgafv
      Xgafv
        ( Xgafv_1,
          Xgafv_2,
          ..
        ),
  
      -- * DynamicGroupQuery_ResourceType
      DynamicGroupQuery_ResourceType
        ( DynamicGroupQuery_ResourceType_RESOURCETYPEUNSPECIFIED,
          DynamicGroupQuery_ResourceType_User,
          ..
        ),
  
      -- * DynamicGroupStatus_Status
      DynamicGroupStatus_Status
        ( DynamicGroupStatus_Status_STATUSUNSPECIFIED,
          DynamicGroupStatus_Status_UPTODATE,
          DynamicGroupStatus_Status_UPDATINGMEMBERSHIPS,
          DynamicGroupStatus_Status_INVALIDQUERY,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
      GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
        ( GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_OWNERSHIPPRIVILEGEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEADMINISTRATOR,
          GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_PROFILEOWNER,
          GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEOWNER,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
      GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
        ( GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unspecified,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unmanaged,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_MANAGEDBYOTHERDOMAIN,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_PROFILEMANAGED,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_BROWSERMANAGED,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
      GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
        ( GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDPROTECTIONTRIGGERUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PROTECTIONOFF,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDREUSE,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PHISHINGREUSE,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
      GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
        ( GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_SAFEBROWSINGLEVELUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Disabled,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Standard,
          GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Enhanced,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState
      GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState
        ( GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_CERTIFICATEVALIDATIONSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONSUCCESSFUL,
          GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONFAILED,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState
      GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState
        ( GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_COMPLIANCESTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_Compliant,
          GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_NONCOMPLIANT,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
      GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
        ( GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_HEALTHSCOREUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYPOOR,
          GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Poor,
          GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Neutral,
          GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Good,
          GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYGOOD,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1ClientState_Managed
      GoogleAppsCloudidentityDevicesV1ClientState_Managed
        ( GoogleAppsCloudidentityDevicesV1ClientState_Managed_MANAGEDSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1ClientState_Managed_Managed,
          GoogleAppsCloudidentityDevicesV1ClientState_Managed_Unmanaged,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1ClientState_OwnerType
      GoogleAppsCloudidentityDevicesV1ClientState_OwnerType
        ( GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPECUSTOMER,
          GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEPARTNER,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1Device_CompromisedState
      GoogleAppsCloudidentityDevicesV1Device_CompromisedState
        ( GoogleAppsCloudidentityDevicesV1Device_CompromisedState_COMPROMISEDSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Compromised,
          GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Uncompromised,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1Device_DeviceType
      GoogleAppsCloudidentityDevicesV1Device_DeviceType
        ( GoogleAppsCloudidentityDevicesV1Device_DeviceType_DEVICETYPEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_Android,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_Ios,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_GOOGLESYNC,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_Windows,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_MACOS,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_Linux,
          GoogleAppsCloudidentityDevicesV1Device_DeviceType_CHROMEOS,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1Device_EncryptionState
      GoogleAppsCloudidentityDevicesV1Device_EncryptionState
        ( GoogleAppsCloudidentityDevicesV1Device_EncryptionState_ENCRYPTIONSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1Device_EncryptionState_UNSUPPORTEDBYDEVICE,
          GoogleAppsCloudidentityDevicesV1Device_EncryptionState_Encrypted,
          GoogleAppsCloudidentityDevicesV1Device_EncryptionState_NOTENCRYPTED,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1Device_ManagementState
      GoogleAppsCloudidentityDevicesV1Device_ManagementState
        ( GoogleAppsCloudidentityDevicesV1Device_ManagementState_MANAGEMENTSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1Device_ManagementState_Approved,
          GoogleAppsCloudidentityDevicesV1Device_ManagementState_Blocked,
          GoogleAppsCloudidentityDevicesV1Device_ManagementState_Pending,
          GoogleAppsCloudidentityDevicesV1Device_ManagementState_Unprovisioned,
          GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiping,
          GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiped,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1Device_OwnerType
      GoogleAppsCloudidentityDevicesV1Device_OwnerType
        ( GoogleAppsCloudidentityDevicesV1Device_OwnerType_DEVICEOWNERSHIPUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1Device_OwnerType_Company,
          GoogleAppsCloudidentityDevicesV1Device_OwnerType_Byod,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState
      GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState
        ( GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_COMPROMISEDSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_Compromised,
          GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_NOTCOMPROMISED,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
      GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
        ( GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_MANAGEMENTSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiping,
          GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiped,
          GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Approved,
          GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Blocked,
          GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_PENDINGAPPROVAL,
          GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Unenrolled,
          ..
        ),
  
      -- * GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState
      GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState
        ( GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSTATEUNSPECIFIED,
          GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSET,
          GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDNOTSET,
          ..
        ),
  
      -- * GroupRelation_RelationType
      GroupRelation_RelationType
        ( GroupRelation_RelationType_RELATIONTYPEUNSPECIFIED,
          GroupRelation_RelationType_Direct,
          GroupRelation_RelationType_Indirect,
          GroupRelation_RelationType_DIRECTANDINDIRECT,
          ..
        ),
  
      -- * InboundSsoAssignment_SsoMode
      InboundSsoAssignment_SsoMode
        ( InboundSsoAssignment_SsoMode_SSOMODEUNSPECIFIED,
          InboundSsoAssignment_SsoMode_SSOOFF,
          InboundSsoAssignment_SsoMode_SAMLSSO,
          InboundSsoAssignment_SsoMode_DOMAINWIDESAMLIFENABLED,
          ..
        ),
  
      -- * MemberRelation_RelationType
      MemberRelation_RelationType
        ( MemberRelation_RelationType_RELATIONTYPEUNSPECIFIED,
          MemberRelation_RelationType_Direct,
          MemberRelation_RelationType_Indirect,
          MemberRelation_RelationType_DIRECTANDINDIRECT,
          ..
        ),
  
      -- * Membership_DeliverySetting
      Membership_DeliverySetting
        ( Membership_DeliverySetting_DELIVERYSETTINGUNSPECIFIED,
          Membership_DeliverySetting_ALLMAIL,
          Membership_DeliverySetting_Digest,
          Membership_DeliverySetting_Daily,
          Membership_DeliverySetting_None,
          Membership_DeliverySetting_Disabled,
          ..
        ),
  
      -- * Membership_Type
      Membership_Type
        ( Membership_Type_TYPEUNSPECIFIED,
          Membership_Type_User,
          Membership_Type_SERVICEACCOUNT,
          Membership_Type_Group,
          Membership_Type_SHAREDDRIVE,
          Membership_Type_CBCMBROWSER,
          Membership_Type_Other,
          ..
        ),
  
      -- * MembershipRoleRestrictionEvaluation_State
      MembershipRoleRestrictionEvaluation_State
        ( MembershipRoleRestrictionEvaluation_State_STATEUNSPECIFIED,
          MembershipRoleRestrictionEvaluation_State_Compliant,
          MembershipRoleRestrictionEvaluation_State_FORWARDCOMPLIANT,
          MembershipRoleRestrictionEvaluation_State_NONCOMPLIANT,
          MembershipRoleRestrictionEvaluation_State_Evaluating,
          ..
        ),
  
      -- * Policy_Type
      Policy_Type
        ( Policy_Type_POLICYTYPEUNSPECIFIED,
          Policy_Type_System,
          Policy_Type_Admin,
          ..
        ),
  
      -- * RestrictionEvaluation_State
      RestrictionEvaluation_State
        ( RestrictionEvaluation_State_STATEUNSPECIFIED,
          RestrictionEvaluation_State_Evaluating,
          RestrictionEvaluation_State_Compliant,
          RestrictionEvaluation_State_FORWARDCOMPLIANT,
          RestrictionEvaluation_State_NONCOMPLIANT,
          ..
        ),
  
      -- * SignInBehavior_RedirectCondition
      SignInBehavior_RedirectCondition
        ( SignInBehavior_RedirectCondition_REDIRECTCONDITIONUNSPECIFIED,
          SignInBehavior_RedirectCondition_Never,
          ..
        ),
  
      -- * UserInvitation_State
      UserInvitation_State
        ( UserInvitation_State_STATEUNSPECIFIED,
          UserInvitation_State_NOTYETSENT,
          UserInvitation_State_Invited,
          UserInvitation_State_Accepted,
          UserInvitation_State_Declined,
          ..
        ),
  
      -- * DevicesListView
      DevicesListView
        ( DevicesListView_VIEWUNSPECIFIED,
          DevicesListView_COMPANYINVENTORY,
          DevicesListView_USERASSIGNEDDEVICES,
          ..
        ),
  
      -- * GroupsCreateInitialGroupConfig
      GroupsCreateInitialGroupConfig
        ( GroupsCreateInitialGroupConfig_INITIALGROUPCONFIGUNSPECIFIED,
          GroupsCreateInitialGroupConfig_WITHINITIALOWNER,
          GroupsCreateInitialGroupConfig_Empty,
          ..
        ),
  
      -- * GroupsListView
      GroupsListView
        ( GroupsListView_VIEWUNSPECIFIED,
          GroupsListView_Basic,
          GroupsListView_Full,
          ..
        ),
  
      -- * GroupsMembershipsListView
      GroupsMembershipsListView
        ( GroupsMembershipsListView_VIEWUNSPECIFIED,
          GroupsMembershipsListView_Basic,
          GroupsMembershipsListView_Full,
          ..
        ),
  
      -- * GroupsSearchView
      GroupsSearchView
        ( GroupsSearchView_VIEWUNSPECIFIED,
          GroupsSearchView_Basic,
          GroupsSearchView_Full,
          ..
        ),
    )
  where
  
  import Gogol.Prelude qualified as Core
  
  -- | V1 error format.
  newtype Xgafv = Xgafv {fromXgafv :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | v1 error format
  pattern Xgafv_1 :: Xgafv
  pattern Xgafv_1 = Xgafv "1"
  
  -- | v2 error format
  pattern Xgafv_2 :: Xgafv
  pattern Xgafv_2 = Xgafv "2"
  
  {-# COMPLETE
    Xgafv_1,
    Xgafv_2,
    Xgafv
    #-}
  
  -- | Resource type for the Dynamic Group Query
  newtype DynamicGroupQuery_ResourceType = DynamicGroupQuery_ResourceType {fromDynamicGroupQuery_ResourceType :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value (not valid)
  pattern DynamicGroupQuery_ResourceType_RESOURCETYPEUNSPECIFIED :: DynamicGroupQuery_ResourceType
  pattern DynamicGroupQuery_ResourceType_RESOURCETYPEUNSPECIFIED = DynamicGroupQuery_ResourceType "RESOURCE_TYPE_UNSPECIFIED"
  
  -- | For queries on User
  pattern DynamicGroupQuery_ResourceType_User :: DynamicGroupQuery_ResourceType
  pattern DynamicGroupQuery_ResourceType_User = DynamicGroupQuery_ResourceType "USER"
  
  {-# COMPLETE
    DynamicGroupQuery_ResourceType_RESOURCETYPEUNSPECIFIED,
    DynamicGroupQuery_ResourceType_User,
    DynamicGroupQuery_ResourceType
    #-}
  
  -- | Status of the dynamic group.
  newtype DynamicGroupStatus_Status = DynamicGroupStatus_Status {fromDynamicGroupStatus_Status :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default.
  pattern DynamicGroupStatus_Status_STATUSUNSPECIFIED :: DynamicGroupStatus_Status
  pattern DynamicGroupStatus_Status_STATUSUNSPECIFIED = DynamicGroupStatus_Status "STATUS_UNSPECIFIED"
  
  -- | The dynamic group is up-to-date.
  pattern DynamicGroupStatus_Status_UPTODATE :: DynamicGroupStatus_Status
  pattern DynamicGroupStatus_Status_UPTODATE = DynamicGroupStatus_Status "UP_TO_DATE"
  
  -- | The dynamic group has just been created and memberships are being updated.
  pattern DynamicGroupStatus_Status_UPDATINGMEMBERSHIPS :: DynamicGroupStatus_Status
  pattern DynamicGroupStatus_Status_UPDATINGMEMBERSHIPS = DynamicGroupStatus_Status "UPDATING_MEMBERSHIPS"
  
  -- | Group is in an unrecoverable state and its memberships can\'t be updated.
  pattern DynamicGroupStatus_Status_INVALIDQUERY :: DynamicGroupStatus_Status
  pattern DynamicGroupStatus_Status_INVALIDQUERY = DynamicGroupStatus_Status "INVALID_QUERY"
  
  {-# COMPLETE
    DynamicGroupStatus_Status_STATUSUNSPECIFIED,
    DynamicGroupStatus_Status_UPTODATE,
    DynamicGroupStatus_Status_UPDATINGMEMBERSHIPS,
    DynamicGroupStatus_Status_INVALIDQUERY,
    DynamicGroupStatus_Status
    #-}
  
  -- | Ownership privileges on device.
  newtype GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege = GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege {fromGoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Ownership privilege is not set.
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_OWNERSHIPPRIVILEGEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_OWNERSHIPPRIVILEGEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege "OWNERSHIP_PRIVILEGE_UNSPECIFIED"
  
  -- | Active device administrator privileges on the device.
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEADMINISTRATOR :: GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEADMINISTRATOR = GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege "DEVICE_ADMINISTRATOR"
  
  -- | Profile Owner privileges. The account is in a managed corporate profile.
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_PROFILEOWNER :: GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_PROFILEOWNER = GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege "PROFILE_OWNER"
  
  -- | Device Owner privileges on the device.
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEOWNER :: GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
  pattern GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEOWNER = GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege "DEVICE_OWNER"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_OWNERSHIPPRIVILEGEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEADMINISTRATOR,
    GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_PROFILEOWNER,
    GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege_DEVICEOWNER,
    GoogleAppsCloudidentityDevicesV1AndroidAttributes_OwnershipPrivilege
    #-}
  
  -- | Output only. Browser\'s management state.
  newtype GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState = GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState {fromGoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Management state is not specified.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unspecified :: GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unspecified = GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState "UNSPECIFIED"
  
  -- | Browser\/Profile is not managed by any customer.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unmanaged :: GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unmanaged = GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState "UNMANAGED"
  
  -- | Browser\/Profile is managed, but by some other customer.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_MANAGEDBYOTHERDOMAIN :: GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_MANAGEDBYOTHERDOMAIN = GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState "MANAGED_BY_OTHER_DOMAIN"
  
  -- | Profile is managed by customer.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_PROFILEMANAGED :: GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_PROFILEMANAGED = GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState "PROFILE_MANAGED"
  
  -- | Browser is managed by customer.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_BROWSERMANAGED :: GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_BROWSERMANAGED = GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState "BROWSER_MANAGED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unspecified,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_Unmanaged,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_MANAGEDBYOTHERDOMAIN,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_PROFILEMANAGED,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState_BROWSERMANAGED,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_BrowserManagementState
    #-}
  
  -- | Current state of <https://chromeenterprise.google/policies/#PasswordProtectionWarningTrigger password protection trigger>.
  newtype GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger = GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger {fromGoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Password protection is not specified.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDPROTECTIONTRIGGERUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDPROTECTIONTRIGGERUNSPECIFIED = GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger "PASSWORD_PROTECTION_TRIGGER_UNSPECIFIED"
  
  -- | Password reuse is never detected.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PROTECTIONOFF :: GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PROTECTIONOFF = GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger "PROTECTION_OFF"
  
  -- | Warning is shown when the user reuses their protected password on a non-allowed site.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDREUSE :: GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDREUSE = GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger "PASSWORD_REUSE"
  
  -- | Warning is shown when the user reuses their protected password on a phishing site.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PHISHINGREUSE :: GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PHISHINGREUSE = GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger "PHISHING_REUSE"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDPROTECTIONTRIGGERUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PROTECTIONOFF,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PASSWORDREUSE,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger_PHISHINGREUSE,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_PasswordProtectionWarningTrigger
    #-}
  
  -- | Current state of <https://chromeenterprise.google/policies/#SafeBrowsingProtectionLevel Safe Browsing protection level>.
  newtype GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel = GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel {fromGoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Browser protection level is not specified.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_SAFEBROWSINGLEVELUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_SAFEBROWSINGLEVELUNSPECIFIED = GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel "SAFE_BROWSING_LEVEL_UNSPECIFIED"
  
  -- | No protection against dangerous websites, downloads, and extensions.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Disabled :: GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Disabled = GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel "DISABLED"
  
  -- | Standard protection against websites, downloads, and extensions that are known to be dangerous.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Standard :: GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Standard = GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel "STANDARD"
  
  -- | Faster, proactive protection against dangerous websites, downloads, and extensions.
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Enhanced :: GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
  pattern GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Enhanced = GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel "ENHANCED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_SAFEBROWSINGLEVELUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Disabled,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Standard,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel_Enhanced,
    GoogleAppsCloudidentityDevicesV1BrowserInfo_SafeBrowsingProtectionLevel
    #-}
  
  -- | Output only. Validation state of this certificate.
  newtype GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState = GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState {fromGoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value.
  pattern GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_CERTIFICATEVALIDATIONSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState
  pattern GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_CERTIFICATEVALIDATIONSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState "CERTIFICATE_VALIDATION_STATE_UNSPECIFIED"
  
  -- | Certificate validation was successful.
  pattern GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONSUCCESSFUL :: GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState
  pattern GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONSUCCESSFUL = GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState "VALIDATION_SUCCESSFUL"
  
  -- | Certificate validation failed.
  pattern GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONFAILED :: GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState
  pattern GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONFAILED = GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState "VALIDATION_FAILED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_CERTIFICATEVALIDATIONSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONSUCCESSFUL,
    GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState_VALIDATIONFAILED,
    GoogleAppsCloudidentityDevicesV1CertificateAttributes_ValidationState
    #-}
  
  -- | The compliance state of the resource as specified by the API client.
  newtype GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState = GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState {fromGoogleAppsCloudidentityDevicesV1ClientState_ComplianceState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | The compliance state of the resource is unknown or unspecified.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_COMPLIANCESTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState
  pattern GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_COMPLIANCESTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState "COMPLIANCE_STATE_UNSPECIFIED"
  
  -- | Device is compliant with third party policies
  pattern GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_Compliant :: GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState
  pattern GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_Compliant = GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState "COMPLIANT"
  
  -- | Device is not compliant with third party policies
  pattern GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_NONCOMPLIANT :: GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState
  pattern GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_NONCOMPLIANT = GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState "NON_COMPLIANT"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_COMPLIANCESTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_Compliant,
    GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState_NONCOMPLIANT,
    GoogleAppsCloudidentityDevicesV1ClientState_ComplianceState
    #-}
  
  -- | The Health score of the resource. The Health score is the callers specification of the condition of the device from a usability point of view. For example, a third-party device management provider may specify a health score based on its compliance with organizational policies.
  newtype GoogleAppsCloudidentityDevicesV1ClientState_HealthScore = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore {fromGoogleAppsCloudidentityDevicesV1ClientState_HealthScore :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_HEALTHSCOREUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_HEALTHSCOREUNSPECIFIED = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore "HEALTH_SCORE_UNSPECIFIED"
  
  -- | The object is in very poor health as defined by the caller.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYPOOR :: GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYPOOR = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore "VERY_POOR"
  
  -- | The object is in poor health as defined by the caller.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Poor :: GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Poor = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore "POOR"
  
  -- | The object health is neither good nor poor, as defined by the caller.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Neutral :: GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Neutral = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore "NEUTRAL"
  
  -- | The object is in good health as defined by the caller.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Good :: GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Good = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore "GOOD"
  
  -- | The object is in very good health as defined by the caller.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYGOOD :: GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
  pattern GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYGOOD = GoogleAppsCloudidentityDevicesV1ClientState_HealthScore "VERY_GOOD"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_HEALTHSCOREUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYPOOR,
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Poor,
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Neutral,
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_Good,
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore_VERYGOOD,
    GoogleAppsCloudidentityDevicesV1ClientState_HealthScore
    #-}
  
  -- | The management state of the resource as specified by the API client.
  newtype GoogleAppsCloudidentityDevicesV1ClientState_Managed = GoogleAppsCloudidentityDevicesV1ClientState_Managed {fromGoogleAppsCloudidentityDevicesV1ClientState_Managed :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | The management state of the resource is unknown or unspecified.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_Managed_MANAGEDSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1ClientState_Managed
  pattern GoogleAppsCloudidentityDevicesV1ClientState_Managed_MANAGEDSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1ClientState_Managed "MANAGED_STATE_UNSPECIFIED"
  
  -- | The resource is managed.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_Managed_Managed :: GoogleAppsCloudidentityDevicesV1ClientState_Managed
  pattern GoogleAppsCloudidentityDevicesV1ClientState_Managed_Managed = GoogleAppsCloudidentityDevicesV1ClientState_Managed "MANAGED"
  
  -- | The resource is not managed.
  pattern GoogleAppsCloudidentityDevicesV1ClientState_Managed_Unmanaged :: GoogleAppsCloudidentityDevicesV1ClientState_Managed
  pattern GoogleAppsCloudidentityDevicesV1ClientState_Managed_Unmanaged = GoogleAppsCloudidentityDevicesV1ClientState_Managed "UNMANAGED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1ClientState_Managed_MANAGEDSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1ClientState_Managed_Managed,
    GoogleAppsCloudidentityDevicesV1ClientState_Managed_Unmanaged,
    GoogleAppsCloudidentityDevicesV1ClientState_Managed
    #-}
  
  -- | Output only. The owner of the ClientState
  newtype GoogleAppsCloudidentityDevicesV1ClientState_OwnerType = GoogleAppsCloudidentityDevicesV1ClientState_OwnerType {fromGoogleAppsCloudidentityDevicesV1ClientState_OwnerType :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Unknown owner type
  pattern GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1ClientState_OwnerType
  pattern GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1ClientState_OwnerType "OWNER_TYPE_UNSPECIFIED"
  
  -- | Customer is the owner
  pattern GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPECUSTOMER :: GoogleAppsCloudidentityDevicesV1ClientState_OwnerType
  pattern GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPECUSTOMER = GoogleAppsCloudidentityDevicesV1ClientState_OwnerType "OWNER_TYPE_CUSTOMER"
  
  -- | Partner is the owner
  pattern GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEPARTNER :: GoogleAppsCloudidentityDevicesV1ClientState_OwnerType
  pattern GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEPARTNER = GoogleAppsCloudidentityDevicesV1ClientState_OwnerType "OWNER_TYPE_PARTNER"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPECUSTOMER,
    GoogleAppsCloudidentityDevicesV1ClientState_OwnerType_OWNERTYPEPARTNER,
    GoogleAppsCloudidentityDevicesV1ClientState_OwnerType
    #-}
  
  -- | Output only. Represents whether the Device is compromised.
  newtype GoogleAppsCloudidentityDevicesV1Device_CompromisedState = GoogleAppsCloudidentityDevicesV1Device_CompromisedState {fromGoogleAppsCloudidentityDevicesV1Device_CompromisedState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value.
  pattern GoogleAppsCloudidentityDevicesV1Device_CompromisedState_COMPROMISEDSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1Device_CompromisedState
  pattern GoogleAppsCloudidentityDevicesV1Device_CompromisedState_COMPROMISEDSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1Device_CompromisedState "COMPROMISED_STATE_UNSPECIFIED"
  
  -- | The device is compromised (currently, this means Android device is rooted).
  pattern GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Compromised :: GoogleAppsCloudidentityDevicesV1Device_CompromisedState
  pattern GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Compromised = GoogleAppsCloudidentityDevicesV1Device_CompromisedState "COMPROMISED"
  
  -- | The device is safe (currently, this means Android device is unrooted).
  pattern GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Uncompromised :: GoogleAppsCloudidentityDevicesV1Device_CompromisedState
  pattern GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Uncompromised = GoogleAppsCloudidentityDevicesV1Device_CompromisedState "UNCOMPROMISED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1Device_CompromisedState_COMPROMISEDSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Compromised,
    GoogleAppsCloudidentityDevicesV1Device_CompromisedState_Uncompromised,
    GoogleAppsCloudidentityDevicesV1Device_CompromisedState
    #-}
  
  -- | Output only. Type of device.
  newtype GoogleAppsCloudidentityDevicesV1Device_DeviceType = GoogleAppsCloudidentityDevicesV1Device_DeviceType {fromGoogleAppsCloudidentityDevicesV1Device_DeviceType :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Unknown device type
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_DEVICETYPEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_DEVICETYPEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1Device_DeviceType "DEVICE_TYPE_UNSPECIFIED"
  
  -- | Device is an Android device
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Android :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Android = GoogleAppsCloudidentityDevicesV1Device_DeviceType "ANDROID"
  
  -- | Device is an iOS device
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Ios :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Ios = GoogleAppsCloudidentityDevicesV1Device_DeviceType "IOS"
  
  -- | Device is a Google Sync device.
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_GOOGLESYNC :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_GOOGLESYNC = GoogleAppsCloudidentityDevicesV1Device_DeviceType "GOOGLE_SYNC"
  
  -- | Device is a Windows device.
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Windows :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Windows = GoogleAppsCloudidentityDevicesV1Device_DeviceType "WINDOWS"
  
  -- | Device is a MacOS device.
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_MACOS :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_MACOS = GoogleAppsCloudidentityDevicesV1Device_DeviceType "MAC_OS"
  
  -- | Device is a Linux device.
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Linux :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_Linux = GoogleAppsCloudidentityDevicesV1Device_DeviceType "LINUX"
  
  -- | Device is a ChromeOS device.
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_CHROMEOS :: GoogleAppsCloudidentityDevicesV1Device_DeviceType
  pattern GoogleAppsCloudidentityDevicesV1Device_DeviceType_CHROMEOS = GoogleAppsCloudidentityDevicesV1Device_DeviceType "CHROME_OS"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_DEVICETYPEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_Android,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_Ios,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_GOOGLESYNC,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_Windows,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_MACOS,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_Linux,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType_CHROMEOS,
    GoogleAppsCloudidentityDevicesV1Device_DeviceType
    #-}
  
  -- | Output only. Device encryption state.
  newtype GoogleAppsCloudidentityDevicesV1Device_EncryptionState = GoogleAppsCloudidentityDevicesV1Device_EncryptionState {fromGoogleAppsCloudidentityDevicesV1Device_EncryptionState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Encryption Status is not set.
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_ENCRYPTIONSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1Device_EncryptionState
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_ENCRYPTIONSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1Device_EncryptionState "ENCRYPTION_STATE_UNSPECIFIED"
  
  -- | Device doesn\'t support encryption.
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_UNSUPPORTEDBYDEVICE :: GoogleAppsCloudidentityDevicesV1Device_EncryptionState
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_UNSUPPORTEDBYDEVICE = GoogleAppsCloudidentityDevicesV1Device_EncryptionState "UNSUPPORTED_BY_DEVICE"
  
  -- | Device is encrypted.
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_Encrypted :: GoogleAppsCloudidentityDevicesV1Device_EncryptionState
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_Encrypted = GoogleAppsCloudidentityDevicesV1Device_EncryptionState "ENCRYPTED"
  
  -- | Device is not encrypted.
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_NOTENCRYPTED :: GoogleAppsCloudidentityDevicesV1Device_EncryptionState
  pattern GoogleAppsCloudidentityDevicesV1Device_EncryptionState_NOTENCRYPTED = GoogleAppsCloudidentityDevicesV1Device_EncryptionState "NOT_ENCRYPTED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1Device_EncryptionState_ENCRYPTIONSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1Device_EncryptionState_UNSUPPORTEDBYDEVICE,
    GoogleAppsCloudidentityDevicesV1Device_EncryptionState_Encrypted,
    GoogleAppsCloudidentityDevicesV1Device_EncryptionState_NOTENCRYPTED,
    GoogleAppsCloudidentityDevicesV1Device_EncryptionState
    #-}
  
  -- | Output only. Management state of the device
  newtype GoogleAppsCloudidentityDevicesV1Device_ManagementState = GoogleAppsCloudidentityDevicesV1Device_ManagementState {fromGoogleAppsCloudidentityDevicesV1Device_ManagementState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value. This value is unused.
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_MANAGEMENTSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_MANAGEMENTSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1Device_ManagementState "MANAGEMENT_STATE_UNSPECIFIED"
  
  -- | Device is approved.
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Approved :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Approved = GoogleAppsCloudidentityDevicesV1Device_ManagementState "APPROVED"
  
  -- | Device is blocked.
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Blocked :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Blocked = GoogleAppsCloudidentityDevicesV1Device_ManagementState "BLOCKED"
  
  -- | Device is pending approval.
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Pending :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Pending = GoogleAppsCloudidentityDevicesV1Device_ManagementState "PENDING"
  
  -- | The device is not provisioned. Device will start from this state until some action is taken (i.e. a user starts using the device).
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Unprovisioned :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Unprovisioned = GoogleAppsCloudidentityDevicesV1Device_ManagementState "UNPROVISIONED"
  
  -- | Data and settings on the device are being removed.
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiping :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiping = GoogleAppsCloudidentityDevicesV1Device_ManagementState "WIPING"
  
  -- | All data and settings on the device are removed.
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiped :: GoogleAppsCloudidentityDevicesV1Device_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiped = GoogleAppsCloudidentityDevicesV1Device_ManagementState "WIPED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_MANAGEMENTSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_Approved,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_Blocked,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_Pending,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_Unprovisioned,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiping,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState_Wiped,
    GoogleAppsCloudidentityDevicesV1Device_ManagementState
    #-}
  
  -- | Output only. Whether the device is owned by the company or an individual
  newtype GoogleAppsCloudidentityDevicesV1Device_OwnerType = GoogleAppsCloudidentityDevicesV1Device_OwnerType {fromGoogleAppsCloudidentityDevicesV1Device_OwnerType :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value. The value is unused.
  pattern GoogleAppsCloudidentityDevicesV1Device_OwnerType_DEVICEOWNERSHIPUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1Device_OwnerType
  pattern GoogleAppsCloudidentityDevicesV1Device_OwnerType_DEVICEOWNERSHIPUNSPECIFIED = GoogleAppsCloudidentityDevicesV1Device_OwnerType "DEVICE_OWNERSHIP_UNSPECIFIED"
  
  -- | Company owns the device.
  pattern GoogleAppsCloudidentityDevicesV1Device_OwnerType_Company :: GoogleAppsCloudidentityDevicesV1Device_OwnerType
  pattern GoogleAppsCloudidentityDevicesV1Device_OwnerType_Company = GoogleAppsCloudidentityDevicesV1Device_OwnerType "COMPANY"
  
  -- | Bring Your Own Device (i.e. individual owns the device)
  pattern GoogleAppsCloudidentityDevicesV1Device_OwnerType_Byod :: GoogleAppsCloudidentityDevicesV1Device_OwnerType
  pattern GoogleAppsCloudidentityDevicesV1Device_OwnerType_Byod = GoogleAppsCloudidentityDevicesV1Device_OwnerType "BYOD"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1Device_OwnerType_DEVICEOWNERSHIPUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1Device_OwnerType_Company,
    GoogleAppsCloudidentityDevicesV1Device_OwnerType_Byod,
    GoogleAppsCloudidentityDevicesV1Device_OwnerType
    #-}
  
  -- | Compromised State of the DeviceUser object
  newtype GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState = GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState {fromGoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Compromised state of Device User account is unknown or unspecified.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_COMPROMISEDSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_COMPROMISEDSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState "COMPROMISED_STATE_UNSPECIFIED"
  
  -- | Device User Account is compromised.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_Compromised :: GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_Compromised = GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState "COMPROMISED"
  
  -- | Device User Account is not compromised.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_NOTCOMPROMISED :: GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_NOTCOMPROMISED = GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState "NOT_COMPROMISED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_COMPROMISEDSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_Compromised,
    GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState_NOTCOMPROMISED,
    GoogleAppsCloudidentityDevicesV1DeviceUser_CompromisedState
    #-}
  
  -- | Output only. Management state of the user on the device.
  newtype GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState {fromGoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value. This value is unused.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_MANAGEMENTSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_MANAGEMENTSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "MANAGEMENT_STATE_UNSPECIFIED"
  
  -- | This user\'s data and profile is being removed from the device.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiping :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiping = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "WIPING"
  
  -- | This user\'s data and profile is removed from the device.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiped :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiped = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "WIPED"
  
  -- | User is approved to access data on the device.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Approved :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Approved = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "APPROVED"
  
  -- | User is blocked from accessing data on the device.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Blocked :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Blocked = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "BLOCKED"
  
  -- | User is awaiting approval.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_PENDINGAPPROVAL :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_PENDINGAPPROVAL = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "PENDING_APPROVAL"
  
  -- | User is unenrolled from Advanced Windows Management, but the Windows account is still intact.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Unenrolled :: GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Unenrolled = GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState "UNENROLLED"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_MANAGEMENTSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiping,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Wiped,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Approved,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Blocked,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_PENDINGAPPROVAL,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState_Unenrolled,
    GoogleAppsCloudidentityDevicesV1DeviceUser_ManagementState
    #-}
  
  -- | Password state of the DeviceUser object
  newtype GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState = GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState {fromGoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Password state not set.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSTATEUNSPECIFIED :: GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSTATEUNSPECIFIED = GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState "PASSWORD_STATE_UNSPECIFIED"
  
  -- | Password set in object.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSET :: GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSET = GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState "PASSWORD_SET"
  
  -- | Password not set in object.
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDNOTSET :: GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState
  pattern GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDNOTSET = GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState "PASSWORD_NOT_SET"
  
  {-# COMPLETE
    GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSTATEUNSPECIFIED,
    GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDSET,
    GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState_PASSWORDNOTSET,
    GoogleAppsCloudidentityDevicesV1DeviceUser_PasswordState
    #-}
  
  -- | The relation between the member and the transitive group.
  newtype GroupRelation_RelationType = GroupRelation_RelationType {fromGroupRelation_RelationType :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | The relation type is undefined or undetermined.
  pattern GroupRelation_RelationType_RELATIONTYPEUNSPECIFIED :: GroupRelation_RelationType
  pattern GroupRelation_RelationType_RELATIONTYPEUNSPECIFIED = GroupRelation_RelationType "RELATION_TYPE_UNSPECIFIED"
  
  -- | The two entities have only a direct membership with each other.
  pattern GroupRelation_RelationType_Direct :: GroupRelation_RelationType
  pattern GroupRelation_RelationType_Direct = GroupRelation_RelationType "DIRECT"
  
  -- | The two entities have only an indirect membership with each other.
  pattern GroupRelation_RelationType_Indirect :: GroupRelation_RelationType
  pattern GroupRelation_RelationType_Indirect = GroupRelation_RelationType "INDIRECT"
  
  -- | The two entities have both a direct and an indirect membership with each other.
  pattern GroupRelation_RelationType_DIRECTANDINDIRECT :: GroupRelation_RelationType
  pattern GroupRelation_RelationType_DIRECTANDINDIRECT = GroupRelation_RelationType "DIRECT_AND_INDIRECT"
  
  {-# COMPLETE
    GroupRelation_RelationType_RELATIONTYPEUNSPECIFIED,
    GroupRelation_RelationType_Direct,
    GroupRelation_RelationType_Indirect,
    GroupRelation_RelationType_DIRECTANDINDIRECT,
    GroupRelation_RelationType
    #-}
  
  -- | Inbound SSO behavior.
  newtype InboundSsoAssignment_SsoMode = InboundSsoAssignment_SsoMode {fromInboundSsoAssignment_SsoMode :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Not allowed.
  pattern InboundSsoAssignment_SsoMode_SSOMODEUNSPECIFIED :: InboundSsoAssignment_SsoMode
  pattern InboundSsoAssignment_SsoMode_SSOMODEUNSPECIFIED = InboundSsoAssignment_SsoMode "SSO_MODE_UNSPECIFIED"
  
  -- | Disable SSO for the targeted users.
  pattern InboundSsoAssignment_SsoMode_SSOOFF :: InboundSsoAssignment_SsoMode
  pattern InboundSsoAssignment_SsoMode_SSOOFF = InboundSsoAssignment_SsoMode "SSO_OFF"
  
  -- | Use an external SAML Identity Provider for SSO for the targeted users.
  pattern InboundSsoAssignment_SsoMode_SAMLSSO :: InboundSsoAssignment_SsoMode
  pattern InboundSsoAssignment_SsoMode_SAMLSSO = InboundSsoAssignment_SsoMode "SAML_SSO"
  
  -- | Use the domain-wide SAML Identity Provider for the targeted users if one is configured; otherwise, this is equivalent to @SSO_OFF@. Note that this will also be equivalent to @SSO_OFF@ if\/when support for domain-wide SAML is removed. Google may disallow this mode at that point and existing assignments with this mode may be automatically changed to @SSO_OFF@.
  pattern InboundSsoAssignment_SsoMode_DOMAINWIDESAMLIFENABLED :: InboundSsoAssignment_SsoMode
  pattern InboundSsoAssignment_SsoMode_DOMAINWIDESAMLIFENABLED = InboundSsoAssignment_SsoMode "DOMAIN_WIDE_SAML_IF_ENABLED"
  
  {-# COMPLETE
    InboundSsoAssignment_SsoMode_SSOMODEUNSPECIFIED,
    InboundSsoAssignment_SsoMode_SSOOFF,
    InboundSsoAssignment_SsoMode_SAMLSSO,
    InboundSsoAssignment_SsoMode_DOMAINWIDESAMLIFENABLED,
    InboundSsoAssignment_SsoMode
    #-}
  
  -- | The relation between the group and the transitive member.
  newtype MemberRelation_RelationType = MemberRelation_RelationType {fromMemberRelation_RelationType :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | The relation type is undefined or undetermined.
  pattern MemberRelation_RelationType_RELATIONTYPEUNSPECIFIED :: MemberRelation_RelationType
  pattern MemberRelation_RelationType_RELATIONTYPEUNSPECIFIED = MemberRelation_RelationType "RELATION_TYPE_UNSPECIFIED"
  
  -- | The two entities have only a direct membership with each other.
  pattern MemberRelation_RelationType_Direct :: MemberRelation_RelationType
  pattern MemberRelation_RelationType_Direct = MemberRelation_RelationType "DIRECT"
  
  -- | The two entities have only an indirect membership with each other.
  pattern MemberRelation_RelationType_Indirect :: MemberRelation_RelationType
  pattern MemberRelation_RelationType_Indirect = MemberRelation_RelationType "INDIRECT"
  
  -- | The two entities have both a direct and an indirect membership with each other.
  pattern MemberRelation_RelationType_DIRECTANDINDIRECT :: MemberRelation_RelationType
  pattern MemberRelation_RelationType_DIRECTANDINDIRECT = MemberRelation_RelationType "DIRECT_AND_INDIRECT"
  
  {-# COMPLETE
    MemberRelation_RelationType_RELATIONTYPEUNSPECIFIED,
    MemberRelation_RelationType_Direct,
    MemberRelation_RelationType_Indirect,
    MemberRelation_RelationType_DIRECTANDINDIRECT,
    MemberRelation_RelationType
    #-}
  
  -- | Output only. Delivery setting associated with the membership.
  newtype Membership_DeliverySetting = Membership_DeliverySetting {fromMembership_DeliverySetting :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern Membership_DeliverySetting_DELIVERYSETTINGUNSPECIFIED :: Membership_DeliverySetting
  pattern Membership_DeliverySetting_DELIVERYSETTINGUNSPECIFIED = Membership_DeliverySetting "DELIVERY_SETTING_UNSPECIFIED"
  
  -- | Represents each mail should be delivered
  pattern Membership_DeliverySetting_ALLMAIL :: Membership_DeliverySetting
  pattern Membership_DeliverySetting_ALLMAIL = Membership_DeliverySetting "ALL_MAIL"
  
  -- | Represents 1 email for every 25 messages.
  pattern Membership_DeliverySetting_Digest :: Membership_DeliverySetting
  pattern Membership_DeliverySetting_Digest = Membership_DeliverySetting "DIGEST"
  
  -- | Represents daily summary of messages.
  pattern Membership_DeliverySetting_Daily :: Membership_DeliverySetting
  pattern Membership_DeliverySetting_Daily = Membership_DeliverySetting "DAILY"
  
  -- | Represents no delivery.
  pattern Membership_DeliverySetting_None :: Membership_DeliverySetting
  pattern Membership_DeliverySetting_None = Membership_DeliverySetting "NONE"
  
  -- | Represents disabled state.
  pattern Membership_DeliverySetting_Disabled :: Membership_DeliverySetting
  pattern Membership_DeliverySetting_Disabled = Membership_DeliverySetting "DISABLED"
  
  {-# COMPLETE
    Membership_DeliverySetting_DELIVERYSETTINGUNSPECIFIED,
    Membership_DeliverySetting_ALLMAIL,
    Membership_DeliverySetting_Digest,
    Membership_DeliverySetting_Daily,
    Membership_DeliverySetting_None,
    Membership_DeliverySetting_Disabled,
    Membership_DeliverySetting
    #-}
  
  -- | Output only. The type of the membership.
  newtype Membership_Type = Membership_Type {fromMembership_Type :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern Membership_Type_TYPEUNSPECIFIED :: Membership_Type
  pattern Membership_Type_TYPEUNSPECIFIED = Membership_Type "TYPE_UNSPECIFIED"
  
  -- | Represents user type.
  pattern Membership_Type_User :: Membership_Type
  pattern Membership_Type_User = Membership_Type "USER"
  
  -- | Represents service account type.
  pattern Membership_Type_SERVICEACCOUNT :: Membership_Type
  pattern Membership_Type_SERVICEACCOUNT = Membership_Type "SERVICE_ACCOUNT"
  
  -- | Represents group type.
  pattern Membership_Type_Group :: Membership_Type
  pattern Membership_Type_Group = Membership_Type "GROUP"
  
  -- | Represents Shared drive.
  pattern Membership_Type_SHAREDDRIVE :: Membership_Type
  pattern Membership_Type_SHAREDDRIVE = Membership_Type "SHARED_DRIVE"
  
  -- | Represents a CBCM-managed Chrome Browser type.
  pattern Membership_Type_CBCMBROWSER :: Membership_Type
  pattern Membership_Type_CBCMBROWSER = Membership_Type "CBCM_BROWSER"
  
  -- | Represents other type.
  pattern Membership_Type_Other :: Membership_Type
  pattern Membership_Type_Other = Membership_Type "OTHER"
  
  {-# COMPLETE
    Membership_Type_TYPEUNSPECIFIED,
    Membership_Type_User,
    Membership_Type_SERVICEACCOUNT,
    Membership_Type_Group,
    Membership_Type_SHAREDDRIVE,
    Membership_Type_CBCMBROWSER,
    Membership_Type_Other,
    Membership_Type
    #-}
  
  -- | Output only. The current state of the restriction
  newtype MembershipRoleRestrictionEvaluation_State = MembershipRoleRestrictionEvaluation_State {fromMembershipRoleRestrictionEvaluation_State :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern MembershipRoleRestrictionEvaluation_State_STATEUNSPECIFIED :: MembershipRoleRestrictionEvaluation_State
  pattern MembershipRoleRestrictionEvaluation_State_STATEUNSPECIFIED = MembershipRoleRestrictionEvaluation_State "STATE_UNSPECIFIED"
  
  -- | The member adheres to the parent group\'s restriction.
  pattern MembershipRoleRestrictionEvaluation_State_Compliant :: MembershipRoleRestrictionEvaluation_State
  pattern MembershipRoleRestrictionEvaluation_State_Compliant = MembershipRoleRestrictionEvaluation_State "COMPLIANT"
  
  -- | The group-group membership might be currently violating some parent group\'s restriction but in future, it will never allow any new member in the child group which can violate parent group\'s restriction.
  pattern MembershipRoleRestrictionEvaluation_State_FORWARDCOMPLIANT :: MembershipRoleRestrictionEvaluation_State
  pattern MembershipRoleRestrictionEvaluation_State_FORWARDCOMPLIANT = MembershipRoleRestrictionEvaluation_State "FORWARD_COMPLIANT"
  
  -- | The member violates the parent group\'s restriction.
  pattern MembershipRoleRestrictionEvaluation_State_NONCOMPLIANT :: MembershipRoleRestrictionEvaluation_State
  pattern MembershipRoleRestrictionEvaluation_State_NONCOMPLIANT = MembershipRoleRestrictionEvaluation_State "NON_COMPLIANT"
  
  -- | The state of the membership is under evaluation.
  pattern MembershipRoleRestrictionEvaluation_State_Evaluating :: MembershipRoleRestrictionEvaluation_State
  pattern MembershipRoleRestrictionEvaluation_State_Evaluating = MembershipRoleRestrictionEvaluation_State "EVALUATING"
  
  {-# COMPLETE
    MembershipRoleRestrictionEvaluation_State_STATEUNSPECIFIED,
    MembershipRoleRestrictionEvaluation_State_Compliant,
    MembershipRoleRestrictionEvaluation_State_FORWARDCOMPLIANT,
    MembershipRoleRestrictionEvaluation_State_NONCOMPLIANT,
    MembershipRoleRestrictionEvaluation_State_Evaluating,
    MembershipRoleRestrictionEvaluation_State
    #-}
  
  -- | Output only. The type of the policy.
  newtype Policy_Type = Policy_Type {fromPolicy_Type :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Unspecified policy type.
  pattern Policy_Type_POLICYTYPEUNSPECIFIED :: Policy_Type
  pattern Policy_Type_POLICYTYPEUNSPECIFIED = Policy_Type "POLICY_TYPE_UNSPECIFIED"
  
  -- | Policy type denoting the system-configured policies.
  pattern Policy_Type_System :: Policy_Type
  pattern Policy_Type_System = Policy_Type "SYSTEM"
  
  -- | Policy type denoting the admin-configurable policies.
  pattern Policy_Type_Admin :: Policy_Type
  pattern Policy_Type_Admin = Policy_Type "ADMIN"
  
  {-# COMPLETE
    Policy_Type_POLICYTYPEUNSPECIFIED,
    Policy_Type_System,
    Policy_Type_Admin,
    Policy_Type
    #-}
  
  -- | Output only. The current state of the restriction
  newtype RestrictionEvaluation_State = RestrictionEvaluation_State {fromRestrictionEvaluation_State :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern RestrictionEvaluation_State_STATEUNSPECIFIED :: RestrictionEvaluation_State
  pattern RestrictionEvaluation_State_STATEUNSPECIFIED = RestrictionEvaluation_State "STATE_UNSPECIFIED"
  
  -- | The restriction state is currently being evaluated.
  pattern RestrictionEvaluation_State_Evaluating :: RestrictionEvaluation_State
  pattern RestrictionEvaluation_State_Evaluating = RestrictionEvaluation_State "EVALUATING"
  
  -- | All transitive memberships are adhering to restriction.
  pattern RestrictionEvaluation_State_Compliant :: RestrictionEvaluation_State
  pattern RestrictionEvaluation_State_Compliant = RestrictionEvaluation_State "COMPLIANT"
  
  -- | Some transitive memberships violate the restriction. No new violating memberships can be added.
  pattern RestrictionEvaluation_State_FORWARDCOMPLIANT :: RestrictionEvaluation_State
  pattern RestrictionEvaluation_State_FORWARDCOMPLIANT = RestrictionEvaluation_State "FORWARD_COMPLIANT"
  
  -- | Some transitive memberships violate the restriction. New violating direct memberships will be denied while indirect memberships may be added.
  pattern RestrictionEvaluation_State_NONCOMPLIANT :: RestrictionEvaluation_State
  pattern RestrictionEvaluation_State_NONCOMPLIANT = RestrictionEvaluation_State "NON_COMPLIANT"
  
  {-# COMPLETE
    RestrictionEvaluation_State_STATEUNSPECIFIED,
    RestrictionEvaluation_State_Evaluating,
    RestrictionEvaluation_State_Compliant,
    RestrictionEvaluation_State_FORWARDCOMPLIANT,
    RestrictionEvaluation_State_NONCOMPLIANT,
    RestrictionEvaluation_State
    #-}
  
  -- | When to redirect sign-ins to the IdP.
  newtype SignInBehavior_RedirectCondition = SignInBehavior_RedirectCondition {fromSignInBehavior_RedirectCondition :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default and means \"always\"
  pattern SignInBehavior_RedirectCondition_REDIRECTCONDITIONUNSPECIFIED :: SignInBehavior_RedirectCondition
  pattern SignInBehavior_RedirectCondition_REDIRECTCONDITIONUNSPECIFIED = SignInBehavior_RedirectCondition "REDIRECT_CONDITION_UNSPECIFIED"
  
  -- | Sign-in flows where the user is prompted for their identity will not redirect to the IdP (so the user will most likely be prompted by Google for a password), but special flows like IdP-initiated SAML and sign-in following automatic redirection to the IdP by domain-specific service URLs will accept the IdP\'s assertion of the user\'s identity.
  pattern SignInBehavior_RedirectCondition_Never :: SignInBehavior_RedirectCondition
  pattern SignInBehavior_RedirectCondition_Never = SignInBehavior_RedirectCondition "NEVER"
  
  {-# COMPLETE
    SignInBehavior_RedirectCondition_REDIRECTCONDITIONUNSPECIFIED,
    SignInBehavior_RedirectCondition_Never,
    SignInBehavior_RedirectCondition
    #-}
  
  -- | State of the @UserInvitation@.
  newtype UserInvitation_State = UserInvitation_State {fromUserInvitation_State :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | The default value. This value is used if the state is omitted.
  pattern UserInvitation_State_STATEUNSPECIFIED :: UserInvitation_State
  pattern UserInvitation_State_STATEUNSPECIFIED = UserInvitation_State "STATE_UNSPECIFIED"
  
  -- | The @UserInvitation@ has been created and is ready for sending as an email.
  pattern UserInvitation_State_NOTYETSENT :: UserInvitation_State
  pattern UserInvitation_State_NOTYETSENT = UserInvitation_State "NOT_YET_SENT"
  
  -- | The user has been invited by email.
  pattern UserInvitation_State_Invited :: UserInvitation_State
  pattern UserInvitation_State_Invited = UserInvitation_State "INVITED"
  
  -- | The user has accepted the invitation and is part of the organization.
  pattern UserInvitation_State_Accepted :: UserInvitation_State
  pattern UserInvitation_State_Accepted = UserInvitation_State "ACCEPTED"
  
  -- | The user declined the invitation.
  pattern UserInvitation_State_Declined :: UserInvitation_State
  pattern UserInvitation_State_Declined = UserInvitation_State "DECLINED"
  
  {-# COMPLETE
    UserInvitation_State_STATEUNSPECIFIED,
    UserInvitation_State_NOTYETSENT,
    UserInvitation_State_Invited,
    UserInvitation_State_Accepted,
    UserInvitation_State_Declined,
    UserInvitation_State
    #-}
  
  -- | Optional. The view to use for the List request.
  newtype DevicesListView = DevicesListView {fromDevicesListView :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default value. The value is unused.
  pattern DevicesListView_VIEWUNSPECIFIED :: DevicesListView
  pattern DevicesListView_VIEWUNSPECIFIED = DevicesListView "VIEW_UNSPECIFIED"
  
  -- | This view contains all devices imported by the company admin. Each device in the response contains all information specified by the company admin when importing the device (i.e. asset tags). This includes devices that may be unassigned or assigned to users.
  pattern DevicesListView_COMPANYINVENTORY :: DevicesListView
  pattern DevicesListView_COMPANYINVENTORY = DevicesListView "COMPANY_INVENTORY"
  
  -- | This view contains all devices with at least one user registered on the device. Each device in the response contains all device information, except for asset tags.
  pattern DevicesListView_USERASSIGNEDDEVICES :: DevicesListView
  pattern DevicesListView_USERASSIGNEDDEVICES = DevicesListView "USER_ASSIGNED_DEVICES"
  
  {-# COMPLETE
    DevicesListView_VIEWUNSPECIFIED,
    DevicesListView_COMPANYINVENTORY,
    DevicesListView_USERASSIGNEDDEVICES,
    DevicesListView
    #-}
  
  -- | Optional. The initial configuration option for the @Group@.
  newtype GroupsCreateInitialGroupConfig = GroupsCreateInitialGroupConfig {fromGroupsCreateInitialGroupConfig :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern GroupsCreateInitialGroupConfig_INITIALGROUPCONFIGUNSPECIFIED :: GroupsCreateInitialGroupConfig
  pattern GroupsCreateInitialGroupConfig_INITIALGROUPCONFIGUNSPECIFIED = GroupsCreateInitialGroupConfig "INITIAL_GROUP_CONFIG_UNSPECIFIED"
  
  -- | The end user making the request will be added as the initial owner of the @Group@.
  pattern GroupsCreateInitialGroupConfig_WITHINITIALOWNER :: GroupsCreateInitialGroupConfig
  pattern GroupsCreateInitialGroupConfig_WITHINITIALOWNER = GroupsCreateInitialGroupConfig "WITH_INITIAL_OWNER"
  
  -- | An empty group is created without any initial owners. This can only be used by admins of the domain.
  pattern GroupsCreateInitialGroupConfig_Empty :: GroupsCreateInitialGroupConfig
  pattern GroupsCreateInitialGroupConfig_Empty = GroupsCreateInitialGroupConfig "EMPTY"
  
  {-# COMPLETE
    GroupsCreateInitialGroupConfig_INITIALGROUPCONFIGUNSPECIFIED,
    GroupsCreateInitialGroupConfig_WITHINITIALOWNER,
    GroupsCreateInitialGroupConfig_Empty,
    GroupsCreateInitialGroupConfig
    #-}
  
  -- | The level of detail to be returned. If unspecified, defaults to @View.BASIC@.
  newtype GroupsListView = GroupsListView {fromGroupsListView :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern GroupsListView_VIEWUNSPECIFIED :: GroupsListView
  pattern GroupsListView_VIEWUNSPECIFIED = GroupsListView "VIEW_UNSPECIFIED"
  
  -- | Only basic resource information is returned.
  pattern GroupsListView_Basic :: GroupsListView
  pattern GroupsListView_Basic = GroupsListView "BASIC"
  
  -- | All resource information is returned.
  pattern GroupsListView_Full :: GroupsListView
  pattern GroupsListView_Full = GroupsListView "FULL"
  
  {-# COMPLETE
    GroupsListView_VIEWUNSPECIFIED,
    GroupsListView_Basic,
    GroupsListView_Full,
    GroupsListView
    #-}
  
  -- | The level of detail to be returned. If unspecified, defaults to @View.BASIC@.
  newtype GroupsMembershipsListView = GroupsMembershipsListView {fromGroupsMembershipsListView :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern GroupsMembershipsListView_VIEWUNSPECIFIED :: GroupsMembershipsListView
  pattern GroupsMembershipsListView_VIEWUNSPECIFIED = GroupsMembershipsListView "VIEW_UNSPECIFIED"
  
  -- | Only basic resource information is returned.
  pattern GroupsMembershipsListView_Basic :: GroupsMembershipsListView
  pattern GroupsMembershipsListView_Basic = GroupsMembershipsListView "BASIC"
  
  -- | All resource information is returned.
  pattern GroupsMembershipsListView_Full :: GroupsMembershipsListView
  pattern GroupsMembershipsListView_Full = GroupsMembershipsListView "FULL"
  
  {-# COMPLETE
    GroupsMembershipsListView_VIEWUNSPECIFIED,
    GroupsMembershipsListView_Basic,
    GroupsMembershipsListView_Full,
    GroupsMembershipsListView
    #-}
  
  -- | The level of detail to be returned. If unspecified, defaults to @View.BASIC@.
  newtype GroupsSearchView = GroupsSearchView {fromGroupsSearchView :: Core.Text}
    deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
    deriving newtype
      ( Core.Hashable,
        Core.ToHttpApiData,
        Core.FromHttpApiData,
        Core.ToJSON,
        Core.ToJSONKey,
        Core.FromJSON,
        Core.FromJSONKey
      )
  
  -- | Default. Should not be used.
  pattern GroupsSearchView_VIEWUNSPECIFIED :: GroupsSearchView
  pattern GroupsSearchView_VIEWUNSPECIFIED = GroupsSearchView "VIEW_UNSPECIFIED"
  
  -- | Only basic resource information is returned.
  pattern GroupsSearchView_Basic :: GroupsSearchView
  pattern GroupsSearchView_Basic = GroupsSearchView "BASIC"
  
  -- | All resource information is returned.
  pattern GroupsSearchView_Full :: GroupsSearchView
  pattern GroupsSearchView_Full = GroupsSearchView "FULL"
  
  {-# COMPLETE
    GroupsSearchView_VIEWUNSPECIFIED,
    GroupsSearchView_Basic,
    GroupsSearchView_Full,
    GroupsSearchView
    #-}
  