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


-- | Google Container Engine SDK.
--   
--   Builds and manages clusters that run container-based applications,
--   powered by open source Kubernetes technology.
--   
--   <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>v1</tt> of the API.
@package gogol-container
@version 0.3.0


module Network.Google.Container.Types

-- | Default request referring to version <tt>v1</tt> of the Google
--   Container Engine API. This contains the host and root path used as a
--   starting point for constructing service requests.
containerService :: ServiceConfig

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

-- | Configuration options for the horizontal pod autoscaling feature,
--   which increases or decreases the number of replica pods a replication
--   controller has based on the resource usage of the existing pods.
--   
--   <i>See:</i> <a>horizontalPodAutoscaling</a> smart constructor.
data HorizontalPodAutoscaling

-- | Creates a value of <a>HorizontalPodAutoscaling</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>hpaDisabled</a></li>
--   </ul>
horizontalPodAutoscaling :: HorizontalPodAutoscaling

-- | Whether the Horizontal Pod Autoscaling feature is enabled in the
--   cluster. When enabled, it ensures that a Heapster pod is running in
--   the cluster, which is also used by the Cloud Monitoring service.
hpaDisabled :: Lens' HorizontalPodAutoscaling (Maybe Bool)

-- | ListOperationsResponse is the result of ListOperationsRequest.
--   
--   <i>See:</i> <a>listOperationsResponse</a> smart constructor.
data ListOperationsResponse

-- | Creates a value of <a>ListOperationsResponse</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>lorOperations</a></li>
--   <li><a>lorMissingZones</a></li>
--   </ul>
listOperationsResponse :: ListOperationsResponse

-- | A list of operations in the project in the specified zone.
lorOperations :: Lens' ListOperationsResponse [Operation]

-- | If any zones are listed here, the list of operations returned may be
--   missing the operations from those zones.
lorMissingZones :: Lens' ListOperationsResponse [Text]

-- | CreateClusterRequest creates a cluster.
--   
--   <i>See:</i> <a>createClusterRequest</a> smart constructor.
data CreateClusterRequest

-- | Creates a value of <a>CreateClusterRequest</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>ccrCluster</a></li>
--   </ul>
createClusterRequest :: CreateClusterRequest

-- | A <a>cluster resource</a>
ccrCluster :: Lens' CreateClusterRequest (Maybe Cluster)

-- | A Google Container Engine cluster.
--   
--   <i>See:</i> <a>cluster</a> smart constructor.
data Cluster

-- | Creates a value of <a>Cluster</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>cStatus</a></li>
--   <li><a>cNodePools</a></li>
--   <li><a>cEnableKubernetesAlpha</a></li>
--   <li><a>cNodeConfig</a></li>
--   <li><a>cNodeIPv4CIdRSize</a></li>
--   <li><a>cClusterIPv4CIdR</a></li>
--   <li><a>cInitialNodeCount</a></li>
--   <li><a>cCurrentNodeVersion</a></li>
--   <li><a>cNetwork</a></li>
--   <li><a>cInitialClusterVersion</a></li>
--   <li><a>cZone</a></li>
--   <li><a>cAddonsConfig</a></li>
--   <li><a>cServicesIPv4CIdR</a></li>
--   <li><a>cMasterAuth</a></li>
--   <li><a>cSelfLink</a></li>
--   <li><a>cName</a></li>
--   <li><a>cCurrentMasterVersion</a></li>
--   <li><a>cStatusMessage</a></li>
--   <li><a>cSubnetwork</a></li>
--   <li><a>cCurrentNodeCount</a></li>
--   <li><a>cEndpoint</a></li>
--   <li><a>cExpireTime</a></li>
--   <li><a>cLocations</a></li>
--   <li><a>cLoggingService</a></li>
--   <li><a>cDescription</a></li>
--   <li><a>cInstanceGroupURLs</a></li>
--   <li><a>cMonitoringService</a></li>
--   <li><a>cCreateTime</a></li>
--   </ul>
cluster :: Cluster

-- | <ul>
--   <li><i>Output only</i> The current status of this cluster.</li>
--   </ul>
cStatus :: Lens' Cluster (Maybe Text)

-- | The node pools associated with this cluster. This field should not be
--   set if "node_config" or "initial_node_count" are specified.
cNodePools :: Lens' Cluster [NodePool]

-- | Kubernetes alpha features are enabled on this cluster. This includes
--   alpha API groups (e.g. v1alpha1) and features that may not be
--   production ready in the kubernetes version of the master and nodes.
--   The cluster has no SLA for uptime and master/node upgrades are
--   disabled. Alpha enabled clusters are automatically deleted thirty days
--   after creation.
cEnableKubernetesAlpha :: Lens' Cluster (Maybe Bool)

-- | Parameters used in creating the cluster's nodes. See `nodeConfig` for
--   the description of its properties. For requests, this field should
--   only be used in lieu of a "node_pool" object, since this configuration
--   (along with the "initial_node_count") will be used to create a
--   "NodePool" object with an auto-generated name. Do not use this and a
--   node_pool at the same time. For responses, this field will be
--   populated with the node configuration of the first node pool. If
--   unspecified, the defaults are used.
cNodeConfig :: Lens' Cluster (Maybe NodeConfig)

-- | <ul>
--   <li><i>Output only</i> The size of the address space on each node for
--   hosting containers. This is provisioned from within the
--   `container_ipv4_cidr` range.</li>
--   </ul>
cNodeIPv4CIdRSize :: Lens' Cluster (Maybe Int32)

-- | The IP address range of the container pods in this cluster, in
--   <a>CIDR</a> notation (e.g. `10.96.0.0/14`). Leave blank to have one
--   automatically chosen or specify a `/14` block in `10.0.0.0/8`.
cClusterIPv4CIdR :: Lens' Cluster (Maybe Text)

-- | The number of nodes to create in this cluster. You must ensure that
--   your Compute Engine resource quota is sufficient for this number of
--   instances. You must also have available firewall and routes quota. For
--   requests, this field should only be used in lieu of a "node_pool"
--   object, since this configuration (along with the "node_config") will
--   be used to create a "NodePool" object with an auto-generated name. Do
--   not use this and a node_pool at the same time.
cInitialNodeCount :: Lens' Cluster (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The current version of the node software
--   components. If they are currently at multiple versions because they're
--   in the process of being upgraded, this reflects the minimum version of
--   all nodes.</li>
--   </ul>
cCurrentNodeVersion :: Lens' Cluster (Maybe Text)

-- | The name of the Google Compute Engine <a>network</a> to which the
--   cluster is connected. If left unspecified, the `default` network will
--   be used.
cNetwork :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The software version of the master endpoint and
--   kubelets used in the cluster when it was first created. The version
--   can be upgraded over time.</li>
--   </ul>
cInitialClusterVersion :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The name of the Google Compute Engine</li>
--   <li><i>zone</i> (/compute/docs/zones#available) in which the cluster
--   resides.</li>
--   </ul>
cZone :: Lens' Cluster (Maybe Text)

-- | Configurations for the various addons available to run in the cluster.
cAddonsConfig :: Lens' Cluster (Maybe AddonsConfig)

-- | <ul>
--   <li><i>Output only</i> The IP address range of the Kubernetes services
--   in this cluster, in</li>
--   <li><i>CIDR</i>
--   (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation
--   (e.g. `1.2.3.4/29`). Service addresses are typically put in the last
--   `/16` from the container CIDR.</li>
--   </ul>
cServicesIPv4CIdR :: Lens' Cluster (Maybe Text)

-- | The authentication information for accessing the master endpoint.
cMasterAuth :: Lens' Cluster (Maybe MasterAuth)

-- | <ul>
--   <li><i>Output only</i> Server-defined URL for the resource.</li>
--   </ul>
cSelfLink :: Lens' Cluster (Maybe Text)

-- | The name of this cluster. The name must be unique within this project
--   and zone, and can be up to 40 characters with the following
--   restrictions: * Lowercase letters, numbers, and hyphens only. * Must
--   start with a letter. * Must end with a number or a letter.
cName :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The current software version of the master
--   endpoint.</li>
--   </ul>
cCurrentMasterVersion :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Additional information about the current status
--   of this cluster, if available.</li>
--   </ul>
cStatusMessage :: Lens' Cluster (Maybe Text)

-- | The name of the Google Compute Engine <a>subnetwork</a> to which the
--   cluster is connected.
cSubnetwork :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The number of nodes currently in the
--   cluster.</li>
--   </ul>
cCurrentNodeCount :: Lens' Cluster (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The IP address of this cluster's master
--   endpoint. The endpoint can be accessed from the internet at
--   `https://username:password'endpoint/`. See the `masterAuth` property
--   of this resource for username and password information.</li>
--   </ul>
cEndpoint :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The time the cluster will be automatically
--   deleted in</li>
--   <li><i>RFC3339</i> (https://www.ietf.org/rfc/rfc3339.txt) text
--   format.</li>
--   </ul>
cExpireTime :: Lens' Cluster (Maybe Text)

-- | The list of Google Compute Engine <a>locations</a> in which the
--   cluster's nodes should be located.
cLocations :: Lens' Cluster [Text]

-- | The logging service the cluster should use to write logs. Currently
--   available options: * `logging.googleapis.com` - the Google Cloud
--   Logging service. * `none` - no logs will be exported from the cluster.
--   * if left as an empty string,`logging.googleapis.com` will be used.
cLoggingService :: Lens' Cluster (Maybe Text)

-- | An optional description of this cluster.
cDescription :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The resource URLs of <a>instance groups</a>
--   associated with this cluster.</li>
--   </ul>
cInstanceGroupURLs :: Lens' Cluster [Text]

-- | The monitoring service the cluster should use to write metrics.
--   Currently available options: * `monitoring.googleapis.com` - the
--   Google Cloud Monitoring service. * `none` - no metrics will be
--   exported from the cluster. * if left as an empty string,
--   `monitoring.googleapis.com` will be used.
cMonitoringService :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The time the cluster was created, in</li>
--   <li><i>RFC3339</i> (https://www.ietf.org/rfc/rfc3339.txt) text
--   format.</li>
--   </ul>
cCreateTime :: Lens' Cluster (Maybe Text)

-- | CancelOperationRequest cancels a single operation.
--   
--   <i>See:</i> <a>cancelOperationRequest</a> smart constructor.
data CancelOperationRequest

-- | Creates a value of <a>CancelOperationRequest</a> with the minimum
--   fields required to make a request.
cancelOperationRequest :: CancelOperationRequest

-- | UpdateClusterRequest updates the settings of a cluster.
--   
--   <i>See:</i> <a>updateClusterRequest</a> smart constructor.
data UpdateClusterRequest

-- | Creates a value of <a>UpdateClusterRequest</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>ucrUpdate</a></li>
--   </ul>
updateClusterRequest :: UpdateClusterRequest

-- | A description of the update.
ucrUpdate :: Lens' UpdateClusterRequest (Maybe ClusterUpdate)

-- | Parameters that describe the nodes in a cluster.
--   
--   <i>See:</i> <a>nodeConfig</a> smart constructor.
data NodeConfig

-- | Creates a value of <a>NodeConfig</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>ncLocalSsdCount</a></li>
--   <li><a>ncDiskSizeGb</a></li>
--   <li><a>ncOAuthScopes</a></li>
--   <li><a>ncServiceAccount</a></li>
--   <li><a>ncImageType</a></li>
--   <li><a>ncMachineType</a></li>
--   <li><a>ncMetadata</a></li>
--   <li><a>ncLabels</a></li>
--   <li><a>ncTags</a></li>
--   <li><a>ncPreemptible</a></li>
--   </ul>
nodeConfig :: NodeConfig

-- | The number of local SSD disks to be attached to the node. The limit
--   for this value is dependant upon the maximum number of disks available
--   on a machine per zone. See:
--   https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
--   for more information.
ncLocalSsdCount :: Lens' NodeConfig (Maybe Int32)

-- | Size of the disk attached to each node, specified in GB. The smallest
--   allowed disk size is 10GB. If unspecified, the default disk size is
--   100GB.
ncDiskSizeGb :: Lens' NodeConfig (Maybe Int32)

-- | The set of Google API scopes to be made available on all of the node
--   VMs under the "default" service account. The following scopes are
--   recommended, but not required, and by default are not included: *
--   `https://www.googleapis.com/auth/compute` is required for mounting
--   persistent storage on your nodes. *
--   `https://www.googleapis.com/auth/devstorage.read_only` is required for
--   communicating with **gcr.io** (the <a>Google Container Registry</a>).
--   If unspecified, no scopes are added, unless Cloud Logging or Cloud
--   Monitoring are enabled, in which case their required scopes will be
--   added.
ncOAuthScopes :: Lens' NodeConfig [Text]

-- | The Google Cloud Platform Service Account to be used by the node VMs.
--   If no Service Account is specified, the "default" service account is
--   used.
ncServiceAccount :: Lens' NodeConfig (Maybe Text)

-- | The image type to use for this node. Note that for a given image type,
--   the latest version of it will be used.
ncImageType :: Lens' NodeConfig (Maybe Text)

-- | The name of a Google Compute Engine <a>machine type</a> (e.g.
--   `n1-standard-1`). If unspecified, the default machine type is
--   `n1-standard-1`.
ncMachineType :: Lens' NodeConfig (Maybe Text)

-- | The metadata key/value pairs assigned to instances in the cluster.
--   Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128
--   bytes in length. These are reflected as part of a URL in the metadata
--   server. Additionally, to avoid ambiguity, keys must not conflict with
--   any other metadata keys for the project or be one of the four reserved
--   keys: "instance-template", "kube-env", "startup-script", and
--   "user-data" Values are free-form strings, and only have meaning as
--   interpreted by the image running in the instance. The only restriction
--   placed on them is that each value's size must be less than or equal to
--   32 KB. The total size of all keys and values must be less than 512 KB.
ncMetadata :: Lens' NodeConfig (Maybe NodeConfigMetadata)

-- | The map of Kubernetes labels (key/value pairs) to be applied to each
--   node. These will added in addition to any default label(s) that
--   Kubernetes may apply to the node. In case of conflict in label keys,
--   the applied set may differ depending on the Kubernetes version -- it's
--   best to assume the behavior is undefined and conflicts should be
--   avoided. For more information, including usage and the valid values,
--   see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
ncLabels :: Lens' NodeConfig (Maybe NodeConfigLabels)

-- | The list of instance tags applied to all nodes. Tags are used to
--   identify valid sources or targets for network firewalls and are
--   specified by the client during cluster or node pool creation. Each tag
--   within the list must comply with RFC1035.
ncTags :: Lens' NodeConfig [Text]

-- | Whether the nodes are created as preemptible VM instances. See:
--   https://cloud.google.com/compute/docs/instances/preemptible for more
--   inforamtion about preemptible VM instances.
ncPreemptible :: Lens' NodeConfig (Maybe Bool)

-- | Configuration options for the HTTP (L7) load balancing controller
--   addon, which makes it easy to set up HTTP load balancers for services
--   in a cluster.
--   
--   <i>See:</i> <a>hTTPLoadBalancing</a> smart constructor.
data HTTPLoadBalancing

-- | Creates a value of <a>HTTPLoadBalancing</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>httplbDisabled</a></li>
--   </ul>
hTTPLoadBalancing :: HTTPLoadBalancing

-- | Whether the HTTP Load Balancing controller is enabled in the cluster.
--   When enabled, it runs a small pod in the cluster that manages the load
--   balancers.
httplbDisabled :: Lens' HTTPLoadBalancing (Maybe Bool)

-- | This operation resource represents operations that may have happened
--   or are happening on the cluster. All fields are output only.
--   
--   <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>oStatus</a></li>
--   <li><a>oZone</a></li>
--   <li><a>oSelfLink</a></li>
--   <li><a>oName</a></li>
--   <li><a>oStatusMessage</a></li>
--   <li><a>oOperationType</a></li>
--   <li><a>oTargetLink</a></li>
--   <li><a>oDetail</a></li>
--   </ul>
operation :: Operation

-- | The current status of the operation.
oStatus :: Lens' Operation (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the
--   operation is taking place.
oZone :: Lens' Operation (Maybe Text)

-- | Server-defined URL for the resource.
oSelfLink :: Lens' Operation (Maybe Text)

-- | The server-assigned ID for the operation.
oName :: Lens' Operation (Maybe Text)

-- | If an error has occurred, a textual description of the error.
oStatusMessage :: Lens' Operation (Maybe Text)

-- | The operation type.
oOperationType :: Lens' Operation (Maybe Text)

-- | Server-defined URL for the target of the operation.
oTargetLink :: Lens' Operation (Maybe Text)

-- | Detailed operation progress, if available.
oDetail :: Lens' Operation (Maybe Text)

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for `Empty` is
--   empty JSON object `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | NodeManagement defines the set of node management services turned on
--   for the node pool.
--   
--   <i>See:</i> <a>nodeManagement</a> smart constructor.
data NodeManagement

-- | Creates a value of <a>NodeManagement</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>nmAutoUpgrade</a></li>
--   <li><a>nmUpgradeOptions</a></li>
--   </ul>
nodeManagement :: NodeManagement

-- | Whether the nodes will be automatically upgraded.
nmAutoUpgrade :: Lens' NodeManagement (Maybe Bool)

-- | Specifies the Auto Upgrade knobs for the node pool.
nmUpgradeOptions :: Lens' NodeManagement (Maybe AutoUpgradeOptions)

-- | NodePoolAutoscaling contains information required by cluster
--   autoscaler to adjust the size of the node pool to the current cluster
--   usage.
--   
--   <i>See:</i> <a>nodePoolAutoscaling</a> smart constructor.
data NodePoolAutoscaling

-- | Creates a value of <a>NodePoolAutoscaling</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>npaMaxNodeCount</a></li>
--   <li><a>npaEnabled</a></li>
--   <li><a>npaMinNodeCount</a></li>
--   </ul>
nodePoolAutoscaling :: NodePoolAutoscaling

-- | Maximum number of nodes in the NodePool. Must be &gt;= min_node_count.
--   There has to enough quota to scale up the cluster.
npaMaxNodeCount :: Lens' NodePoolAutoscaling (Maybe Int32)

-- | Is autoscaling enabled for this node pool.
npaEnabled :: Lens' NodePoolAutoscaling (Maybe Bool)

-- | Minimum number of nodes in the NodePool. Must be &gt;= 1 and &lt;=
--   max_node_count.
npaMinNodeCount :: Lens' NodePoolAutoscaling (Maybe Int32)

-- | Configuration for the addons that can be automatically spun up in the
--   cluster, enabling additional functionality.
--   
--   <i>See:</i> <a>addonsConfig</a> smart constructor.
data AddonsConfig

-- | Creates a value of <a>AddonsConfig</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>acHorizontalPodAutoscaling</a></li>
--   <li><a>acHTTPLoadBalancing</a></li>
--   </ul>
addonsConfig :: AddonsConfig

-- | Configuration for the horizontal pod autoscaling feature, which
--   increases or decreases the number of replica pods a replication
--   controller has based on the resource usage of the existing pods.
acHorizontalPodAutoscaling :: Lens' AddonsConfig (Maybe HorizontalPodAutoscaling)

-- | Configuration for the HTTP (L7) load balancing controller addon, which
--   makes it easy to set up HTTP load balancers for services in a cluster.
acHTTPLoadBalancing :: Lens' AddonsConfig (Maybe HTTPLoadBalancing)

-- | NodePool contains the name and configuration for a cluster's node
--   pool. Node pools are a set of nodes (i.e. VM's), with a common
--   configuration and specification, under the control of the cluster
--   master. They may have a set of Kubernetes labels applied to them,
--   which may be used to reference them during pod scheduling. They may
--   also be resized up or down, to accommodate the workload.
--   
--   <i>See:</i> <a>nodePool</a> smart constructor.
data NodePool

-- | Creates a value of <a>NodePool</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>npStatus</a></li>
--   <li><a>npAutoscaling</a></li>
--   <li><a>npConfig</a></li>
--   <li><a>npInitialNodeCount</a></li>
--   <li><a>npManagement</a></li>
--   <li><a>npSelfLink</a></li>
--   <li><a>npName</a></li>
--   <li><a>npStatusMessage</a></li>
--   <li><a>npVersion</a></li>
--   <li><a>npInstanceGroupURLs</a></li>
--   </ul>
nodePool :: NodePool

-- | <ul>
--   <li><i>Output only</i> The status of the nodes in this pool
--   instance.</li>
--   </ul>
npStatus :: Lens' NodePool (Maybe Text)

-- | Autoscaler configuration for this NodePool. Autoscaler is enabled only
--   if a valid configuration is present.
npAutoscaling :: Lens' NodePool (Maybe NodePoolAutoscaling)

-- | The node configuration of the pool.
npConfig :: Lens' NodePool (Maybe NodeConfig)

-- | The initial node count for the pool. You must ensure that your Compute
--   Engine resource quota is sufficient for this number of instances. You
--   must also have available firewall and routes quota.
npInitialNodeCount :: Lens' NodePool (Maybe Int32)

-- | NodeManagement configuration for this NodePool.
npManagement :: Lens' NodePool (Maybe NodeManagement)

-- | <ul>
--   <li><i>Output only</i> Server-defined URL for the resource.</li>
--   </ul>
npSelfLink :: Lens' NodePool (Maybe Text)

-- | The name of the node pool.
npName :: Lens' NodePool (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Additional information about the current status
--   of this node pool instance, if available.</li>
--   </ul>
npStatusMessage :: Lens' NodePool (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The version of the Kubernetes of this
--   node.</li>
--   </ul>
npVersion :: Lens' NodePool (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The resource URLs of <a>instance groups</a>
--   associated with this node pool.</li>
--   </ul>
npInstanceGroupURLs :: Lens' NodePool [Text]

-- | SetNodePoolManagementRequest sets the node management properties of a
--   node pool.
--   
--   <i>See:</i> <a>setNodePoolManagementRequest</a> smart constructor.
data SetNodePoolManagementRequest

-- | Creates a value of <a>SetNodePoolManagementRequest</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>snpmrManagement</a></li>
--   </ul>
setNodePoolManagementRequest :: SetNodePoolManagementRequest

-- | NodeManagement configuration for the node pool.
snpmrManagement :: Lens' SetNodePoolManagementRequest (Maybe NodeManagement)

-- | The authentication information for accessing the master endpoint.
--   Authentication can be done using HTTP basic auth or using client
--   certificates.
--   
--   <i>See:</i> <a>masterAuth</a> smart constructor.
data MasterAuth

-- | Creates a value of <a>MasterAuth</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>maClientKey</a></li>
--   <li><a>maUsername</a></li>
--   <li><a>maClientCertificate</a></li>
--   <li><a>maPassword</a></li>
--   <li><a>maClusterCaCertificate</a></li>
--   </ul>
masterAuth :: MasterAuth

-- | <ul>
--   <li><i>Output only</i> Base64-encoded private key used by clients to
--   authenticate to the cluster endpoint.</li>
--   </ul>
maClientKey :: Lens' MasterAuth (Maybe Text)

-- | The username to use for HTTP basic authentication to the master
--   endpoint.
maUsername :: Lens' MasterAuth (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Base64-encoded public certificate used by
--   clients to authenticate to the cluster endpoint.</li>
--   </ul>
maClientCertificate :: Lens' MasterAuth (Maybe Text)

-- | The password to use for HTTP basic authentication to the master
--   endpoint. Because the master endpoint is open to the Internet, you
--   should create a strong password.
maPassword :: Lens' MasterAuth (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Base64-encoded public certificate that is the
--   root of trust for the cluster.</li>
--   </ul>
maClusterCaCertificate :: Lens' MasterAuth (Maybe Text)

-- | The metadata key/value pairs assigned to instances in the cluster.
--   Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128
--   bytes in length. These are reflected as part of a URL in the metadata
--   server. Additionally, to avoid ambiguity, keys must not conflict with
--   any other metadata keys for the project or be one of the four reserved
--   keys: "instance-template", "kube-env", "startup-script", and
--   "user-data" Values are free-form strings, and only have meaning as
--   interpreted by the image running in the instance. The only restriction
--   placed on them is that each value's size must be less than or equal to
--   32 KB. The total size of all keys and values must be less than 512 KB.
--   
--   <i>See:</i> <a>nodeConfigMetadata</a> smart constructor.
data NodeConfigMetadata

-- | Creates a value of <a>NodeConfigMetadata</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>ncmAddtional</a></li>
--   </ul>
nodeConfigMetadata :: HashMap Text Text -> NodeConfigMetadata
ncmAddtional :: Lens' NodeConfigMetadata (HashMap Text Text)

-- | The map of Kubernetes labels (key/value pairs) to be applied to each
--   node. These will added in addition to any default label(s) that
--   Kubernetes may apply to the node. In case of conflict in label keys,
--   the applied set may differ depending on the Kubernetes version -- it's
--   best to assume the behavior is undefined and conflicts should be
--   avoided. For more information, including usage and the valid values,
--   see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
--   
--   <i>See:</i> <a>nodeConfigLabels</a> smart constructor.
data NodeConfigLabels

-- | Creates a value of <a>NodeConfigLabels</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>nclAddtional</a></li>
--   </ul>
nodeConfigLabels :: HashMap Text Text -> NodeConfigLabels
nclAddtional :: Lens' NodeConfigLabels (HashMap Text Text)

-- | Container Engine service configuration.
--   
--   <i>See:</i> <a>serverConfig</a> smart constructor.
data ServerConfig

-- | Creates a value of <a>ServerConfig</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>scDefaultImageType</a></li>
--   <li><a>scValidNodeVersions</a></li>
--   <li><a>scValidImageTypes</a></li>
--   <li><a>scDefaultClusterVersion</a></li>
--   <li><a>scValidMasterVersions</a></li>
--   </ul>
serverConfig :: ServerConfig

-- | Default image type.
scDefaultImageType :: Lens' ServerConfig (Maybe Text)

-- | List of valid node upgrade target versions.
scValidNodeVersions :: Lens' ServerConfig [Text]

-- | List of valid image types.
scValidImageTypes :: Lens' ServerConfig [Text]

-- | Version of Kubernetes the service deploys by default.
scDefaultClusterVersion :: Lens' ServerConfig (Maybe Text)

-- | List of valid master versions.
scValidMasterVersions :: Lens' ServerConfig [Text]

-- | AutoUpgradeOptions defines the set of options for the user to control
--   how the Auto Upgrades will proceed.
--   
--   <i>See:</i> <a>autoUpgradeOptions</a> smart constructor.
data AutoUpgradeOptions

-- | Creates a value of <a>AutoUpgradeOptions</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>auoAutoUpgradeStartTime</a></li>
--   <li><a>auoDescription</a></li>
--   </ul>
autoUpgradeOptions :: AutoUpgradeOptions

-- | <ul>
--   <li><i>Output only</i> This field is set when upgrades are about to
--   commence with the approximate start time for the upgrades, in</li>
--   <li><i>RFC3339</i> (https://www.ietf.org/rfc/rfc3339.txt) text
--   format.</li>
--   </ul>
auoAutoUpgradeStartTime :: Lens' AutoUpgradeOptions (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> This field is set when upgrades are about to
--   commence with the description of the upgrade.</li>
--   </ul>
auoDescription :: Lens' AutoUpgradeOptions (Maybe Text)

-- | ListClustersResponse is the result of ListClustersRequest.
--   
--   <i>See:</i> <a>listClustersResponse</a> smart constructor.
data ListClustersResponse

-- | Creates a value of <a>ListClustersResponse</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>lcrClusters</a></li>
--   <li><a>lcrMissingZones</a></li>
--   </ul>
listClustersResponse :: ListClustersResponse

-- | A list of clusters in the project in the specified zone, or across all
--   ones.
lcrClusters :: Lens' ListClustersResponse [Cluster]

-- | If any zones are listed here, the list of clusters returned may be
--   missing those zones.
lcrMissingZones :: Lens' ListClustersResponse [Text]

-- | ClusterUpdate describes an update to the cluster. Exactly one update
--   can be applied to a cluster with each request, so at most one field
--   can be provided.
--   
--   <i>See:</i> <a>clusterUpdate</a> smart constructor.
data ClusterUpdate

-- | Creates a value of <a>ClusterUpdate</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>cuDesiredNodePoolAutoscaling</a></li>
--   <li><a>cuDesiredAddonsConfig</a></li>
--   <li><a>cuDesiredNodePoolId</a></li>
--   <li><a>cuDesiredImageType</a></li>
--   <li><a>cuDesiredNodeVersion</a></li>
--   <li><a>cuDesiredMasterVersion</a></li>
--   <li><a>cuDesiredLocations</a></li>
--   <li><a>cuDesiredMonitoringService</a></li>
--   </ul>
clusterUpdate :: ClusterUpdate

-- | Autoscaler configuration for the node pool specified in
--   desired_node_pool_id. If there is only one pool in the cluster and
--   desired_node_pool_id is not provided then the change applies to that
--   single node pool.
cuDesiredNodePoolAutoscaling :: Lens' ClusterUpdate (Maybe NodePoolAutoscaling)

-- | Configurations for the various addons available to run in the cluster.
cuDesiredAddonsConfig :: Lens' ClusterUpdate (Maybe AddonsConfig)

-- | The node pool to be upgraded. This field is mandatory if
--   "desired_node_version", "desired_image_family" or
--   "desired_node_pool_autoscaling" is specified and there is more than
--   one node pool on the cluster.
cuDesiredNodePoolId :: Lens' ClusterUpdate (Maybe Text)

-- | The desired image type for the node pool. NOTE: Set the
--   "desired_node_pool" field as well.
cuDesiredImageType :: Lens' ClusterUpdate (Maybe Text)

-- | The Kubernetes version to change the nodes to (typically an upgrade).
--   Use `-` to upgrade to the latest version supported by the server.
cuDesiredNodeVersion :: Lens' ClusterUpdate (Maybe Text)

-- | The Kubernetes version to change the master to. The only valid value
--   is the latest supported version. Use "-" to have the server
--   automatically select the latest version.
cuDesiredMasterVersion :: Lens' ClusterUpdate (Maybe Text)

-- | The desired list of Google Compute Engine <a>locations</a> in which
--   the cluster's nodes should be located. Changing the locations a
--   cluster is in will result in nodes being either created or removed
--   from the cluster, depending on whether locations are being added or
--   removed. This list must always include the cluster's primary zone.
cuDesiredLocations :: Lens' ClusterUpdate [Text]

-- | The monitoring service the cluster should use to write metrics.
--   Currently available options: * "monitoring.googleapis.com" - the
--   Google Cloud Monitoring service * "none" - no metrics will be exported
--   from the cluster
cuDesiredMonitoringService :: Lens' ClusterUpdate (Maybe Text)

-- | RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or
--   Failed NodePool upgrade. This will be an no-op if the last upgrade
--   successfully completed.
--   
--   <i>See:</i> <a>rollbackNodePoolUpgradeRequest</a> smart constructor.
data RollbackNodePoolUpgradeRequest

-- | Creates a value of <a>RollbackNodePoolUpgradeRequest</a> with the
--   minimum fields required to make a request.
rollbackNodePoolUpgradeRequest :: RollbackNodePoolUpgradeRequest

-- | ListNodePoolsResponse is the result of ListNodePoolsRequest.
--   
--   <i>See:</i> <a>listNodePoolsResponse</a> smart constructor.
data ListNodePoolsResponse

-- | Creates a value of <a>ListNodePoolsResponse</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>lnprNodePools</a></li>
--   </ul>
listNodePoolsResponse :: ListNodePoolsResponse

-- | A list of node pools for a cluster.
lnprNodePools :: Lens' ListNodePoolsResponse [NodePool]

-- | CreateNodePoolRequest creates a node pool for a cluster.
--   
--   <i>See:</i> <a>createNodePoolRequest</a> smart constructor.
data CreateNodePoolRequest

-- | Creates a value of <a>CreateNodePoolRequest</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>cnprNodePool</a></li>
--   </ul>
createNodePoolRequest :: CreateNodePoolRequest

-- | The node pool to create.
cnprNodePool :: Lens' CreateNodePoolRequest (Maybe NodePool)


-- | Creates a cluster, consisting of the specified number and type of
--   Google Compute Engine instances. By default, the cluster is created in
--   the project's <a>default network</a>. One firewall is added for the
--   cluster. After cluster creation, the cluster creates routes for each
--   node to allow the containers on that node to communicate with all
--   other instances in the cluster. Finally, an entry is added to the
--   project's global metadata indicating which CIDR range is being used by
--   the cluster.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.create</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.Create

-- | A resource alias for <tt>container.projects.zones.clusters.create</tt>
--   method which the <a>ProjectsZonesClustersCreate</a> request conforms
--   to.
type ProjectsZonesClustersCreateResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CreateClusterRequest :> Post '[JSON] Operation))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersCreate</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>pzccXgafv</a></li>
--   <li><a>pzccUploadProtocol</a></li>
--   <li><a>pzccPp</a></li>
--   <li><a>pzccAccessToken</a></li>
--   <li><a>pzccUploadType</a></li>
--   <li><a>pzccZone</a></li>
--   <li><a>pzccPayload</a></li>
--   <li><a>pzccBearerToken</a></li>
--   <li><a>pzccProjectId</a></li>
--   <li><a>pzccCallback</a></li>
--   </ul>
projectsZonesClustersCreate :: Text -> CreateClusterRequest -> Text -> ProjectsZonesClustersCreate

-- | Creates a cluster, consisting of the specified number and type of
--   Google Compute Engine instances. By default, the cluster is created in
--   the project's <a>default network</a>. One firewall is added for the
--   cluster. After cluster creation, the cluster creates routes for each
--   node to allow the containers on that node to communicate with all
--   other instances in the cluster. Finally, an entry is added to the
--   project's global metadata indicating which CIDR range is being used by
--   the cluster.
--   
--   <i>See:</i> <a>projectsZonesClustersCreate</a> smart constructor.
data ProjectsZonesClustersCreate

-- | V1 error format.
pzccXgafv :: Lens' ProjectsZonesClustersCreate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzccUploadProtocol :: Lens' ProjectsZonesClustersCreate (Maybe Text)

-- | Pretty-print response.
pzccPp :: Lens' ProjectsZonesClustersCreate Bool

-- | OAuth access token.
pzccAccessToken :: Lens' ProjectsZonesClustersCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzccUploadType :: Lens' ProjectsZonesClustersCreate (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzccZone :: Lens' ProjectsZonesClustersCreate Text

-- | Multipart request metadata.
pzccPayload :: Lens' ProjectsZonesClustersCreate CreateClusterRequest

-- | OAuth bearer token.
pzccBearerToken :: Lens' ProjectsZonesClustersCreate (Maybe Text)

-- | The Google Developers Console <a>project ID or project number</a>.
pzccProjectId :: Lens' ProjectsZonesClustersCreate Text

-- | JSONP
pzccCallback :: Lens' ProjectsZonesClustersCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.Create.ProjectsZonesClustersCreate
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.Create.ProjectsZonesClustersCreate
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.Create.ProjectsZonesClustersCreate
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.Create.ProjectsZonesClustersCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.Create.ProjectsZonesClustersCreate


-- | Deletes the cluster, including the Kubernetes endpoint and all worker
--   nodes. Firewalls and routes that were configured during cluster
--   creation are also deleted. Other Google Compute Engine resources that
--   might be in use by the cluster (e.g. load balancer resources) will not
--   be deleted if they weren't present at the initial create time.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.delete</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.Delete

-- | A resource alias for <tt>container.projects.zones.clusters.delete</tt>
--   method which the <a>ProjectsZonesClustersDelete</a> request conforms
--   to.
type ProjectsZonesClustersDeleteResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersDelete</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>pzcdXgafv</a></li>
--   <li><a>pzcdUploadProtocol</a></li>
--   <li><a>pzcdPp</a></li>
--   <li><a>pzcdAccessToken</a></li>
--   <li><a>pzcdUploadType</a></li>
--   <li><a>pzcdZone</a></li>
--   <li><a>pzcdBearerToken</a></li>
--   <li><a>pzcdClusterId</a></li>
--   <li><a>pzcdProjectId</a></li>
--   <li><a>pzcdCallback</a></li>
--   </ul>
projectsZonesClustersDelete :: Text -> Text -> Text -> ProjectsZonesClustersDelete

-- | Deletes the cluster, including the Kubernetes endpoint and all worker
--   nodes. Firewalls and routes that were configured during cluster
--   creation are also deleted. Other Google Compute Engine resources that
--   might be in use by the cluster (e.g. load balancer resources) will not
--   be deleted if they weren't present at the initial create time.
--   
--   <i>See:</i> <a>projectsZonesClustersDelete</a> smart constructor.
data ProjectsZonesClustersDelete

-- | V1 error format.
pzcdXgafv :: Lens' ProjectsZonesClustersDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcdUploadProtocol :: Lens' ProjectsZonesClustersDelete (Maybe Text)

-- | Pretty-print response.
pzcdPp :: Lens' ProjectsZonesClustersDelete Bool

-- | OAuth access token.
pzcdAccessToken :: Lens' ProjectsZonesClustersDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcdUploadType :: Lens' ProjectsZonesClustersDelete (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcdZone :: Lens' ProjectsZonesClustersDelete Text

-- | OAuth bearer token.
pzcdBearerToken :: Lens' ProjectsZonesClustersDelete (Maybe Text)

-- | The name of the cluster to delete.
pzcdClusterId :: Lens' ProjectsZonesClustersDelete Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcdProjectId :: Lens' ProjectsZonesClustersDelete Text

-- | JSONP
pzcdCallback :: Lens' ProjectsZonesClustersDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.Delete.ProjectsZonesClustersDelete
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.Delete.ProjectsZonesClustersDelete
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.Delete.ProjectsZonesClustersDelete
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.Delete.ProjectsZonesClustersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.Delete.ProjectsZonesClustersDelete


-- | Gets the details of a specific cluster.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.get</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.Get

-- | A resource alias for <tt>container.projects.zones.clusters.get</tt>
--   method which the <a>ProjectsZonesClustersGet</a> request conforms to.
type ProjectsZonesClustersGetResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Cluster))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersGet</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>pzcgXgafv</a></li>
--   <li><a>pzcgUploadProtocol</a></li>
--   <li><a>pzcgPp</a></li>
--   <li><a>pzcgAccessToken</a></li>
--   <li><a>pzcgUploadType</a></li>
--   <li><a>pzcgZone</a></li>
--   <li><a>pzcgBearerToken</a></li>
--   <li><a>pzcgClusterId</a></li>
--   <li><a>pzcgProjectId</a></li>
--   <li><a>pzcgCallback</a></li>
--   </ul>
projectsZonesClustersGet :: Text -> Text -> Text -> ProjectsZonesClustersGet

-- | Gets the details of a specific cluster.
--   
--   <i>See:</i> <a>projectsZonesClustersGet</a> smart constructor.
data ProjectsZonesClustersGet

-- | V1 error format.
pzcgXgafv :: Lens' ProjectsZonesClustersGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcgUploadProtocol :: Lens' ProjectsZonesClustersGet (Maybe Text)

-- | Pretty-print response.
pzcgPp :: Lens' ProjectsZonesClustersGet Bool

-- | OAuth access token.
pzcgAccessToken :: Lens' ProjectsZonesClustersGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcgUploadType :: Lens' ProjectsZonesClustersGet (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcgZone :: Lens' ProjectsZonesClustersGet Text

-- | OAuth bearer token.
pzcgBearerToken :: Lens' ProjectsZonesClustersGet (Maybe Text)

-- | The name of the cluster to retrieve.
pzcgClusterId :: Lens' ProjectsZonesClustersGet Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcgProjectId :: Lens' ProjectsZonesClustersGet Text

-- | JSONP
pzcgCallback :: Lens' ProjectsZonesClustersGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.Get.ProjectsZonesClustersGet
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.Get.ProjectsZonesClustersGet
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.Get.ProjectsZonesClustersGet
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.Get.ProjectsZonesClustersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.Get.ProjectsZonesClustersGet


-- | Lists all clusters owned by a project in either the specified zone or
--   all zones.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.list</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.List

-- | A resource alias for <tt>container.projects.zones.clusters.list</tt>
--   method which the <a>ProjectsZonesClustersList</a> request conforms to.
type ProjectsZonesClustersListResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListClustersResponse)))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersList</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>pzclXgafv</a></li>
--   <li><a>pzclUploadProtocol</a></li>
--   <li><a>pzclPp</a></li>
--   <li><a>pzclAccessToken</a></li>
--   <li><a>pzclUploadType</a></li>
--   <li><a>pzclZone</a></li>
--   <li><a>pzclBearerToken</a></li>
--   <li><a>pzclProjectId</a></li>
--   <li><a>pzclCallback</a></li>
--   </ul>
projectsZonesClustersList :: Text -> Text -> ProjectsZonesClustersList

-- | Lists all clusters owned by a project in either the specified zone or
--   all zones.
--   
--   <i>See:</i> <a>projectsZonesClustersList</a> smart constructor.
data ProjectsZonesClustersList

-- | V1 error format.
pzclXgafv :: Lens' ProjectsZonesClustersList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzclUploadProtocol :: Lens' ProjectsZonesClustersList (Maybe Text)

-- | Pretty-print response.
pzclPp :: Lens' ProjectsZonesClustersList Bool

-- | OAuth access token.
pzclAccessToken :: Lens' ProjectsZonesClustersList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzclUploadType :: Lens' ProjectsZonesClustersList (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides, or "-" for all zones.
pzclZone :: Lens' ProjectsZonesClustersList Text

-- | OAuth bearer token.
pzclBearerToken :: Lens' ProjectsZonesClustersList (Maybe Text)

-- | The Google Developers Console <a>project ID or project number</a>.
pzclProjectId :: Lens' ProjectsZonesClustersList Text

-- | JSONP
pzclCallback :: Lens' ProjectsZonesClustersList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.List.ProjectsZonesClustersList
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.List.ProjectsZonesClustersList
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.List.ProjectsZonesClustersList
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.List.ProjectsZonesClustersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.List.ProjectsZonesClustersList


-- | Creates a node pool for a cluster.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.nodePools.create</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Create

-- | A resource alias for
--   <tt>container.projects.zones.clusters.nodePools.create</tt> method
--   which the <a>ProjectsZonesClustersNodePoolsCreate</a> request conforms
--   to.
type ProjectsZonesClustersNodePoolsCreateResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> ("nodePools" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CreateNodePoolRequest :> Post '[JSON] Operation))))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersNodePoolsCreate</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>pzcnpcXgafv</a></li>
--   <li><a>pzcnpcUploadProtocol</a></li>
--   <li><a>pzcnpcPp</a></li>
--   <li><a>pzcnpcAccessToken</a></li>
--   <li><a>pzcnpcUploadType</a></li>
--   <li><a>pzcnpcZone</a></li>
--   <li><a>pzcnpcPayload</a></li>
--   <li><a>pzcnpcBearerToken</a></li>
--   <li><a>pzcnpcClusterId</a></li>
--   <li><a>pzcnpcProjectId</a></li>
--   <li><a>pzcnpcCallback</a></li>
--   </ul>
projectsZonesClustersNodePoolsCreate :: Text -> CreateNodePoolRequest -> Text -> Text -> ProjectsZonesClustersNodePoolsCreate

-- | Creates a node pool for a cluster.
--   
--   <i>See:</i> <a>projectsZonesClustersNodePoolsCreate</a> smart
--   constructor.
data ProjectsZonesClustersNodePoolsCreate

-- | V1 error format.
pzcnpcXgafv :: Lens' ProjectsZonesClustersNodePoolsCreate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcnpcUploadProtocol :: Lens' ProjectsZonesClustersNodePoolsCreate (Maybe Text)

-- | Pretty-print response.
pzcnpcPp :: Lens' ProjectsZonesClustersNodePoolsCreate Bool

-- | OAuth access token.
pzcnpcAccessToken :: Lens' ProjectsZonesClustersNodePoolsCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcnpcUploadType :: Lens' ProjectsZonesClustersNodePoolsCreate (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcnpcZone :: Lens' ProjectsZonesClustersNodePoolsCreate Text

-- | Multipart request metadata.
pzcnpcPayload :: Lens' ProjectsZonesClustersNodePoolsCreate CreateNodePoolRequest

-- | OAuth bearer token.
pzcnpcBearerToken :: Lens' ProjectsZonesClustersNodePoolsCreate (Maybe Text)

-- | The name of the cluster.
pzcnpcClusterId :: Lens' ProjectsZonesClustersNodePoolsCreate Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcnpcProjectId :: Lens' ProjectsZonesClustersNodePoolsCreate Text

-- | JSONP
pzcnpcCallback :: Lens' ProjectsZonesClustersNodePoolsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Create.ProjectsZonesClustersNodePoolsCreate
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Create.ProjectsZonesClustersNodePoolsCreate
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Create.ProjectsZonesClustersNodePoolsCreate
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Create.ProjectsZonesClustersNodePoolsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Create.ProjectsZonesClustersNodePoolsCreate


-- | Deletes a node pool from a cluster.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.nodePools.delete</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Delete

-- | A resource alias for
--   <tt>container.projects.zones.clusters.nodePools.delete</tt> method
--   which the <a>ProjectsZonesClustersNodePoolsDelete</a> request conforms
--   to.
type ProjectsZonesClustersNodePoolsDeleteResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> ("nodePools" :> (Capture "nodePoolId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersNodePoolsDelete</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>pzcnpdXgafv</a></li>
--   <li><a>pzcnpdUploadProtocol</a></li>
--   <li><a>pzcnpdPp</a></li>
--   <li><a>pzcnpdAccessToken</a></li>
--   <li><a>pzcnpdUploadType</a></li>
--   <li><a>pzcnpdZone</a></li>
--   <li><a>pzcnpdNodePoolId</a></li>
--   <li><a>pzcnpdBearerToken</a></li>
--   <li><a>pzcnpdClusterId</a></li>
--   <li><a>pzcnpdProjectId</a></li>
--   <li><a>pzcnpdCallback</a></li>
--   </ul>
projectsZonesClustersNodePoolsDelete :: Text -> Text -> Text -> Text -> ProjectsZonesClustersNodePoolsDelete

-- | Deletes a node pool from a cluster.
--   
--   <i>See:</i> <a>projectsZonesClustersNodePoolsDelete</a> smart
--   constructor.
data ProjectsZonesClustersNodePoolsDelete

-- | V1 error format.
pzcnpdXgafv :: Lens' ProjectsZonesClustersNodePoolsDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcnpdUploadProtocol :: Lens' ProjectsZonesClustersNodePoolsDelete (Maybe Text)

-- | Pretty-print response.
pzcnpdPp :: Lens' ProjectsZonesClustersNodePoolsDelete Bool

-- | OAuth access token.
pzcnpdAccessToken :: Lens' ProjectsZonesClustersNodePoolsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcnpdUploadType :: Lens' ProjectsZonesClustersNodePoolsDelete (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcnpdZone :: Lens' ProjectsZonesClustersNodePoolsDelete Text

-- | The name of the node pool to delete.
pzcnpdNodePoolId :: Lens' ProjectsZonesClustersNodePoolsDelete Text

-- | OAuth bearer token.
pzcnpdBearerToken :: Lens' ProjectsZonesClustersNodePoolsDelete (Maybe Text)

-- | The name of the cluster.
pzcnpdClusterId :: Lens' ProjectsZonesClustersNodePoolsDelete Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcnpdProjectId :: Lens' ProjectsZonesClustersNodePoolsDelete Text

-- | JSONP
pzcnpdCallback :: Lens' ProjectsZonesClustersNodePoolsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Delete.ProjectsZonesClustersNodePoolsDelete
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Delete.ProjectsZonesClustersNodePoolsDelete
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Delete.ProjectsZonesClustersNodePoolsDelete
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Delete.ProjectsZonesClustersNodePoolsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Delete.ProjectsZonesClustersNodePoolsDelete


-- | Retrieves the node pool requested.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.nodePools.get</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Get

-- | A resource alias for
--   <tt>container.projects.zones.clusters.nodePools.get</tt> method which
--   the <a>ProjectsZonesClustersNodePoolsGet</a> request conforms to.
type ProjectsZonesClustersNodePoolsGetResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> ("nodePools" :> (Capture "nodePoolId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] NodePool))))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersNodePoolsGet</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>pzcnpgXgafv</a></li>
--   <li><a>pzcnpgUploadProtocol</a></li>
--   <li><a>pzcnpgPp</a></li>
--   <li><a>pzcnpgAccessToken</a></li>
--   <li><a>pzcnpgUploadType</a></li>
--   <li><a>pzcnpgZone</a></li>
--   <li><a>pzcnpgNodePoolId</a></li>
--   <li><a>pzcnpgBearerToken</a></li>
--   <li><a>pzcnpgClusterId</a></li>
--   <li><a>pzcnpgProjectId</a></li>
--   <li><a>pzcnpgCallback</a></li>
--   </ul>
projectsZonesClustersNodePoolsGet :: Text -> Text -> Text -> Text -> ProjectsZonesClustersNodePoolsGet

-- | Retrieves the node pool requested.
--   
--   <i>See:</i> <a>projectsZonesClustersNodePoolsGet</a> smart
--   constructor.
data ProjectsZonesClustersNodePoolsGet

-- | V1 error format.
pzcnpgXgafv :: Lens' ProjectsZonesClustersNodePoolsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcnpgUploadProtocol :: Lens' ProjectsZonesClustersNodePoolsGet (Maybe Text)

-- | Pretty-print response.
pzcnpgPp :: Lens' ProjectsZonesClustersNodePoolsGet Bool

-- | OAuth access token.
pzcnpgAccessToken :: Lens' ProjectsZonesClustersNodePoolsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcnpgUploadType :: Lens' ProjectsZonesClustersNodePoolsGet (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcnpgZone :: Lens' ProjectsZonesClustersNodePoolsGet Text

-- | The name of the node pool.
pzcnpgNodePoolId :: Lens' ProjectsZonesClustersNodePoolsGet Text

-- | OAuth bearer token.
pzcnpgBearerToken :: Lens' ProjectsZonesClustersNodePoolsGet (Maybe Text)

-- | The name of the cluster.
pzcnpgClusterId :: Lens' ProjectsZonesClustersNodePoolsGet Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcnpgProjectId :: Lens' ProjectsZonesClustersNodePoolsGet Text

-- | JSONP
pzcnpgCallback :: Lens' ProjectsZonesClustersNodePoolsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Get.ProjectsZonesClustersNodePoolsGet
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Get.ProjectsZonesClustersNodePoolsGet
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Get.ProjectsZonesClustersNodePoolsGet
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Get.ProjectsZonesClustersNodePoolsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Get.ProjectsZonesClustersNodePoolsGet


-- | Lists the node pools for a cluster.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.nodePools.list</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.List

-- | A resource alias for
--   <tt>container.projects.zones.clusters.nodePools.list</tt> method which
--   the <a>ProjectsZonesClustersNodePoolsList</a> request conforms to.
type ProjectsZonesClustersNodePoolsListResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> ("nodePools" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListNodePoolsResponse)))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersNodePoolsList</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>pzcnplXgafv</a></li>
--   <li><a>pzcnplUploadProtocol</a></li>
--   <li><a>pzcnplPp</a></li>
--   <li><a>pzcnplAccessToken</a></li>
--   <li><a>pzcnplUploadType</a></li>
--   <li><a>pzcnplZone</a></li>
--   <li><a>pzcnplBearerToken</a></li>
--   <li><a>pzcnplClusterId</a></li>
--   <li><a>pzcnplProjectId</a></li>
--   <li><a>pzcnplCallback</a></li>
--   </ul>
projectsZonesClustersNodePoolsList :: Text -> Text -> Text -> ProjectsZonesClustersNodePoolsList

-- | Lists the node pools for a cluster.
--   
--   <i>See:</i> <a>projectsZonesClustersNodePoolsList</a> smart
--   constructor.
data ProjectsZonesClustersNodePoolsList

-- | V1 error format.
pzcnplXgafv :: Lens' ProjectsZonesClustersNodePoolsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcnplUploadProtocol :: Lens' ProjectsZonesClustersNodePoolsList (Maybe Text)

-- | Pretty-print response.
pzcnplPp :: Lens' ProjectsZonesClustersNodePoolsList Bool

-- | OAuth access token.
pzcnplAccessToken :: Lens' ProjectsZonesClustersNodePoolsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcnplUploadType :: Lens' ProjectsZonesClustersNodePoolsList (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcnplZone :: Lens' ProjectsZonesClustersNodePoolsList Text

-- | OAuth bearer token.
pzcnplBearerToken :: Lens' ProjectsZonesClustersNodePoolsList (Maybe Text)

-- | The name of the cluster.
pzcnplClusterId :: Lens' ProjectsZonesClustersNodePoolsList Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcnplProjectId :: Lens' ProjectsZonesClustersNodePoolsList Text

-- | JSONP
pzcnplCallback :: Lens' ProjectsZonesClustersNodePoolsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.List.ProjectsZonesClustersNodePoolsList
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.List.ProjectsZonesClustersNodePoolsList
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.List.ProjectsZonesClustersNodePoolsList
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.List.ProjectsZonesClustersNodePoolsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.List.ProjectsZonesClustersNodePoolsList


-- | Roll back the previously Aborted or Failed NodePool upgrade. This will
--   be an no-op if the last upgrade successfully completed.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.nodePools.rollback</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Rollback

-- | A resource alias for
--   <tt>container.projects.zones.clusters.nodePools.rollback</tt> method
--   which the <a>ProjectsZonesClustersNodePoolsRollback</a> request
--   conforms to.
type ProjectsZonesClustersNodePoolsRollbackResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> ("nodePools" :> (CaptureMode "nodePoolId" "rollback" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] RollbackNodePoolUpgradeRequest :> Post '[JSON] Operation)))))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersNodePoolsRollback</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>pzcnprXgafv</a></li>
--   <li><a>pzcnprUploadProtocol</a></li>
--   <li><a>pzcnprPp</a></li>
--   <li><a>pzcnprAccessToken</a></li>
--   <li><a>pzcnprUploadType</a></li>
--   <li><a>pzcnprZone</a></li>
--   <li><a>pzcnprPayload</a></li>
--   <li><a>pzcnprNodePoolId</a></li>
--   <li><a>pzcnprBearerToken</a></li>
--   <li><a>pzcnprClusterId</a></li>
--   <li><a>pzcnprProjectId</a></li>
--   <li><a>pzcnprCallback</a></li>
--   </ul>
projectsZonesClustersNodePoolsRollback :: Text -> RollbackNodePoolUpgradeRequest -> Text -> Text -> Text -> ProjectsZonesClustersNodePoolsRollback

-- | Roll back the previously Aborted or Failed NodePool upgrade. This will
--   be an no-op if the last upgrade successfully completed.
--   
--   <i>See:</i> <a>projectsZonesClustersNodePoolsRollback</a> smart
--   constructor.
data ProjectsZonesClustersNodePoolsRollback

-- | V1 error format.
pzcnprXgafv :: Lens' ProjectsZonesClustersNodePoolsRollback (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcnprUploadProtocol :: Lens' ProjectsZonesClustersNodePoolsRollback (Maybe Text)

-- | Pretty-print response.
pzcnprPp :: Lens' ProjectsZonesClustersNodePoolsRollback Bool

-- | OAuth access token.
pzcnprAccessToken :: Lens' ProjectsZonesClustersNodePoolsRollback (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcnprUploadType :: Lens' ProjectsZonesClustersNodePoolsRollback (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcnprZone :: Lens' ProjectsZonesClustersNodePoolsRollback Text

-- | Multipart request metadata.
pzcnprPayload :: Lens' ProjectsZonesClustersNodePoolsRollback RollbackNodePoolUpgradeRequest

-- | The name of the node pool to rollback.
pzcnprNodePoolId :: Lens' ProjectsZonesClustersNodePoolsRollback Text

-- | OAuth bearer token.
pzcnprBearerToken :: Lens' ProjectsZonesClustersNodePoolsRollback (Maybe Text)

-- | The name of the cluster to rollback.
pzcnprClusterId :: Lens' ProjectsZonesClustersNodePoolsRollback Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcnprProjectId :: Lens' ProjectsZonesClustersNodePoolsRollback Text

-- | JSONP
pzcnprCallback :: Lens' ProjectsZonesClustersNodePoolsRollback (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Rollback.ProjectsZonesClustersNodePoolsRollback
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Rollback.ProjectsZonesClustersNodePoolsRollback
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Rollback.ProjectsZonesClustersNodePoolsRollback
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Rollback.ProjectsZonesClustersNodePoolsRollback
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.Rollback.ProjectsZonesClustersNodePoolsRollback


-- | Sets the NodeManagement options for a node pool.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.nodePools.setManagement</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.SetManagement

-- | A resource alias for
--   <tt>container.projects.zones.clusters.nodePools.setManagement</tt>
--   method which the <a>ProjectsZonesClustersNodePoolsSetManagement</a>
--   request conforms to.
type ProjectsZonesClustersNodePoolsSetManagementResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> ("nodePools" :> (Capture "nodePoolId" Text :> ("setManagement" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] SetNodePoolManagementRequest :> Post '[JSON] Operation))))))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersNodePoolsSetManagement</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>pzcnpsmXgafv</a></li>
--   <li><a>pzcnpsmUploadProtocol</a></li>
--   <li><a>pzcnpsmPp</a></li>
--   <li><a>pzcnpsmAccessToken</a></li>
--   <li><a>pzcnpsmUploadType</a></li>
--   <li><a>pzcnpsmZone</a></li>
--   <li><a>pzcnpsmPayload</a></li>
--   <li><a>pzcnpsmNodePoolId</a></li>
--   <li><a>pzcnpsmBearerToken</a></li>
--   <li><a>pzcnpsmClusterId</a></li>
--   <li><a>pzcnpsmProjectId</a></li>
--   <li><a>pzcnpsmCallback</a></li>
--   </ul>
projectsZonesClustersNodePoolsSetManagement :: Text -> SetNodePoolManagementRequest -> Text -> Text -> Text -> ProjectsZonesClustersNodePoolsSetManagement

-- | Sets the NodeManagement options for a node pool.
--   
--   <i>See:</i> <a>projectsZonesClustersNodePoolsSetManagement</a> smart
--   constructor.
data ProjectsZonesClustersNodePoolsSetManagement

-- | V1 error format.
pzcnpsmXgafv :: Lens' ProjectsZonesClustersNodePoolsSetManagement (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcnpsmUploadProtocol :: Lens' ProjectsZonesClustersNodePoolsSetManagement (Maybe Text)

-- | Pretty-print response.
pzcnpsmPp :: Lens' ProjectsZonesClustersNodePoolsSetManagement Bool

-- | OAuth access token.
pzcnpsmAccessToken :: Lens' ProjectsZonesClustersNodePoolsSetManagement (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcnpsmUploadType :: Lens' ProjectsZonesClustersNodePoolsSetManagement (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcnpsmZone :: Lens' ProjectsZonesClustersNodePoolsSetManagement Text

-- | Multipart request metadata.
pzcnpsmPayload :: Lens' ProjectsZonesClustersNodePoolsSetManagement SetNodePoolManagementRequest

-- | The name of the node pool to update.
pzcnpsmNodePoolId :: Lens' ProjectsZonesClustersNodePoolsSetManagement Text

-- | OAuth bearer token.
pzcnpsmBearerToken :: Lens' ProjectsZonesClustersNodePoolsSetManagement (Maybe Text)

-- | The name of the cluster to update.
pzcnpsmClusterId :: Lens' ProjectsZonesClustersNodePoolsSetManagement Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcnpsmProjectId :: Lens' ProjectsZonesClustersNodePoolsSetManagement Text

-- | JSONP
pzcnpsmCallback :: Lens' ProjectsZonesClustersNodePoolsSetManagement (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.SetManagement.ProjectsZonesClustersNodePoolsSetManagement
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.SetManagement.ProjectsZonesClustersNodePoolsSetManagement
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.SetManagement.ProjectsZonesClustersNodePoolsSetManagement
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.SetManagement.ProjectsZonesClustersNodePoolsSetManagement
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.NodePools.SetManagement.ProjectsZonesClustersNodePoolsSetManagement


-- | Updates the settings of a specific cluster.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.clusters.update</tt>.
module Network.Google.Resource.Container.Projects.Zones.Clusters.Update

-- | A resource alias for <tt>container.projects.zones.clusters.update</tt>
--   method which the <a>ProjectsZonesClustersUpdate</a> request conforms
--   to.
type ProjectsZonesClustersUpdateResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("clusters" :> (Capture "clusterId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UpdateClusterRequest :> Put '[JSON] Operation)))))))))))))))

-- | Creates a value of <a>ProjectsZonesClustersUpdate</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>pzcuXgafv</a></li>
--   <li><a>pzcuUploadProtocol</a></li>
--   <li><a>pzcuPp</a></li>
--   <li><a>pzcuAccessToken</a></li>
--   <li><a>pzcuUploadType</a></li>
--   <li><a>pzcuZone</a></li>
--   <li><a>pzcuPayload</a></li>
--   <li><a>pzcuBearerToken</a></li>
--   <li><a>pzcuClusterId</a></li>
--   <li><a>pzcuProjectId</a></li>
--   <li><a>pzcuCallback</a></li>
--   </ul>
projectsZonesClustersUpdate :: Text -> UpdateClusterRequest -> Text -> Text -> ProjectsZonesClustersUpdate

-- | Updates the settings of a specific cluster.
--   
--   <i>See:</i> <a>projectsZonesClustersUpdate</a> smart constructor.
data ProjectsZonesClustersUpdate

-- | V1 error format.
pzcuXgafv :: Lens' ProjectsZonesClustersUpdate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzcuUploadProtocol :: Lens' ProjectsZonesClustersUpdate (Maybe Text)

-- | Pretty-print response.
pzcuPp :: Lens' ProjectsZonesClustersUpdate Bool

-- | OAuth access token.
pzcuAccessToken :: Lens' ProjectsZonesClustersUpdate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzcuUploadType :: Lens' ProjectsZonesClustersUpdate (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzcuZone :: Lens' ProjectsZonesClustersUpdate Text

-- | Multipart request metadata.
pzcuPayload :: Lens' ProjectsZonesClustersUpdate UpdateClusterRequest

-- | OAuth bearer token.
pzcuBearerToken :: Lens' ProjectsZonesClustersUpdate (Maybe Text)

-- | The name of the cluster to upgrade.
pzcuClusterId :: Lens' ProjectsZonesClustersUpdate Text

-- | The Google Developers Console <a>project ID or project number</a>.
pzcuProjectId :: Lens' ProjectsZonesClustersUpdate Text

-- | JSONP
pzcuCallback :: Lens' ProjectsZonesClustersUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Clusters.Update.ProjectsZonesClustersUpdate
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Clusters.Update.ProjectsZonesClustersUpdate
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Clusters.Update.ProjectsZonesClustersUpdate
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Clusters.Update.ProjectsZonesClustersUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Clusters.Update.ProjectsZonesClustersUpdate


-- | Returns configuration info about the Container Engine service.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.getServerconfig</tt>.
module Network.Google.Resource.Container.Projects.Zones.GetServerConfig

-- | A resource alias for <tt>container.projects.zones.getServerconfig</tt>
--   method which the <a>ProjectsZonesGetServerConfig</a> request conforms
--   to.
type ProjectsZonesGetServerConfigResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("serverconfig" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ServerConfig)))))))))))))

-- | Creates a value of <a>ProjectsZonesGetServerConfig</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>pzgscXgafv</a></li>
--   <li><a>pzgscUploadProtocol</a></li>
--   <li><a>pzgscPp</a></li>
--   <li><a>pzgscAccessToken</a></li>
--   <li><a>pzgscUploadType</a></li>
--   <li><a>pzgscZone</a></li>
--   <li><a>pzgscBearerToken</a></li>
--   <li><a>pzgscProjectId</a></li>
--   <li><a>pzgscCallback</a></li>
--   </ul>
projectsZonesGetServerConfig :: Text -> Text -> ProjectsZonesGetServerConfig

-- | Returns configuration info about the Container Engine service.
--   
--   <i>See:</i> <a>projectsZonesGetServerConfig</a> smart constructor.
data ProjectsZonesGetServerConfig

-- | V1 error format.
pzgscXgafv :: Lens' ProjectsZonesGetServerConfig (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzgscUploadProtocol :: Lens' ProjectsZonesGetServerConfig (Maybe Text)

-- | Pretty-print response.
pzgscPp :: Lens' ProjectsZonesGetServerConfig Bool

-- | OAuth access token.
pzgscAccessToken :: Lens' ProjectsZonesGetServerConfig (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzgscUploadType :: Lens' ProjectsZonesGetServerConfig (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> to return operations
--   for.
pzgscZone :: Lens' ProjectsZonesGetServerConfig Text

-- | OAuth bearer token.
pzgscBearerToken :: Lens' ProjectsZonesGetServerConfig (Maybe Text)

-- | The Google Developers Console <a>project ID or project number</a>.
pzgscProjectId :: Lens' ProjectsZonesGetServerConfig Text

-- | JSONP
pzgscCallback :: Lens' ProjectsZonesGetServerConfig (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.GetServerConfig.ProjectsZonesGetServerConfig
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.GetServerConfig.ProjectsZonesGetServerConfig
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.GetServerConfig.ProjectsZonesGetServerConfig
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.GetServerConfig.ProjectsZonesGetServerConfig
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.GetServerConfig.ProjectsZonesGetServerConfig


-- | Cancels the specified operation.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.operations.cancel</tt>.
module Network.Google.Resource.Container.Projects.Zones.Operations.Cancel

-- | A resource alias for
--   <tt>container.projects.zones.operations.cancel</tt> method which the
--   <a>ProjectsZonesOperationsCancel</a> request conforms to.
type ProjectsZonesOperationsCancelResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("operations" :> (CaptureMode "operationId" "cancel" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CancelOperationRequest :> Post '[JSON] Empty)))))))))))))))

-- | Creates a value of <a>ProjectsZonesOperationsCancel</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>pzocXgafv</a></li>
--   <li><a>pzocUploadProtocol</a></li>
--   <li><a>pzocPp</a></li>
--   <li><a>pzocAccessToken</a></li>
--   <li><a>pzocUploadType</a></li>
--   <li><a>pzocZone</a></li>
--   <li><a>pzocPayload</a></li>
--   <li><a>pzocBearerToken</a></li>
--   <li><a>pzocProjectId</a></li>
--   <li><a>pzocOperationId</a></li>
--   <li><a>pzocCallback</a></li>
--   </ul>
projectsZonesOperationsCancel :: Text -> CancelOperationRequest -> Text -> Text -> ProjectsZonesOperationsCancel

-- | Cancels the specified operation.
--   
--   <i>See:</i> <a>projectsZonesOperationsCancel</a> smart constructor.
data ProjectsZonesOperationsCancel

-- | V1 error format.
pzocXgafv :: Lens' ProjectsZonesOperationsCancel (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzocUploadProtocol :: Lens' ProjectsZonesOperationsCancel (Maybe Text)

-- | Pretty-print response.
pzocPp :: Lens' ProjectsZonesOperationsCancel Bool

-- | OAuth access token.
pzocAccessToken :: Lens' ProjectsZonesOperationsCancel (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzocUploadType :: Lens' ProjectsZonesOperationsCancel (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the
--   operation resides.
pzocZone :: Lens' ProjectsZonesOperationsCancel Text

-- | Multipart request metadata.
pzocPayload :: Lens' ProjectsZonesOperationsCancel CancelOperationRequest

-- | OAuth bearer token.
pzocBearerToken :: Lens' ProjectsZonesOperationsCancel (Maybe Text)

-- | The Google Developers Console <a>project ID or project number</a>.
pzocProjectId :: Lens' ProjectsZonesOperationsCancel Text

-- | The server-assigned `name` of the operation.
pzocOperationId :: Lens' ProjectsZonesOperationsCancel Text

-- | JSONP
pzocCallback :: Lens' ProjectsZonesOperationsCancel (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Operations.Cancel.ProjectsZonesOperationsCancel
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Operations.Cancel.ProjectsZonesOperationsCancel
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Operations.Cancel.ProjectsZonesOperationsCancel
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Operations.Cancel.ProjectsZonesOperationsCancel
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Operations.Cancel.ProjectsZonesOperationsCancel


-- | Gets the specified operation.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.operations.get</tt>.
module Network.Google.Resource.Container.Projects.Zones.Operations.Get

-- | A resource alias for <tt>container.projects.zones.operations.get</tt>
--   method which the <a>ProjectsZonesOperationsGet</a> request conforms
--   to.
type ProjectsZonesOperationsGetResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("operations" :> (Capture "operationId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Operation))))))))))))))

-- | Creates a value of <a>ProjectsZonesOperationsGet</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>pzogXgafv</a></li>
--   <li><a>pzogUploadProtocol</a></li>
--   <li><a>pzogPp</a></li>
--   <li><a>pzogAccessToken</a></li>
--   <li><a>pzogUploadType</a></li>
--   <li><a>pzogZone</a></li>
--   <li><a>pzogBearerToken</a></li>
--   <li><a>pzogProjectId</a></li>
--   <li><a>pzogOperationId</a></li>
--   <li><a>pzogCallback</a></li>
--   </ul>
projectsZonesOperationsGet :: Text -> Text -> Text -> ProjectsZonesOperationsGet

-- | Gets the specified operation.
--   
--   <i>See:</i> <a>projectsZonesOperationsGet</a> smart constructor.
data ProjectsZonesOperationsGet

-- | V1 error format.
pzogXgafv :: Lens' ProjectsZonesOperationsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzogUploadProtocol :: Lens' ProjectsZonesOperationsGet (Maybe Text)

-- | Pretty-print response.
pzogPp :: Lens' ProjectsZonesOperationsGet Bool

-- | OAuth access token.
pzogAccessToken :: Lens' ProjectsZonesOperationsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzogUploadType :: Lens' ProjectsZonesOperationsGet (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the cluster
--   resides.
pzogZone :: Lens' ProjectsZonesOperationsGet Text

-- | OAuth bearer token.
pzogBearerToken :: Lens' ProjectsZonesOperationsGet (Maybe Text)

-- | The Google Developers Console <a>project ID or project number</a>.
pzogProjectId :: Lens' ProjectsZonesOperationsGet Text

-- | The server-assigned `name` of the operation.
pzogOperationId :: Lens' ProjectsZonesOperationsGet Text

-- | JSONP
pzogCallback :: Lens' ProjectsZonesOperationsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Operations.Get.ProjectsZonesOperationsGet
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Operations.Get.ProjectsZonesOperationsGet
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Operations.Get.ProjectsZonesOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Operations.Get.ProjectsZonesOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Operations.Get.ProjectsZonesOperationsGet


-- | Lists all operations in a project in a specific zone or all zones.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a> for
--   <tt>container.projects.zones.operations.list</tt>.
module Network.Google.Resource.Container.Projects.Zones.Operations.List

-- | A resource alias for <tt>container.projects.zones.operations.list</tt>
--   method which the <a>ProjectsZonesOperationsList</a> request conforms
--   to.
type ProjectsZonesOperationsListResource = "v1" :> ("projects" :> (Capture "projectId" Text :> ("zones" :> (Capture "zone" Text :> ("operations" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListOperationsResponse)))))))))))))

-- | Creates a value of <a>ProjectsZonesOperationsList</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>pzolXgafv</a></li>
--   <li><a>pzolUploadProtocol</a></li>
--   <li><a>pzolPp</a></li>
--   <li><a>pzolAccessToken</a></li>
--   <li><a>pzolUploadType</a></li>
--   <li><a>pzolZone</a></li>
--   <li><a>pzolBearerToken</a></li>
--   <li><a>pzolProjectId</a></li>
--   <li><a>pzolCallback</a></li>
--   </ul>
projectsZonesOperationsList :: Text -> Text -> ProjectsZonesOperationsList

-- | Lists all operations in a project in a specific zone or all zones.
--   
--   <i>See:</i> <a>projectsZonesOperationsList</a> smart constructor.
data ProjectsZonesOperationsList

-- | V1 error format.
pzolXgafv :: Lens' ProjectsZonesOperationsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pzolUploadProtocol :: Lens' ProjectsZonesOperationsList (Maybe Text)

-- | Pretty-print response.
pzolPp :: Lens' ProjectsZonesOperationsList Bool

-- | OAuth access token.
pzolAccessToken :: Lens' ProjectsZonesOperationsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pzolUploadType :: Lens' ProjectsZonesOperationsList (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> to return operations
--   for, or `-` for all zones.
pzolZone :: Lens' ProjectsZonesOperationsList Text

-- | OAuth bearer token.
pzolBearerToken :: Lens' ProjectsZonesOperationsList (Maybe Text)

-- | The Google Developers Console <a>project ID or project number</a>.
pzolProjectId :: Lens' ProjectsZonesOperationsList Text

-- | JSONP
pzolCallback :: Lens' ProjectsZonesOperationsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Container.Projects.Zones.Operations.List.ProjectsZonesOperationsList
instance Data.Data.Data Network.Google.Resource.Container.Projects.Zones.Operations.List.ProjectsZonesOperationsList
instance GHC.Show.Show Network.Google.Resource.Container.Projects.Zones.Operations.List.ProjectsZonesOperationsList
instance GHC.Classes.Eq Network.Google.Resource.Container.Projects.Zones.Operations.List.ProjectsZonesOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Container.Projects.Zones.Operations.List.ProjectsZonesOperationsList


-- | Builds and manages clusters that run container-based applications,
--   powered by open source Kubernetes technology.
--   
--   <i>See:</i> <a>Google Container Engine API Reference</a>
module Network.Google.Container

-- | Default request referring to version <tt>v1</tt> of the Google
--   Container Engine API. This contains the host and root path used as a
--   starting point for constructing service requests.
containerService :: ServiceConfig

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

-- | Represents the entirety of the methods and resources available for the
--   Google Container Engine API service.
type ContainerAPI = ProjectsZonesOperationsListResource :<|> (ProjectsZonesOperationsGetResource :<|> (ProjectsZonesOperationsCancelResource :<|> (ProjectsZonesClustersNodePoolsListResource :<|> (ProjectsZonesClustersNodePoolsGetResource :<|> (ProjectsZonesClustersNodePoolsRollbackResource :<|> (ProjectsZonesClustersNodePoolsSetManagementResource :<|> (ProjectsZonesClustersNodePoolsCreateResource :<|> (ProjectsZonesClustersNodePoolsDeleteResource :<|> (ProjectsZonesClustersListResource :<|> (ProjectsZonesClustersGetResource :<|> (ProjectsZonesClustersCreateResource :<|> (ProjectsZonesClustersDeleteResource :<|> (ProjectsZonesClustersUpdateResource :<|> ProjectsZonesGetServerConfigResource)))))))))))))

-- | Configuration options for the horizontal pod autoscaling feature,
--   which increases or decreases the number of replica pods a replication
--   controller has based on the resource usage of the existing pods.
--   
--   <i>See:</i> <a>horizontalPodAutoscaling</a> smart constructor.
data HorizontalPodAutoscaling

-- | Creates a value of <a>HorizontalPodAutoscaling</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>hpaDisabled</a></li>
--   </ul>
horizontalPodAutoscaling :: HorizontalPodAutoscaling

-- | Whether the Horizontal Pod Autoscaling feature is enabled in the
--   cluster. When enabled, it ensures that a Heapster pod is running in
--   the cluster, which is also used by the Cloud Monitoring service.
hpaDisabled :: Lens' HorizontalPodAutoscaling (Maybe Bool)

-- | ListOperationsResponse is the result of ListOperationsRequest.
--   
--   <i>See:</i> <a>listOperationsResponse</a> smart constructor.
data ListOperationsResponse

-- | Creates a value of <a>ListOperationsResponse</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>lorOperations</a></li>
--   <li><a>lorMissingZones</a></li>
--   </ul>
listOperationsResponse :: ListOperationsResponse

-- | A list of operations in the project in the specified zone.
lorOperations :: Lens' ListOperationsResponse [Operation]

-- | If any zones are listed here, the list of operations returned may be
--   missing the operations from those zones.
lorMissingZones :: Lens' ListOperationsResponse [Text]

-- | CreateClusterRequest creates a cluster.
--   
--   <i>See:</i> <a>createClusterRequest</a> smart constructor.
data CreateClusterRequest

-- | Creates a value of <a>CreateClusterRequest</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>ccrCluster</a></li>
--   </ul>
createClusterRequest :: CreateClusterRequest

-- | A <a>cluster resource</a>
ccrCluster :: Lens' CreateClusterRequest (Maybe Cluster)

-- | A Google Container Engine cluster.
--   
--   <i>See:</i> <a>cluster</a> smart constructor.
data Cluster

-- | Creates a value of <a>Cluster</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>cStatus</a></li>
--   <li><a>cNodePools</a></li>
--   <li><a>cEnableKubernetesAlpha</a></li>
--   <li><a>cNodeConfig</a></li>
--   <li><a>cNodeIPv4CIdRSize</a></li>
--   <li><a>cClusterIPv4CIdR</a></li>
--   <li><a>cInitialNodeCount</a></li>
--   <li><a>cCurrentNodeVersion</a></li>
--   <li><a>cNetwork</a></li>
--   <li><a>cInitialClusterVersion</a></li>
--   <li><a>cZone</a></li>
--   <li><a>cAddonsConfig</a></li>
--   <li><a>cServicesIPv4CIdR</a></li>
--   <li><a>cMasterAuth</a></li>
--   <li><a>cSelfLink</a></li>
--   <li><a>cName</a></li>
--   <li><a>cCurrentMasterVersion</a></li>
--   <li><a>cStatusMessage</a></li>
--   <li><a>cSubnetwork</a></li>
--   <li><a>cCurrentNodeCount</a></li>
--   <li><a>cEndpoint</a></li>
--   <li><a>cExpireTime</a></li>
--   <li><a>cLocations</a></li>
--   <li><a>cLoggingService</a></li>
--   <li><a>cDescription</a></li>
--   <li><a>cInstanceGroupURLs</a></li>
--   <li><a>cMonitoringService</a></li>
--   <li><a>cCreateTime</a></li>
--   </ul>
cluster :: Cluster

-- | <ul>
--   <li><i>Output only</i> The current status of this cluster.</li>
--   </ul>
cStatus :: Lens' Cluster (Maybe Text)

-- | The node pools associated with this cluster. This field should not be
--   set if "node_config" or "initial_node_count" are specified.
cNodePools :: Lens' Cluster [NodePool]

-- | Kubernetes alpha features are enabled on this cluster. This includes
--   alpha API groups (e.g. v1alpha1) and features that may not be
--   production ready in the kubernetes version of the master and nodes.
--   The cluster has no SLA for uptime and master/node upgrades are
--   disabled. Alpha enabled clusters are automatically deleted thirty days
--   after creation.
cEnableKubernetesAlpha :: Lens' Cluster (Maybe Bool)

-- | Parameters used in creating the cluster's nodes. See `nodeConfig` for
--   the description of its properties. For requests, this field should
--   only be used in lieu of a "node_pool" object, since this configuration
--   (along with the "initial_node_count") will be used to create a
--   "NodePool" object with an auto-generated name. Do not use this and a
--   node_pool at the same time. For responses, this field will be
--   populated with the node configuration of the first node pool. If
--   unspecified, the defaults are used.
cNodeConfig :: Lens' Cluster (Maybe NodeConfig)

-- | <ul>
--   <li><i>Output only</i> The size of the address space on each node for
--   hosting containers. This is provisioned from within the
--   `container_ipv4_cidr` range.</li>
--   </ul>
cNodeIPv4CIdRSize :: Lens' Cluster (Maybe Int32)

-- | The IP address range of the container pods in this cluster, in
--   <a>CIDR</a> notation (e.g. `10.96.0.0/14`). Leave blank to have one
--   automatically chosen or specify a `/14` block in `10.0.0.0/8`.
cClusterIPv4CIdR :: Lens' Cluster (Maybe Text)

-- | The number of nodes to create in this cluster. You must ensure that
--   your Compute Engine resource quota is sufficient for this number of
--   instances. You must also have available firewall and routes quota. For
--   requests, this field should only be used in lieu of a "node_pool"
--   object, since this configuration (along with the "node_config") will
--   be used to create a "NodePool" object with an auto-generated name. Do
--   not use this and a node_pool at the same time.
cInitialNodeCount :: Lens' Cluster (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The current version of the node software
--   components. If they are currently at multiple versions because they're
--   in the process of being upgraded, this reflects the minimum version of
--   all nodes.</li>
--   </ul>
cCurrentNodeVersion :: Lens' Cluster (Maybe Text)

-- | The name of the Google Compute Engine <a>network</a> to which the
--   cluster is connected. If left unspecified, the `default` network will
--   be used.
cNetwork :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The software version of the master endpoint and
--   kubelets used in the cluster when it was first created. The version
--   can be upgraded over time.</li>
--   </ul>
cInitialClusterVersion :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The name of the Google Compute Engine</li>
--   <li><i>zone</i> (/compute/docs/zones#available) in which the cluster
--   resides.</li>
--   </ul>
cZone :: Lens' Cluster (Maybe Text)

-- | Configurations for the various addons available to run in the cluster.
cAddonsConfig :: Lens' Cluster (Maybe AddonsConfig)

-- | <ul>
--   <li><i>Output only</i> The IP address range of the Kubernetes services
--   in this cluster, in</li>
--   <li><i>CIDR</i>
--   (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation
--   (e.g. `1.2.3.4/29`). Service addresses are typically put in the last
--   `/16` from the container CIDR.</li>
--   </ul>
cServicesIPv4CIdR :: Lens' Cluster (Maybe Text)

-- | The authentication information for accessing the master endpoint.
cMasterAuth :: Lens' Cluster (Maybe MasterAuth)

-- | <ul>
--   <li><i>Output only</i> Server-defined URL for the resource.</li>
--   </ul>
cSelfLink :: Lens' Cluster (Maybe Text)

-- | The name of this cluster. The name must be unique within this project
--   and zone, and can be up to 40 characters with the following
--   restrictions: * Lowercase letters, numbers, and hyphens only. * Must
--   start with a letter. * Must end with a number or a letter.
cName :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The current software version of the master
--   endpoint.</li>
--   </ul>
cCurrentMasterVersion :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Additional information about the current status
--   of this cluster, if available.</li>
--   </ul>
cStatusMessage :: Lens' Cluster (Maybe Text)

-- | The name of the Google Compute Engine <a>subnetwork</a> to which the
--   cluster is connected.
cSubnetwork :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The number of nodes currently in the
--   cluster.</li>
--   </ul>
cCurrentNodeCount :: Lens' Cluster (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The IP address of this cluster's master
--   endpoint. The endpoint can be accessed from the internet at
--   `https://username:password'endpoint/`. See the `masterAuth` property
--   of this resource for username and password information.</li>
--   </ul>
cEndpoint :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The time the cluster will be automatically
--   deleted in</li>
--   <li><i>RFC3339</i> (https://www.ietf.org/rfc/rfc3339.txt) text
--   format.</li>
--   </ul>
cExpireTime :: Lens' Cluster (Maybe Text)

-- | The list of Google Compute Engine <a>locations</a> in which the
--   cluster's nodes should be located.
cLocations :: Lens' Cluster [Text]

-- | The logging service the cluster should use to write logs. Currently
--   available options: * `logging.googleapis.com` - the Google Cloud
--   Logging service. * `none` - no logs will be exported from the cluster.
--   * if left as an empty string,`logging.googleapis.com` will be used.
cLoggingService :: Lens' Cluster (Maybe Text)

-- | An optional description of this cluster.
cDescription :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The resource URLs of <a>instance groups</a>
--   associated with this cluster.</li>
--   </ul>
cInstanceGroupURLs :: Lens' Cluster [Text]

-- | The monitoring service the cluster should use to write metrics.
--   Currently available options: * `monitoring.googleapis.com` - the
--   Google Cloud Monitoring service. * `none` - no metrics will be
--   exported from the cluster. * if left as an empty string,
--   `monitoring.googleapis.com` will be used.
cMonitoringService :: Lens' Cluster (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The time the cluster was created, in</li>
--   <li><i>RFC3339</i> (https://www.ietf.org/rfc/rfc3339.txt) text
--   format.</li>
--   </ul>
cCreateTime :: Lens' Cluster (Maybe Text)

-- | CancelOperationRequest cancels a single operation.
--   
--   <i>See:</i> <a>cancelOperationRequest</a> smart constructor.
data CancelOperationRequest

-- | Creates a value of <a>CancelOperationRequest</a> with the minimum
--   fields required to make a request.
cancelOperationRequest :: CancelOperationRequest

-- | UpdateClusterRequest updates the settings of a cluster.
--   
--   <i>See:</i> <a>updateClusterRequest</a> smart constructor.
data UpdateClusterRequest

-- | Creates a value of <a>UpdateClusterRequest</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>ucrUpdate</a></li>
--   </ul>
updateClusterRequest :: UpdateClusterRequest

-- | A description of the update.
ucrUpdate :: Lens' UpdateClusterRequest (Maybe ClusterUpdate)

-- | Parameters that describe the nodes in a cluster.
--   
--   <i>See:</i> <a>nodeConfig</a> smart constructor.
data NodeConfig

-- | Creates a value of <a>NodeConfig</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>ncLocalSsdCount</a></li>
--   <li><a>ncDiskSizeGb</a></li>
--   <li><a>ncOAuthScopes</a></li>
--   <li><a>ncServiceAccount</a></li>
--   <li><a>ncImageType</a></li>
--   <li><a>ncMachineType</a></li>
--   <li><a>ncMetadata</a></li>
--   <li><a>ncLabels</a></li>
--   <li><a>ncTags</a></li>
--   <li><a>ncPreemptible</a></li>
--   </ul>
nodeConfig :: NodeConfig

-- | The number of local SSD disks to be attached to the node. The limit
--   for this value is dependant upon the maximum number of disks available
--   on a machine per zone. See:
--   https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
--   for more information.
ncLocalSsdCount :: Lens' NodeConfig (Maybe Int32)

-- | Size of the disk attached to each node, specified in GB. The smallest
--   allowed disk size is 10GB. If unspecified, the default disk size is
--   100GB.
ncDiskSizeGb :: Lens' NodeConfig (Maybe Int32)

-- | The set of Google API scopes to be made available on all of the node
--   VMs under the "default" service account. The following scopes are
--   recommended, but not required, and by default are not included: *
--   `https://www.googleapis.com/auth/compute` is required for mounting
--   persistent storage on your nodes. *
--   `https://www.googleapis.com/auth/devstorage.read_only` is required for
--   communicating with **gcr.io** (the <a>Google Container Registry</a>).
--   If unspecified, no scopes are added, unless Cloud Logging or Cloud
--   Monitoring are enabled, in which case their required scopes will be
--   added.
ncOAuthScopes :: Lens' NodeConfig [Text]

-- | The Google Cloud Platform Service Account to be used by the node VMs.
--   If no Service Account is specified, the "default" service account is
--   used.
ncServiceAccount :: Lens' NodeConfig (Maybe Text)

-- | The image type to use for this node. Note that for a given image type,
--   the latest version of it will be used.
ncImageType :: Lens' NodeConfig (Maybe Text)

-- | The name of a Google Compute Engine <a>machine type</a> (e.g.
--   `n1-standard-1`). If unspecified, the default machine type is
--   `n1-standard-1`.
ncMachineType :: Lens' NodeConfig (Maybe Text)

-- | The metadata key/value pairs assigned to instances in the cluster.
--   Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128
--   bytes in length. These are reflected as part of a URL in the metadata
--   server. Additionally, to avoid ambiguity, keys must not conflict with
--   any other metadata keys for the project or be one of the four reserved
--   keys: "instance-template", "kube-env", "startup-script", and
--   "user-data" Values are free-form strings, and only have meaning as
--   interpreted by the image running in the instance. The only restriction
--   placed on them is that each value's size must be less than or equal to
--   32 KB. The total size of all keys and values must be less than 512 KB.
ncMetadata :: Lens' NodeConfig (Maybe NodeConfigMetadata)

-- | The map of Kubernetes labels (key/value pairs) to be applied to each
--   node. These will added in addition to any default label(s) that
--   Kubernetes may apply to the node. In case of conflict in label keys,
--   the applied set may differ depending on the Kubernetes version -- it's
--   best to assume the behavior is undefined and conflicts should be
--   avoided. For more information, including usage and the valid values,
--   see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
ncLabels :: Lens' NodeConfig (Maybe NodeConfigLabels)

-- | The list of instance tags applied to all nodes. Tags are used to
--   identify valid sources or targets for network firewalls and are
--   specified by the client during cluster or node pool creation. Each tag
--   within the list must comply with RFC1035.
ncTags :: Lens' NodeConfig [Text]

-- | Whether the nodes are created as preemptible VM instances. See:
--   https://cloud.google.com/compute/docs/instances/preemptible for more
--   inforamtion about preemptible VM instances.
ncPreemptible :: Lens' NodeConfig (Maybe Bool)

-- | Configuration options for the HTTP (L7) load balancing controller
--   addon, which makes it easy to set up HTTP load balancers for services
--   in a cluster.
--   
--   <i>See:</i> <a>hTTPLoadBalancing</a> smart constructor.
data HTTPLoadBalancing

-- | Creates a value of <a>HTTPLoadBalancing</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>httplbDisabled</a></li>
--   </ul>
hTTPLoadBalancing :: HTTPLoadBalancing

-- | Whether the HTTP Load Balancing controller is enabled in the cluster.
--   When enabled, it runs a small pod in the cluster that manages the load
--   balancers.
httplbDisabled :: Lens' HTTPLoadBalancing (Maybe Bool)

-- | This operation resource represents operations that may have happened
--   or are happening on the cluster. All fields are output only.
--   
--   <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>oStatus</a></li>
--   <li><a>oZone</a></li>
--   <li><a>oSelfLink</a></li>
--   <li><a>oName</a></li>
--   <li><a>oStatusMessage</a></li>
--   <li><a>oOperationType</a></li>
--   <li><a>oTargetLink</a></li>
--   <li><a>oDetail</a></li>
--   </ul>
operation :: Operation

-- | The current status of the operation.
oStatus :: Lens' Operation (Maybe Text)

-- | The name of the Google Compute Engine <a>zone</a> in which the
--   operation is taking place.
oZone :: Lens' Operation (Maybe Text)

-- | Server-defined URL for the resource.
oSelfLink :: Lens' Operation (Maybe Text)

-- | The server-assigned ID for the operation.
oName :: Lens' Operation (Maybe Text)

-- | If an error has occurred, a textual description of the error.
oStatusMessage :: Lens' Operation (Maybe Text)

-- | The operation type.
oOperationType :: Lens' Operation (Maybe Text)

-- | Server-defined URL for the target of the operation.
oTargetLink :: Lens' Operation (Maybe Text)

-- | Detailed operation progress, if available.
oDetail :: Lens' Operation (Maybe Text)

-- | A generic empty message that you can re-use to avoid defining
--   duplicated empty messages in your APIs. A typical example is to use it
--   as the request or the response type of an API method. For instance:
--   service Foo { rpc Bar(google.protobuf.Empty) returns
--   (google.protobuf.Empty); } The JSON representation for `Empty` is
--   empty JSON object `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | NodeManagement defines the set of node management services turned on
--   for the node pool.
--   
--   <i>See:</i> <a>nodeManagement</a> smart constructor.
data NodeManagement

-- | Creates a value of <a>NodeManagement</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>nmAutoUpgrade</a></li>
--   <li><a>nmUpgradeOptions</a></li>
--   </ul>
nodeManagement :: NodeManagement

-- | Whether the nodes will be automatically upgraded.
nmAutoUpgrade :: Lens' NodeManagement (Maybe Bool)

-- | Specifies the Auto Upgrade knobs for the node pool.
nmUpgradeOptions :: Lens' NodeManagement (Maybe AutoUpgradeOptions)

-- | NodePoolAutoscaling contains information required by cluster
--   autoscaler to adjust the size of the node pool to the current cluster
--   usage.
--   
--   <i>See:</i> <a>nodePoolAutoscaling</a> smart constructor.
data NodePoolAutoscaling

-- | Creates a value of <a>NodePoolAutoscaling</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>npaMaxNodeCount</a></li>
--   <li><a>npaEnabled</a></li>
--   <li><a>npaMinNodeCount</a></li>
--   </ul>
nodePoolAutoscaling :: NodePoolAutoscaling

-- | Maximum number of nodes in the NodePool. Must be &gt;= min_node_count.
--   There has to enough quota to scale up the cluster.
npaMaxNodeCount :: Lens' NodePoolAutoscaling (Maybe Int32)

-- | Is autoscaling enabled for this node pool.
npaEnabled :: Lens' NodePoolAutoscaling (Maybe Bool)

-- | Minimum number of nodes in the NodePool. Must be &gt;= 1 and &lt;=
--   max_node_count.
npaMinNodeCount :: Lens' NodePoolAutoscaling (Maybe Int32)

-- | Configuration for the addons that can be automatically spun up in the
--   cluster, enabling additional functionality.
--   
--   <i>See:</i> <a>addonsConfig</a> smart constructor.
data AddonsConfig

-- | Creates a value of <a>AddonsConfig</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>acHorizontalPodAutoscaling</a></li>
--   <li><a>acHTTPLoadBalancing</a></li>
--   </ul>
addonsConfig :: AddonsConfig

-- | Configuration for the horizontal pod autoscaling feature, which
--   increases or decreases the number of replica pods a replication
--   controller has based on the resource usage of the existing pods.
acHorizontalPodAutoscaling :: Lens' AddonsConfig (Maybe HorizontalPodAutoscaling)

-- | Configuration for the HTTP (L7) load balancing controller addon, which
--   makes it easy to set up HTTP load balancers for services in a cluster.
acHTTPLoadBalancing :: Lens' AddonsConfig (Maybe HTTPLoadBalancing)

-- | NodePool contains the name and configuration for a cluster's node
--   pool. Node pools are a set of nodes (i.e. VM's), with a common
--   configuration and specification, under the control of the cluster
--   master. They may have a set of Kubernetes labels applied to them,
--   which may be used to reference them during pod scheduling. They may
--   also be resized up or down, to accommodate the workload.
--   
--   <i>See:</i> <a>nodePool</a> smart constructor.
data NodePool

-- | Creates a value of <a>NodePool</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>npStatus</a></li>
--   <li><a>npAutoscaling</a></li>
--   <li><a>npConfig</a></li>
--   <li><a>npInitialNodeCount</a></li>
--   <li><a>npManagement</a></li>
--   <li><a>npSelfLink</a></li>
--   <li><a>npName</a></li>
--   <li><a>npStatusMessage</a></li>
--   <li><a>npVersion</a></li>
--   <li><a>npInstanceGroupURLs</a></li>
--   </ul>
nodePool :: NodePool

-- | <ul>
--   <li><i>Output only</i> The status of the nodes in this pool
--   instance.</li>
--   </ul>
npStatus :: Lens' NodePool (Maybe Text)

-- | Autoscaler configuration for this NodePool. Autoscaler is enabled only
--   if a valid configuration is present.
npAutoscaling :: Lens' NodePool (Maybe NodePoolAutoscaling)

-- | The node configuration of the pool.
npConfig :: Lens' NodePool (Maybe NodeConfig)

-- | The initial node count for the pool. You must ensure that your Compute
--   Engine resource quota is sufficient for this number of instances. You
--   must also have available firewall and routes quota.
npInitialNodeCount :: Lens' NodePool (Maybe Int32)

-- | NodeManagement configuration for this NodePool.
npManagement :: Lens' NodePool (Maybe NodeManagement)

-- | <ul>
--   <li><i>Output only</i> Server-defined URL for the resource.</li>
--   </ul>
npSelfLink :: Lens' NodePool (Maybe Text)

-- | The name of the node pool.
npName :: Lens' NodePool (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Additional information about the current status
--   of this node pool instance, if available.</li>
--   </ul>
npStatusMessage :: Lens' NodePool (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The version of the Kubernetes of this
--   node.</li>
--   </ul>
npVersion :: Lens' NodePool (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The resource URLs of <a>instance groups</a>
--   associated with this node pool.</li>
--   </ul>
npInstanceGroupURLs :: Lens' NodePool [Text]

-- | SetNodePoolManagementRequest sets the node management properties of a
--   node pool.
--   
--   <i>See:</i> <a>setNodePoolManagementRequest</a> smart constructor.
data SetNodePoolManagementRequest

-- | Creates a value of <a>SetNodePoolManagementRequest</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>snpmrManagement</a></li>
--   </ul>
setNodePoolManagementRequest :: SetNodePoolManagementRequest

-- | NodeManagement configuration for the node pool.
snpmrManagement :: Lens' SetNodePoolManagementRequest (Maybe NodeManagement)

-- | The authentication information for accessing the master endpoint.
--   Authentication can be done using HTTP basic auth or using client
--   certificates.
--   
--   <i>See:</i> <a>masterAuth</a> smart constructor.
data MasterAuth

-- | Creates a value of <a>MasterAuth</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>maClientKey</a></li>
--   <li><a>maUsername</a></li>
--   <li><a>maClientCertificate</a></li>
--   <li><a>maPassword</a></li>
--   <li><a>maClusterCaCertificate</a></li>
--   </ul>
masterAuth :: MasterAuth

-- | <ul>
--   <li><i>Output only</i> Base64-encoded private key used by clients to
--   authenticate to the cluster endpoint.</li>
--   </ul>
maClientKey :: Lens' MasterAuth (Maybe Text)

-- | The username to use for HTTP basic authentication to the master
--   endpoint.
maUsername :: Lens' MasterAuth (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Base64-encoded public certificate used by
--   clients to authenticate to the cluster endpoint.</li>
--   </ul>
maClientCertificate :: Lens' MasterAuth (Maybe Text)

-- | The password to use for HTTP basic authentication to the master
--   endpoint. Because the master endpoint is open to the Internet, you
--   should create a strong password.
maPassword :: Lens' MasterAuth (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> Base64-encoded public certificate that is the
--   root of trust for the cluster.</li>
--   </ul>
maClusterCaCertificate :: Lens' MasterAuth (Maybe Text)

-- | The metadata key/value pairs assigned to instances in the cluster.
--   Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128
--   bytes in length. These are reflected as part of a URL in the metadata
--   server. Additionally, to avoid ambiguity, keys must not conflict with
--   any other metadata keys for the project or be one of the four reserved
--   keys: "instance-template", "kube-env", "startup-script", and
--   "user-data" Values are free-form strings, and only have meaning as
--   interpreted by the image running in the instance. The only restriction
--   placed on them is that each value's size must be less than or equal to
--   32 KB. The total size of all keys and values must be less than 512 KB.
--   
--   <i>See:</i> <a>nodeConfigMetadata</a> smart constructor.
data NodeConfigMetadata

-- | Creates a value of <a>NodeConfigMetadata</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>ncmAddtional</a></li>
--   </ul>
nodeConfigMetadata :: HashMap Text Text -> NodeConfigMetadata
ncmAddtional :: Lens' NodeConfigMetadata (HashMap Text Text)

-- | The map of Kubernetes labels (key/value pairs) to be applied to each
--   node. These will added in addition to any default label(s) that
--   Kubernetes may apply to the node. In case of conflict in label keys,
--   the applied set may differ depending on the Kubernetes version -- it's
--   best to assume the behavior is undefined and conflicts should be
--   avoided. For more information, including usage and the valid values,
--   see: http://kubernetes.io/v1.1/docs/user-guide/labels.html
--   
--   <i>See:</i> <a>nodeConfigLabels</a> smart constructor.
data NodeConfigLabels

-- | Creates a value of <a>NodeConfigLabels</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>nclAddtional</a></li>
--   </ul>
nodeConfigLabels :: HashMap Text Text -> NodeConfigLabels
nclAddtional :: Lens' NodeConfigLabels (HashMap Text Text)

-- | Container Engine service configuration.
--   
--   <i>See:</i> <a>serverConfig</a> smart constructor.
data ServerConfig

-- | Creates a value of <a>ServerConfig</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>scDefaultImageType</a></li>
--   <li><a>scValidNodeVersions</a></li>
--   <li><a>scValidImageTypes</a></li>
--   <li><a>scDefaultClusterVersion</a></li>
--   <li><a>scValidMasterVersions</a></li>
--   </ul>
serverConfig :: ServerConfig

-- | Default image type.
scDefaultImageType :: Lens' ServerConfig (Maybe Text)

-- | List of valid node upgrade target versions.
scValidNodeVersions :: Lens' ServerConfig [Text]

-- | List of valid image types.
scValidImageTypes :: Lens' ServerConfig [Text]

-- | Version of Kubernetes the service deploys by default.
scDefaultClusterVersion :: Lens' ServerConfig (Maybe Text)

-- | List of valid master versions.
scValidMasterVersions :: Lens' ServerConfig [Text]

-- | AutoUpgradeOptions defines the set of options for the user to control
--   how the Auto Upgrades will proceed.
--   
--   <i>See:</i> <a>autoUpgradeOptions</a> smart constructor.
data AutoUpgradeOptions

-- | Creates a value of <a>AutoUpgradeOptions</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>auoAutoUpgradeStartTime</a></li>
--   <li><a>auoDescription</a></li>
--   </ul>
autoUpgradeOptions :: AutoUpgradeOptions

-- | <ul>
--   <li><i>Output only</i> This field is set when upgrades are about to
--   commence with the approximate start time for the upgrades, in</li>
--   <li><i>RFC3339</i> (https://www.ietf.org/rfc/rfc3339.txt) text
--   format.</li>
--   </ul>
auoAutoUpgradeStartTime :: Lens' AutoUpgradeOptions (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> This field is set when upgrades are about to
--   commence with the description of the upgrade.</li>
--   </ul>
auoDescription :: Lens' AutoUpgradeOptions (Maybe Text)

-- | ListClustersResponse is the result of ListClustersRequest.
--   
--   <i>See:</i> <a>listClustersResponse</a> smart constructor.
data ListClustersResponse

-- | Creates a value of <a>ListClustersResponse</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>lcrClusters</a></li>
--   <li><a>lcrMissingZones</a></li>
--   </ul>
listClustersResponse :: ListClustersResponse

-- | A list of clusters in the project in the specified zone, or across all
--   ones.
lcrClusters :: Lens' ListClustersResponse [Cluster]

-- | If any zones are listed here, the list of clusters returned may be
--   missing those zones.
lcrMissingZones :: Lens' ListClustersResponse [Text]

-- | ClusterUpdate describes an update to the cluster. Exactly one update
--   can be applied to a cluster with each request, so at most one field
--   can be provided.
--   
--   <i>See:</i> <a>clusterUpdate</a> smart constructor.
data ClusterUpdate

-- | Creates a value of <a>ClusterUpdate</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>cuDesiredNodePoolAutoscaling</a></li>
--   <li><a>cuDesiredAddonsConfig</a></li>
--   <li><a>cuDesiredNodePoolId</a></li>
--   <li><a>cuDesiredImageType</a></li>
--   <li><a>cuDesiredNodeVersion</a></li>
--   <li><a>cuDesiredMasterVersion</a></li>
--   <li><a>cuDesiredLocations</a></li>
--   <li><a>cuDesiredMonitoringService</a></li>
--   </ul>
clusterUpdate :: ClusterUpdate

-- | Autoscaler configuration for the node pool specified in
--   desired_node_pool_id. If there is only one pool in the cluster and
--   desired_node_pool_id is not provided then the change applies to that
--   single node pool.
cuDesiredNodePoolAutoscaling :: Lens' ClusterUpdate (Maybe NodePoolAutoscaling)

-- | Configurations for the various addons available to run in the cluster.
cuDesiredAddonsConfig :: Lens' ClusterUpdate (Maybe AddonsConfig)

-- | The node pool to be upgraded. This field is mandatory if
--   "desired_node_version", "desired_image_family" or
--   "desired_node_pool_autoscaling" is specified and there is more than
--   one node pool on the cluster.
cuDesiredNodePoolId :: Lens' ClusterUpdate (Maybe Text)

-- | The desired image type for the node pool. NOTE: Set the
--   "desired_node_pool" field as well.
cuDesiredImageType :: Lens' ClusterUpdate (Maybe Text)

-- | The Kubernetes version to change the nodes to (typically an upgrade).
--   Use `-` to upgrade to the latest version supported by the server.
cuDesiredNodeVersion :: Lens' ClusterUpdate (Maybe Text)

-- | The Kubernetes version to change the master to. The only valid value
--   is the latest supported version. Use "-" to have the server
--   automatically select the latest version.
cuDesiredMasterVersion :: Lens' ClusterUpdate (Maybe Text)

-- | The desired list of Google Compute Engine <a>locations</a> in which
--   the cluster's nodes should be located. Changing the locations a
--   cluster is in will result in nodes being either created or removed
--   from the cluster, depending on whether locations are being added or
--   removed. This list must always include the cluster's primary zone.
cuDesiredLocations :: Lens' ClusterUpdate [Text]

-- | The monitoring service the cluster should use to write metrics.
--   Currently available options: * "monitoring.googleapis.com" - the
--   Google Cloud Monitoring service * "none" - no metrics will be exported
--   from the cluster
cuDesiredMonitoringService :: Lens' ClusterUpdate (Maybe Text)

-- | RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or
--   Failed NodePool upgrade. This will be an no-op if the last upgrade
--   successfully completed.
--   
--   <i>See:</i> <a>rollbackNodePoolUpgradeRequest</a> smart constructor.
data RollbackNodePoolUpgradeRequest

-- | Creates a value of <a>RollbackNodePoolUpgradeRequest</a> with the
--   minimum fields required to make a request.
rollbackNodePoolUpgradeRequest :: RollbackNodePoolUpgradeRequest

-- | ListNodePoolsResponse is the result of ListNodePoolsRequest.
--   
--   <i>See:</i> <a>listNodePoolsResponse</a> smart constructor.
data ListNodePoolsResponse

-- | Creates a value of <a>ListNodePoolsResponse</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>lnprNodePools</a></li>
--   </ul>
listNodePoolsResponse :: ListNodePoolsResponse

-- | A list of node pools for a cluster.
lnprNodePools :: Lens' ListNodePoolsResponse [NodePool]

-- | CreateNodePoolRequest creates a node pool for a cluster.
--   
--   <i>See:</i> <a>createNodePoolRequest</a> smart constructor.
data CreateNodePoolRequest

-- | Creates a value of <a>CreateNodePoolRequest</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>cnprNodePool</a></li>
--   </ul>
createNodePoolRequest :: CreateNodePoolRequest

-- | The node pool to create.
cnprNodePool :: Lens' CreateNodePoolRequest (Maybe NodePool)
