-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google Cloud User Accounts SDK.
--   
--   Creates and manages users and groups for accessing Google Compute
--   Engine virtual machines.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>beta</tt> of the API.
@package gogol-useraccounts
@version 0.3.0


module Network.Google.UserAccounts.Types

-- | Default request referring to version <tt>beta</tt> of the Cloud User
--   Accounts API. This contains the host and root path used as a starting
--   point for constructing service requests.
userAccountsService :: ServiceConfig

-- | View your data across Google Cloud Platform services
cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | Manage your Google Cloud User Accounts
cloudUserAccountsScope :: Proxy '["https://www.googleapis.com/auth/cloud.useraccounts"]

-- | View your Google Cloud User Accounts
cloudUserAccountsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud.useraccounts.readonly"]
data OperationWarningsItemDataItem

-- | Creates a value of <a>OperationWarningsItemDataItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>owidiValue</a></li>
--   <li><a>owidiKey</a></li>
--   </ul>
operationWarningsItemDataItem :: OperationWarningsItemDataItem

-- | <ul>
--   <li><i>Output Only</i> A warning data value corresponding to the
--   key.</li>
--   </ul>
owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A key that provides more detail on the warning
--   being returned. For example, for warnings where there are no results
--   in a list request for a particular zone, this key might be scope and
--   the key value might be the zone name. Other examples might be a key
--   indicating a deprecated resource and a suggested replacement, or a
--   warning about invalid network settings (for example, if an instance
--   attempts to perform IP forwarding but is not enabled for IP
--   forwarding).</li>
--   </ul>
owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A warning code, if applicable. For example,
--   Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
--   the response.</li>
--   </ul>
data OperationWarningsItemCode

-- | <pre>
--   CLEANUP_FAILED
--   </pre>
CleanupFailed :: OperationWarningsItemCode

-- | <pre>
--   DEPRECATED_RESOURCE_USED
--   </pre>
DeprecatedResourceUsed :: OperationWarningsItemCode

-- | <pre>
--   DISK_SIZE_LARGER_THAN_IMAGE_SIZE
--   </pre>
DiskSizeLargerThanImageSize :: OperationWarningsItemCode

-- | <pre>
--   INJECTED_KERNELS_DEPRECATED
--   </pre>
InjectedKernelsDeprecated :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_ADDRESS_NOT_ASSIGNED
--   </pre>
NextHopAddressNotAssigned :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_CANNOT_IP_FORWARD
--   </pre>
NextHopCannotIPForward :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_INSTANCE_NOT_FOUND
--   </pre>
NextHopInstanceNotFound :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_INSTANCE_NOT_ON_NETWORK
--   </pre>
NextHopInstanceNotOnNetwork :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_NOT_RUNNING
--   </pre>
NextHopNotRunning :: OperationWarningsItemCode

-- | <pre>
--   NOT_CRITICAL_ERROR
--   </pre>
NotCriticalError :: OperationWarningsItemCode

-- | <pre>
--   NO_RESULTS_ON_PAGE
--   </pre>
NoResultsOnPage :: OperationWarningsItemCode

-- | <pre>
--   REQUIRED_TOS_AGREEMENT
--   </pre>
RequiredTosAgreement :: OperationWarningsItemCode

-- | <pre>
--   RESOURCE_NOT_DELETED
--   </pre>
ResourceNotDeleted :: OperationWarningsItemCode

-- | <pre>
--   SINGLE_INSTANCE_PROPERTY_TEMPLATE
--   </pre>
SingleInstancePropertyTemplate :: OperationWarningsItemCode

-- | <pre>
--   UNREACHABLE
--   </pre>
Unreachable :: OperationWarningsItemCode

-- | Contains a list of Operation resources.
--   
--   <i>See:</i> <a>operationList</a> smart constructor.
data OperationList

-- | Creates a value of <a>OperationList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olNextPageToken</a></li>
--   <li><a>olKind</a></li>
--   <li><a>olItems</a></li>
--   <li><a>olSelfLink</a></li>
--   <li><a>olId</a></li>
--   </ul>
operationList :: OperationList

-- | <ul>
--   <li><i>Output Only</i> This token allows you to get the next page of
--   results for list requests. If the number of results is larger than
--   maxResults, use the nextPageToken as a value for the query parameter
--   pageToken in the next list request. Subsequent list requests will have
--   their own nextPageToken to continue paging through the results.</li>
--   </ul>
olNextPageToken :: Lens' OperationList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always compute#operations for
--   Operations resource.</li>
--   </ul>
olKind :: Lens' OperationList Text

-- | <ul>
--   <li><i>Output Only</i> A list of Operation resources.</li>
--   </ul>
olItems :: Lens' OperationList [Operation]

-- | <ul>
--   <li><i>Output Only</i> Server-defined URL for this resource.</li>
--   </ul>
olSelfLink :: Lens' OperationList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The unique identifier for the resource. This
--   identifier is defined by the server.</li>
--   </ul>
olId :: Lens' OperationList (Maybe Text)

-- | A Group resource.
--   
--   <i>See:</i> <a>group'</a> smart constructor.
data Group

-- | Creates a value of <a>Group</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gKind</a></li>
--   <li><a>gMembers</a></li>
--   <li><a>gSelfLink</a></li>
--   <li><a>gName</a></li>
--   <li><a>gCreationTimestamp</a></li>
--   <li><a>gId</a></li>
--   <li><a>gDescription</a></li>
--   </ul>
group' :: Group

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always
--   clouduseraccounts#group for groups.</li>
--   </ul>
gKind :: Lens' Group Text

-- | <ul>
--   <li><i>Output Only</i> A list of URLs to User resources who belong to
--   the group. Users may only be members of groups in the same
--   project.</li>
--   </ul>
gMembers :: Lens' Group [Text]

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for the resource.</li>
--   </ul>
gSelfLink :: Lens' Group (Maybe Text)

-- | Name of the resource; provided by the client when the resource is
--   created.
gName :: Lens' Group (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
gCreationTimestamp :: Lens' Group (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
gId :: Lens' Group (Maybe Word64)

-- | An optional textual description of the resource; provided by the
--   client when the resource is created.
gDescription :: Lens' Group (Maybe Text)
data GroupList

-- | Creates a value of <a>GroupList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glNextPageToken</a></li>
--   <li><a>glKind</a></li>
--   <li><a>glItems</a></li>
--   <li><a>glSelfLink</a></li>
--   <li><a>glId</a></li>
--   </ul>
groupList :: GroupList

-- | <ul>
--   <li><i>Output Only</i> A token used to continue a truncated list
--   request.</li>
--   </ul>
glNextPageToken :: Lens' GroupList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always
--   clouduseraccounts#groupList for lists of groups.</li>
--   </ul>
glKind :: Lens' GroupList Text

-- | <ul>
--   <li><i>Output Only</i> A list of Group resources.</li>
--   </ul>
glItems :: Lens' GroupList [Group]

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for this resource.</li>
--   </ul>
glSelfLink :: Lens' GroupList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
glId :: Lens' GroupList (Maybe Text)

-- | An Operation resource, used to manage asynchronous API requests.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oTargetId</a></li>
--   <li><a>oStatus</a></li>
--   <li><a>oInsertTime</a></li>
--   <li><a>oProgress</a></li>
--   <li><a>oStartTime</a></li>
--   <li><a>oKind</a></li>
--   <li><a>oError</a></li>
--   <li><a>oHTTPErrorMessage</a></li>
--   <li><a>oZone</a></li>
--   <li><a>oWarnings</a></li>
--   <li><a>oHTTPErrorStatusCode</a></li>
--   <li><a>oUser</a></li>
--   <li><a>oSelfLink</a></li>
--   <li><a>oName</a></li>
--   <li><a>oStatusMessage</a></li>
--   <li><a>oCreationTimestamp</a></li>
--   <li><a>oEndTime</a></li>
--   <li><a>oId</a></li>
--   <li><a>oOperationType</a></li>
--   <li><a>oRegion</a></li>
--   <li><a>oDescription</a></li>
--   <li><a>oTargetLink</a></li>
--   <li><a>oClientOperationId</a></li>
--   </ul>
operation :: Operation

-- | <ul>
--   <li><i>Output Only</i> The unique target ID, which identifies a
--   specific incarnation of the target resource.</li>
--   </ul>
oTargetId :: Lens' Operation (Maybe Word64)

-- | <ul>
--   <li><i>Output Only</i> The status of the operation, which can be one
--   of the following: PENDING, RUNNING, or DONE.</li>
--   </ul>
oStatus :: Lens' Operation (Maybe OperationStatus)

-- | <ul>
--   <li><i>Output Only</i> The time that this operation was requested.
--   This value is in RFC3339 text format.</li>
--   </ul>
oInsertTime :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> An optional progress indicator that ranges from
--   0 to 100. There is no requirement that this be linear or support any
--   granularity of operations. This should not be used to guess when the
--   operation will be complete. This number should monotonically increase
--   as the operation progresses.</li>
--   </ul>
oProgress :: Lens' Operation (Maybe Int32)

-- | <ul>
--   <li><i>Output Only</i> The time that this operation was started by the
--   server. This value is in RFC3339 text format.</li>
--   </ul>
oStartTime :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always compute#operation
--   for Operation resources.</li>
--   </ul>
oKind :: Lens' Operation Text

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during processing of
--   the operation, this field will be populated.</li>
--   </ul>
oError :: Lens' Operation (Maybe OperationError)

-- | <ul>
--   <li><i>Output Only</i> If the operation fails, this field contains the
--   HTTP error message that was returned, such as NOT FOUND.</li>
--   </ul>
oHTTPErrorMessage :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The URL of the zone where the operation
--   resides. Only available when performing per-zone operations.</li>
--   </ul>
oZone :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If warning messages are generated during
--   processing of the operation, this field will be populated.</li>
--   </ul>
oWarnings :: Lens' Operation [OperationWarningsItem]

-- | <ul>
--   <li><i>Output Only</i> If the operation fails, this field contains the
--   HTTP error status code that was returned. For example, a 404 means the
--   resource was not found.</li>
--   </ul>
oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)

-- | <ul>
--   <li><i>Output Only</i> User who requested the operation, for example:
--   user'example.com.</li>
--   </ul>
oUser :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Server-defined URL for the resource.</li>
--   </ul>
oSelfLink :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Name of the resource.</li>
--   </ul>
oName :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> An optional textual description of the current
--   status of the operation.</li>
--   </ul>
oStatusMessage :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
oCreationTimestamp :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The time that this operation was completed.
--   This value is in RFC3339 text format.</li>
--   </ul>
oEndTime :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The unique identifier for the resource. This
--   identifier is defined by the server.</li>
--   </ul>
oId :: Lens' Operation (Maybe Word64)

-- | <ul>
--   <li><i>Output Only</i> The type of operation, such as insert, update,
--   or delete, and so on.</li>
--   </ul>
oOperationType :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The URL of the region where the operation
--   resides. Only available when performing regional operations.</li>
--   </ul>
oRegion :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A textual description of the operation, which
--   is set when the operation is created.</li>
--   </ul>
oDescription :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The URL of the resource that the operation
--   modifies.</li>
--   </ul>
oTargetLink :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Reserved for future use.</li>
--   </ul>
oClientOperationId :: Lens' Operation (Maybe Text)
data UserList

-- | Creates a value of <a>UserList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulNextPageToken</a></li>
--   <li><a>ulKind</a></li>
--   <li><a>ulItems</a></li>
--   <li><a>ulSelfLink</a></li>
--   <li><a>ulId</a></li>
--   </ul>
userList :: UserList

-- | <ul>
--   <li><i>Output Only</i> A token used to continue a truncated list
--   request.</li>
--   </ul>
ulNextPageToken :: Lens' UserList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always
--   clouduseraccounts#userList for lists of users.</li>
--   </ul>
ulKind :: Lens' UserList Text

-- | <ul>
--   <li><i>Output Only</i> A list of User resources.</li>
--   </ul>
ulItems :: Lens' UserList [User]

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for this resource.</li>
--   </ul>
ulSelfLink :: Lens' UserList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
ulId :: Lens' UserList (Maybe Text)

-- | A public key for authenticating to guests.
--   
--   <i>See:</i> <a>publicKey</a> smart constructor.
data PublicKey

-- | Creates a value of <a>PublicKey</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pkFingerprint</a></li>
--   <li><a>pkKey</a></li>
--   <li><a>pkCreationTimestamp</a></li>
--   <li><a>pkExpirationTimestamp</a></li>
--   <li><a>pkDescription</a></li>
--   </ul>
publicKey :: PublicKey

-- | <ul>
--   <li><i>Output Only</i> The fingerprint of the key is defined by
--   RFC4716 to be the MD5 digest of the public key.</li>
--   </ul>
pkFingerprint :: Lens' PublicKey (Maybe Text)

-- | Public key text in SSH format, defined by RFC4253 section 6.6.
pkKey :: Lens' PublicKey (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
pkCreationTimestamp :: Lens' PublicKey (Maybe Text)

-- | Optional expiration timestamp. If provided, the timestamp must be in
--   RFC3339 text format. If not provided, the public key never expires.
pkExpirationTimestamp :: Lens' PublicKey (Maybe Text)

-- | An optional textual description of the resource; provided by the
--   client when the resource is created.
pkDescription :: Lens' PublicKey (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The status of the operation, which can be one
--   of the following: PENDING, RUNNING, or DONE.</li>
--   </ul>
data OperationStatus

-- | <pre>
--   DONE
--   </pre>
Done :: OperationStatus

-- | <pre>
--   PENDING
--   </pre>
Pending :: OperationStatus

-- | <pre>
--   RUNNING
--   </pre>
Running :: OperationStatus

-- | A list of all Linux accounts for this project. This API is only used
--   by Compute Engine virtual machines to get information about user
--   accounts for a project or instance. Linux resources are read-only
--   views into users and groups managed by the Compute Engine Accounts
--   API.
--   
--   <i>See:</i> <a>linuxAccountViews</a> smart constructor.
data LinuxAccountViews

-- | Creates a value of <a>LinuxAccountViews</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lavUserViews</a></li>
--   <li><a>lavKind</a></li>
--   <li><a>lavGroupViews</a></li>
--   </ul>
linuxAccountViews :: LinuxAccountViews

-- | <ul>
--   <li><i>Output Only</i> A list of all users within a project.</li>
--   </ul>
lavUserViews :: Lens' LinuxAccountViews [LinuxUserView]

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always
--   clouduseraccounts#linuxAccountViews for Linux resources.</li>
--   </ul>
lavKind :: Lens' LinuxAccountViews Text

-- | <ul>
--   <li><i>Output Only</i> A list of all groups within a project.</li>
--   </ul>
lavGroupViews :: Lens' LinuxAccountViews [LinuxGroupView]

-- | A User resource.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uGroups</a></li>
--   <li><a>uPublicKeys</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uOwner</a></li>
--   <li><a>uSelfLink</a></li>
--   <li><a>uName</a></li>
--   <li><a>uCreationTimestamp</a></li>
--   <li><a>uId</a></li>
--   <li><a>uDescription</a></li>
--   </ul>
user :: User

-- | <ul>
--   <li><i>Output Only</i> A list of URLs to Group resources who contain
--   the user. Users are only members of groups in the same project.</li>
--   </ul>
uGroups :: Lens' User [Text]

-- | <ul>
--   <li><i>Output Only</i> Public keys that this user may use to
--   login.</li>
--   </ul>
uPublicKeys :: Lens' User [PublicKey]

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always
--   clouduseraccounts#user for users.</li>
--   </ul>
uKind :: Lens' User Text

-- | Email address of account's owner. This account will be validated to
--   make sure it exists. The email can belong to any domain, but it must
--   be tied to a Google account.
uOwner :: Lens' User (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for the resource.</li>
--   </ul>
uSelfLink :: Lens' User (Maybe Text)

-- | Name of the resource; provided by the client when the resource is
--   created.
uName :: Lens' User (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
uCreationTimestamp :: Lens' User (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
uId :: Lens' User (Maybe Word64)

-- | An optional textual description of the resource; provided by the
--   client when the resource is created.
uDescription :: Lens' User (Maybe Text)
data GroupsAddMemberRequest

-- | Creates a value of <a>GroupsAddMemberRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gamrUsers</a></li>
--   </ul>
groupsAddMemberRequest :: GroupsAddMemberRequest

-- | Fully-qualified URLs of the User resources to add.
gamrUsers :: Lens' GroupsAddMemberRequest [Text]

-- | A detailed view of a Linux group.
--   
--   <i>See:</i> <a>linuxGroupView</a> smart constructor.
data LinuxGroupView

-- | Creates a value of <a>LinuxGroupView</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgvMembers</a></li>
--   <li><a>lgvGid</a></li>
--   <li><a>lgvGroupName</a></li>
--   </ul>
linuxGroupView :: LinuxGroupView

-- | <ul>
--   <li><i>Output Only</i> List of user accounts that belong to the
--   group.</li>
--   </ul>
lgvMembers :: Lens' LinuxGroupView [Text]

-- | <ul>
--   <li><i>Output Only</i> The Group ID.</li>
--   </ul>
lgvGid :: Lens' LinuxGroupView (Maybe Word32)

-- | <ul>
--   <li><i>Output Only</i> Group name.</li>
--   </ul>
lgvGroupName :: Lens' LinuxGroupView (Maybe Text)

-- | A detailed view of a Linux user account.
--   
--   <i>See:</i> <a>linuxUserView</a> smart constructor.
data LinuxUserView

-- | Creates a value of <a>LinuxUserView</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>luvGecos</a></li>
--   <li><a>luvUid</a></li>
--   <li><a>luvUsername</a></li>
--   <li><a>luvShell</a></li>
--   <li><a>luvGid</a></li>
--   <li><a>luvHomeDirectory</a></li>
--   </ul>
linuxUserView :: LinuxUserView

-- | <ul>
--   <li><i>Output Only</i> The GECOS (user information) entry for this
--   account.</li>
--   </ul>
luvGecos :: Lens' LinuxUserView (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> User ID.</li>
--   </ul>
luvUid :: Lens' LinuxUserView (Maybe Word32)

-- | <ul>
--   <li><i>Output Only</i> The username of the account.</li>
--   </ul>
luvUsername :: Lens' LinuxUserView (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The path to the login shell for this
--   account.</li>
--   </ul>
luvShell :: Lens' LinuxUserView (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> User's default group ID.</li>
--   </ul>
luvGid :: Lens' LinuxUserView (Maybe Word32)

-- | <ul>
--   <li><i>Output Only</i> The path to the home directory for this
--   account.</li>
--   </ul>
luvHomeDirectory :: Lens' LinuxUserView (Maybe Text)
data LinuxGetLinuxAccountViewsResponse

-- | Creates a value of <a>LinuxGetLinuxAccountViewsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lglavrResource</a></li>
--   </ul>
linuxGetLinuxAccountViewsResponse :: LinuxGetLinuxAccountViewsResponse

-- | <ul>
--   <li><i>Output Only</i> A list of authorized user accounts and
--   groups.</li>
--   </ul>
lglavrResource :: Lens' LinuxGetLinuxAccountViewsResponse (Maybe LinuxAccountViews)

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during processing of
--   the operation, this field will be populated.</li>
--   </ul>
--   
--   <i>See:</i> <a>operationError</a> smart constructor.
data OperationError

-- | Creates a value of <a>OperationError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oeErrors</a></li>
--   </ul>
operationError :: OperationError

-- | <ul>
--   <li><i>Output Only</i> The array of errors encountered while
--   processing this operation.</li>
--   </ul>
oeErrors :: Lens' OperationError [OperationErrorErrorsItem]
data LinuxGetAuthorizedKeysViewResponse

-- | Creates a value of <a>LinuxGetAuthorizedKeysViewResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgakvrResource</a></li>
--   </ul>
linuxGetAuthorizedKeysViewResponse :: LinuxGetAuthorizedKeysViewResponse

-- | <ul>
--   <li><i>Output Only</i> A list of authorized public keys for a
--   user.</li>
--   </ul>
lgakvrResource :: Lens' LinuxGetAuthorizedKeysViewResponse (Maybe AuthorizedKeysView)
data OperationErrorErrorsItem

-- | Creates a value of <a>OperationErrorErrorsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oeeiLocation</a></li>
--   <li><a>oeeiCode</a></li>
--   <li><a>oeeiMessage</a></li>
--   </ul>
operationErrorErrorsItem :: OperationErrorErrorsItem

-- | <ul>
--   <li><i>Output Only</i> Indicates the field in the request that caused
--   the error. This property is optional.</li>
--   </ul>
oeeiLocation :: Lens' OperationErrorErrorsItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The error type identifier for this error.</li>
--   </ul>
oeeiCode :: Lens' OperationErrorErrorsItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> An optional, human-readable error message.</li>
--   </ul>
oeeiMessage :: Lens' OperationErrorErrorsItem (Maybe Text)
data GroupsRemoveMemberRequest

-- | Creates a value of <a>GroupsRemoveMemberRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grmrUsers</a></li>
--   </ul>
groupsRemoveMemberRequest :: GroupsRemoveMemberRequest

-- | Fully-qualified URLs of the User resources to remove.
grmrUsers :: Lens' GroupsRemoveMemberRequest [Text]

-- | A list of authorized public keys for a user account.
--   
--   <i>See:</i> <a>authorizedKeysView</a> smart constructor.
data AuthorizedKeysView

-- | Creates a value of <a>AuthorizedKeysView</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akvSudoer</a></li>
--   <li><a>akvKeys</a></li>
--   </ul>
authorizedKeysView :: AuthorizedKeysView

-- | <ul>
--   <li><i>Output Only</i> Whether the user has the ability to elevate on
--   the instance that requested the authorized keys.</li>
--   </ul>
akvSudoer :: Lens' AuthorizedKeysView (Maybe Bool)

-- | <ul>
--   <li><i>Output Only</i> The list of authorized public keys in SSH
--   format.</li>
--   </ul>
akvKeys :: Lens' AuthorizedKeysView [Text]
data OperationWarningsItem

-- | Creates a value of <a>OperationWarningsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>owiData</a></li>
--   <li><a>owiCode</a></li>
--   <li><a>owiMessage</a></li>
--   </ul>
operationWarningsItem :: OperationWarningsItem

-- | <ul>
--   <li><i>Output Only</i> Metadata about this warning in key: value
--   format. For example: "data": [ { "key": "scope", "value":
--   "zones/us-east1-d" }</li>
--   </ul>
owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]

-- | <ul>
--   <li><i>Output Only</i> A warning code, if applicable. For example,
--   Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
--   the response.</li>
--   </ul>
owiCode :: Lens' OperationWarningsItem (Maybe OperationWarningsItemCode)

-- | <ul>
--   <li><i>Output Only</i> A human-readable description of the warning
--   code.</li>
--   </ul>
owiMessage :: Lens' OperationWarningsItem (Maybe Text)


-- | Removes the specified public key from the user.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.users.removePublicKey</tt>.
module Network.Google.Resource.CloudUserAccounts.Users.RemovePublicKey

-- | A resource alias for <tt>clouduseraccounts.users.removePublicKey</tt>
--   method which the <a>UsersRemovePublicKey</a> request conforms to.
type UsersRemovePublicKeyResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("users" :> (Capture "user" Text :> ("removePublicKey" :> (QueryParam "fingerprint" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>UsersRemovePublicKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urpkProject</a></li>
--   <li><a>urpkFingerprint</a></li>
--   <li><a>urpkUser</a></li>
--   </ul>
usersRemovePublicKey :: Text -> Text -> Text -> UsersRemovePublicKey

-- | Removes the specified public key from the user.
--   
--   <i>See:</i> <a>usersRemovePublicKey</a> smart constructor.
data UsersRemovePublicKey

-- | Project ID for this request.
urpkProject :: Lens' UsersRemovePublicKey Text

-- | The fingerprint of the public key to delete. Public keys are
--   identified by their fingerprint, which is defined by RFC4716 to be the
--   MD5 digest of the public key.
urpkFingerprint :: Lens' UsersRemovePublicKey Text

-- | Name of the user for this request.
urpkUser :: Lens' UsersRemovePublicKey Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Users.RemovePublicKey.UsersRemovePublicKey
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Users.RemovePublicKey.UsersRemovePublicKey
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Users.RemovePublicKey.UsersRemovePublicKey
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Users.RemovePublicKey.UsersRemovePublicKey
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Users.RemovePublicKey.UsersRemovePublicKey


-- | Retrieves a list of users contained within the specified project.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.users.list</tt>.
module Network.Google.Resource.CloudUserAccounts.Users.List

-- | A resource alias for <tt>clouduseraccounts.users.list</tt> method
--   which the <a>UsersList</a> request conforms to.
type UsersListResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("users" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] UserList))))))))))

-- | Creates a value of <a>UsersList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulOrderBy</a></li>
--   <li><a>ulProject</a></li>
--   <li><a>ulFilter</a></li>
--   <li><a>ulPageToken</a></li>
--   <li><a>ulMaxResults</a></li>
--   </ul>
usersList :: Text -> UsersList

-- | Retrieves a list of users contained within the specified project.
--   
--   <i>See:</i> <a>usersList</a> smart constructor.
data UsersList

-- | Sorts list results by a certain order. By default, results are
--   returned in alphanumerical order based on the resource name. You can
--   also sort results in descending order based on the creation timestamp
--   using orderBy="creationTimestamp desc". This sorts results based on
--   the creationTimestamp field in reverse chronological order (newest
--   result first). Use this to sort resources like operations so that the
--   newest operation is returned first. Currently, only sorting by name or
--   creationTimestamp desc is supported.
ulOrderBy :: Lens' UsersList (Maybe Text)

-- | Project ID for this request.
ulProject :: Lens' UsersList Text

-- | Sets a filter expression for filtering listed resources, in the form
--   filter={expression}. Your {expression} must be in the format:
--   field_name comparison_string literal_string. The field_name is the
--   name of the field you want to compare. Only atomic field types are
--   supported (string, number, boolean). The comparison_string must be
--   either eq (equals) or ne (not equals). The literal_string is the
--   string value to filter to. The literal value must be valid for the
--   type of field you are filtering by (string, number, boolean). For
--   string fields, the literal value is interpreted as a regular
--   expression using RE2 syntax. The literal value must match the entire
--   field. For example, to filter for instances that do not have a name of
--   example-instance, you would use filter=name ne example-instance.
--   Compute Engine Beta API Only: If you use filtering in the Beta API,
--   you can also filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   In particular, use filtering on nested fields to take advantage of
--   instance labels to organize and filter results based on label values.
--   The Beta API also supports filtering on multiple expressions by
--   providing each separate expression within parentheses. For example,
--   (scheduling.automaticRestart eq true) (zone eq us-central1-f).
--   Multiple expressions are treated as AND expressions, meaning that
--   resources must match all expressions to pass the filters.
ulFilter :: Lens' UsersList (Maybe Text)

-- | Specifies a page token to use. Set pageToken to the nextPageToken
--   returned by a previous list request to get the next page of results.
ulPageToken :: Lens' UsersList (Maybe Text)

-- | The maximum number of results per page that should be returned. If the
--   number of available results is larger than maxResults, Compute Engine
--   returns a nextPageToken that can be used to get the next page of
--   results in subsequent list requests.
ulMaxResults :: Lens' UsersList Word32
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Users.List.UsersList
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Users.List.UsersList
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Users.List.UsersList
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Users.List.UsersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Users.List.UsersList


-- | Creates a User resource in the specified project using the data
--   included in the request.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.users.insert</tt>.
module Network.Google.Resource.CloudUserAccounts.Users.Insert

-- | A resource alias for <tt>clouduseraccounts.users.insert</tt> method
--   which the <a>UsersInsert</a> request conforms to.
type UsersInsertResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("users" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] User :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>UsersInsert</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiProject</a></li>
--   <li><a>uiPayload</a></li>
--   </ul>
usersInsert :: Text -> User -> UsersInsert

-- | Creates a User resource in the specified project using the data
--   included in the request.
--   
--   <i>See:</i> <a>usersInsert</a> smart constructor.
data UsersInsert

-- | Project ID for this request.
uiProject :: Lens' UsersInsert Text

-- | Multipart request metadata.
uiPayload :: Lens' UsersInsert User
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Users.Insert.UsersInsert
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Users.Insert.UsersInsert
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Users.Insert.UsersInsert
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Users.Insert.UsersInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Users.Insert.UsersInsert


-- | Returns the specified User resource.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.users.get</tt>.
module Network.Google.Resource.CloudUserAccounts.Users.Get

-- | A resource alias for <tt>clouduseraccounts.users.get</tt> method which
--   the <a>UsersGet</a> request conforms to.
type UsersGetResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("users" :> (Capture "user" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] User)))))))

-- | Creates a value of <a>UsersGet</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ugProject</a></li>
--   <li><a>ugUser</a></li>
--   </ul>
usersGet :: Text -> Text -> UsersGet

-- | Returns the specified User resource.
--   
--   <i>See:</i> <a>usersGet</a> smart constructor.
data UsersGet

-- | Project ID for this request.
ugProject :: Lens' UsersGet Text

-- | Name of the user resource to return.
ugUser :: Lens' UsersGet Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Users.Get.UsersGet
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Users.Get.UsersGet
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Users.Get.UsersGet
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Users.Get.UsersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Users.Get.UsersGet


-- | Deletes the specified User resource.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.users.delete</tt>.
module Network.Google.Resource.CloudUserAccounts.Users.Delete

-- | A resource alias for <tt>clouduseraccounts.users.delete</tt> method
--   which the <a>UsersDelete</a> request conforms to.
type UsersDeleteResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("users" :> (Capture "user" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation)))))))

-- | Creates a value of <a>UsersDelete</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udProject</a></li>
--   <li><a>udUser</a></li>
--   </ul>
usersDelete :: Text -> Text -> UsersDelete

-- | Deletes the specified User resource.
--   
--   <i>See:</i> <a>usersDelete</a> smart constructor.
data UsersDelete

-- | Project ID for this request.
udProject :: Lens' UsersDelete Text

-- | Name of the user resource to delete.
udUser :: Lens' UsersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Users.Delete.UsersDelete
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Users.Delete.UsersDelete
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Users.Delete.UsersDelete
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Users.Delete.UsersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Users.Delete.UsersDelete


-- | Adds a public key to the specified User resource with the data
--   included in the request.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.users.addPublicKey</tt>.
module Network.Google.Resource.CloudUserAccounts.Users.AddPublicKey

-- | A resource alias for <tt>clouduseraccounts.users.addPublicKey</tt>
--   method which the <a>UsersAddPublicKey</a> request conforms to.
type UsersAddPublicKeyResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("users" :> (Capture "user" Text :> ("addPublicKey" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PublicKey :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>UsersAddPublicKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uapkProject</a></li>
--   <li><a>uapkPayload</a></li>
--   <li><a>uapkUser</a></li>
--   </ul>
usersAddPublicKey :: Text -> PublicKey -> Text -> UsersAddPublicKey

-- | Adds a public key to the specified User resource with the data
--   included in the request.
--   
--   <i>See:</i> <a>usersAddPublicKey</a> smart constructor.
data UsersAddPublicKey

-- | Project ID for this request.
uapkProject :: Lens' UsersAddPublicKey Text

-- | Multipart request metadata.
uapkPayload :: Lens' UsersAddPublicKey PublicKey

-- | Name of the user for this request.
uapkUser :: Lens' UsersAddPublicKey Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Users.AddPublicKey.UsersAddPublicKey
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Users.AddPublicKey.UsersAddPublicKey
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Users.AddPublicKey.UsersAddPublicKey
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Users.AddPublicKey.UsersAddPublicKey
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Users.AddPublicKey.UsersAddPublicKey


-- | Retrieves a list of user accounts for an instance within a specific
--   project.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.linux.getLinuxAccountViews</tt>.
module Network.Google.Resource.CloudUserAccounts.Linux.GetLinuxAccountViews

-- | A resource alias for
--   <tt>clouduseraccounts.linux.getLinuxAccountViews</tt> method which the
--   <a>LinuxGetLinuxAccountViews</a> request conforms to.
type LinuxGetLinuxAccountViewsResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("linuxAccountViews" :> (QueryParam "instance" Text :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Post '[JSON] LinuxGetLinuxAccountViewsResponse))))))))))))

-- | Creates a value of <a>LinuxGetLinuxAccountViews</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lglavOrderBy</a></li>
--   <li><a>lglavProject</a></li>
--   <li><a>lglavZone</a></li>
--   <li><a>lglavFilter</a></li>
--   <li><a>lglavPageToken</a></li>
--   <li><a>lglavMaxResults</a></li>
--   <li><a>lglavInstance</a></li>
--   </ul>
linuxGetLinuxAccountViews :: Text -> Text -> Text -> LinuxGetLinuxAccountViews

-- | Retrieves a list of user accounts for an instance within a specific
--   project.
--   
--   <i>See:</i> <a>linuxGetLinuxAccountViews</a> smart constructor.
data LinuxGetLinuxAccountViews

-- | Sorts list results by a certain order. By default, results are
--   returned in alphanumerical order based on the resource name. You can
--   also sort results in descending order based on the creation timestamp
--   using orderBy="creationTimestamp desc". This sorts results based on
--   the creationTimestamp field in reverse chronological order (newest
--   result first). Use this to sort resources like operations so that the
--   newest operation is returned first. Currently, only sorting by name or
--   creationTimestamp desc is supported.
lglavOrderBy :: Lens' LinuxGetLinuxAccountViews (Maybe Text)

-- | Project ID for this request.
lglavProject :: Lens' LinuxGetLinuxAccountViews Text

-- | Name of the zone for this request.
lglavZone :: Lens' LinuxGetLinuxAccountViews Text

-- | Sets a filter expression for filtering listed resources, in the form
--   filter={expression}. Your {expression} must be in the format:
--   field_name comparison_string literal_string. The field_name is the
--   name of the field you want to compare. Only atomic field types are
--   supported (string, number, boolean). The comparison_string must be
--   either eq (equals) or ne (not equals). The literal_string is the
--   string value to filter to. The literal value must be valid for the
--   type of field you are filtering by (string, number, boolean). For
--   string fields, the literal value is interpreted as a regular
--   expression using RE2 syntax. The literal value must match the entire
--   field. For example, to filter for instances that do not have a name of
--   example-instance, you would use filter=name ne example-instance.
--   Compute Engine Beta API Only: If you use filtering in the Beta API,
--   you can also filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   In particular, use filtering on nested fields to take advantage of
--   instance labels to organize and filter results based on label values.
--   The Beta API also supports filtering on multiple expressions by
--   providing each separate expression within parentheses. For example,
--   (scheduling.automaticRestart eq true) (zone eq us-central1-f).
--   Multiple expressions are treated as AND expressions, meaning that
--   resources must match all expressions to pass the filters.
lglavFilter :: Lens' LinuxGetLinuxAccountViews (Maybe Text)

-- | Specifies a page token to use. Set pageToken to the nextPageToken
--   returned by a previous list request to get the next page of results.
lglavPageToken :: Lens' LinuxGetLinuxAccountViews (Maybe Text)

-- | The maximum number of results per page that should be returned. If the
--   number of available results is larger than maxResults, Compute Engine
--   returns a nextPageToken that can be used to get the next page of
--   results in subsequent list requests.
lglavMaxResults :: Lens' LinuxGetLinuxAccountViews Word32

-- | The fully-qualified URL of the virtual machine requesting the views.
lglavInstance :: Lens' LinuxGetLinuxAccountViews Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Linux.GetLinuxAccountViews.LinuxGetLinuxAccountViews
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Linux.GetLinuxAccountViews.LinuxGetLinuxAccountViews
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Linux.GetLinuxAccountViews.LinuxGetLinuxAccountViews
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Linux.GetLinuxAccountViews.LinuxGetLinuxAccountViews
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Linux.GetLinuxAccountViews.LinuxGetLinuxAccountViews


-- | Returns a list of authorized public keys for a specific user account.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.linux.getAuthorizedKeysView</tt>.
module Network.Google.Resource.CloudUserAccounts.Linux.GetAuthorizedKeysView

-- | A resource alias for
--   <tt>clouduseraccounts.linux.getAuthorizedKeysView</tt> method which
--   the <a>LinuxGetAuthorizedKeysView</a> request conforms to.
type LinuxGetAuthorizedKeysViewResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("authorizedKeysView" :> (Capture "user" Text :> (QueryParam "instance" Text :> (QueryParam "login" Bool :> (QueryParam "alt" AltJSON :> Post '[JSON] LinuxGetAuthorizedKeysViewResponse))))))))))

-- | Creates a value of <a>LinuxGetAuthorizedKeysView</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgakvProject</a></li>
--   <li><a>lgakvZone</a></li>
--   <li><a>lgakvUser</a></li>
--   <li><a>lgakvLogin</a></li>
--   <li><a>lgakvInstance</a></li>
--   </ul>
linuxGetAuthorizedKeysView :: Text -> Text -> Text -> Text -> LinuxGetAuthorizedKeysView

-- | Returns a list of authorized public keys for a specific user account.
--   
--   <i>See:</i> <a>linuxGetAuthorizedKeysView</a> smart constructor.
data LinuxGetAuthorizedKeysView

-- | Project ID for this request.
lgakvProject :: Lens' LinuxGetAuthorizedKeysView Text

-- | Name of the zone for this request.
lgakvZone :: Lens' LinuxGetAuthorizedKeysView Text

-- | The user account for which you want to get a list of authorized public
--   keys.
lgakvUser :: Lens' LinuxGetAuthorizedKeysView Text

-- | Whether the view was requested as part of a user-initiated login.
lgakvLogin :: Lens' LinuxGetAuthorizedKeysView (Maybe Bool)

-- | The fully-qualified URL of the virtual machine requesting the view.
lgakvInstance :: Lens' LinuxGetAuthorizedKeysView Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Linux.GetAuthorizedKeysView.LinuxGetAuthorizedKeysView
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Linux.GetAuthorizedKeysView.LinuxGetAuthorizedKeysView
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Linux.GetAuthorizedKeysView.LinuxGetAuthorizedKeysView
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Linux.GetAuthorizedKeysView.LinuxGetAuthorizedKeysView
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Linux.GetAuthorizedKeysView.LinuxGetAuthorizedKeysView


-- | Removes users from the specified group.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.groups.removeMember</tt>.
module Network.Google.Resource.CloudUserAccounts.Groups.RemoveMember

-- | A resource alias for <tt>clouduseraccounts.groups.removeMember</tt>
--   method which the <a>GroupsRemoveMember</a> request conforms to.
type GroupsRemoveMemberResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("groups" :> (Capture "groupName" Text :> ("removeMember" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] GroupsRemoveMemberRequest :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>GroupsRemoveMember</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grmProject</a></li>
--   <li><a>grmPayload</a></li>
--   <li><a>grmGroupName</a></li>
--   </ul>
groupsRemoveMember :: Text -> GroupsRemoveMemberRequest -> Text -> GroupsRemoveMember

-- | Removes users from the specified group.
--   
--   <i>See:</i> <a>groupsRemoveMember</a> smart constructor.
data GroupsRemoveMember

-- | Project ID for this request.
grmProject :: Lens' GroupsRemoveMember Text

-- | Multipart request metadata.
grmPayload :: Lens' GroupsRemoveMember GroupsRemoveMemberRequest

-- | Name of the group for this request.
grmGroupName :: Lens' GroupsRemoveMember Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Groups.RemoveMember.GroupsRemoveMember
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Groups.RemoveMember.GroupsRemoveMember
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Groups.RemoveMember.GroupsRemoveMember
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Groups.RemoveMember.GroupsRemoveMember
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Groups.RemoveMember.GroupsRemoveMember


-- | Retrieves the list of groups contained within the specified project.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.groups.list</tt>.
module Network.Google.Resource.CloudUserAccounts.Groups.List

-- | A resource alias for <tt>clouduseraccounts.groups.list</tt> method
--   which the <a>GroupsList</a> request conforms to.
type GroupsListResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("groups" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] GroupList))))))))))

-- | Creates a value of <a>GroupsList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glOrderBy</a></li>
--   <li><a>glProject</a></li>
--   <li><a>glFilter</a></li>
--   <li><a>glPageToken</a></li>
--   <li><a>glMaxResults</a></li>
--   </ul>
groupsList :: Text -> GroupsList

-- | Retrieves the list of groups contained within the specified project.
--   
--   <i>See:</i> <a>groupsList</a> smart constructor.
data GroupsList

-- | Sorts list results by a certain order. By default, results are
--   returned in alphanumerical order based on the resource name. You can
--   also sort results in descending order based on the creation timestamp
--   using orderBy="creationTimestamp desc". This sorts results based on
--   the creationTimestamp field in reverse chronological order (newest
--   result first). Use this to sort resources like operations so that the
--   newest operation is returned first. Currently, only sorting by name or
--   creationTimestamp desc is supported.
glOrderBy :: Lens' GroupsList (Maybe Text)

-- | Project ID for this request.
glProject :: Lens' GroupsList Text

-- | Sets a filter expression for filtering listed resources, in the form
--   filter={expression}. Your {expression} must be in the format:
--   field_name comparison_string literal_string. The field_name is the
--   name of the field you want to compare. Only atomic field types are
--   supported (string, number, boolean). The comparison_string must be
--   either eq (equals) or ne (not equals). The literal_string is the
--   string value to filter to. The literal value must be valid for the
--   type of field you are filtering by (string, number, boolean). For
--   string fields, the literal value is interpreted as a regular
--   expression using RE2 syntax. The literal value must match the entire
--   field. For example, to filter for instances that do not have a name of
--   example-instance, you would use filter=name ne example-instance.
--   Compute Engine Beta API Only: If you use filtering in the Beta API,
--   you can also filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   In particular, use filtering on nested fields to take advantage of
--   instance labels to organize and filter results based on label values.
--   The Beta API also supports filtering on multiple expressions by
--   providing each separate expression within parentheses. For example,
--   (scheduling.automaticRestart eq true) (zone eq us-central1-f).
--   Multiple expressions are treated as AND expressions, meaning that
--   resources must match all expressions to pass the filters.
glFilter :: Lens' GroupsList (Maybe Text)

-- | Specifies a page token to use. Set pageToken to the nextPageToken
--   returned by a previous list request to get the next page of results.
glPageToken :: Lens' GroupsList (Maybe Text)

-- | The maximum number of results per page that should be returned. If the
--   number of available results is larger than maxResults, Compute Engine
--   returns a nextPageToken that can be used to get the next page of
--   results in subsequent list requests.
glMaxResults :: Lens' GroupsList Word32
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Groups.List.GroupsList
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Groups.List.GroupsList
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Groups.List.GroupsList
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Groups.List.GroupsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Groups.List.GroupsList


-- | Creates a Group resource in the specified project using the data
--   included in the request.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.groups.insert</tt>.
module Network.Google.Resource.CloudUserAccounts.Groups.Insert

-- | A resource alias for <tt>clouduseraccounts.groups.insert</tt> method
--   which the <a>GroupsInsert</a> request conforms to.
type GroupsInsertResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("groups" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Group :> Post '[JSON] Operation)))))))

-- | Creates a value of <a>GroupsInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giProject</a></li>
--   <li><a>giPayload</a></li>
--   </ul>
groupsInsert :: Text -> Group -> GroupsInsert

-- | Creates a Group resource in the specified project using the data
--   included in the request.
--   
--   <i>See:</i> <a>groupsInsert</a> smart constructor.
data GroupsInsert

-- | Project ID for this request.
giProject :: Lens' GroupsInsert Text

-- | Multipart request metadata.
giPayload :: Lens' GroupsInsert Group
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Groups.Insert.GroupsInsert
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Groups.Insert.GroupsInsert
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Groups.Insert.GroupsInsert
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Groups.Insert.GroupsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Groups.Insert.GroupsInsert


-- | Returns the specified Group resource.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.groups.get</tt>.
module Network.Google.Resource.CloudUserAccounts.Groups.Get

-- | A resource alias for <tt>clouduseraccounts.groups.get</tt> method
--   which the <a>GroupsGet</a> request conforms to.
type GroupsGetResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("groups" :> (Capture "groupName" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Group)))))))

-- | Creates a value of <a>GroupsGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggProject</a></li>
--   <li><a>ggGroupName</a></li>
--   </ul>
groupsGet :: Text -> Text -> GroupsGet

-- | Returns the specified Group resource.
--   
--   <i>See:</i> <a>groupsGet</a> smart constructor.
data GroupsGet

-- | Project ID for this request.
ggProject :: Lens' GroupsGet Text

-- | Name of the Group resource to return.
ggGroupName :: Lens' GroupsGet Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Groups.Get.GroupsGet
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Groups.Get.GroupsGet
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Groups.Get.GroupsGet
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Groups.Get.GroupsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Groups.Get.GroupsGet


-- | Deletes the specified Group resource.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.groups.delete</tt>.
module Network.Google.Resource.CloudUserAccounts.Groups.Delete

-- | A resource alias for <tt>clouduseraccounts.groups.delete</tt> method
--   which the <a>GroupsDelete</a> request conforms to.
type GroupsDeleteResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("groups" :> (Capture "groupName" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation)))))))

-- | Creates a value of <a>GroupsDelete</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdProject</a></li>
--   <li><a>gdGroupName</a></li>
--   </ul>
groupsDelete :: Text -> Text -> GroupsDelete

-- | Deletes the specified Group resource.
--   
--   <i>See:</i> <a>groupsDelete</a> smart constructor.
data GroupsDelete

-- | Project ID for this request.
gdProject :: Lens' GroupsDelete Text

-- | Name of the Group resource to delete.
gdGroupName :: Lens' GroupsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Groups.Delete.GroupsDelete
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Groups.Delete.GroupsDelete
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Groups.Delete.GroupsDelete
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Groups.Delete.GroupsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Groups.Delete.GroupsDelete


-- | Adds users to the specified group.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.groups.addMember</tt>.
module Network.Google.Resource.CloudUserAccounts.Groups.AddMember

-- | A resource alias for <tt>clouduseraccounts.groups.addMember</tt>
--   method which the <a>GroupsAddMember</a> request conforms to.
type GroupsAddMemberResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("groups" :> (Capture "groupName" Text :> ("addMember" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] GroupsAddMemberRequest :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>GroupsAddMember</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gamProject</a></li>
--   <li><a>gamPayload</a></li>
--   <li><a>gamGroupName</a></li>
--   </ul>
groupsAddMember :: Text -> GroupsAddMemberRequest -> Text -> GroupsAddMember

-- | Adds users to the specified group.
--   
--   <i>See:</i> <a>groupsAddMember</a> smart constructor.
data GroupsAddMember

-- | Project ID for this request.
gamProject :: Lens' GroupsAddMember Text

-- | Multipart request metadata.
gamPayload :: Lens' GroupsAddMember GroupsAddMemberRequest

-- | Name of the group for this request.
gamGroupName :: Lens' GroupsAddMember Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.Groups.AddMember.GroupsAddMember
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.Groups.AddMember.GroupsAddMember
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.Groups.AddMember.GroupsAddMember
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.Groups.AddMember.GroupsAddMember
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.Groups.AddMember.GroupsAddMember


-- | Retrieves the list of operation resources contained within the
--   specified project.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.globalAccountsOperations.list</tt>.
module Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.List

-- | A resource alias for
--   <tt>clouduseraccounts.globalAccountsOperations.list</tt> method which
--   the <a>GlobalAccountsOperationsList</a> request conforms to.
type GlobalAccountsOperationsListResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("operations" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] OperationList))))))))))

-- | Creates a value of <a>GlobalAccountsOperationsList</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gaolOrderBy</a></li>
--   <li><a>gaolProject</a></li>
--   <li><a>gaolFilter</a></li>
--   <li><a>gaolPageToken</a></li>
--   <li><a>gaolMaxResults</a></li>
--   </ul>
globalAccountsOperationsList :: Text -> GlobalAccountsOperationsList

-- | Retrieves the list of operation resources contained within the
--   specified project.
--   
--   <i>See:</i> <a>globalAccountsOperationsList</a> smart constructor.
data GlobalAccountsOperationsList

-- | Sorts list results by a certain order. By default, results are
--   returned in alphanumerical order based on the resource name. You can
--   also sort results in descending order based on the creation timestamp
--   using orderBy="creationTimestamp desc". This sorts results based on
--   the creationTimestamp field in reverse chronological order (newest
--   result first). Use this to sort resources like operations so that the
--   newest operation is returned first. Currently, only sorting by name or
--   creationTimestamp desc is supported.
gaolOrderBy :: Lens' GlobalAccountsOperationsList (Maybe Text)

-- | Project ID for this request.
gaolProject :: Lens' GlobalAccountsOperationsList Text

-- | Sets a filter expression for filtering listed resources, in the form
--   filter={expression}. Your {expression} must be in the format:
--   field_name comparison_string literal_string. The field_name is the
--   name of the field you want to compare. Only atomic field types are
--   supported (string, number, boolean). The comparison_string must be
--   either eq (equals) or ne (not equals). The literal_string is the
--   string value to filter to. The literal value must be valid for the
--   type of field you are filtering by (string, number, boolean). For
--   string fields, the literal value is interpreted as a regular
--   expression using RE2 syntax. The literal value must match the entire
--   field. For example, to filter for instances that do not have a name of
--   example-instance, you would use filter=name ne example-instance.
--   Compute Engine Beta API Only: If you use filtering in the Beta API,
--   you can also filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   In particular, use filtering on nested fields to take advantage of
--   instance labels to organize and filter results based on label values.
--   The Beta API also supports filtering on multiple expressions by
--   providing each separate expression within parentheses. For example,
--   (scheduling.automaticRestart eq true) (zone eq us-central1-f).
--   Multiple expressions are treated as AND expressions, meaning that
--   resources must match all expressions to pass the filters.
gaolFilter :: Lens' GlobalAccountsOperationsList (Maybe Text)

-- | Specifies a page token to use. Set pageToken to the nextPageToken
--   returned by a previous list request to get the next page of results.
gaolPageToken :: Lens' GlobalAccountsOperationsList (Maybe Text)

-- | The maximum number of results per page that should be returned. If the
--   number of available results is larger than maxResults, Compute Engine
--   returns a nextPageToken that can be used to get the next page of
--   results in subsequent list requests.
gaolMaxResults :: Lens' GlobalAccountsOperationsList Word32
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.List.GlobalAccountsOperationsList
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.List.GlobalAccountsOperationsList
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.List.GlobalAccountsOperationsList
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.List.GlobalAccountsOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.List.GlobalAccountsOperationsList


-- | Retrieves the specified operation resource.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.globalAccountsOperations.get</tt>.
module Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Get

-- | A resource alias for
--   <tt>clouduseraccounts.globalAccountsOperations.get</tt> method which
--   the <a>GlobalAccountsOperationsGet</a> request conforms to.
type GlobalAccountsOperationsGetResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("operations" :> (Capture "operation" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Operation)))))))

-- | Creates a value of <a>GlobalAccountsOperationsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gaogProject</a></li>
--   <li><a>gaogOperation</a></li>
--   </ul>
globalAccountsOperationsGet :: Text -> Text -> GlobalAccountsOperationsGet

-- | Retrieves the specified operation resource.
--   
--   <i>See:</i> <a>globalAccountsOperationsGet</a> smart constructor.
data GlobalAccountsOperationsGet

-- | Project ID for this request.
gaogProject :: Lens' GlobalAccountsOperationsGet Text

-- | Name of the Operations resource to return.
gaogOperation :: Lens' GlobalAccountsOperationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Get.GlobalAccountsOperationsGet
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Get.GlobalAccountsOperationsGet
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Get.GlobalAccountsOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Get.GlobalAccountsOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Get.GlobalAccountsOperationsGet


-- | Deletes the specified operation resource.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a> for
--   <tt>clouduseraccounts.globalAccountsOperations.delete</tt>.
module Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Delete

-- | A resource alias for
--   <tt>clouduseraccounts.globalAccountsOperations.delete</tt> method
--   which the <a>GlobalAccountsOperationsDelete</a> request conforms to.
type GlobalAccountsOperationsDeleteResource = "clouduseraccounts" :> ("beta" :> ("projects" :> (Capture "project" Text :> ("global" :> ("operations" :> (Capture "operation" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))

-- | Creates a value of <a>GlobalAccountsOperationsDelete</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gaodProject</a></li>
--   <li><a>gaodOperation</a></li>
--   </ul>
globalAccountsOperationsDelete :: Text -> Text -> GlobalAccountsOperationsDelete

-- | Deletes the specified operation resource.
--   
--   <i>See:</i> <a>globalAccountsOperationsDelete</a> smart constructor.
data GlobalAccountsOperationsDelete

-- | Project ID for this request.
gaodProject :: Lens' GlobalAccountsOperationsDelete Text

-- | Name of the Operations resource to delete.
gaodOperation :: Lens' GlobalAccountsOperationsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Delete.GlobalAccountsOperationsDelete
instance Data.Data.Data Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Delete.GlobalAccountsOperationsDelete
instance GHC.Show.Show Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Delete.GlobalAccountsOperationsDelete
instance GHC.Classes.Eq Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Delete.GlobalAccountsOperationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.CloudUserAccounts.GlobalAccountsOperations.Delete.GlobalAccountsOperationsDelete


-- | Creates and manages users and groups for accessing Google Compute
--   Engine virtual machines.
--   
--   <i>See:</i> <a>Cloud User Accounts API Reference</a>
module Network.Google.UserAccounts

-- | Default request referring to version <tt>beta</tt> of the Cloud User
--   Accounts API. This contains the host and root path used as a starting
--   point for constructing service requests.
userAccountsService :: ServiceConfig

-- | View your data across Google Cloud Platform services
cloudPlatformReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform.read-only"]

-- | View and manage your data across Google Cloud Platform services
cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]

-- | Manage your Google Cloud User Accounts
cloudUserAccountsScope :: Proxy '["https://www.googleapis.com/auth/cloud.useraccounts"]

-- | View your Google Cloud User Accounts
cloudUserAccountsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/cloud.useraccounts.readonly"]

-- | Represents the entirety of the methods and resources available for the
--   Cloud User Accounts API service.
type UserAccountsAPI = GroupsInsertResource :<|> (GroupsListResource :<|> (GroupsGetResource :<|> (GroupsRemoveMemberResource :<|> (GroupsDeleteResource :<|> (GroupsAddMemberResource :<|> (UsersAddPublicKeyResource :<|> (UsersInsertResource :<|> (UsersListResource :<|> (UsersRemovePublicKeyResource :<|> (UsersGetResource :<|> (UsersDeleteResource :<|> (GlobalAccountsOperationsListResource :<|> (GlobalAccountsOperationsGetResource :<|> (GlobalAccountsOperationsDeleteResource :<|> (LinuxGetLinuxAccountViewsResource :<|> LinuxGetAuthorizedKeysViewResource)))))))))))))))
data OperationWarningsItemDataItem

-- | Creates a value of <a>OperationWarningsItemDataItem</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>owidiValue</a></li>
--   <li><a>owidiKey</a></li>
--   </ul>
operationWarningsItemDataItem :: OperationWarningsItemDataItem

-- | <ul>
--   <li><i>Output Only</i> A warning data value corresponding to the
--   key.</li>
--   </ul>
owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A key that provides more detail on the warning
--   being returned. For example, for warnings where there are no results
--   in a list request for a particular zone, this key might be scope and
--   the key value might be the zone name. Other examples might be a key
--   indicating a deprecated resource and a suggested replacement, or a
--   warning about invalid network settings (for example, if an instance
--   attempts to perform IP forwarding but is not enabled for IP
--   forwarding).</li>
--   </ul>
owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A warning code, if applicable. For example,
--   Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
--   the response.</li>
--   </ul>
data OperationWarningsItemCode

-- | <pre>
--   CLEANUP_FAILED
--   </pre>
CleanupFailed :: OperationWarningsItemCode

-- | <pre>
--   DEPRECATED_RESOURCE_USED
--   </pre>
DeprecatedResourceUsed :: OperationWarningsItemCode

-- | <pre>
--   DISK_SIZE_LARGER_THAN_IMAGE_SIZE
--   </pre>
DiskSizeLargerThanImageSize :: OperationWarningsItemCode

-- | <pre>
--   INJECTED_KERNELS_DEPRECATED
--   </pre>
InjectedKernelsDeprecated :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_ADDRESS_NOT_ASSIGNED
--   </pre>
NextHopAddressNotAssigned :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_CANNOT_IP_FORWARD
--   </pre>
NextHopCannotIPForward :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_INSTANCE_NOT_FOUND
--   </pre>
NextHopInstanceNotFound :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_INSTANCE_NOT_ON_NETWORK
--   </pre>
NextHopInstanceNotOnNetwork :: OperationWarningsItemCode

-- | <pre>
--   NEXT_HOP_NOT_RUNNING
--   </pre>
NextHopNotRunning :: OperationWarningsItemCode

-- | <pre>
--   NOT_CRITICAL_ERROR
--   </pre>
NotCriticalError :: OperationWarningsItemCode

-- | <pre>
--   NO_RESULTS_ON_PAGE
--   </pre>
NoResultsOnPage :: OperationWarningsItemCode

-- | <pre>
--   REQUIRED_TOS_AGREEMENT
--   </pre>
RequiredTosAgreement :: OperationWarningsItemCode

-- | <pre>
--   RESOURCE_NOT_DELETED
--   </pre>
ResourceNotDeleted :: OperationWarningsItemCode

-- | <pre>
--   SINGLE_INSTANCE_PROPERTY_TEMPLATE
--   </pre>
SingleInstancePropertyTemplate :: OperationWarningsItemCode

-- | <pre>
--   UNREACHABLE
--   </pre>
Unreachable :: OperationWarningsItemCode

-- | Contains a list of Operation resources.
--   
--   <i>See:</i> <a>operationList</a> smart constructor.
data OperationList

-- | Creates a value of <a>OperationList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>olNextPageToken</a></li>
--   <li><a>olKind</a></li>
--   <li><a>olItems</a></li>
--   <li><a>olSelfLink</a></li>
--   <li><a>olId</a></li>
--   </ul>
operationList :: OperationList

-- | <ul>
--   <li><i>Output Only</i> This token allows you to get the next page of
--   results for list requests. If the number of results is larger than
--   maxResults, use the nextPageToken as a value for the query parameter
--   pageToken in the next list request. Subsequent list requests will have
--   their own nextPageToken to continue paging through the results.</li>
--   </ul>
olNextPageToken :: Lens' OperationList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always compute#operations for
--   Operations resource.</li>
--   </ul>
olKind :: Lens' OperationList Text

-- | <ul>
--   <li><i>Output Only</i> A list of Operation resources.</li>
--   </ul>
olItems :: Lens' OperationList [Operation]

-- | <ul>
--   <li><i>Output Only</i> Server-defined URL for this resource.</li>
--   </ul>
olSelfLink :: Lens' OperationList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The unique identifier for the resource. This
--   identifier is defined by the server.</li>
--   </ul>
olId :: Lens' OperationList (Maybe Text)

-- | A Group resource.
--   
--   <i>See:</i> <a>group'</a> smart constructor.
data Group

-- | Creates a value of <a>Group</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gKind</a></li>
--   <li><a>gMembers</a></li>
--   <li><a>gSelfLink</a></li>
--   <li><a>gName</a></li>
--   <li><a>gCreationTimestamp</a></li>
--   <li><a>gId</a></li>
--   <li><a>gDescription</a></li>
--   </ul>
group' :: Group

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always
--   clouduseraccounts#group for groups.</li>
--   </ul>
gKind :: Lens' Group Text

-- | <ul>
--   <li><i>Output Only</i> A list of URLs to User resources who belong to
--   the group. Users may only be members of groups in the same
--   project.</li>
--   </ul>
gMembers :: Lens' Group [Text]

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for the resource.</li>
--   </ul>
gSelfLink :: Lens' Group (Maybe Text)

-- | Name of the resource; provided by the client when the resource is
--   created.
gName :: Lens' Group (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
gCreationTimestamp :: Lens' Group (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
gId :: Lens' Group (Maybe Word64)

-- | An optional textual description of the resource; provided by the
--   client when the resource is created.
gDescription :: Lens' Group (Maybe Text)
data GroupList

-- | Creates a value of <a>GroupList</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>glNextPageToken</a></li>
--   <li><a>glKind</a></li>
--   <li><a>glItems</a></li>
--   <li><a>glSelfLink</a></li>
--   <li><a>glId</a></li>
--   </ul>
groupList :: GroupList

-- | <ul>
--   <li><i>Output Only</i> A token used to continue a truncated list
--   request.</li>
--   </ul>
glNextPageToken :: Lens' GroupList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always
--   clouduseraccounts#groupList for lists of groups.</li>
--   </ul>
glKind :: Lens' GroupList Text

-- | <ul>
--   <li><i>Output Only</i> A list of Group resources.</li>
--   </ul>
glItems :: Lens' GroupList [Group]

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for this resource.</li>
--   </ul>
glSelfLink :: Lens' GroupList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
glId :: Lens' GroupList (Maybe Text)

-- | An Operation resource, used to manage asynchronous API requests.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oTargetId</a></li>
--   <li><a>oStatus</a></li>
--   <li><a>oInsertTime</a></li>
--   <li><a>oProgress</a></li>
--   <li><a>oStartTime</a></li>
--   <li><a>oKind</a></li>
--   <li><a>oError</a></li>
--   <li><a>oHTTPErrorMessage</a></li>
--   <li><a>oZone</a></li>
--   <li><a>oWarnings</a></li>
--   <li><a>oHTTPErrorStatusCode</a></li>
--   <li><a>oUser</a></li>
--   <li><a>oSelfLink</a></li>
--   <li><a>oName</a></li>
--   <li><a>oStatusMessage</a></li>
--   <li><a>oCreationTimestamp</a></li>
--   <li><a>oEndTime</a></li>
--   <li><a>oId</a></li>
--   <li><a>oOperationType</a></li>
--   <li><a>oRegion</a></li>
--   <li><a>oDescription</a></li>
--   <li><a>oTargetLink</a></li>
--   <li><a>oClientOperationId</a></li>
--   </ul>
operation :: Operation

-- | <ul>
--   <li><i>Output Only</i> The unique target ID, which identifies a
--   specific incarnation of the target resource.</li>
--   </ul>
oTargetId :: Lens' Operation (Maybe Word64)

-- | <ul>
--   <li><i>Output Only</i> The status of the operation, which can be one
--   of the following: PENDING, RUNNING, or DONE.</li>
--   </ul>
oStatus :: Lens' Operation (Maybe OperationStatus)

-- | <ul>
--   <li><i>Output Only</i> The time that this operation was requested.
--   This value is in RFC3339 text format.</li>
--   </ul>
oInsertTime :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> An optional progress indicator that ranges from
--   0 to 100. There is no requirement that this be linear or support any
--   granularity of operations. This should not be used to guess when the
--   operation will be complete. This number should monotonically increase
--   as the operation progresses.</li>
--   </ul>
oProgress :: Lens' Operation (Maybe Int32)

-- | <ul>
--   <li><i>Output Only</i> The time that this operation was started by the
--   server. This value is in RFC3339 text format.</li>
--   </ul>
oStartTime :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always compute#operation
--   for Operation resources.</li>
--   </ul>
oKind :: Lens' Operation Text

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during processing of
--   the operation, this field will be populated.</li>
--   </ul>
oError :: Lens' Operation (Maybe OperationError)

-- | <ul>
--   <li><i>Output Only</i> If the operation fails, this field contains the
--   HTTP error message that was returned, such as NOT FOUND.</li>
--   </ul>
oHTTPErrorMessage :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The URL of the zone where the operation
--   resides. Only available when performing per-zone operations.</li>
--   </ul>
oZone :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If warning messages are generated during
--   processing of the operation, this field will be populated.</li>
--   </ul>
oWarnings :: Lens' Operation [OperationWarningsItem]

-- | <ul>
--   <li><i>Output Only</i> If the operation fails, this field contains the
--   HTTP error status code that was returned. For example, a 404 means the
--   resource was not found.</li>
--   </ul>
oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)

-- | <ul>
--   <li><i>Output Only</i> User who requested the operation, for example:
--   user'example.com.</li>
--   </ul>
oUser :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Server-defined URL for the resource.</li>
--   </ul>
oSelfLink :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Name of the resource.</li>
--   </ul>
oName :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> An optional textual description of the current
--   status of the operation.</li>
--   </ul>
oStatusMessage :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
oCreationTimestamp :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The time that this operation was completed.
--   This value is in RFC3339 text format.</li>
--   </ul>
oEndTime :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The unique identifier for the resource. This
--   identifier is defined by the server.</li>
--   </ul>
oId :: Lens' Operation (Maybe Word64)

-- | <ul>
--   <li><i>Output Only</i> The type of operation, such as insert, update,
--   or delete, and so on.</li>
--   </ul>
oOperationType :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The URL of the region where the operation
--   resides. Only available when performing regional operations.</li>
--   </ul>
oRegion :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A textual description of the operation, which
--   is set when the operation is created.</li>
--   </ul>
oDescription :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The URL of the resource that the operation
--   modifies.</li>
--   </ul>
oTargetLink :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Reserved for future use.</li>
--   </ul>
oClientOperationId :: Lens' Operation (Maybe Text)
data UserList

-- | Creates a value of <a>UserList</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ulNextPageToken</a></li>
--   <li><a>ulKind</a></li>
--   <li><a>ulItems</a></li>
--   <li><a>ulSelfLink</a></li>
--   <li><a>ulId</a></li>
--   </ul>
userList :: UserList

-- | <ul>
--   <li><i>Output Only</i> A token used to continue a truncated list
--   request.</li>
--   </ul>
ulNextPageToken :: Lens' UserList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always
--   clouduseraccounts#userList for lists of users.</li>
--   </ul>
ulKind :: Lens' UserList Text

-- | <ul>
--   <li><i>Output Only</i> A list of User resources.</li>
--   </ul>
ulItems :: Lens' UserList [User]

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for this resource.</li>
--   </ul>
ulSelfLink :: Lens' UserList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
ulId :: Lens' UserList (Maybe Text)

-- | A public key for authenticating to guests.
--   
--   <i>See:</i> <a>publicKey</a> smart constructor.
data PublicKey

-- | Creates a value of <a>PublicKey</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pkFingerprint</a></li>
--   <li><a>pkKey</a></li>
--   <li><a>pkCreationTimestamp</a></li>
--   <li><a>pkExpirationTimestamp</a></li>
--   <li><a>pkDescription</a></li>
--   </ul>
publicKey :: PublicKey

-- | <ul>
--   <li><i>Output Only</i> The fingerprint of the key is defined by
--   RFC4716 to be the MD5 digest of the public key.</li>
--   </ul>
pkFingerprint :: Lens' PublicKey (Maybe Text)

-- | Public key text in SSH format, defined by RFC4253 section 6.6.
pkKey :: Lens' PublicKey (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
pkCreationTimestamp :: Lens' PublicKey (Maybe Text)

-- | Optional expiration timestamp. If provided, the timestamp must be in
--   RFC3339 text format. If not provided, the public key never expires.
pkExpirationTimestamp :: Lens' PublicKey (Maybe Text)

-- | An optional textual description of the resource; provided by the
--   client when the resource is created.
pkDescription :: Lens' PublicKey (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The status of the operation, which can be one
--   of the following: PENDING, RUNNING, or DONE.</li>
--   </ul>
data OperationStatus

-- | <pre>
--   DONE
--   </pre>
Done :: OperationStatus

-- | <pre>
--   PENDING
--   </pre>
Pending :: OperationStatus

-- | <pre>
--   RUNNING
--   </pre>
Running :: OperationStatus

-- | A list of all Linux accounts for this project. This API is only used
--   by Compute Engine virtual machines to get information about user
--   accounts for a project or instance. Linux resources are read-only
--   views into users and groups managed by the Compute Engine Accounts
--   API.
--   
--   <i>See:</i> <a>linuxAccountViews</a> smart constructor.
data LinuxAccountViews

-- | Creates a value of <a>LinuxAccountViews</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lavUserViews</a></li>
--   <li><a>lavKind</a></li>
--   <li><a>lavGroupViews</a></li>
--   </ul>
linuxAccountViews :: LinuxAccountViews

-- | <ul>
--   <li><i>Output Only</i> A list of all users within a project.</li>
--   </ul>
lavUserViews :: Lens' LinuxAccountViews [LinuxUserView]

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always
--   clouduseraccounts#linuxAccountViews for Linux resources.</li>
--   </ul>
lavKind :: Lens' LinuxAccountViews Text

-- | <ul>
--   <li><i>Output Only</i> A list of all groups within a project.</li>
--   </ul>
lavGroupViews :: Lens' LinuxAccountViews [LinuxGroupView]

-- | A User resource.
--   
--   <i>See:</i> <a>user</a> smart constructor.
data User

-- | Creates a value of <a>User</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uGroups</a></li>
--   <li><a>uPublicKeys</a></li>
--   <li><a>uKind</a></li>
--   <li><a>uOwner</a></li>
--   <li><a>uSelfLink</a></li>
--   <li><a>uName</a></li>
--   <li><a>uCreationTimestamp</a></li>
--   <li><a>uId</a></li>
--   <li><a>uDescription</a></li>
--   </ul>
user :: User

-- | <ul>
--   <li><i>Output Only</i> A list of URLs to Group resources who contain
--   the user. Users are only members of groups in the same project.</li>
--   </ul>
uGroups :: Lens' User [Text]

-- | <ul>
--   <li><i>Output Only</i> Public keys that this user may use to
--   login.</li>
--   </ul>
uPublicKeys :: Lens' User [PublicKey]

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always
--   clouduseraccounts#user for users.</li>
--   </ul>
uKind :: Lens' User Text

-- | Email address of account's owner. This account will be validated to
--   make sure it exists. The email can belong to any domain, but it must
--   be tied to a Google account.
uOwner :: Lens' User (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Server defined URL for the resource.</li>
--   </ul>
uSelfLink :: Lens' User (Maybe Text)

-- | Name of the resource; provided by the client when the resource is
--   created.
uName :: Lens' User (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Creation timestamp in RFC3339 text format.</li>
--   </ul>
uCreationTimestamp :: Lens' User (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource; defined by
--   the server.</li>
--   </ul>
uId :: Lens' User (Maybe Word64)

-- | An optional textual description of the resource; provided by the
--   client when the resource is created.
uDescription :: Lens' User (Maybe Text)
data GroupsAddMemberRequest

-- | Creates a value of <a>GroupsAddMemberRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gamrUsers</a></li>
--   </ul>
groupsAddMemberRequest :: GroupsAddMemberRequest

-- | Fully-qualified URLs of the User resources to add.
gamrUsers :: Lens' GroupsAddMemberRequest [Text]

-- | A detailed view of a Linux group.
--   
--   <i>See:</i> <a>linuxGroupView</a> smart constructor.
data LinuxGroupView

-- | Creates a value of <a>LinuxGroupView</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgvMembers</a></li>
--   <li><a>lgvGid</a></li>
--   <li><a>lgvGroupName</a></li>
--   </ul>
linuxGroupView :: LinuxGroupView

-- | <ul>
--   <li><i>Output Only</i> List of user accounts that belong to the
--   group.</li>
--   </ul>
lgvMembers :: Lens' LinuxGroupView [Text]

-- | <ul>
--   <li><i>Output Only</i> The Group ID.</li>
--   </ul>
lgvGid :: Lens' LinuxGroupView (Maybe Word32)

-- | <ul>
--   <li><i>Output Only</i> Group name.</li>
--   </ul>
lgvGroupName :: Lens' LinuxGroupView (Maybe Text)

-- | A detailed view of a Linux user account.
--   
--   <i>See:</i> <a>linuxUserView</a> smart constructor.
data LinuxUserView

-- | Creates a value of <a>LinuxUserView</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>luvGecos</a></li>
--   <li><a>luvUid</a></li>
--   <li><a>luvUsername</a></li>
--   <li><a>luvShell</a></li>
--   <li><a>luvGid</a></li>
--   <li><a>luvHomeDirectory</a></li>
--   </ul>
linuxUserView :: LinuxUserView

-- | <ul>
--   <li><i>Output Only</i> The GECOS (user information) entry for this
--   account.</li>
--   </ul>
luvGecos :: Lens' LinuxUserView (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> User ID.</li>
--   </ul>
luvUid :: Lens' LinuxUserView (Maybe Word32)

-- | <ul>
--   <li><i>Output Only</i> The username of the account.</li>
--   </ul>
luvUsername :: Lens' LinuxUserView (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The path to the login shell for this
--   account.</li>
--   </ul>
luvShell :: Lens' LinuxUserView (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> User's default group ID.</li>
--   </ul>
luvGid :: Lens' LinuxUserView (Maybe Word32)

-- | <ul>
--   <li><i>Output Only</i> The path to the home directory for this
--   account.</li>
--   </ul>
luvHomeDirectory :: Lens' LinuxUserView (Maybe Text)
data LinuxGetLinuxAccountViewsResponse

-- | Creates a value of <a>LinuxGetLinuxAccountViewsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lglavrResource</a></li>
--   </ul>
linuxGetLinuxAccountViewsResponse :: LinuxGetLinuxAccountViewsResponse

-- | <ul>
--   <li><i>Output Only</i> A list of authorized user accounts and
--   groups.</li>
--   </ul>
lglavrResource :: Lens' LinuxGetLinuxAccountViewsResponse (Maybe LinuxAccountViews)

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during processing of
--   the operation, this field will be populated.</li>
--   </ul>
--   
--   <i>See:</i> <a>operationError</a> smart constructor.
data OperationError

-- | Creates a value of <a>OperationError</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oeErrors</a></li>
--   </ul>
operationError :: OperationError

-- | <ul>
--   <li><i>Output Only</i> The array of errors encountered while
--   processing this operation.</li>
--   </ul>
oeErrors :: Lens' OperationError [OperationErrorErrorsItem]
data LinuxGetAuthorizedKeysViewResponse

-- | Creates a value of <a>LinuxGetAuthorizedKeysViewResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lgakvrResource</a></li>
--   </ul>
linuxGetAuthorizedKeysViewResponse :: LinuxGetAuthorizedKeysViewResponse

-- | <ul>
--   <li><i>Output Only</i> A list of authorized public keys for a
--   user.</li>
--   </ul>
lgakvrResource :: Lens' LinuxGetAuthorizedKeysViewResponse (Maybe AuthorizedKeysView)
data OperationErrorErrorsItem

-- | Creates a value of <a>OperationErrorErrorsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oeeiLocation</a></li>
--   <li><a>oeeiCode</a></li>
--   <li><a>oeeiMessage</a></li>
--   </ul>
operationErrorErrorsItem :: OperationErrorErrorsItem

-- | <ul>
--   <li><i>Output Only</i> Indicates the field in the request that caused
--   the error. This property is optional.</li>
--   </ul>
oeeiLocation :: Lens' OperationErrorErrorsItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The error type identifier for this error.</li>
--   </ul>
oeeiCode :: Lens' OperationErrorErrorsItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> An optional, human-readable error message.</li>
--   </ul>
oeeiMessage :: Lens' OperationErrorErrorsItem (Maybe Text)
data GroupsRemoveMemberRequest

-- | Creates a value of <a>GroupsRemoveMemberRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grmrUsers</a></li>
--   </ul>
groupsRemoveMemberRequest :: GroupsRemoveMemberRequest

-- | Fully-qualified URLs of the User resources to remove.
grmrUsers :: Lens' GroupsRemoveMemberRequest [Text]

-- | A list of authorized public keys for a user account.
--   
--   <i>See:</i> <a>authorizedKeysView</a> smart constructor.
data AuthorizedKeysView

-- | Creates a value of <a>AuthorizedKeysView</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akvSudoer</a></li>
--   <li><a>akvKeys</a></li>
--   </ul>
authorizedKeysView :: AuthorizedKeysView

-- | <ul>
--   <li><i>Output Only</i> Whether the user has the ability to elevate on
--   the instance that requested the authorized keys.</li>
--   </ul>
akvSudoer :: Lens' AuthorizedKeysView (Maybe Bool)

-- | <ul>
--   <li><i>Output Only</i> The list of authorized public keys in SSH
--   format.</li>
--   </ul>
akvKeys :: Lens' AuthorizedKeysView [Text]
data OperationWarningsItem

-- | Creates a value of <a>OperationWarningsItem</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>owiData</a></li>
--   <li><a>owiCode</a></li>
--   <li><a>owiMessage</a></li>
--   </ul>
operationWarningsItem :: OperationWarningsItem

-- | <ul>
--   <li><i>Output Only</i> Metadata about this warning in key: value
--   format. For example: "data": [ { "key": "scope", "value":
--   "zones/us-east1-d" }</li>
--   </ul>
owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]

-- | <ul>
--   <li><i>Output Only</i> A warning code, if applicable. For example,
--   Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
--   the response.</li>
--   </ul>
owiCode :: Lens' OperationWarningsItem (Maybe OperationWarningsItemCode)

-- | <ul>
--   <li><i>Output Only</i> A human-readable description of the warning
--   code.</li>
--   </ul>
owiMessage :: Lens' OperationWarningsItem (Maybe Text)
