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


-- | Google Cloud Deployment Manager SDK.
--   
--   Declares, configures, and deploys complex solutions on Google Cloud
--   Platform.
--   
--   <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>v2</tt> of the API.
@package gogol-deploymentmanager
@version 0.3.0


module Network.Google.DeploymentManager.Types

-- | Default request referring to version <tt>v2</tt> of the Google Cloud
--   Deployment Manager API. This contains the host and root path used as a
--   starting point for constructing service requests.
deploymentManagerService :: 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"]

-- | View and manage your Google Cloud Platform management resources and
--   deployment status information
ndevCloudmanScope :: Proxy '["https://www.googleapis.com/auth/ndev.cloudman"]

-- | View your Google Cloud Platform management resources and deployment
--   status information
ndevCloudmanReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/ndev.cloudman.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)

-- | <i>See:</i> <a>configFile</a> smart constructor.
data ConfigFile

-- | Creates a value of <a>ConfigFile</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>cfContent</a></li>
--   </ul>
configFile :: ConfigFile

-- | The contents of the file.
cfContent :: Lens' ConfigFile (Maybe Text)

-- | Provides the configuration for non-admin_activity logging for a
--   service. Controls exemptions and specific log sub-types.
--   
--   <i>See:</i> <a>auditConfig</a> smart constructor.
data AuditConfig

-- | Creates a value of <a>AuditConfig</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>acService</a></li>
--   <li><a>acAuditLogConfigs</a></li>
--   <li><a>acExemptedMembers</a></li>
--   </ul>
auditConfig :: AuditConfig

-- | Specifies a service that will be enabled for audit logging. For
--   example, `resourcemanager`, `storage`, `compute`. `allServices` is a
--   special value that covers all services.
acService :: Lens' AuditConfig (Maybe Text)

-- | The configuration for each type of logging
acAuditLogConfigs :: Lens' AuditConfig [AuditLogConfig]

-- | Specifies the identities that are exempted from "data access" audit
--   logging for the `service` specified above. Follows the same format of
--   Binding.members.
acExemptedMembers :: Lens' AuditConfig [Text]

-- | Sets the policy to use for creating new resources.
data DeploymentsUpdateCreatePolicy

-- | <pre>
--   ACQUIRE
--   </pre>
Acquire :: DeploymentsUpdateCreatePolicy

-- | <pre>
--   CREATE_OR_ACQUIRE
--   </pre>
CreateOrAcquire :: DeploymentsUpdateCreatePolicy

-- | A response containing a partial list of operations and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>operationsListResponse</a> smart constructor.
data OperationsListResponse

-- | Creates a value of <a>OperationsListResponse</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>olrNextPageToken</a></li>
--   <li><a>olrOperations</a></li>
--   </ul>
operationsListResponse :: OperationsListResponse

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

-- | <ul>
--   <li><i>Output Only</i> Operations contained in this list
--   response.</li>
--   </ul>
olrOperations :: Lens' OperationsListResponse [Operation]
data ResourceUpdateWarningsItemDataItem

-- | Creates a value of <a>ResourceUpdateWarningsItemDataItem</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>ruwidiValue</a></li>
--   <li><a>ruwidiKey</a></li>
--   </ul>
resourceUpdateWarningsItemDataItem :: ResourceUpdateWarningsItemDataItem

-- | <ul>
--   <li><i>Output Only</i> A warning data value corresponding to the
--   key.</li>
--   </ul>
ruwidiValue :: Lens' ResourceUpdateWarningsItemDataItem (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>
ruwidiKey :: Lens' ResourceUpdateWarningsItemDataItem (Maybe Text)

-- | Sets the policy to use for deleting resources.
data DeploymentsDeleteDeletePolicy

-- | <pre>
--   ABANDON
--   </pre>
Abandon :: DeploymentsDeleteDeletePolicy

-- | <pre>
--   DELETE
--   </pre>
Delete' :: DeploymentsDeleteDeletePolicy

-- | A response that returns all Types supported by Deployment Manager
--   
--   <i>See:</i> <a>typesListResponse</a> smart constructor.
data TypesListResponse

-- | Creates a value of <a>TypesListResponse</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>tlrNextPageToken</a></li>
--   <li><a>tlrTypes</a></li>
--   </ul>
typesListResponse :: TypesListResponse

-- | A token used to continue a truncated list request.
tlrNextPageToken :: Lens' TypesListResponse (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A list of resource types supported by
--   Deployment Manager.</li>
--   </ul>
tlrTypes :: Lens' TypesListResponse [Type]

-- | Options for counters
--   
--   <i>See:</i> <a>logConfigCounterOptions</a> smart constructor.
data LogConfigCounterOptions

-- | Creates a value of <a>LogConfigCounterOptions</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>lccoField</a></li>
--   <li><a>lccoMetric</a></li>
--   </ul>
logConfigCounterOptions :: LogConfigCounterOptions

-- | The field value to attribute.
lccoField :: Lens' LogConfigCounterOptions (Maybe Text)

-- | The metric to update.
lccoMetric :: Lens' LogConfigCounterOptions (Maybe Text)

-- | Sets the policy to use for deleting resources.
data DeploymentsUpdateDeletePolicy

-- | <pre>
--   ABANDON
--   </pre>
DUDPAbandon :: DeploymentsUpdateDeletePolicy

-- | <pre>
--   DELETE
--   </pre>
DUDPDelete' :: DeploymentsUpdateDeletePolicy

-- | Sets the policy to use for deleting resources.
data DeploymentsPatchDeletePolicy

-- | <pre>
--   ABANDON
--   </pre>
DPDPAbandon :: DeploymentsPatchDeletePolicy

-- | <pre>
--   DELETE
--   </pre>
DPDPDelete' :: DeploymentsPatchDeletePolicy

-- | 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 Text)

-- | <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. For operations related to creating a snapshot, this points
--   to the persistent disk that the snapshot was created from.</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 TestPermissionsResponse

-- | Creates a value of <a>TestPermissionsResponse</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>tprPermissions</a></li>
--   </ul>
testPermissionsResponse :: TestPermissionsResponse

-- | A subset of `TestPermissionsRequest.permissions` that the caller is
--   allowed.
tprPermissions :: Lens' TestPermissionsResponse [Text]

-- | Sets the policy to use for creating new resources.
data DeploymentsPatchCreatePolicy

-- | <pre>
--   ACQUIRE
--   </pre>
DPCPAcquire :: DeploymentsPatchCreatePolicy

-- | <pre>
--   CREATE_OR_ACQUIRE
--   </pre>
DPCPCreateOrAcquire :: DeploymentsPatchCreatePolicy

-- | A response containing a partial list of resources and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>resourcesListResponse</a> smart constructor.
data ResourcesListResponse

-- | Creates a value of <a>ResourcesListResponse</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>rlrNextPageToken</a></li>
--   <li><a>rlrResources</a></li>
--   </ul>
resourcesListResponse :: ResourcesListResponse

-- | A token used to continue a truncated list request.
rlrNextPageToken :: Lens' ResourcesListResponse (Maybe Text)

-- | Resources contained in this list response.
rlrResources :: Lens' ResourcesListResponse [Resource]

-- | <i>See:</i> <a>deploymentUpdate</a> smart constructor.
data DeploymentUpdate

-- | Creates a value of <a>DeploymentUpdate</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>duManifest</a></li>
--   <li><a>duLabels</a></li>
--   </ul>
deploymentUpdate :: DeploymentUpdate

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the update
--   configuration of this deployment.</li>
--   </ul>
duManifest :: Lens' DeploymentUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Map of labels; provided by the client when the
--   resource is created or updated. Specifically: Label keys must be
--   between 1 and 63 characters long and must conform to the following
--   regular expression:</li>
--   <li><i>a-z</i> ([-a-z0-9]*[a-z0-9])? Label values must be between 0
--   and 63 characters long and must conform to the regular expression
--   ([a-z]([-a-z0-9]*[a-z0-9])?)?</li>
--   </ul>
duLabels :: Lens' DeploymentUpdate [DeploymentUpdateLabelEntry]

-- | <i>See:</i> <a>resourceUpdate</a> smart constructor.
data ResourceUpdate

-- | Creates a value of <a>ResourceUpdate</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>ruState</a></li>
--   <li><a>ruError</a></li>
--   <li><a>ruAccessControl</a></li>
--   <li><a>ruWarnings</a></li>
--   <li><a>ruIntent</a></li>
--   <li><a>ruManifest</a></li>
--   <li><a>ruFinalProperties</a></li>
--   <li><a>ruProperties</a></li>
--   </ul>
resourceUpdate :: ResourceUpdate

-- | <ul>
--   <li><i>Output Only</i> The state of the resource.</li>
--   </ul>
ruState :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during update of the
--   resource, this field will be populated.</li>
--   </ul>
ruError :: Lens' ResourceUpdate (Maybe ResourceUpdateError)

-- | The Access Control Policy to set on this resource after updating the
--   resource itself.
ruAccessControl :: Lens' ResourceUpdate (Maybe ResourceAccessControl)

-- | <ul>
--   <li><i>Output Only</i> If warning messages are generated during
--   processing of this resource, this field will be populated.</li>
--   </ul>
ruWarnings :: Lens' ResourceUpdate [ResourceUpdateWarningsItem]

-- | <ul>
--   <li><i>Output Only</i> The intent of the resource: PREVIEW, UPDATE, or
--   CANCEL.</li>
--   </ul>
ruIntent :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the update
--   configuration of this resource.</li>
--   </ul>
ruManifest :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The expanded properties of the resource with
--   reference values expanded. Returned as serialized YAML.</li>
--   </ul>
ruFinalProperties :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The set of updated properties for this
--   resource, before references are expanded. Returned as serialized
--   YAML.</li>
--   </ul>
ruProperties :: Lens' ResourceUpdate (Maybe Text)
data DeploymentLabelEntry

-- | Creates a value of <a>DeploymentLabelEntry</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>dleValue</a></li>
--   <li><a>dleKey</a></li>
--   </ul>
deploymentLabelEntry :: DeploymentLabelEntry
dleValue :: Lens' DeploymentLabelEntry (Maybe Text)
dleKey :: Lens' DeploymentLabelEntry (Maybe Text)

-- | A rule to be applied in a Policy.
--   
--   <i>See:</i> <a>rule</a> smart constructor.
data Rule

-- | Creates a value of <a>Rule</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>rAction</a></li>
--   <li><a>rNotIns</a></li>
--   <li><a>rIns</a></li>
--   <li><a>rLogConfigs</a></li>
--   <li><a>rConditions</a></li>
--   <li><a>rPermissions</a></li>
--   <li><a>rDescription</a></li>
--   </ul>
rule :: Rule

-- | Required
rAction :: Lens' Rule (Maybe Text)

-- | If one or more 'not_in' clauses are specified, the rule matches if the
--   PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
rNotIns :: Lens' Rule [Text]

-- | If one or more 'in' clauses are specified, the rule matches if the
--   PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
rIns :: Lens' Rule [Text]

-- | The config returned to callers of tech.iam.IAM.CheckPolicy for any
--   entries that match the LOG action.
rLogConfigs :: Lens' Rule [LogConfig]

-- | Additional restrictions that must be met
rConditions :: Lens' Rule [Condition]

-- | A permission is a string of form '..' (e.g., 'storage.buckets.list').
--   A value of '*' matches all permissions, and a verb part of '*' (e.g.,
--   'storage.buckets.*') matches all verbs.
rPermissions :: Lens' Rule [Text]

-- | Human-readable description of the rule.
rDescription :: Lens' Rule (Maybe Text)
data TestPermissionsRequest

-- | Creates a value of <a>TestPermissionsRequest</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>tPermissions</a></li>
--   </ul>
testPermissionsRequest :: TestPermissionsRequest

-- | The set of permissions to check for the 'resource'. Permissions with
--   wildcards (such as '*' or 'storage.*') are not allowed.
tPermissions :: Lens' TestPermissionsRequest [Text]

-- | <i>See:</i> <a>manifest</a> smart constructor.
data Manifest

-- | Creates a value of <a>Manifest</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>mInsertTime</a></li>
--   <li><a>mLayout</a></li>
--   <li><a>mConfig</a></li>
--   <li><a>mExpandedConfig</a></li>
--   <li><a>mImports</a></li>
--   <li><a>mSelfLink</a></li>
--   <li><a>mName</a></li>
--   <li><a>mId</a></li>
--   </ul>
manifest :: Manifest

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the manifest was created, in
--   RFC3339 text format.</li>
--   </ul>
mInsertTime :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The YAML layout for this manifest.</li>
--   </ul>
mLayout :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The YAML configuration for this manifest.</li>
--   </ul>
mConfig :: Lens' Manifest (Maybe ConfigFile)

-- | <ul>
--   <li><i>Output Only</i> The fully-expanded configuration file,
--   including any templates and references.</li>
--   </ul>
mExpandedConfig :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The imported files for this manifest.</li>
--   </ul>
mImports :: Lens' Manifest [ImportFile]

-- | <ul>
--   <li><i>Output Only</i> Self link for the manifest.</li>
--   </ul>
mSelfLink :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The name of the manifest.</li>
--   </ul>
mName :: Lens' Manifest (Maybe Text)

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

-- | Creates a value of <a>ResourceUpdateWarningsItem</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>ruwiData</a></li>
--   <li><a>ruwiCode</a></li>
--   <li><a>ruwiMessage</a></li>
--   </ul>
resourceUpdateWarningsItem :: ResourceUpdateWarningsItem

-- | <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>
ruwiData :: Lens' ResourceUpdateWarningsItem [ResourceUpdateWarningsItemDataItem]

-- | <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>
ruwiCode :: Lens' ResourceUpdateWarningsItem (Maybe Text)

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

-- | <i>See:</i> <a>deploymentsCancelPreviewRequest</a> smart constructor.
data DeploymentsCancelPreviewRequest

-- | Creates a value of <a>DeploymentsCancelPreviewRequest</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>dcprFingerprint</a></li>
--   </ul>
deploymentsCancelPreviewRequest :: DeploymentsCancelPreviewRequest

-- | Specifies a fingerprint for cancelPreview() requests. A fingerprint is
--   a randomly generated value that must be provided in cancelPreview()
--   requests to perform optimistic locking. This ensures optimistic
--   concurrency so that the deployment does not have conflicting requests
--   (e.g. if someone attempts to make a new update request while another
--   user attempts to cancel a preview, this would prevent one of the
--   requests). The fingerprint is initially generated by Deployment
--   Manager and changes after every request to modify a deployment. To get
--   the latest fingerprint value, perform a get() request on the
--   deployment.
dcprFingerprint :: Lens' DeploymentsCancelPreviewRequest (Maybe ByteString)

-- | <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | Creates a value of <a>Resource</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>rInsertTime</a></li>
--   <li><a>rAccessControl</a></li>
--   <li><a>rURL</a></li>
--   <li><a>rWarnings</a></li>
--   <li><a>rUpdateTime</a></li>
--   <li><a>rName</a></li>
--   <li><a>rManifest</a></li>
--   <li><a>rFinalProperties</a></li>
--   <li><a>rId</a></li>
--   <li><a>rType</a></li>
--   <li><a>rUpdate</a></li>
--   <li><a>rProperties</a></li>
--   </ul>
resource :: Resource

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the resource was created or
--   acquired, in RFC3339 text format .</li>
--   </ul>
rInsertTime :: Lens' Resource (Maybe Text)

-- | The Access Control Policy set on this resource.
rAccessControl :: Lens' Resource (Maybe ResourceAccessControl)

-- | <ul>
--   <li><i>Output Only</i> The URL of the actual resource.</li>
--   </ul>
rURL :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If warning messages are generated during
--   processing of this resource, this field will be populated.</li>
--   </ul>
rWarnings :: Lens' Resource [ResourceWarningsItem]

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the resource was updated, in
--   RFC3339 text format .</li>
--   </ul>
rUpdateTime :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The name of the resource as it appears in the
--   YAML config.</li>
--   </ul>
rName :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the current
--   configuration of this resource.</li>
--   </ul>
rManifest :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The evaluated properties of the resource with
--   references expanded. Returned as serialized YAML.</li>
--   </ul>
rFinalProperties :: Lens' Resource (Maybe Text)

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

-- | <ul>
--   <li><i>Output Only</i> The type of the resource, for example
--   compute.v1.instance, or cloudfunctions.v1beta1.function.</li>
--   </ul>
rType :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If Deployment Manager is currently updating or
--   previewing an update to this resource, the updated configuration
--   appears here.</li>
--   </ul>
rUpdate :: Lens' Resource (Maybe ResourceUpdate)

-- | <ul>
--   <li><i>Output Only</i> The current properties of the resource before
--   any references have been filled in. Returned as serialized YAML.</li>
--   </ul>
rProperties :: Lens' Resource (Maybe Text)
data DeploymentUpdateLabelEntry

-- | Creates a value of <a>DeploymentUpdateLabelEntry</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>duleValue</a></li>
--   <li><a>duleKey</a></li>
--   </ul>
deploymentUpdateLabelEntry :: DeploymentUpdateLabelEntry
duleValue :: Lens' DeploymentUpdateLabelEntry (Maybe Text)
duleKey :: Lens' DeploymentUpdateLabelEntry (Maybe Text)
data ResourceUpdateErrorErrorsItem

-- | Creates a value of <a>ResourceUpdateErrorErrorsItem</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>rueeiLocation</a></li>
--   <li><a>rueeiCode</a></li>
--   <li><a>rueeiMessage</a></li>
--   </ul>
resourceUpdateErrorErrorsItem :: ResourceUpdateErrorErrorsItem

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

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

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

-- | A response containing a partial list of manifests and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>manifestsListResponse</a> smart constructor.
data ManifestsListResponse

-- | Creates a value of <a>ManifestsListResponse</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>mlrNextPageToken</a></li>
--   <li><a>mlrManifests</a></li>
--   </ul>
manifestsListResponse :: ManifestsListResponse

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

-- | <ul>
--   <li><i>Output Only</i> Manifests contained in this list response.</li>
--   </ul>
mlrManifests :: Lens' ManifestsListResponse [Manifest]

-- | <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]

-- | Defines an Identity and Access Management (IAM) policy. It is used to
--   specify access control policies for Cloud Platform resources. A
--   `Policy` consists of a list of `bindings`. A `Binding` binds a list of
--   `members` to a `role`, where the members can be user accounts, Google
--   groups, Google domains, and service accounts. A `role` is a named list
--   of permissions defined by IAM. **Example** { "bindings": [ { "role":
--   "roles/owner", "members": [ "user:mike'example.com",
--   "group:admins'example.com", "domain:google.com",
--   "serviceAccount:my-other-app'appspot.gserviceaccount.com", ] }, {
--   "role": "roles/viewer", "members": ["user:sean'example.com"] } ] } For
--   a description of IAM and its features, see the <a>IAM developer's
--   guide</a>.
--   
--   <i>See:</i> <a>policy</a> smart constructor.
data Policy

-- | Creates a value of <a>Policy</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>pAuditConfigs</a></li>
--   <li><a>pEtag</a></li>
--   <li><a>pRules</a></li>
--   <li><a>pVersion</a></li>
--   <li><a>pBindings</a></li>
--   <li><a>pIAMOwned</a></li>
--   </ul>
policy :: Policy

-- | Specifies audit logging configs for "data access". "data access":
--   generally refers to data reads/writes and admin reads. "admin
--   activity": generally refers to admin writes. Note: `AuditConfig`
--   doesn't apply to "admin activity", which always enables audit logging.
pAuditConfigs :: Lens' Policy [AuditConfig]

-- | `etag` is used for optimistic concurrency control as a way to help
--   prevent simultaneous updates of a policy from overwriting each other.
--   It is strongly suggested that systems make use of the `etag` in the
--   read-modify-write cycle to perform policy updates in order to avoid
--   race conditions: An `etag` is returned in the response to
--   `getIamPolicy`, and systems are expected to put that etag in the
--   request to `setIamPolicy` to ensure that their change will be applied
--   to the same version of the policy. If no `etag` is provided in the
--   call to `setIamPolicy`, then the existing policy is overwritten
--   blindly.
pEtag :: Lens' Policy (Maybe ByteString)

-- | If more than one rule is specified, the rules are applied in the
--   following manner: - All matching LOG rules are always applied. - If
--   any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
--   will be applied if one or more matching rule requires logging. -
--   Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
--   granted. Logging will be applied if one or more matching rule requires
--   logging. - Otherwise, if no rule applies, permission is denied.
pRules :: Lens' Policy [Rule]

-- | Version of the `Policy`. The default version is 0.
pVersion :: Lens' Policy (Maybe Int32)

-- | Associates a list of `members` to a `role`. Multiple `bindings` must
--   not be specified for the same `role`. `bindings` with no members will
--   result in an error.
pBindings :: Lens' Policy [Binding]
pIAMOwned :: Lens' Policy (Maybe Bool)

-- | A resource type supported by Deployment Manager.
--   
--   <i>See:</i> <a>type'</a> smart constructor.
data Type

-- | Creates a value of <a>Type</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>tInsertTime</a></li>
--   <li><a>tOperation</a></li>
--   <li><a>tSelfLink</a></li>
--   <li><a>tName</a></li>
--   <li><a>tId</a></li>
--   </ul>
type' :: Type

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the type was created, in RFC3339
--   text format.</li>
--   </ul>
tInsertTime :: Lens' Type (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The Operation that most recently ran, or is
--   currently running, on this type.</li>
--   </ul>
tOperation :: Lens' Type (Maybe Operation)

-- | <ul>
--   <li><i>Output Only</i> Self link for the type.</li>
--   </ul>
tSelfLink :: Lens' Type (Maybe Text)

-- | Name of the type.
tName :: Lens' Type (Maybe Text)

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

-- | <i>See:</i> <a>importFile</a> smart constructor.
data ImportFile

-- | Creates a value of <a>ImportFile</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>ifContent</a></li>
--   <li><a>ifName</a></li>
--   </ul>
importFile :: ImportFile

-- | The contents of the file.
ifContent :: Lens' ImportFile (Maybe Text)

-- | The name of the file.
ifName :: Lens' ImportFile (Maybe Text)
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)

-- | <i>See:</i> <a>deploymentsStopRequest</a> smart constructor.
data DeploymentsStopRequest

-- | Creates a value of <a>DeploymentsStopRequest</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>dsrFingerprint</a></li>
--   </ul>
deploymentsStopRequest :: DeploymentsStopRequest

-- | Specifies a fingerprint for stop() requests. A fingerprint is a
--   randomly generated value that must be provided in stop() requests to
--   perform optimistic locking. This ensures optimistic concurrency so
--   that the deployment does not have conflicting requests (e.g. if
--   someone attempts to make a new update request while another user
--   attempts to stop an ongoing update request, this would prevent a
--   collision). The fingerprint is initially generated by Deployment
--   Manager and changes after every request to modify a deployment. To get
--   the latest fingerprint value, perform a get() request on the
--   deployment.
dsrFingerprint :: Lens' DeploymentsStopRequest (Maybe ByteString)
data ResourceWarningsItemDataItem

-- | Creates a value of <a>ResourceWarningsItemDataItem</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>rwidiValue</a></li>
--   <li><a>rwidiKey</a></li>
--   </ul>
resourceWarningsItemDataItem :: ResourceWarningsItemDataItem

-- | <ul>
--   <li><i>Output Only</i> A warning data value corresponding to the
--   key.</li>
--   </ul>
rwidiValue :: Lens' ResourceWarningsItemDataItem (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>
rwidiKey :: Lens' ResourceWarningsItemDataItem (Maybe Text)

-- | Provides the configuration for a sub-type of logging.
--   
--   <i>See:</i> <a>auditLogConfig</a> smart constructor.
data AuditLogConfig

-- | Creates a value of <a>AuditLogConfig</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>alcLogType</a></li>
--   <li><a>alcExemptedMembers</a></li>
--   </ul>
auditLogConfig :: AuditLogConfig

-- | The log type that this config enables.
alcLogType :: Lens' AuditLogConfig (Maybe Text)

-- | Specifies the identities that are exempted from this type of logging
--   Follows the same format of Binding.members.
alcExemptedMembers :: Lens' AuditLogConfig [Text]

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during update of the
--   resource, this field will be populated.</li>
--   </ul>
--   
--   <i>See:</i> <a>resourceUpdateError</a> smart constructor.
data ResourceUpdateError

-- | Creates a value of <a>ResourceUpdateError</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>rueErrors</a></li>
--   </ul>
resourceUpdateError :: ResourceUpdateError

-- | <ul>
--   <li><i>Output Only</i> The array of errors encountered while
--   processing this operation.</li>
--   </ul>
rueErrors :: Lens' ResourceUpdateError [ResourceUpdateErrorErrorsItem]

-- | A condition to be met.
--   
--   <i>See:</i> <a>condition</a> smart constructor.
data Condition

-- | Creates a value of <a>Condition</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>cOp</a></li>
--   <li><a>cIAM</a></li>
--   <li><a>cValues</a></li>
--   <li><a>cValue</a></li>
--   <li><a>cSys</a></li>
--   <li><a>cSvc</a></li>
--   </ul>
condition :: Condition

-- | An operator to apply the subject with.
cOp :: Lens' Condition (Maybe Text)

-- | Trusted attributes supplied by the IAM system.
cIAM :: Lens' Condition (Maybe Text)

-- | The objects of the condition. This is mutually exclusive with 'value'.
cValues :: Lens' Condition [Text]

-- | DEPRECATED. Use 'values' instead.
cValue :: Lens' Condition (Maybe Text)

-- | Trusted attributes supplied by any service that owns resources and
--   uses the IAM system for access control.
cSys :: Lens' Condition (Maybe Text)

-- | Trusted attributes discharged by the service.
cSvc :: Lens' Condition (Maybe Text)

-- | A response containing a partial list of deployments and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>deploymentsListResponse</a> smart constructor.
data DeploymentsListResponse

-- | Creates a value of <a>DeploymentsListResponse</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>dlrNextPageToken</a></li>
--   <li><a>dlrDeployments</a></li>
--   </ul>
deploymentsListResponse :: DeploymentsListResponse

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

-- | <ul>
--   <li><i>Output Only</i> The deployments contained in this
--   response.</li>
--   </ul>
dlrDeployments :: Lens' DeploymentsListResponse [Deployment]
data ResourceWarningsItem

-- | Creates a value of <a>ResourceWarningsItem</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>rwiData</a></li>
--   <li><a>rwiCode</a></li>
--   <li><a>rwiMessage</a></li>
--   </ul>
resourceWarningsItem :: ResourceWarningsItem

-- | <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>
rwiData :: Lens' ResourceWarningsItem [ResourceWarningsItemDataItem]

-- | <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>
rwiCode :: Lens' ResourceWarningsItem (Maybe Text)

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

-- | Specifies what kind of log the caller must write
--   
--   <i>See:</i> <a>logConfig</a> smart constructor.
data LogConfig

-- | Creates a value of <a>LogConfig</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>lcCounter</a></li>
--   </ul>
logConfig :: LogConfig

-- | Counter options.
lcCounter :: Lens' LogConfig (Maybe LogConfigCounterOptions)

-- | The access controls set on the resource.
--   
--   <i>See:</i> <a>resourceAccessControl</a> smart constructor.
data ResourceAccessControl

-- | Creates a value of <a>ResourceAccessControl</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>racGcpIAMPolicy</a></li>
--   </ul>
resourceAccessControl :: ResourceAccessControl

-- | The GCP IAM Policy to set on the resource.
racGcpIAMPolicy :: Lens' ResourceAccessControl (Maybe Text)

-- | <i>See:</i> <a>targetConfiguration</a> smart constructor.
data TargetConfiguration

-- | Creates a value of <a>TargetConfiguration</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>tcConfig</a></li>
--   <li><a>tcImports</a></li>
--   </ul>
targetConfiguration :: TargetConfiguration

-- | The configuration to use for this deployment.
tcConfig :: Lens' TargetConfiguration (Maybe ConfigFile)

-- | Specifies any files to import for this configuration. This can be used
--   to import templates or other files. For example, you might import a
--   text file in order to use the file in a template.
tcImports :: Lens' TargetConfiguration [ImportFile]
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 Text)

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

-- | Associates `members` with a `role`.
--   
--   <i>See:</i> <a>binding</a> smart constructor.
data Binding

-- | Creates a value of <a>Binding</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>bMembers</a></li>
--   <li><a>bRole</a></li>
--   </ul>
binding :: Binding

-- | Specifies the identities requesting access for a Cloud Platform
--   resource. `members` can have the following values: * `allUsers`: A
--   special identifier that represents anyone who is on the internet; with
--   or without a Google account. * `allAuthenticatedUsers`: A special
--   identifier that represents anyone who is authenticated with a Google
--   account or a service account. * `user:{emailid}`: An email address
--   that represents a specific Google account. For example,
--   `alice'gmail.com` or `joe'example.com`. * `serviceAccount:{emailid}`:
--   An email address that represents a service account. For example,
--   `my-other-app'appspot.gserviceaccount.com`. * `group:{emailid}`: An
--   email address that represents a Google group. For example,
--   `admins'example.com`. * `domain:{domain}`: A Google Apps domain name
--   that represents all the users of that domain. For example,
--   `google.com` or `example.com`.
bMembers :: Lens' Binding [Text]

-- | Role that is assigned to `members`. For example, `roles/viewer`,
--   `roles/editor`, or `roles/owner`.
bRole :: Lens' Binding (Maybe Text)

-- | <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</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>dInsertTime</a></li>
--   <li><a>dOperation</a></li>
--   <li><a>dFingerprint</a></li>
--   <li><a>dSelfLink</a></li>
--   <li><a>dName</a></li>
--   <li><a>dManifest</a></li>
--   <li><a>dId</a></li>
--   <li><a>dLabels</a></li>
--   <li><a>dDescription</a></li>
--   <li><a>dUpdate</a></li>
--   <li><a>dTarget</a></li>
--   </ul>
deployment :: Deployment

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the deployment was created, in
--   RFC3339 text format .</li>
--   </ul>
dInsertTime :: Lens' Deployment (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The Operation that most recently ran, or is
--   currently running, on this deployment.</li>
--   </ul>
dOperation :: Lens' Deployment (Maybe Operation)

-- | Provides a fingerprint to use in requests to modify a deployment, such
--   as update(), stop(), and cancelPreview() requests. A fingerprint is a
--   randomly generated value that must be provided with update(), stop(),
--   and cancelPreview() requests to perform optimistic locking. This
--   ensures optimistic concurrency so that only one request happens at a
--   time. The fingerprint is initially generated by Deployment Manager and
--   changes after every request to modify data. To get the latest
--   fingerprint value, perform a get() request to a deployment.
dFingerprint :: Lens' Deployment (Maybe ByteString)

-- | <ul>
--   <li><i>Output Only</i> Self link for the deployment.</li>
--   </ul>
dSelfLink :: Lens' Deployment (Maybe Text)

-- | Name of the resource; provided by the client when the resource is
--   created. The name must be 1-63 characters long, and comply with
--   RFC1035. Specifically, the name must be 1-63 characters long and match
--   the regular expression <a>a-z</a>? which means the first character
--   must be a lowercase letter, and all following characters must be a
--   dash, lowercase letter, or digit, except the last character, which
--   cannot be a dash.
dName :: Lens' Deployment (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the last
--   manifest that was successfully deployed.</li>
--   </ul>
dManifest :: Lens' Deployment (Maybe Text)

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

-- | Map of labels; provided by the client when the resource is created or
--   updated. Specifically: Label keys must be between 1 and 63 characters
--   long and must conform to the following regular expression: <a>a-z</a>?
--   Label values must be between 0 and 63 characters long and must conform
--   to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
dLabels :: Lens' Deployment [DeploymentLabelEntry]

-- | An optional user-provided description of the deployment.
dDescription :: Lens' Deployment (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If Deployment Manager is currently updating or
--   previewing an update to this deployment, the updated configuration
--   appears here.</li>
--   </ul>
dUpdate :: Lens' Deployment (Maybe DeploymentUpdate)

-- | <ul>
--   <li><i>Input Only</i> The parameters that define your deployment,
--   including the deployment configuration and relevant templates.</li>
--   </ul>
dTarget :: Lens' Deployment (Maybe TargetConfiguration)


-- | Cancels and removes the preview currently associated with the
--   deployment.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.cancelPreview</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.CancelPreview

-- | A resource alias for
--   <tt>deploymentmanager.deployments.cancelPreview</tt> method which the
--   <a>DeploymentsCancelPreview</a> request conforms to.
type DeploymentsCancelPreviewResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> ("cancelPreview" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DeploymentsCancelPreviewRequest :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>DeploymentsCancelPreview</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>dcpProject</a></li>
--   <li><a>dcpPayload</a></li>
--   <li><a>dcpDeployment</a></li>
--   </ul>
deploymentsCancelPreview :: Text -> DeploymentsCancelPreviewRequest -> Text -> DeploymentsCancelPreview

-- | Cancels and removes the preview currently associated with the
--   deployment.
--   
--   <i>See:</i> <a>deploymentsCancelPreview</a> smart constructor.
data DeploymentsCancelPreview

-- | The project ID for this request.
dcpProject :: Lens' DeploymentsCancelPreview Text

-- | Multipart request metadata.
dcpPayload :: Lens' DeploymentsCancelPreview DeploymentsCancelPreviewRequest

-- | The name of the deployment for this request.
dcpDeployment :: Lens' DeploymentsCancelPreview Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.CancelPreview.DeploymentsCancelPreview
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.CancelPreview.DeploymentsCancelPreview
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.CancelPreview.DeploymentsCancelPreview
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.CancelPreview.DeploymentsCancelPreview
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.CancelPreview.DeploymentsCancelPreview


-- | Deletes a deployment and all of the resources in the deployment.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.delete</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.Delete

-- | A resource alias for <tt>deploymentmanager.deployments.delete</tt>
--   method which the <a>DeploymentsDelete</a> request conforms to.
type DeploymentsDeleteResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> (QueryParam "deletePolicy" DeploymentsDeleteDeletePolicy :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))

-- | Creates a value of <a>DeploymentsDelete</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>ddProject</a></li>
--   <li><a>ddDeletePolicy</a></li>
--   <li><a>ddDeployment</a></li>
--   </ul>
deploymentsDelete :: Text -> Text -> DeploymentsDelete

-- | Deletes a deployment and all of the resources in the deployment.
--   
--   <i>See:</i> <a>deploymentsDelete</a> smart constructor.
data DeploymentsDelete

-- | The project ID for this request.
ddProject :: Lens' DeploymentsDelete Text

-- | Sets the policy to use for deleting resources.
ddDeletePolicy :: Lens' DeploymentsDelete DeploymentsDeleteDeletePolicy

-- | The name of the deployment for this request.
ddDeployment :: Lens' DeploymentsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.Delete.DeploymentsDelete
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.Delete.DeploymentsDelete
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.Delete.DeploymentsDelete
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.Delete.DeploymentsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.Delete.DeploymentsDelete


-- | Gets information about a specific deployment.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.get</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.Get

-- | A resource alias for <tt>deploymentmanager.deployments.get</tt> method
--   which the <a>DeploymentsGet</a> request conforms to.
type DeploymentsGetResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Deployment)))))))

-- | Creates a value of <a>DeploymentsGet</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>dgProject</a></li>
--   <li><a>dgDeployment</a></li>
--   </ul>
deploymentsGet :: Text -> Text -> DeploymentsGet

-- | Gets information about a specific deployment.
--   
--   <i>See:</i> <a>deploymentsGet</a> smart constructor.
data DeploymentsGet

-- | The project ID for this request.
dgProject :: Lens' DeploymentsGet Text

-- | The name of the deployment for this request.
dgDeployment :: Lens' DeploymentsGet Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.Get.DeploymentsGet
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.Get.DeploymentsGet
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.Get.DeploymentsGet
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.Get.DeploymentsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.Get.DeploymentsGet


-- | Gets the access control policy for a resource. May be empty if no such
--   policy or resource exists.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.getIamPolicy</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.GetIAMPolicy

-- | A resource alias for
--   <tt>deploymentmanager.deployments.getIamPolicy</tt> method which the
--   <a>DeploymentsGetIAMPolicy</a> request conforms to.
type DeploymentsGetIAMPolicyResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "resource" Text :> ("getIamPolicy" :> (QueryParam "alt" AltJSON :> Get '[JSON] Policy))))))))

-- | Creates a value of <a>DeploymentsGetIAMPolicy</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>dgipProject</a></li>
--   <li><a>dgipResource</a></li>
--   </ul>
deploymentsGetIAMPolicy :: Text -> Text -> DeploymentsGetIAMPolicy

-- | Gets the access control policy for a resource. May be empty if no such
--   policy or resource exists.
--   
--   <i>See:</i> <a>deploymentsGetIAMPolicy</a> smart constructor.
data DeploymentsGetIAMPolicy

-- | Project ID for this request.
dgipProject :: Lens' DeploymentsGetIAMPolicy Text

-- | Name of the resource for this request.
dgipResource :: Lens' DeploymentsGetIAMPolicy Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.GetIAMPolicy.DeploymentsGetIAMPolicy
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.GetIAMPolicy.DeploymentsGetIAMPolicy
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.GetIAMPolicy.DeploymentsGetIAMPolicy
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.GetIAMPolicy.DeploymentsGetIAMPolicy
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.GetIAMPolicy.DeploymentsGetIAMPolicy


-- | Creates a deployment and all of the resources described by the
--   deployment manifest.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.insert</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.Insert

-- | A resource alias for <tt>deploymentmanager.deployments.insert</tt>
--   method which the <a>DeploymentsInsert</a> request conforms to.
type DeploymentsInsertResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (QueryParam "preview" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Deployment :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>DeploymentsInsert</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>diProject</a></li>
--   <li><a>diPayload</a></li>
--   <li><a>diPreview</a></li>
--   </ul>
deploymentsInsert :: Text -> Deployment -> DeploymentsInsert

-- | Creates a deployment and all of the resources described by the
--   deployment manifest.
--   
--   <i>See:</i> <a>deploymentsInsert</a> smart constructor.
data DeploymentsInsert

-- | The project ID for this request.
diProject :: Lens' DeploymentsInsert Text

-- | Multipart request metadata.
diPayload :: Lens' DeploymentsInsert Deployment

-- | If set to true, creates a deployment and creates "shell" resources but
--   does not actually instantiate these resources. This allows you to
--   preview what your deployment looks like. After previewing a
--   deployment, you can deploy your resources by making a request with the
--   update() method or you can use the cancelPreview() method to cancel
--   the preview altogether. Note that the deployment will still exist
--   after you cancel the preview and you must separately delete this
--   deployment if you want to remove it.
diPreview :: Lens' DeploymentsInsert (Maybe Bool)
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.Insert.DeploymentsInsert
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.Insert.DeploymentsInsert
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.Insert.DeploymentsInsert
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.Insert.DeploymentsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.Insert.DeploymentsInsert


-- | Lists all deployments for a given project.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.list</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.List

-- | A resource alias for <tt>deploymentmanager.deployments.list</tt>
--   method which the <a>DeploymentsList</a> request conforms to.
type DeploymentsListResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] DeploymentsListResponse))))))))))

-- | Creates a value of <a>DeploymentsList</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>dlOrderBy</a></li>
--   <li><a>dlProject</a></li>
--   <li><a>dlFilter</a></li>
--   <li><a>dlPageToken</a></li>
--   <li><a>dlMaxResults</a></li>
--   </ul>
deploymentsList :: Text -> DeploymentsList

-- | Lists all deployments for a given project.
--   
--   <i>See:</i> <a>deploymentsList</a> smart constructor.
data DeploymentsList

-- | 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.
dlOrderBy :: Lens' DeploymentsList (Maybe Text)

-- | The project ID for this request.
dlProject :: Lens' DeploymentsList 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. You
--   can filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   Use filtering on nested fields to take advantage of labels to organize
--   and search for results based on label values. To filter on multiple
--   expressions, provide 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.
dlFilter :: Lens' DeploymentsList (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.
dlPageToken :: Lens' DeploymentsList (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.
dlMaxResults :: Lens' DeploymentsList Word32
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.List.DeploymentsList
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.List.DeploymentsList
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.List.DeploymentsList
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.List.DeploymentsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.List.DeploymentsList


-- | Updates a deployment and all of the resources described by the
--   deployment manifest. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.patch</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.Patch

-- | A resource alias for <tt>deploymentmanager.deployments.patch</tt>
--   method which the <a>DeploymentsPatch</a> request conforms to.
type DeploymentsPatchResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> (QueryParam "createPolicy" DeploymentsPatchCreatePolicy :> (QueryParam "deletePolicy" DeploymentsPatchDeletePolicy :> (QueryParam "preview" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Deployment :> Patch '[JSON] Operation)))))))))))

-- | Creates a value of <a>DeploymentsPatch</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>dpCreatePolicy</a></li>
--   <li><a>dpProject</a></li>
--   <li><a>dpPayload</a></li>
--   <li><a>dpDeletePolicy</a></li>
--   <li><a>dpPreview</a></li>
--   <li><a>dpDeployment</a></li>
--   </ul>
deploymentsPatch :: Text -> Deployment -> Text -> DeploymentsPatch

-- | Updates a deployment and all of the resources described by the
--   deployment manifest. This method supports patch semantics.
--   
--   <i>See:</i> <a>deploymentsPatch</a> smart constructor.
data DeploymentsPatch

-- | Sets the policy to use for creating new resources.
dpCreatePolicy :: Lens' DeploymentsPatch DeploymentsPatchCreatePolicy

-- | The project ID for this request.
dpProject :: Lens' DeploymentsPatch Text

-- | Multipart request metadata.
dpPayload :: Lens' DeploymentsPatch Deployment

-- | Sets the policy to use for deleting resources.
dpDeletePolicy :: Lens' DeploymentsPatch DeploymentsPatchDeletePolicy

-- | If set to true, updates the deployment and creates and updates the
--   "shell" resources but does not actually alter or instantiate these
--   resources. This allows you to preview what your deployment will look
--   like. You can use this intent to preview how an update would affect
--   your deployment. You must provide a target.config with a configuration
--   if this is set to true. After previewing a deployment, you can deploy
--   your resources by making a request with the update() or you can
--   cancelPreview() to remove the preview altogether. Note that the
--   deployment will still exist after you cancel the preview and you must
--   separately delete this deployment if you want to remove it.
dpPreview :: Lens' DeploymentsPatch Bool

-- | The name of the deployment for this request.
dpDeployment :: Lens' DeploymentsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.Patch.DeploymentsPatch
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.Patch.DeploymentsPatch
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.Patch.DeploymentsPatch
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.Patch.DeploymentsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.Patch.DeploymentsPatch


-- | Sets the access control policy on the specified resource. Replaces any
--   existing policy.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.setIamPolicy</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.SetIAMPolicy

-- | A resource alias for
--   <tt>deploymentmanager.deployments.setIamPolicy</tt> method which the
--   <a>DeploymentsSetIAMPolicy</a> request conforms to.
type DeploymentsSetIAMPolicyResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "resource" Text :> ("setIamPolicy" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Policy :> Post '[JSON] Policy)))))))))

-- | Creates a value of <a>DeploymentsSetIAMPolicy</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>dsipProject</a></li>
--   <li><a>dsipPayload</a></li>
--   <li><a>dsipResource</a></li>
--   </ul>
deploymentsSetIAMPolicy :: Text -> Policy -> Text -> DeploymentsSetIAMPolicy

-- | Sets the access control policy on the specified resource. Replaces any
--   existing policy.
--   
--   <i>See:</i> <a>deploymentsSetIAMPolicy</a> smart constructor.
data DeploymentsSetIAMPolicy

-- | Project ID for this request.
dsipProject :: Lens' DeploymentsSetIAMPolicy Text

-- | Multipart request metadata.
dsipPayload :: Lens' DeploymentsSetIAMPolicy Policy

-- | Name of the resource for this request.
dsipResource :: Lens' DeploymentsSetIAMPolicy Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.SetIAMPolicy.DeploymentsSetIAMPolicy
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.SetIAMPolicy.DeploymentsSetIAMPolicy
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.SetIAMPolicy.DeploymentsSetIAMPolicy
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.SetIAMPolicy.DeploymentsSetIAMPolicy
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.SetIAMPolicy.DeploymentsSetIAMPolicy


-- | Stops an ongoing operation. This does not roll back any work that has
--   already been completed, but prevents any new work from being started.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.stop</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.Stop

-- | A resource alias for <tt>deploymentmanager.deployments.stop</tt>
--   method which the <a>DeploymentsStop</a> request conforms to.
type DeploymentsStopResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> ("stop" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] DeploymentsStopRequest :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>DeploymentsStop</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>dsProject</a></li>
--   <li><a>dsPayload</a></li>
--   <li><a>dsDeployment</a></li>
--   </ul>
deploymentsStop :: Text -> DeploymentsStopRequest -> Text -> DeploymentsStop

-- | Stops an ongoing operation. This does not roll back any work that has
--   already been completed, but prevents any new work from being started.
--   
--   <i>See:</i> <a>deploymentsStop</a> smart constructor.
data DeploymentsStop

-- | The project ID for this request.
dsProject :: Lens' DeploymentsStop Text

-- | Multipart request metadata.
dsPayload :: Lens' DeploymentsStop DeploymentsStopRequest

-- | The name of the deployment for this request.
dsDeployment :: Lens' DeploymentsStop Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.Stop.DeploymentsStop
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.Stop.DeploymentsStop
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.Stop.DeploymentsStop
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.Stop.DeploymentsStop
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.Stop.DeploymentsStop


-- | Returns permissions that a caller has on the specified resource.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.testIamPermissions</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.TestIAMPermissions

-- | A resource alias for
--   <tt>deploymentmanager.deployments.testIamPermissions</tt> method which
--   the <a>DeploymentsTestIAMPermissions</a> request conforms to.
type DeploymentsTestIAMPermissionsResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "resource" Text :> ("testIamPermissions" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TestPermissionsRequest :> Post '[JSON] TestPermissionsResponse)))))))))

-- | Creates a value of <a>DeploymentsTestIAMPermissions</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>dtipProject</a></li>
--   <li><a>dtipPayload</a></li>
--   <li><a>dtipResource</a></li>
--   </ul>
deploymentsTestIAMPermissions :: Text -> TestPermissionsRequest -> Text -> DeploymentsTestIAMPermissions

-- | Returns permissions that a caller has on the specified resource.
--   
--   <i>See:</i> <a>deploymentsTestIAMPermissions</a> smart constructor.
data DeploymentsTestIAMPermissions

-- | Project ID for this request.
dtipProject :: Lens' DeploymentsTestIAMPermissions Text

-- | Multipart request metadata.
dtipPayload :: Lens' DeploymentsTestIAMPermissions TestPermissionsRequest

-- | Name of the resource for this request.
dtipResource :: Lens' DeploymentsTestIAMPermissions Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.TestIAMPermissions.DeploymentsTestIAMPermissions
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.TestIAMPermissions.DeploymentsTestIAMPermissions
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.TestIAMPermissions.DeploymentsTestIAMPermissions
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.TestIAMPermissions.DeploymentsTestIAMPermissions
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.TestIAMPermissions.DeploymentsTestIAMPermissions


-- | Updates a deployment and all of the resources described by the
--   deployment manifest.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.deployments.update</tt>.
module Network.Google.Resource.DeploymentManager.Deployments.Update

-- | A resource alias for <tt>deploymentmanager.deployments.update</tt>
--   method which the <a>DeploymentsUpdate</a> request conforms to.
type DeploymentsUpdateResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> (QueryParam "createPolicy" DeploymentsUpdateCreatePolicy :> (QueryParam "deletePolicy" DeploymentsUpdateDeletePolicy :> (QueryParam "preview" Bool :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Deployment :> Put '[JSON] Operation)))))))))))

-- | Creates a value of <a>DeploymentsUpdate</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>duCreatePolicy</a></li>
--   <li><a>duProject</a></li>
--   <li><a>duPayload</a></li>
--   <li><a>duDeletePolicy</a></li>
--   <li><a>duPreview</a></li>
--   <li><a>duDeployment</a></li>
--   </ul>
deploymentsUpdate :: Text -> Deployment -> Text -> DeploymentsUpdate

-- | Updates a deployment and all of the resources described by the
--   deployment manifest.
--   
--   <i>See:</i> <a>deploymentsUpdate</a> smart constructor.
data DeploymentsUpdate

-- | Sets the policy to use for creating new resources.
duCreatePolicy :: Lens' DeploymentsUpdate DeploymentsUpdateCreatePolicy

-- | The project ID for this request.
duProject :: Lens' DeploymentsUpdate Text

-- | Multipart request metadata.
duPayload :: Lens' DeploymentsUpdate Deployment

-- | Sets the policy to use for deleting resources.
duDeletePolicy :: Lens' DeploymentsUpdate DeploymentsUpdateDeletePolicy

-- | If set to true, updates the deployment and creates and updates the
--   "shell" resources but does not actually alter or instantiate these
--   resources. This allows you to preview what your deployment will look
--   like. You can use this intent to preview how an update would affect
--   your deployment. You must provide a target.config with a configuration
--   if this is set to true. After previewing a deployment, you can deploy
--   your resources by making a request with the update() or you can
--   cancelPreview() to remove the preview altogether. Note that the
--   deployment will still exist after you cancel the preview and you must
--   separately delete this deployment if you want to remove it.
duPreview :: Lens' DeploymentsUpdate Bool

-- | The name of the deployment for this request.
duDeployment :: Lens' DeploymentsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Deployments.Update.DeploymentsUpdate
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Deployments.Update.DeploymentsUpdate
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Deployments.Update.DeploymentsUpdate
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Deployments.Update.DeploymentsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Deployments.Update.DeploymentsUpdate


-- | Gets information about a specific manifest.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.manifests.get</tt>.
module Network.Google.Resource.DeploymentManager.Manifests.Get

-- | A resource alias for <tt>deploymentmanager.manifests.get</tt> method
--   which the <a>ManifestsGet</a> request conforms to.
type ManifestsGetResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> ("manifests" :> (Capture "manifest" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Manifest)))))))))

-- | Creates a value of <a>ManifestsGet</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>mgProject</a></li>
--   <li><a>mgManifest</a></li>
--   <li><a>mgDeployment</a></li>
--   </ul>
manifestsGet :: Text -> Text -> Text -> ManifestsGet

-- | Gets information about a specific manifest.
--   
--   <i>See:</i> <a>manifestsGet</a> smart constructor.
data ManifestsGet

-- | The project ID for this request.
mgProject :: Lens' ManifestsGet Text

-- | The name of the manifest for this request.
mgManifest :: Lens' ManifestsGet Text

-- | The name of the deployment for this request.
mgDeployment :: Lens' ManifestsGet Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Manifests.Get.ManifestsGet
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Manifests.Get.ManifestsGet
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Manifests.Get.ManifestsGet
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Manifests.Get.ManifestsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Manifests.Get.ManifestsGet


-- | Lists all manifests for a given deployment.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.manifests.list</tt>.
module Network.Google.Resource.DeploymentManager.Manifests.List

-- | A resource alias for <tt>deploymentmanager.manifests.list</tt> method
--   which the <a>ManifestsList</a> request conforms to.
type ManifestsListResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> ("manifests" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ManifestsListResponse))))))))))))

-- | Creates a value of <a>ManifestsList</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>mlOrderBy</a></li>
--   <li><a>mlProject</a></li>
--   <li><a>mlFilter</a></li>
--   <li><a>mlPageToken</a></li>
--   <li><a>mlMaxResults</a></li>
--   <li><a>mlDeployment</a></li>
--   </ul>
manifestsList :: Text -> Text -> ManifestsList

-- | Lists all manifests for a given deployment.
--   
--   <i>See:</i> <a>manifestsList</a> smart constructor.
data ManifestsList

-- | 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.
mlOrderBy :: Lens' ManifestsList (Maybe Text)

-- | The project ID for this request.
mlProject :: Lens' ManifestsList 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. You
--   can filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   Use filtering on nested fields to take advantage of labels to organize
--   and search for results based on label values. To filter on multiple
--   expressions, provide 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.
mlFilter :: Lens' ManifestsList (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.
mlPageToken :: Lens' ManifestsList (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.
mlMaxResults :: Lens' ManifestsList Word32

-- | The name of the deployment for this request.
mlDeployment :: Lens' ManifestsList Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Manifests.List.ManifestsList
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Manifests.List.ManifestsList
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Manifests.List.ManifestsList
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Manifests.List.ManifestsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Manifests.List.ManifestsList


-- | Gets information about a specific operation.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.operations.get</tt>.
module Network.Google.Resource.DeploymentManager.Operations.Get

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

-- | Creates a value of <a>OperationsGet</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>ogProject</a></li>
--   <li><a>ogOperation</a></li>
--   </ul>
operationsGet :: Text -> Text -> OperationsGet

-- | Gets information about a specific operation.
--   
--   <i>See:</i> <a>operationsGet</a> smart constructor.
data OperationsGet

-- | The project ID for this request.
ogProject :: Lens' OperationsGet Text

-- | The name of the operation for this request.
ogOperation :: Lens' OperationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Operations.Get.OperationsGet
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Operations.Get.OperationsGet
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Operations.Get.OperationsGet
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Operations.Get.OperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Operations.Get.OperationsGet


-- | Lists all operations for a project.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.operations.list</tt>.
module Network.Google.Resource.DeploymentManager.Operations.List

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

-- | Creates a value of <a>OperationsList</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>olOrderBy</a></li>
--   <li><a>olProject</a></li>
--   <li><a>olFilter</a></li>
--   <li><a>olPageToken</a></li>
--   <li><a>olMaxResults</a></li>
--   </ul>
operationsList :: Text -> OperationsList

-- | Lists all operations for a project.
--   
--   <i>See:</i> <a>operationsList</a> smart constructor.
data OperationsList

-- | 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.
olOrderBy :: Lens' OperationsList (Maybe Text)

-- | The project ID for this request.
olProject :: Lens' OperationsList 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. You
--   can filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   Use filtering on nested fields to take advantage of labels to organize
--   and search for results based on label values. To filter on multiple
--   expressions, provide 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.
olFilter :: Lens' OperationsList (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.
olPageToken :: Lens' OperationsList (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.
olMaxResults :: Lens' OperationsList Word32
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Operations.List.OperationsList
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Operations.List.OperationsList
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Operations.List.OperationsList
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Operations.List.OperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Operations.List.OperationsList


-- | Gets information about a single resource.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.resources.get</tt>.
module Network.Google.Resource.DeploymentManager.Resources.Get

-- | A resource alias for <tt>deploymentmanager.resources.get</tt> method
--   which the <a>ResourcesGet</a> request conforms to.
type ResourcesGetResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> ("resources" :> (Capture "resource" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Resource)))))))))

-- | Creates a value of <a>ResourcesGet</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>rgProject</a></li>
--   <li><a>rgResource</a></li>
--   <li><a>rgDeployment</a></li>
--   </ul>
resourcesGet :: Text -> Text -> Text -> ResourcesGet

-- | Gets information about a single resource.
--   
--   <i>See:</i> <a>resourcesGet</a> smart constructor.
data ResourcesGet

-- | The project ID for this request.
rgProject :: Lens' ResourcesGet Text

-- | The name of the resource for this request.
rgResource :: Lens' ResourcesGet Text

-- | The name of the deployment for this request.
rgDeployment :: Lens' ResourcesGet Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Resources.Get.ResourcesGet
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Resources.Get.ResourcesGet
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Resources.Get.ResourcesGet
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Resources.Get.ResourcesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Resources.Get.ResourcesGet


-- | Lists all resources in a given deployment.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.resources.list</tt>.
module Network.Google.Resource.DeploymentManager.Resources.List

-- | A resource alias for <tt>deploymentmanager.resources.list</tt> method
--   which the <a>ResourcesList</a> request conforms to.
type ResourcesListResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("deployments" :> (Capture "deployment" Text :> ("resources" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ResourcesListResponse))))))))))))

-- | Creates a value of <a>ResourcesList</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>rlOrderBy</a></li>
--   <li><a>rlProject</a></li>
--   <li><a>rlFilter</a></li>
--   <li><a>rlPageToken</a></li>
--   <li><a>rlMaxResults</a></li>
--   <li><a>rlDeployment</a></li>
--   </ul>
resourcesList :: Text -> Text -> ResourcesList

-- | Lists all resources in a given deployment.
--   
--   <i>See:</i> <a>resourcesList</a> smart constructor.
data ResourcesList

-- | 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.
rlOrderBy :: Lens' ResourcesList (Maybe Text)

-- | The project ID for this request.
rlProject :: Lens' ResourcesList 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. You
--   can filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   Use filtering on nested fields to take advantage of labels to organize
--   and search for results based on label values. To filter on multiple
--   expressions, provide 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.
rlFilter :: Lens' ResourcesList (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.
rlPageToken :: Lens' ResourcesList (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.
rlMaxResults :: Lens' ResourcesList Word32

-- | The name of the deployment for this request.
rlDeployment :: Lens' ResourcesList Text
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Resources.List.ResourcesList
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Resources.List.ResourcesList
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Resources.List.ResourcesList
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Resources.List.ResourcesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Resources.List.ResourcesList


-- | Lists all resource types for Deployment Manager.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a> for
--   <tt>deploymentmanager.types.list</tt>.
module Network.Google.Resource.DeploymentManager.Types.List

-- | A resource alias for <tt>deploymentmanager.types.list</tt> method
--   which the <a>TypesList</a> request conforms to.
type TypesListResource = "deploymentmanager" :> ("v2" :> ("projects" :> (Capture "project" Text :> ("global" :> ("types" :> (QueryParam "orderBy" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] TypesListResponse))))))))))

-- | Creates a value of <a>TypesList</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>tlOrderBy</a></li>
--   <li><a>tlProject</a></li>
--   <li><a>tlFilter</a></li>
--   <li><a>tlPageToken</a></li>
--   <li><a>tlMaxResults</a></li>
--   </ul>
typesList :: Text -> TypesList

-- | Lists all resource types for Deployment Manager.
--   
--   <i>See:</i> <a>typesList</a> smart constructor.
data TypesList

-- | 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.
tlOrderBy :: Lens' TypesList (Maybe Text)

-- | The project ID for this request.
tlProject :: Lens' TypesList 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. You
--   can filter on nested fields. For example, you could filter on
--   instances that have set the scheduling.automaticRestart field to true.
--   Use filtering on nested fields to take advantage of labels to organize
--   and search for results based on label values. To filter on multiple
--   expressions, provide 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.
tlFilter :: Lens' TypesList (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.
tlPageToken :: Lens' TypesList (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.
tlMaxResults :: Lens' TypesList Word32
instance GHC.Generics.Generic Network.Google.Resource.DeploymentManager.Types.List.TypesList
instance Data.Data.Data Network.Google.Resource.DeploymentManager.Types.List.TypesList
instance GHC.Show.Show Network.Google.Resource.DeploymentManager.Types.List.TypesList
instance GHC.Classes.Eq Network.Google.Resource.DeploymentManager.Types.List.TypesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.DeploymentManager.Types.List.TypesList


-- | Declares, configures, and deploys complex solutions on Google Cloud
--   Platform.
--   
--   <i>See:</i> <a>Google Cloud Deployment Manager API Reference</a>
module Network.Google.DeploymentManager

-- | Default request referring to version <tt>v2</tt> of the Google Cloud
--   Deployment Manager API. This contains the host and root path used as a
--   starting point for constructing service requests.
deploymentManagerService :: 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"]

-- | View and manage your Google Cloud Platform management resources and
--   deployment status information
ndevCloudmanScope :: Proxy '["https://www.googleapis.com/auth/ndev.cloudman"]

-- | View your Google Cloud Platform management resources and deployment
--   status information
ndevCloudmanReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/ndev.cloudman.readonly"]

-- | Represents the entirety of the methods and resources available for the
--   Google Cloud Deployment Manager API service.
type DeploymentManagerAPI = TypesListResource :<|> (ResourcesListResource :<|> (ResourcesGetResource :<|> (ManifestsListResource :<|> (ManifestsGetResource :<|> (DeploymentsInsertResource :<|> (DeploymentsListResource :<|> (DeploymentsGetIAMPolicyResource :<|> (DeploymentsPatchResource :<|> (DeploymentsGetResource :<|> (DeploymentsCancelPreviewResource :<|> (DeploymentsSetIAMPolicyResource :<|> (DeploymentsStopResource :<|> (DeploymentsTestIAMPermissionsResource :<|> (DeploymentsDeleteResource :<|> (DeploymentsUpdateResource :<|> (OperationsListResource :<|> OperationsGetResource))))))))))))))))
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)

-- | <i>See:</i> <a>configFile</a> smart constructor.
data ConfigFile

-- | Creates a value of <a>ConfigFile</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>cfContent</a></li>
--   </ul>
configFile :: ConfigFile

-- | The contents of the file.
cfContent :: Lens' ConfigFile (Maybe Text)

-- | Provides the configuration for non-admin_activity logging for a
--   service. Controls exemptions and specific log sub-types.
--   
--   <i>See:</i> <a>auditConfig</a> smart constructor.
data AuditConfig

-- | Creates a value of <a>AuditConfig</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>acService</a></li>
--   <li><a>acAuditLogConfigs</a></li>
--   <li><a>acExemptedMembers</a></li>
--   </ul>
auditConfig :: AuditConfig

-- | Specifies a service that will be enabled for audit logging. For
--   example, `resourcemanager`, `storage`, `compute`. `allServices` is a
--   special value that covers all services.
acService :: Lens' AuditConfig (Maybe Text)

-- | The configuration for each type of logging
acAuditLogConfigs :: Lens' AuditConfig [AuditLogConfig]

-- | Specifies the identities that are exempted from "data access" audit
--   logging for the `service` specified above. Follows the same format of
--   Binding.members.
acExemptedMembers :: Lens' AuditConfig [Text]

-- | Sets the policy to use for creating new resources.
data DeploymentsUpdateCreatePolicy

-- | <pre>
--   ACQUIRE
--   </pre>
Acquire :: DeploymentsUpdateCreatePolicy

-- | <pre>
--   CREATE_OR_ACQUIRE
--   </pre>
CreateOrAcquire :: DeploymentsUpdateCreatePolicy

-- | A response containing a partial list of operations and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>operationsListResponse</a> smart constructor.
data OperationsListResponse

-- | Creates a value of <a>OperationsListResponse</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>olrNextPageToken</a></li>
--   <li><a>olrOperations</a></li>
--   </ul>
operationsListResponse :: OperationsListResponse

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

-- | <ul>
--   <li><i>Output Only</i> Operations contained in this list
--   response.</li>
--   </ul>
olrOperations :: Lens' OperationsListResponse [Operation]
data ResourceUpdateWarningsItemDataItem

-- | Creates a value of <a>ResourceUpdateWarningsItemDataItem</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>ruwidiValue</a></li>
--   <li><a>ruwidiKey</a></li>
--   </ul>
resourceUpdateWarningsItemDataItem :: ResourceUpdateWarningsItemDataItem

-- | <ul>
--   <li><i>Output Only</i> A warning data value corresponding to the
--   key.</li>
--   </ul>
ruwidiValue :: Lens' ResourceUpdateWarningsItemDataItem (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>
ruwidiKey :: Lens' ResourceUpdateWarningsItemDataItem (Maybe Text)

-- | Sets the policy to use for deleting resources.
data DeploymentsDeleteDeletePolicy

-- | <pre>
--   ABANDON
--   </pre>
Abandon :: DeploymentsDeleteDeletePolicy

-- | <pre>
--   DELETE
--   </pre>
Delete' :: DeploymentsDeleteDeletePolicy

-- | A response that returns all Types supported by Deployment Manager
--   
--   <i>See:</i> <a>typesListResponse</a> smart constructor.
data TypesListResponse

-- | Creates a value of <a>TypesListResponse</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>tlrNextPageToken</a></li>
--   <li><a>tlrTypes</a></li>
--   </ul>
typesListResponse :: TypesListResponse

-- | A token used to continue a truncated list request.
tlrNextPageToken :: Lens' TypesListResponse (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> A list of resource types supported by
--   Deployment Manager.</li>
--   </ul>
tlrTypes :: Lens' TypesListResponse [Type]

-- | Options for counters
--   
--   <i>See:</i> <a>logConfigCounterOptions</a> smart constructor.
data LogConfigCounterOptions

-- | Creates a value of <a>LogConfigCounterOptions</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>lccoField</a></li>
--   <li><a>lccoMetric</a></li>
--   </ul>
logConfigCounterOptions :: LogConfigCounterOptions

-- | The field value to attribute.
lccoField :: Lens' LogConfigCounterOptions (Maybe Text)

-- | The metric to update.
lccoMetric :: Lens' LogConfigCounterOptions (Maybe Text)

-- | Sets the policy to use for deleting resources.
data DeploymentsUpdateDeletePolicy

-- | <pre>
--   ABANDON
--   </pre>
DUDPAbandon :: DeploymentsUpdateDeletePolicy

-- | <pre>
--   DELETE
--   </pre>
DUDPDelete' :: DeploymentsUpdateDeletePolicy

-- | Sets the policy to use for deleting resources.
data DeploymentsPatchDeletePolicy

-- | <pre>
--   ABANDON
--   </pre>
DPDPAbandon :: DeploymentsPatchDeletePolicy

-- | <pre>
--   DELETE
--   </pre>
DPDPDelete' :: DeploymentsPatchDeletePolicy

-- | 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 Text)

-- | <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. For operations related to creating a snapshot, this points
--   to the persistent disk that the snapshot was created from.</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 TestPermissionsResponse

-- | Creates a value of <a>TestPermissionsResponse</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>tprPermissions</a></li>
--   </ul>
testPermissionsResponse :: TestPermissionsResponse

-- | A subset of `TestPermissionsRequest.permissions` that the caller is
--   allowed.
tprPermissions :: Lens' TestPermissionsResponse [Text]

-- | Sets the policy to use for creating new resources.
data DeploymentsPatchCreatePolicy

-- | <pre>
--   ACQUIRE
--   </pre>
DPCPAcquire :: DeploymentsPatchCreatePolicy

-- | <pre>
--   CREATE_OR_ACQUIRE
--   </pre>
DPCPCreateOrAcquire :: DeploymentsPatchCreatePolicy

-- | A response containing a partial list of resources and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>resourcesListResponse</a> smart constructor.
data ResourcesListResponse

-- | Creates a value of <a>ResourcesListResponse</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>rlrNextPageToken</a></li>
--   <li><a>rlrResources</a></li>
--   </ul>
resourcesListResponse :: ResourcesListResponse

-- | A token used to continue a truncated list request.
rlrNextPageToken :: Lens' ResourcesListResponse (Maybe Text)

-- | Resources contained in this list response.
rlrResources :: Lens' ResourcesListResponse [Resource]

-- | <i>See:</i> <a>deploymentUpdate</a> smart constructor.
data DeploymentUpdate

-- | Creates a value of <a>DeploymentUpdate</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>duManifest</a></li>
--   <li><a>duLabels</a></li>
--   </ul>
deploymentUpdate :: DeploymentUpdate

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the update
--   configuration of this deployment.</li>
--   </ul>
duManifest :: Lens' DeploymentUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Map of labels; provided by the client when the
--   resource is created or updated. Specifically: Label keys must be
--   between 1 and 63 characters long and must conform to the following
--   regular expression:</li>
--   <li><i>a-z</i> ([-a-z0-9]*[a-z0-9])? Label values must be between 0
--   and 63 characters long and must conform to the regular expression
--   ([a-z]([-a-z0-9]*[a-z0-9])?)?</li>
--   </ul>
duLabels :: Lens' DeploymentUpdate [DeploymentUpdateLabelEntry]

-- | <i>See:</i> <a>resourceUpdate</a> smart constructor.
data ResourceUpdate

-- | Creates a value of <a>ResourceUpdate</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>ruState</a></li>
--   <li><a>ruError</a></li>
--   <li><a>ruAccessControl</a></li>
--   <li><a>ruWarnings</a></li>
--   <li><a>ruIntent</a></li>
--   <li><a>ruManifest</a></li>
--   <li><a>ruFinalProperties</a></li>
--   <li><a>ruProperties</a></li>
--   </ul>
resourceUpdate :: ResourceUpdate

-- | <ul>
--   <li><i>Output Only</i> The state of the resource.</li>
--   </ul>
ruState :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during update of the
--   resource, this field will be populated.</li>
--   </ul>
ruError :: Lens' ResourceUpdate (Maybe ResourceUpdateError)

-- | The Access Control Policy to set on this resource after updating the
--   resource itself.
ruAccessControl :: Lens' ResourceUpdate (Maybe ResourceAccessControl)

-- | <ul>
--   <li><i>Output Only</i> If warning messages are generated during
--   processing of this resource, this field will be populated.</li>
--   </ul>
ruWarnings :: Lens' ResourceUpdate [ResourceUpdateWarningsItem]

-- | <ul>
--   <li><i>Output Only</i> The intent of the resource: PREVIEW, UPDATE, or
--   CANCEL.</li>
--   </ul>
ruIntent :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the update
--   configuration of this resource.</li>
--   </ul>
ruManifest :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The expanded properties of the resource with
--   reference values expanded. Returned as serialized YAML.</li>
--   </ul>
ruFinalProperties :: Lens' ResourceUpdate (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The set of updated properties for this
--   resource, before references are expanded. Returned as serialized
--   YAML.</li>
--   </ul>
ruProperties :: Lens' ResourceUpdate (Maybe Text)
data DeploymentLabelEntry

-- | Creates a value of <a>DeploymentLabelEntry</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>dleValue</a></li>
--   <li><a>dleKey</a></li>
--   </ul>
deploymentLabelEntry :: DeploymentLabelEntry
dleValue :: Lens' DeploymentLabelEntry (Maybe Text)
dleKey :: Lens' DeploymentLabelEntry (Maybe Text)

-- | A rule to be applied in a Policy.
--   
--   <i>See:</i> <a>rule</a> smart constructor.
data Rule

-- | Creates a value of <a>Rule</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>rAction</a></li>
--   <li><a>rNotIns</a></li>
--   <li><a>rIns</a></li>
--   <li><a>rLogConfigs</a></li>
--   <li><a>rConditions</a></li>
--   <li><a>rPermissions</a></li>
--   <li><a>rDescription</a></li>
--   </ul>
rule :: Rule

-- | Required
rAction :: Lens' Rule (Maybe Text)

-- | If one or more 'not_in' clauses are specified, the rule matches if the
--   PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
rNotIns :: Lens' Rule [Text]

-- | If one or more 'in' clauses are specified, the rule matches if the
--   PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
rIns :: Lens' Rule [Text]

-- | The config returned to callers of tech.iam.IAM.CheckPolicy for any
--   entries that match the LOG action.
rLogConfigs :: Lens' Rule [LogConfig]

-- | Additional restrictions that must be met
rConditions :: Lens' Rule [Condition]

-- | A permission is a string of form '..' (e.g., 'storage.buckets.list').
--   A value of '*' matches all permissions, and a verb part of '*' (e.g.,
--   'storage.buckets.*') matches all verbs.
rPermissions :: Lens' Rule [Text]

-- | Human-readable description of the rule.
rDescription :: Lens' Rule (Maybe Text)
data TestPermissionsRequest

-- | Creates a value of <a>TestPermissionsRequest</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>tPermissions</a></li>
--   </ul>
testPermissionsRequest :: TestPermissionsRequest

-- | The set of permissions to check for the 'resource'. Permissions with
--   wildcards (such as '*' or 'storage.*') are not allowed.
tPermissions :: Lens' TestPermissionsRequest [Text]

-- | <i>See:</i> <a>manifest</a> smart constructor.
data Manifest

-- | Creates a value of <a>Manifest</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>mInsertTime</a></li>
--   <li><a>mLayout</a></li>
--   <li><a>mConfig</a></li>
--   <li><a>mExpandedConfig</a></li>
--   <li><a>mImports</a></li>
--   <li><a>mSelfLink</a></li>
--   <li><a>mName</a></li>
--   <li><a>mId</a></li>
--   </ul>
manifest :: Manifest

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the manifest was created, in
--   RFC3339 text format.</li>
--   </ul>
mInsertTime :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The YAML layout for this manifest.</li>
--   </ul>
mLayout :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The YAML configuration for this manifest.</li>
--   </ul>
mConfig :: Lens' Manifest (Maybe ConfigFile)

-- | <ul>
--   <li><i>Output Only</i> The fully-expanded configuration file,
--   including any templates and references.</li>
--   </ul>
mExpandedConfig :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The imported files for this manifest.</li>
--   </ul>
mImports :: Lens' Manifest [ImportFile]

-- | <ul>
--   <li><i>Output Only</i> Self link for the manifest.</li>
--   </ul>
mSelfLink :: Lens' Manifest (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The name of the manifest.</li>
--   </ul>
mName :: Lens' Manifest (Maybe Text)

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

-- | Creates a value of <a>ResourceUpdateWarningsItem</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>ruwiData</a></li>
--   <li><a>ruwiCode</a></li>
--   <li><a>ruwiMessage</a></li>
--   </ul>
resourceUpdateWarningsItem :: ResourceUpdateWarningsItem

-- | <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>
ruwiData :: Lens' ResourceUpdateWarningsItem [ResourceUpdateWarningsItemDataItem]

-- | <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>
ruwiCode :: Lens' ResourceUpdateWarningsItem (Maybe Text)

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

-- | <i>See:</i> <a>deploymentsCancelPreviewRequest</a> smart constructor.
data DeploymentsCancelPreviewRequest

-- | Creates a value of <a>DeploymentsCancelPreviewRequest</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>dcprFingerprint</a></li>
--   </ul>
deploymentsCancelPreviewRequest :: DeploymentsCancelPreviewRequest

-- | Specifies a fingerprint for cancelPreview() requests. A fingerprint is
--   a randomly generated value that must be provided in cancelPreview()
--   requests to perform optimistic locking. This ensures optimistic
--   concurrency so that the deployment does not have conflicting requests
--   (e.g. if someone attempts to make a new update request while another
--   user attempts to cancel a preview, this would prevent one of the
--   requests). The fingerprint is initially generated by Deployment
--   Manager and changes after every request to modify a deployment. To get
--   the latest fingerprint value, perform a get() request on the
--   deployment.
dcprFingerprint :: Lens' DeploymentsCancelPreviewRequest (Maybe ByteString)

-- | <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | Creates a value of <a>Resource</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>rInsertTime</a></li>
--   <li><a>rAccessControl</a></li>
--   <li><a>rURL</a></li>
--   <li><a>rWarnings</a></li>
--   <li><a>rUpdateTime</a></li>
--   <li><a>rName</a></li>
--   <li><a>rManifest</a></li>
--   <li><a>rFinalProperties</a></li>
--   <li><a>rId</a></li>
--   <li><a>rType</a></li>
--   <li><a>rUpdate</a></li>
--   <li><a>rProperties</a></li>
--   </ul>
resource :: Resource

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the resource was created or
--   acquired, in RFC3339 text format .</li>
--   </ul>
rInsertTime :: Lens' Resource (Maybe Text)

-- | The Access Control Policy set on this resource.
rAccessControl :: Lens' Resource (Maybe ResourceAccessControl)

-- | <ul>
--   <li><i>Output Only</i> The URL of the actual resource.</li>
--   </ul>
rURL :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If warning messages are generated during
--   processing of this resource, this field will be populated.</li>
--   </ul>
rWarnings :: Lens' Resource [ResourceWarningsItem]

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the resource was updated, in
--   RFC3339 text format .</li>
--   </ul>
rUpdateTime :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The name of the resource as it appears in the
--   YAML config.</li>
--   </ul>
rName :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the current
--   configuration of this resource.</li>
--   </ul>
rManifest :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The evaluated properties of the resource with
--   references expanded. Returned as serialized YAML.</li>
--   </ul>
rFinalProperties :: Lens' Resource (Maybe Text)

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

-- | <ul>
--   <li><i>Output Only</i> The type of the resource, for example
--   compute.v1.instance, or cloudfunctions.v1beta1.function.</li>
--   </ul>
rType :: Lens' Resource (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If Deployment Manager is currently updating or
--   previewing an update to this resource, the updated configuration
--   appears here.</li>
--   </ul>
rUpdate :: Lens' Resource (Maybe ResourceUpdate)

-- | <ul>
--   <li><i>Output Only</i> The current properties of the resource before
--   any references have been filled in. Returned as serialized YAML.</li>
--   </ul>
rProperties :: Lens' Resource (Maybe Text)
data DeploymentUpdateLabelEntry

-- | Creates a value of <a>DeploymentUpdateLabelEntry</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>duleValue</a></li>
--   <li><a>duleKey</a></li>
--   </ul>
deploymentUpdateLabelEntry :: DeploymentUpdateLabelEntry
duleValue :: Lens' DeploymentUpdateLabelEntry (Maybe Text)
duleKey :: Lens' DeploymentUpdateLabelEntry (Maybe Text)
data ResourceUpdateErrorErrorsItem

-- | Creates a value of <a>ResourceUpdateErrorErrorsItem</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>rueeiLocation</a></li>
--   <li><a>rueeiCode</a></li>
--   <li><a>rueeiMessage</a></li>
--   </ul>
resourceUpdateErrorErrorsItem :: ResourceUpdateErrorErrorsItem

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

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

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

-- | A response containing a partial list of manifests and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>manifestsListResponse</a> smart constructor.
data ManifestsListResponse

-- | Creates a value of <a>ManifestsListResponse</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>mlrNextPageToken</a></li>
--   <li><a>mlrManifests</a></li>
--   </ul>
manifestsListResponse :: ManifestsListResponse

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

-- | <ul>
--   <li><i>Output Only</i> Manifests contained in this list response.</li>
--   </ul>
mlrManifests :: Lens' ManifestsListResponse [Manifest]

-- | <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]

-- | Defines an Identity and Access Management (IAM) policy. It is used to
--   specify access control policies for Cloud Platform resources. A
--   `Policy` consists of a list of `bindings`. A `Binding` binds a list of
--   `members` to a `role`, where the members can be user accounts, Google
--   groups, Google domains, and service accounts. A `role` is a named list
--   of permissions defined by IAM. **Example** { "bindings": [ { "role":
--   "roles/owner", "members": [ "user:mike'example.com",
--   "group:admins'example.com", "domain:google.com",
--   "serviceAccount:my-other-app'appspot.gserviceaccount.com", ] }, {
--   "role": "roles/viewer", "members": ["user:sean'example.com"] } ] } For
--   a description of IAM and its features, see the <a>IAM developer's
--   guide</a>.
--   
--   <i>See:</i> <a>policy</a> smart constructor.
data Policy

-- | Creates a value of <a>Policy</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>pAuditConfigs</a></li>
--   <li><a>pEtag</a></li>
--   <li><a>pRules</a></li>
--   <li><a>pVersion</a></li>
--   <li><a>pBindings</a></li>
--   <li><a>pIAMOwned</a></li>
--   </ul>
policy :: Policy

-- | Specifies audit logging configs for "data access". "data access":
--   generally refers to data reads/writes and admin reads. "admin
--   activity": generally refers to admin writes. Note: `AuditConfig`
--   doesn't apply to "admin activity", which always enables audit logging.
pAuditConfigs :: Lens' Policy [AuditConfig]

-- | `etag` is used for optimistic concurrency control as a way to help
--   prevent simultaneous updates of a policy from overwriting each other.
--   It is strongly suggested that systems make use of the `etag` in the
--   read-modify-write cycle to perform policy updates in order to avoid
--   race conditions: An `etag` is returned in the response to
--   `getIamPolicy`, and systems are expected to put that etag in the
--   request to `setIamPolicy` to ensure that their change will be applied
--   to the same version of the policy. If no `etag` is provided in the
--   call to `setIamPolicy`, then the existing policy is overwritten
--   blindly.
pEtag :: Lens' Policy (Maybe ByteString)

-- | If more than one rule is specified, the rules are applied in the
--   following manner: - All matching LOG rules are always applied. - If
--   any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
--   will be applied if one or more matching rule requires logging. -
--   Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
--   granted. Logging will be applied if one or more matching rule requires
--   logging. - Otherwise, if no rule applies, permission is denied.
pRules :: Lens' Policy [Rule]

-- | Version of the `Policy`. The default version is 0.
pVersion :: Lens' Policy (Maybe Int32)

-- | Associates a list of `members` to a `role`. Multiple `bindings` must
--   not be specified for the same `role`. `bindings` with no members will
--   result in an error.
pBindings :: Lens' Policy [Binding]
pIAMOwned :: Lens' Policy (Maybe Bool)

-- | A resource type supported by Deployment Manager.
--   
--   <i>See:</i> <a>type'</a> smart constructor.
data Type

-- | Creates a value of <a>Type</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>tInsertTime</a></li>
--   <li><a>tOperation</a></li>
--   <li><a>tSelfLink</a></li>
--   <li><a>tName</a></li>
--   <li><a>tId</a></li>
--   </ul>
type' :: Type

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the type was created, in RFC3339
--   text format.</li>
--   </ul>
tInsertTime :: Lens' Type (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The Operation that most recently ran, or is
--   currently running, on this type.</li>
--   </ul>
tOperation :: Lens' Type (Maybe Operation)

-- | <ul>
--   <li><i>Output Only</i> Self link for the type.</li>
--   </ul>
tSelfLink :: Lens' Type (Maybe Text)

-- | Name of the type.
tName :: Lens' Type (Maybe Text)

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

-- | <i>See:</i> <a>importFile</a> smart constructor.
data ImportFile

-- | Creates a value of <a>ImportFile</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>ifContent</a></li>
--   <li><a>ifName</a></li>
--   </ul>
importFile :: ImportFile

-- | The contents of the file.
ifContent :: Lens' ImportFile (Maybe Text)

-- | The name of the file.
ifName :: Lens' ImportFile (Maybe Text)
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)

-- | <i>See:</i> <a>deploymentsStopRequest</a> smart constructor.
data DeploymentsStopRequest

-- | Creates a value of <a>DeploymentsStopRequest</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>dsrFingerprint</a></li>
--   </ul>
deploymentsStopRequest :: DeploymentsStopRequest

-- | Specifies a fingerprint for stop() requests. A fingerprint is a
--   randomly generated value that must be provided in stop() requests to
--   perform optimistic locking. This ensures optimistic concurrency so
--   that the deployment does not have conflicting requests (e.g. if
--   someone attempts to make a new update request while another user
--   attempts to stop an ongoing update request, this would prevent a
--   collision). The fingerprint is initially generated by Deployment
--   Manager and changes after every request to modify a deployment. To get
--   the latest fingerprint value, perform a get() request on the
--   deployment.
dsrFingerprint :: Lens' DeploymentsStopRequest (Maybe ByteString)
data ResourceWarningsItemDataItem

-- | Creates a value of <a>ResourceWarningsItemDataItem</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>rwidiValue</a></li>
--   <li><a>rwidiKey</a></li>
--   </ul>
resourceWarningsItemDataItem :: ResourceWarningsItemDataItem

-- | <ul>
--   <li><i>Output Only</i> A warning data value corresponding to the
--   key.</li>
--   </ul>
rwidiValue :: Lens' ResourceWarningsItemDataItem (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>
rwidiKey :: Lens' ResourceWarningsItemDataItem (Maybe Text)

-- | Provides the configuration for a sub-type of logging.
--   
--   <i>See:</i> <a>auditLogConfig</a> smart constructor.
data AuditLogConfig

-- | Creates a value of <a>AuditLogConfig</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>alcLogType</a></li>
--   <li><a>alcExemptedMembers</a></li>
--   </ul>
auditLogConfig :: AuditLogConfig

-- | The log type that this config enables.
alcLogType :: Lens' AuditLogConfig (Maybe Text)

-- | Specifies the identities that are exempted from this type of logging
--   Follows the same format of Binding.members.
alcExemptedMembers :: Lens' AuditLogConfig [Text]

-- | <ul>
--   <li><i>Output Only</i> If errors are generated during update of the
--   resource, this field will be populated.</li>
--   </ul>
--   
--   <i>See:</i> <a>resourceUpdateError</a> smart constructor.
data ResourceUpdateError

-- | Creates a value of <a>ResourceUpdateError</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>rueErrors</a></li>
--   </ul>
resourceUpdateError :: ResourceUpdateError

-- | <ul>
--   <li><i>Output Only</i> The array of errors encountered while
--   processing this operation.</li>
--   </ul>
rueErrors :: Lens' ResourceUpdateError [ResourceUpdateErrorErrorsItem]

-- | A condition to be met.
--   
--   <i>See:</i> <a>condition</a> smart constructor.
data Condition

-- | Creates a value of <a>Condition</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>cOp</a></li>
--   <li><a>cIAM</a></li>
--   <li><a>cValues</a></li>
--   <li><a>cValue</a></li>
--   <li><a>cSys</a></li>
--   <li><a>cSvc</a></li>
--   </ul>
condition :: Condition

-- | An operator to apply the subject with.
cOp :: Lens' Condition (Maybe Text)

-- | Trusted attributes supplied by the IAM system.
cIAM :: Lens' Condition (Maybe Text)

-- | The objects of the condition. This is mutually exclusive with 'value'.
cValues :: Lens' Condition [Text]

-- | DEPRECATED. Use 'values' instead.
cValue :: Lens' Condition (Maybe Text)

-- | Trusted attributes supplied by any service that owns resources and
--   uses the IAM system for access control.
cSys :: Lens' Condition (Maybe Text)

-- | Trusted attributes discharged by the service.
cSvc :: Lens' Condition (Maybe Text)

-- | A response containing a partial list of deployments and a page token
--   used to build the next request if the request has been truncated.
--   
--   <i>See:</i> <a>deploymentsListResponse</a> smart constructor.
data DeploymentsListResponse

-- | Creates a value of <a>DeploymentsListResponse</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>dlrNextPageToken</a></li>
--   <li><a>dlrDeployments</a></li>
--   </ul>
deploymentsListResponse :: DeploymentsListResponse

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

-- | <ul>
--   <li><i>Output Only</i> The deployments contained in this
--   response.</li>
--   </ul>
dlrDeployments :: Lens' DeploymentsListResponse [Deployment]
data ResourceWarningsItem

-- | Creates a value of <a>ResourceWarningsItem</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>rwiData</a></li>
--   <li><a>rwiCode</a></li>
--   <li><a>rwiMessage</a></li>
--   </ul>
resourceWarningsItem :: ResourceWarningsItem

-- | <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>
rwiData :: Lens' ResourceWarningsItem [ResourceWarningsItemDataItem]

-- | <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>
rwiCode :: Lens' ResourceWarningsItem (Maybe Text)

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

-- | Specifies what kind of log the caller must write
--   
--   <i>See:</i> <a>logConfig</a> smart constructor.
data LogConfig

-- | Creates a value of <a>LogConfig</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>lcCounter</a></li>
--   </ul>
logConfig :: LogConfig

-- | Counter options.
lcCounter :: Lens' LogConfig (Maybe LogConfigCounterOptions)

-- | The access controls set on the resource.
--   
--   <i>See:</i> <a>resourceAccessControl</a> smart constructor.
data ResourceAccessControl

-- | Creates a value of <a>ResourceAccessControl</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>racGcpIAMPolicy</a></li>
--   </ul>
resourceAccessControl :: ResourceAccessControl

-- | The GCP IAM Policy to set on the resource.
racGcpIAMPolicy :: Lens' ResourceAccessControl (Maybe Text)

-- | <i>See:</i> <a>targetConfiguration</a> smart constructor.
data TargetConfiguration

-- | Creates a value of <a>TargetConfiguration</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>tcConfig</a></li>
--   <li><a>tcImports</a></li>
--   </ul>
targetConfiguration :: TargetConfiguration

-- | The configuration to use for this deployment.
tcConfig :: Lens' TargetConfiguration (Maybe ConfigFile)

-- | Specifies any files to import for this configuration. This can be used
--   to import templates or other files. For example, you might import a
--   text file in order to use the file in a template.
tcImports :: Lens' TargetConfiguration [ImportFile]
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 Text)

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

-- | Associates `members` with a `role`.
--   
--   <i>See:</i> <a>binding</a> smart constructor.
data Binding

-- | Creates a value of <a>Binding</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>bMembers</a></li>
--   <li><a>bRole</a></li>
--   </ul>
binding :: Binding

-- | Specifies the identities requesting access for a Cloud Platform
--   resource. `members` can have the following values: * `allUsers`: A
--   special identifier that represents anyone who is on the internet; with
--   or without a Google account. * `allAuthenticatedUsers`: A special
--   identifier that represents anyone who is authenticated with a Google
--   account or a service account. * `user:{emailid}`: An email address
--   that represents a specific Google account. For example,
--   `alice'gmail.com` or `joe'example.com`. * `serviceAccount:{emailid}`:
--   An email address that represents a service account. For example,
--   `my-other-app'appspot.gserviceaccount.com`. * `group:{emailid}`: An
--   email address that represents a Google group. For example,
--   `admins'example.com`. * `domain:{domain}`: A Google Apps domain name
--   that represents all the users of that domain. For example,
--   `google.com` or `example.com`.
bMembers :: Lens' Binding [Text]

-- | Role that is assigned to `members`. For example, `roles/viewer`,
--   `roles/editor`, or `roles/owner`.
bRole :: Lens' Binding (Maybe Text)

-- | <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</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>dInsertTime</a></li>
--   <li><a>dOperation</a></li>
--   <li><a>dFingerprint</a></li>
--   <li><a>dSelfLink</a></li>
--   <li><a>dName</a></li>
--   <li><a>dManifest</a></li>
--   <li><a>dId</a></li>
--   <li><a>dLabels</a></li>
--   <li><a>dDescription</a></li>
--   <li><a>dUpdate</a></li>
--   <li><a>dTarget</a></li>
--   </ul>
deployment :: Deployment

-- | <ul>
--   <li><i>Output Only</i> Timestamp when the deployment was created, in
--   RFC3339 text format .</li>
--   </ul>
dInsertTime :: Lens' Deployment (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> The Operation that most recently ran, or is
--   currently running, on this deployment.</li>
--   </ul>
dOperation :: Lens' Deployment (Maybe Operation)

-- | Provides a fingerprint to use in requests to modify a deployment, such
--   as update(), stop(), and cancelPreview() requests. A fingerprint is a
--   randomly generated value that must be provided with update(), stop(),
--   and cancelPreview() requests to perform optimistic locking. This
--   ensures optimistic concurrency so that only one request happens at a
--   time. The fingerprint is initially generated by Deployment Manager and
--   changes after every request to modify data. To get the latest
--   fingerprint value, perform a get() request to a deployment.
dFingerprint :: Lens' Deployment (Maybe ByteString)

-- | <ul>
--   <li><i>Output Only</i> Self link for the deployment.</li>
--   </ul>
dSelfLink :: Lens' Deployment (Maybe Text)

-- | Name of the resource; provided by the client when the resource is
--   created. The name must be 1-63 characters long, and comply with
--   RFC1035. Specifically, the name must be 1-63 characters long and match
--   the regular expression <a>a-z</a>? which means the first character
--   must be a lowercase letter, and all following characters must be a
--   dash, lowercase letter, or digit, except the last character, which
--   cannot be a dash.
dName :: Lens' Deployment (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> URL of the manifest representing the last
--   manifest that was successfully deployed.</li>
--   </ul>
dManifest :: Lens' Deployment (Maybe Text)

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

-- | Map of labels; provided by the client when the resource is created or
--   updated. Specifically: Label keys must be between 1 and 63 characters
--   long and must conform to the following regular expression: <a>a-z</a>?
--   Label values must be between 0 and 63 characters long and must conform
--   to the regular expression ([a-z]([-a-z0-9]*[a-z0-9])?)?
dLabels :: Lens' Deployment [DeploymentLabelEntry]

-- | An optional user-provided description of the deployment.
dDescription :: Lens' Deployment (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> If Deployment Manager is currently updating or
--   previewing an update to this deployment, the updated configuration
--   appears here.</li>
--   </ul>
dUpdate :: Lens' Deployment (Maybe DeploymentUpdate)

-- | <ul>
--   <li><i>Input Only</i> The parameters that define your deployment,
--   including the deployment configuration and relevant templates.</li>
--   </ul>
dTarget :: Lens' Deployment (Maybe TargetConfiguration)
