{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE NoImplicitPrelude #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} {-# OPTIONS_GHC -fno-warn-unused-matches #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Amazonka.LicenseManagerUserSubscriptions.Types.InstanceUserSummary -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.LicenseManagerUserSubscriptions.Types.InstanceUserSummary where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import Amazonka.LicenseManagerUserSubscriptions.Types.IdentityProvider import qualified Amazonka.Prelude as Prelude -- | Describes users of an EC2 instance providing user-based subscriptions. -- -- /See:/ 'newInstanceUserSummary' smart constructor. data InstanceUserSummary = InstanceUserSummary' { -- | The date a user was associated with an EC2 instance. associationDate :: Prelude.Maybe Prelude.Text, -- | The date a user was disassociated from an EC2 instance. disassociationDate :: Prelude.Maybe Prelude.Text, -- | The domain name of the user. domain :: Prelude.Maybe Prelude.Text, -- | The status message for users of an EC2 instance. statusMessage :: Prelude.Maybe Prelude.Text, -- | An object that specifies details for the identity provider. identityProvider :: IdentityProvider, -- | The ID of the EC2 instance, which provides user-based subscriptions. instanceId :: Prelude.Text, -- | The status of a user associated with an EC2 instance. status :: Prelude.Text, -- | The user name from the identity provider for the user. username :: Prelude.Text } deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic) -- | -- Create a value of 'InstanceUserSummary' with all optional fields omitted. -- -- Use or to modify other optional fields. -- -- The following record fields are available, with the corresponding lenses provided -- for backwards compatibility: -- -- 'associationDate', 'instanceUserSummary_associationDate' - The date a user was associated with an EC2 instance. -- -- 'disassociationDate', 'instanceUserSummary_disassociationDate' - The date a user was disassociated from an EC2 instance. -- -- 'domain', 'instanceUserSummary_domain' - The domain name of the user. -- -- 'statusMessage', 'instanceUserSummary_statusMessage' - The status message for users of an EC2 instance. -- -- 'identityProvider', 'instanceUserSummary_identityProvider' - An object that specifies details for the identity provider. -- -- 'instanceId', 'instanceUserSummary_instanceId' - The ID of the EC2 instance, which provides user-based subscriptions. -- -- 'status', 'instanceUserSummary_status' - The status of a user associated with an EC2 instance. -- -- 'username', 'instanceUserSummary_username' - The user name from the identity provider for the user. newInstanceUserSummary :: -- | 'identityProvider' IdentityProvider -> -- | 'instanceId' Prelude.Text -> -- | 'status' Prelude.Text -> -- | 'username' Prelude.Text -> InstanceUserSummary newInstanceUserSummary pIdentityProvider_ pInstanceId_ pStatus_ pUsername_ = InstanceUserSummary' { associationDate = Prelude.Nothing, disassociationDate = Prelude.Nothing, domain = Prelude.Nothing, statusMessage = Prelude.Nothing, identityProvider = pIdentityProvider_, instanceId = pInstanceId_, status = pStatus_, username = pUsername_ } -- | The date a user was associated with an EC2 instance. instanceUserSummary_associationDate :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text) instanceUserSummary_associationDate = Lens.lens (\InstanceUserSummary' {associationDate} -> associationDate) (\s@InstanceUserSummary' {} a -> s {associationDate = a} :: InstanceUserSummary) -- | The date a user was disassociated from an EC2 instance. instanceUserSummary_disassociationDate :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text) instanceUserSummary_disassociationDate = Lens.lens (\InstanceUserSummary' {disassociationDate} -> disassociationDate) (\s@InstanceUserSummary' {} a -> s {disassociationDate = a} :: InstanceUserSummary) -- | The domain name of the user. instanceUserSummary_domain :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text) instanceUserSummary_domain = Lens.lens (\InstanceUserSummary' {domain} -> domain) (\s@InstanceUserSummary' {} a -> s {domain = a} :: InstanceUserSummary) -- | The status message for users of an EC2 instance. instanceUserSummary_statusMessage :: Lens.Lens' InstanceUserSummary (Prelude.Maybe Prelude.Text) instanceUserSummary_statusMessage = Lens.lens (\InstanceUserSummary' {statusMessage} -> statusMessage) (\s@InstanceUserSummary' {} a -> s {statusMessage = a} :: InstanceUserSummary) -- | An object that specifies details for the identity provider. instanceUserSummary_identityProvider :: Lens.Lens' InstanceUserSummary IdentityProvider instanceUserSummary_identityProvider = Lens.lens (\InstanceUserSummary' {identityProvider} -> identityProvider) (\s@InstanceUserSummary' {} a -> s {identityProvider = a} :: InstanceUserSummary) -- | The ID of the EC2 instance, which provides user-based subscriptions. instanceUserSummary_instanceId :: Lens.Lens' InstanceUserSummary Prelude.Text instanceUserSummary_instanceId = Lens.lens (\InstanceUserSummary' {instanceId} -> instanceId) (\s@InstanceUserSummary' {} a -> s {instanceId = a} :: InstanceUserSummary) -- | The status of a user associated with an EC2 instance. instanceUserSummary_status :: Lens.Lens' InstanceUserSummary Prelude.Text instanceUserSummary_status = Lens.lens (\InstanceUserSummary' {status} -> status) (\s@InstanceUserSummary' {} a -> s {status = a} :: InstanceUserSummary) -- | The user name from the identity provider for the user. instanceUserSummary_username :: Lens.Lens' InstanceUserSummary Prelude.Text instanceUserSummary_username = Lens.lens (\InstanceUserSummary' {username} -> username) (\s@InstanceUserSummary' {} a -> s {username = a} :: InstanceUserSummary) instance Data.FromJSON InstanceUserSummary where parseJSON = Data.withObject "InstanceUserSummary" ( \x -> InstanceUserSummary' Prelude.<$> (x Data..:? "AssociationDate") Prelude.<*> (x Data..:? "DisassociationDate") Prelude.<*> (x Data..:? "Domain") Prelude.<*> (x Data..:? "StatusMessage") Prelude.<*> (x Data..: "IdentityProvider") Prelude.<*> (x Data..: "InstanceId") Prelude.<*> (x Data..: "Status") Prelude.<*> (x Data..: "Username") ) instance Prelude.Hashable InstanceUserSummary where hashWithSalt _salt InstanceUserSummary' {..} = _salt `Prelude.hashWithSalt` associationDate `Prelude.hashWithSalt` disassociationDate `Prelude.hashWithSalt` domain `Prelude.hashWithSalt` statusMessage `Prelude.hashWithSalt` identityProvider `Prelude.hashWithSalt` instanceId `Prelude.hashWithSalt` status `Prelude.hashWithSalt` username instance Prelude.NFData InstanceUserSummary where rnf InstanceUserSummary' {..} = Prelude.rnf associationDate `Prelude.seq` Prelude.rnf disassociationDate `Prelude.seq` Prelude.rnf domain `Prelude.seq` Prelude.rnf statusMessage `Prelude.seq` Prelude.rnf identityProvider `Prelude.seq` Prelude.rnf instanceId `Prelude.seq` Prelude.rnf status `Prelude.seq` Prelude.rnf username