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


-- | Google Compute Engine Instance Group Manager SDK.
--   
--   <ul>
--   <li><i>Deprecated. Please use Instance Group Manager in Compute
--   API</i> Provides groups of homogenous Compute Engine instances.</li>
--   </ul>
--   
--   <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>v1beta2</tt> of the API.
--   
--   Labels:
--   
--   <ul>
--   <li>Limited Availability</li>
--   </ul>
@package gogol-replicapool
@version 0.3.0


module Network.Google.ReplicaPool.Types

-- | Default request referring to version <tt>v1beta2</tt> of the Google
--   Compute Engine Instance Group Manager API. This contains the host and
--   root path used as a starting point for constructing service requests.
replicaPoolService :: ServiceConfig

-- | View and manage your Google Compute Engine resources
computeScope :: Proxy '["https://www.googleapis.com/auth/compute"]

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

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

-- | View your Google Compute Engine resources
computeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/compute.readonly"]
data OperationWarningsItemDataItem

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

-- | <ul>
--   <li><i>Output Only</i> Metadata value for this warning.</li>
--   </ul>
owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Metadata key for this warning.</li>
--   </ul>
owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)
data InstanceGroupManagersAbandonInstancesRequest

-- | Creates a value of <a>InstanceGroupManagersAbandonInstancesRequest</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>igmairInstances</a></li>
--   </ul>
instanceGroupManagersAbandonInstancesRequest :: InstanceGroupManagersAbandonInstancesRequest

-- | The names of one or more instances to abandon. For example: {
--   'instances': [ 'instance-c3po', 'instance-r2d2' ] }
igmairInstances :: Lens' InstanceGroupManagersAbandonInstancesRequest [Text]
data InstanceGroupManagersSetInstanceTemplateRequest

-- | Creates a value of
--   <a>InstanceGroupManagersSetInstanceTemplateRequest</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>igmsitrInstanceTemplate</a></li>
--   </ul>
instanceGroupManagersSetInstanceTemplateRequest :: InstanceGroupManagersSetInstanceTemplateRequest

-- | The full URL to an Instance Template from which all new instances will
--   be created.
igmsitrInstanceTemplate :: Lens' InstanceGroupManagersSetInstanceTemplateRequest (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The warning type identifier for this
--   warning.</li>
--   </ul>
data OperationWarningsItemCode

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-- | A token used to continue a truncated list request (output only).
olNextPageToken :: Lens' OperationList (Maybe Text)

-- | Type of resource.
olKind :: Lens' OperationList Text

-- | The operation resources.
olItems :: Lens' OperationList [Operation]

-- | Server defined URL for this resource (output only).
olSelfLink :: Lens' OperationList (Maybe Text)

-- | Unique identifier for the resource; defined by the server (output
--   only).
olId :: Lens' OperationList (Maybe Text)
data InstanceGroupManagerList

-- | Creates a value of <a>InstanceGroupManagerList</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>igmlNextPageToken</a></li>
--   <li><a>igmlKind</a></li>
--   <li><a>igmlItems</a></li>
--   <li><a>igmlSelfLink</a></li>
--   <li><a>igmlId</a></li>
--   </ul>
instanceGroupManagerList :: InstanceGroupManagerList

-- | A token used to continue a truncated list request (output only).
igmlNextPageToken :: Lens' InstanceGroupManagerList (Maybe Text)

-- | Type of resource.
igmlKind :: Lens' InstanceGroupManagerList Text

-- | A list of instance resources.
igmlItems :: Lens' InstanceGroupManagerList [InstanceGroupManager]

-- | Server defined URL for this resource (output only).
igmlSelfLink :: Lens' InstanceGroupManagerList (Maybe Text)

-- | Unique identifier for the resource; defined by the server (output
--   only).
igmlId :: Lens' InstanceGroupManagerList (Maybe Text)

-- | The action to perform when an instance becomes unhealthy. Possible
--   values are RECREATE or REBOOT. RECREATE replaces an unhealthy instance
--   with a new instance that is based on the instance template for this
--   managed instance group. REBOOT performs a soft reboot on an instance.
--   If the instance cannot reboot, the instance performs a hard restart.
data ReplicaPoolAutoHealingPolicyActionType

-- | <pre>
--   REBOOT
--   </pre>
Reboot :: ReplicaPoolAutoHealingPolicyActionType

-- | <pre>
--   RECREATE
--   </pre>
Recreate :: ReplicaPoolAutoHealingPolicyActionType

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

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

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

-- | <ul>
--   <li><i>Output Only</i> Status of the operation.</li>
--   </ul>
oStatus :: Lens' Operation (Maybe OperationStatus)

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

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

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

-- | <ul>
--   <li><i>Output only</i> Type of the resource.</li>
--   </ul>
oKind :: Lens' Operation Text

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

-- | <ul>
--   <li><i>Output only</i> If operation fails, the HTTP error message
--   returned.</li>
--   </ul>
oHTTPErrorMessage :: Lens' Operation (Maybe Text)

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

-- | <ul>
--   <li><i>Output Only</i> If there are issues with this operation, a
--   warning is returned.</li>
--   </ul>
oWarnings :: Lens' Operation [OperationWarningsItem]

-- | <ul>
--   <li><i>Output only</i> If operation fails, the HTTP error status code
--   returned.</li>
--   </ul>
oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)

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

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

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

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

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

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

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource, generated
--   by the server.</li>
--   </ul>
oId :: Lens' Operation (Maybe Word64)

-- | <ul>
--   <li><i>Output only</i> Type of the operation. Operations include
--   insert, update, and delete.</li>
--   </ul>
oOperationType :: Lens' Operation (Maybe Text)

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

-- | <ul>
--   <li><i>Output only</i> URL of the resource the operation is
--   mutating.</li>
--   </ul>
oTargetLink :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> An optional identifier specified by the client
--   when the mutation was initiated. Must be unique for all operation
--   resources in the project.</li>
--   </ul>
oClientOperationId :: Lens' Operation (Maybe Text)

-- | An Instance Group Manager resource.
--   
--   <i>See:</i> <a>instanceGroupManager</a> smart constructor.
data InstanceGroupManager

-- | Creates a value of <a>InstanceGroupManager</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>igmCurrentSize</a></li>
--   <li><a>igmGroup</a></li>
--   <li><a>igmKind</a></li>
--   <li><a>igmFingerprint</a></li>
--   <li><a>igmBaseInstanceName</a></li>
--   <li><a>igmAutoHealingPolicies</a></li>
--   <li><a>igmInstanceTemplate</a></li>
--   <li><a>igmTargetSize</a></li>
--   <li><a>igmSelfLink</a></li>
--   <li><a>igmName</a></li>
--   <li><a>igmCreationTimestamp</a></li>
--   <li><a>igmId</a></li>
--   <li><a>igmTargetPools</a></li>
--   <li><a>igmDescription</a></li>
--   </ul>
instanceGroupManager :: InstanceGroupManager

-- | <ul>
--   <li><i>Output only</i> The number of instances that currently exist
--   and are a part of this group. This includes instances that are
--   starting but are not yet RUNNING, and instances that are in the
--   process of being deleted or abandoned.</li>
--   </ul>
igmCurrentSize :: Lens' InstanceGroupManager (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The full URL of the instance group created by
--   the manager. This group contains all of the instances being managed,
--   and cannot contain non-managed instances.</li>
--   </ul>
igmGroup :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The resource type. Always
--   replicapool#instanceGroupManager.</li>
--   </ul>
igmKind :: Lens' InstanceGroupManager Text

-- | <ul>
--   <li><i>Output only</i> Fingerprint of the instance group manager. This
--   field is used for optimistic locking. An up-to-date fingerprint must
--   be provided in order to modify the Instance Group Manager
--   resource.</li>
--   </ul>
igmFingerprint :: Lens' InstanceGroupManager (Maybe ByteString)

-- | The base instance name to use for instances in this group. The value
--   must be a valid RFC1035 name. Supported characters are lowercase
--   letters, numbers, and hyphens (-). Instances are named by appending a
--   hyphen and a random four-character string to the base instance name.
igmBaseInstanceName :: Lens' InstanceGroupManager (Maybe Text)

-- | The autohealing policy for this managed instance group. You can
--   specify only one value.
igmAutoHealingPolicies :: Lens' InstanceGroupManager [ReplicaPoolAutoHealingPolicy]

-- | The full URL to an instance template from which all new instances will
--   be created.
igmInstanceTemplate :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The number of instances that the manager is
--   attempting to maintain. Deleting or abandoning instances affects this
--   number, as does resizing the group.</li>
--   </ul>
igmTargetSize :: Lens' InstanceGroupManager (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The fully qualified URL for this resource.</li>
--   </ul>
igmSelfLink :: Lens' InstanceGroupManager (Maybe Text)

-- | The name of the instance group manager. Must be 1-63 characters long
--   and comply with RFC1035. Supported characters include lowercase
--   letters, numbers, and hyphens.
igmName :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The time the instance group manager was
--   created, in RFC3339 text format.</li>
--   </ul>
igmCreationTimestamp :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> A server-assigned unique identifier for the
--   resource.</li>
--   </ul>
igmId :: Lens' InstanceGroupManager (Maybe Word64)

-- | The full URL of all target pools to which new instances in the group
--   are added. Updating the target pool values does not affect existing
--   instances.
igmTargetPools :: Lens' InstanceGroupManager [Text]

-- | An optional textual description of the instance group manager.
igmDescription :: Lens' InstanceGroupManager (Maybe Text)
data ReplicaPoolAutoHealingPolicy

-- | Creates a value of <a>ReplicaPoolAutoHealingPolicy</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>rpahpHealthCheck</a></li>
--   <li><a>rpahpActionType</a></li>
--   </ul>
replicaPoolAutoHealingPolicy :: ReplicaPoolAutoHealingPolicy

-- | The URL for the HealthCheck that signals autohealing.
rpahpHealthCheck :: Lens' ReplicaPoolAutoHealingPolicy (Maybe Text)

-- | The action to perform when an instance becomes unhealthy. Possible
--   values are RECREATE or REBOOT. RECREATE replaces an unhealthy instance
--   with a new instance that is based on the instance template for this
--   managed instance group. REBOOT performs a soft reboot on an instance.
--   If the instance cannot reboot, the instance performs a hard restart.
rpahpActionType :: Lens' ReplicaPoolAutoHealingPolicy (Maybe ReplicaPoolAutoHealingPolicyActionType)
data InstanceGroupManagersRecreateInstancesRequest

-- | Creates a value of
--   <a>InstanceGroupManagersRecreateInstancesRequest</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>igmrirInstances</a></li>
--   </ul>
instanceGroupManagersRecreateInstancesRequest :: InstanceGroupManagersRecreateInstancesRequest

-- | The names of one or more instances to recreate. For example: {
--   'instances': [ 'instance-c3po', 'instance-r2d2' ] }
igmrirInstances :: Lens' InstanceGroupManagersRecreateInstancesRequest [Text]

-- | <ul>
--   <li><i>Output Only</i> Status of the operation.</li>
--   </ul>
data OperationStatus

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

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

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

-- | Creates a value of <a>InstanceGroupManagersDeleteInstancesRequest</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>igmdirInstances</a></li>
--   </ul>
instanceGroupManagersDeleteInstancesRequest :: InstanceGroupManagersDeleteInstancesRequest

-- | Names of instances to delete. Example: 'instance-foo', 'instance-bar'
igmdirInstances :: Lens' InstanceGroupManagersDeleteInstancesRequest [Text]

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

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

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

-- | Creates a value of <a>InstanceGroupManagersSetTargetPoolsRequest</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>igmstprFingerprint</a></li>
--   <li><a>igmstprTargetPools</a></li>
--   </ul>
instanceGroupManagersSetTargetPoolsRequest :: InstanceGroupManagersSetTargetPoolsRequest

-- | The current fingerprint of the Instance Group Manager resource. If
--   this does not match the server-side fingerprint of the resource, then
--   the request will be rejected.
igmstprFingerprint :: Lens' InstanceGroupManagersSetTargetPoolsRequest (Maybe ByteString)

-- | A list of fully-qualified URLs to existing Target Pool resources. New
--   instances in the Instance Group Manager will be added to the specified
--   target pools; existing instances are not affected.
igmstprTargetPools :: Lens' InstanceGroupManagersSetTargetPoolsRequest [Text]
data OperationErrorErrorsItem

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

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

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

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

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

-- | <ul>
--   <li><i>Output only</i> Metadata for this warning in key:value
--   format.</li>
--   </ul>
owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]

-- | <ul>
--   <li><i>Output only</i> The warning type identifier for this
--   warning.</li>
--   </ul>
owiCode :: Lens' OperationWarningsItem (Maybe OperationWarningsItemCode)

-- | <ul>
--   <li><i>Output only</i> Optional human-readable details for this
--   warning.</li>
--   </ul>
owiMessage :: Lens' OperationWarningsItem (Maybe Text)


-- | Removes the specified instances from the managed instance group, and
--   from any target pools of which they were members, without deleting the
--   instances.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for
--   <tt>replicapool.instanceGroupManagers.abandonInstances</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.AbandonInstances

-- | A resource alias for
--   <tt>replicapool.instanceGroupManagers.abandonInstances</tt> method
--   which the <a>InstanceGroupManagersAbandonInstances</a> request
--   conforms to.
type InstanceGroupManagersAbandonInstancesResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> ("abandonInstances" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstanceGroupManagersAbandonInstancesRequest :> Post '[JSON] Operation))))))))))

-- | Creates a value of <a>InstanceGroupManagersAbandonInstances</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>igmaiProject</a></li>
--   <li><a>igmaiInstanceGroupManager</a></li>
--   <li><a>igmaiZone</a></li>
--   <li><a>igmaiPayload</a></li>
--   </ul>
instanceGroupManagersAbandonInstances :: Text -> Text -> Text -> InstanceGroupManagersAbandonInstancesRequest -> InstanceGroupManagersAbandonInstances

-- | Removes the specified instances from the managed instance group, and
--   from any target pools of which they were members, without deleting the
--   instances.
--   
--   <i>See:</i> <a>instanceGroupManagersAbandonInstances</a> smart
--   constructor.
data InstanceGroupManagersAbandonInstances

-- | The Google Developers Console project name.
igmaiProject :: Lens' InstanceGroupManagersAbandonInstances Text

-- | The name of the instance group manager.
igmaiInstanceGroupManager :: Lens' InstanceGroupManagersAbandonInstances Text

-- | The name of the zone in which the instance group manager resides.
igmaiZone :: Lens' InstanceGroupManagersAbandonInstances Text

-- | Multipart request metadata.
igmaiPayload :: Lens' InstanceGroupManagersAbandonInstances InstanceGroupManagersAbandonInstancesRequest
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.AbandonInstances.InstanceGroupManagersAbandonInstances
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.AbandonInstances.InstanceGroupManagersAbandonInstances
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.AbandonInstances.InstanceGroupManagersAbandonInstances
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.AbandonInstances.InstanceGroupManagersAbandonInstances
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.AbandonInstances.InstanceGroupManagersAbandonInstances


-- | Deletes the instance group manager and all instances contained within.
--   If you'd like to delete the manager without deleting the instances,
--   you must first abandon the instances to remove them from the group.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.instanceGroupManagers.delete</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Delete

-- | A resource alias for <tt>replicapool.instanceGroupManagers.delete</tt>
--   method which the <a>InstanceGroupManagersDelete</a> request conforms
--   to.
type InstanceGroupManagersDeleteResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Operation))))))))

-- | Creates a value of <a>InstanceGroupManagersDelete</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>igmdProject</a></li>
--   <li><a>igmdInstanceGroupManager</a></li>
--   <li><a>igmdZone</a></li>
--   </ul>
instanceGroupManagersDelete :: Text -> Text -> Text -> InstanceGroupManagersDelete

-- | Deletes the instance group manager and all instances contained within.
--   If you'd like to delete the manager without deleting the instances,
--   you must first abandon the instances to remove them from the group.
--   
--   <i>See:</i> <a>instanceGroupManagersDelete</a> smart constructor.
data InstanceGroupManagersDelete

-- | The Google Developers Console project name.
igmdProject :: Lens' InstanceGroupManagersDelete Text

-- | Name of the Instance Group Manager resource to delete.
igmdInstanceGroupManager :: Lens' InstanceGroupManagersDelete Text

-- | The name of the zone in which the instance group manager resides.
igmdZone :: Lens' InstanceGroupManagersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Delete.InstanceGroupManagersDelete
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Delete.InstanceGroupManagersDelete
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Delete.InstanceGroupManagersDelete
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Delete.InstanceGroupManagersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Delete.InstanceGroupManagersDelete


-- | Deletes the specified instances. The instances are deleted, then
--   removed from the instance group and any target pools of which they
--   were a member. The targetSize of the instance group manager is reduced
--   by the number of instances deleted.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for
--   <tt>replicapool.instanceGroupManagers.deleteInstances</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.DeleteInstances

-- | A resource alias for
--   <tt>replicapool.instanceGroupManagers.deleteInstances</tt> method
--   which the <a>InstanceGroupManagersDeleteInstances</a> request conforms
--   to.
type InstanceGroupManagersDeleteInstancesResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> ("deleteInstances" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstanceGroupManagersDeleteInstancesRequest :> Post '[JSON] Operation))))))))))

-- | Creates a value of <a>InstanceGroupManagersDeleteInstances</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>igmdiProject</a></li>
--   <li><a>igmdiInstanceGroupManager</a></li>
--   <li><a>igmdiZone</a></li>
--   <li><a>igmdiPayload</a></li>
--   </ul>
instanceGroupManagersDeleteInstances :: Text -> Text -> Text -> InstanceGroupManagersDeleteInstancesRequest -> InstanceGroupManagersDeleteInstances

-- | Deletes the specified instances. The instances are deleted, then
--   removed from the instance group and any target pools of which they
--   were a member. The targetSize of the instance group manager is reduced
--   by the number of instances deleted.
--   
--   <i>See:</i> <a>instanceGroupManagersDeleteInstances</a> smart
--   constructor.
data InstanceGroupManagersDeleteInstances

-- | The Google Developers Console project name.
igmdiProject :: Lens' InstanceGroupManagersDeleteInstances Text

-- | The name of the instance group manager.
igmdiInstanceGroupManager :: Lens' InstanceGroupManagersDeleteInstances Text

-- | The name of the zone in which the instance group manager resides.
igmdiZone :: Lens' InstanceGroupManagersDeleteInstances Text

-- | Multipart request metadata.
igmdiPayload :: Lens' InstanceGroupManagersDeleteInstances InstanceGroupManagersDeleteInstancesRequest
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.DeleteInstances.InstanceGroupManagersDeleteInstances
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.DeleteInstances.InstanceGroupManagersDeleteInstances
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.DeleteInstances.InstanceGroupManagersDeleteInstances
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.DeleteInstances.InstanceGroupManagersDeleteInstances
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.DeleteInstances.InstanceGroupManagersDeleteInstances


-- | Returns the specified Instance Group Manager resource.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.instanceGroupManagers.get</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Get

-- | A resource alias for <tt>replicapool.instanceGroupManagers.get</tt>
--   method which the <a>InstanceGroupManagersGet</a> request conforms to.
type InstanceGroupManagersGetResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] InstanceGroupManager))))))))

-- | Creates a value of <a>InstanceGroupManagersGet</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>igmgProject</a></li>
--   <li><a>igmgInstanceGroupManager</a></li>
--   <li><a>igmgZone</a></li>
--   </ul>
instanceGroupManagersGet :: Text -> Text -> Text -> InstanceGroupManagersGet

-- | Returns the specified Instance Group Manager resource.
--   
--   <i>See:</i> <a>instanceGroupManagersGet</a> smart constructor.
data InstanceGroupManagersGet

-- | The Google Developers Console project name.
igmgProject :: Lens' InstanceGroupManagersGet Text

-- | Name of the instance resource to return.
igmgInstanceGroupManager :: Lens' InstanceGroupManagersGet Text

-- | The name of the zone in which the instance group manager resides.
igmgZone :: Lens' InstanceGroupManagersGet Text
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Get.InstanceGroupManagersGet
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Get.InstanceGroupManagersGet
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Get.InstanceGroupManagersGet
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Get.InstanceGroupManagersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Get.InstanceGroupManagersGet


-- | Creates an instance group manager, as well as the instance group and
--   the specified number of instances.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.instanceGroupManagers.insert</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Insert

-- | A resource alias for <tt>replicapool.instanceGroupManagers.insert</tt>
--   method which the <a>InstanceGroupManagersInsert</a> request conforms
--   to.
type InstanceGroupManagersInsertResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (QueryParam "size" (Textual Int32) :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstanceGroupManager :> Post '[JSON] Operation)))))))))

-- | Creates a value of <a>InstanceGroupManagersInsert</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>igmiProject</a></li>
--   <li><a>igmiSize</a></li>
--   <li><a>igmiZone</a></li>
--   <li><a>igmiPayload</a></li>
--   </ul>
instanceGroupManagersInsert :: Text -> Int32 -> Text -> InstanceGroupManager -> InstanceGroupManagersInsert

-- | Creates an instance group manager, as well as the instance group and
--   the specified number of instances.
--   
--   <i>See:</i> <a>instanceGroupManagersInsert</a> smart constructor.
data InstanceGroupManagersInsert

-- | The Google Developers Console project name.
igmiProject :: Lens' InstanceGroupManagersInsert Text

-- | Number of instances that should exist.
igmiSize :: Lens' InstanceGroupManagersInsert Int32

-- | The name of the zone in which the instance group manager resides.
igmiZone :: Lens' InstanceGroupManagersInsert Text

-- | Multipart request metadata.
igmiPayload :: Lens' InstanceGroupManagersInsert InstanceGroupManager
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Insert.InstanceGroupManagersInsert
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Insert.InstanceGroupManagersInsert
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Insert.InstanceGroupManagersInsert
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Insert.InstanceGroupManagersInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Insert.InstanceGroupManagersInsert


-- | Retrieves the list of Instance Group Manager resources contained
--   within the specified zone.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.instanceGroupManagers.list</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.List

-- | A resource alias for <tt>replicapool.instanceGroupManagers.list</tt>
--   method which the <a>InstanceGroupManagersList</a> request conforms to.
type InstanceGroupManagersListResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] InstanceGroupManagerList))))))))))

-- | Creates a value of <a>InstanceGroupManagersList</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>igmlProject</a></li>
--   <li><a>igmlZone</a></li>
--   <li><a>igmlFilter</a></li>
--   <li><a>igmlPageToken</a></li>
--   <li><a>igmlMaxResults</a></li>
--   </ul>
instanceGroupManagersList :: Text -> Text -> InstanceGroupManagersList

-- | Retrieves the list of Instance Group Manager resources contained
--   within the specified zone.
--   
--   <i>See:</i> <a>instanceGroupManagersList</a> smart constructor.
data InstanceGroupManagersList

-- | The Google Developers Console project name.
igmlProject :: Lens' InstanceGroupManagersList Text

-- | The name of the zone in which the instance group manager resides.
igmlZone :: Lens' InstanceGroupManagersList Text

-- | Optional. Filter expression for filtering listed resources.
igmlFilter :: Lens' InstanceGroupManagersList (Maybe Text)

-- | Optional. Tag returned by a previous list request truncated by
--   maxResults. Used to continue a previous list request.
igmlPageToken :: Lens' InstanceGroupManagersList (Maybe Text)

-- | Optional. Maximum count of results to be returned. Maximum value is
--   500 and default value is 500.
igmlMaxResults :: Lens' InstanceGroupManagersList Word32
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.List.InstanceGroupManagersList
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.List.InstanceGroupManagersList
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.List.InstanceGroupManagersList
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.List.InstanceGroupManagersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.List.InstanceGroupManagersList


-- | Recreates the specified instances. The instances are deleted, then
--   recreated using the instance group manager's current instance
--   template.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for
--   <tt>replicapool.instanceGroupManagers.recreateInstances</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.RecreateInstances

-- | A resource alias for
--   <tt>replicapool.instanceGroupManagers.recreateInstances</tt> method
--   which the <a>InstanceGroupManagersRecreateInstances</a> request
--   conforms to.
type InstanceGroupManagersRecreateInstancesResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> ("recreateInstances" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstanceGroupManagersRecreateInstancesRequest :> Post '[JSON] Operation))))))))))

-- | Creates a value of <a>InstanceGroupManagersRecreateInstances</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>igmriProject</a></li>
--   <li><a>igmriInstanceGroupManager</a></li>
--   <li><a>igmriZone</a></li>
--   <li><a>igmriPayload</a></li>
--   </ul>
instanceGroupManagersRecreateInstances :: Text -> Text -> Text -> InstanceGroupManagersRecreateInstancesRequest -> InstanceGroupManagersRecreateInstances

-- | Recreates the specified instances. The instances are deleted, then
--   recreated using the instance group manager's current instance
--   template.
--   
--   <i>See:</i> <a>instanceGroupManagersRecreateInstances</a> smart
--   constructor.
data InstanceGroupManagersRecreateInstances

-- | The Google Developers Console project name.
igmriProject :: Lens' InstanceGroupManagersRecreateInstances Text

-- | The name of the instance group manager.
igmriInstanceGroupManager :: Lens' InstanceGroupManagersRecreateInstances Text

-- | The name of the zone in which the instance group manager resides.
igmriZone :: Lens' InstanceGroupManagersRecreateInstances Text

-- | Multipart request metadata.
igmriPayload :: Lens' InstanceGroupManagersRecreateInstances InstanceGroupManagersRecreateInstancesRequest
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.RecreateInstances.InstanceGroupManagersRecreateInstances
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.RecreateInstances.InstanceGroupManagersRecreateInstances
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.RecreateInstances.InstanceGroupManagersRecreateInstances
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.RecreateInstances.InstanceGroupManagersRecreateInstances
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.RecreateInstances.InstanceGroupManagersRecreateInstances


-- | Resizes the managed instance group up or down. If resized up, new
--   instances are created using the current instance template. If resized
--   down, instances are removed in the order outlined in Resizing a
--   managed instance group.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.instanceGroupManagers.resize</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Resize

-- | A resource alias for <tt>replicapool.instanceGroupManagers.resize</tt>
--   method which the <a>InstanceGroupManagersResize</a> request conforms
--   to.
type InstanceGroupManagersResizeResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> ("resize" :> (QueryParam "size" (Textual Int32) :> (QueryParam "alt" AltJSON :> Post '[JSON] Operation))))))))))

-- | Creates a value of <a>InstanceGroupManagersResize</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>igmrProject</a></li>
--   <li><a>igmrSize</a></li>
--   <li><a>igmrInstanceGroupManager</a></li>
--   <li><a>igmrZone</a></li>
--   </ul>
instanceGroupManagersResize :: Text -> Int32 -> Text -> Text -> InstanceGroupManagersResize

-- | Resizes the managed instance group up or down. If resized up, new
--   instances are created using the current instance template. If resized
--   down, instances are removed in the order outlined in Resizing a
--   managed instance group.
--   
--   <i>See:</i> <a>instanceGroupManagersResize</a> smart constructor.
data InstanceGroupManagersResize

-- | The Google Developers Console project name.
igmrProject :: Lens' InstanceGroupManagersResize Text

-- | Number of instances that should exist in this Instance Group Manager.
igmrSize :: Lens' InstanceGroupManagersResize Int32

-- | The name of the instance group manager.
igmrInstanceGroupManager :: Lens' InstanceGroupManagersResize Text

-- | The name of the zone in which the instance group manager resides.
igmrZone :: Lens' InstanceGroupManagersResize Text
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Resize.InstanceGroupManagersResize
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Resize.InstanceGroupManagersResize
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Resize.InstanceGroupManagersResize
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Resize.InstanceGroupManagersResize
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.Resize.InstanceGroupManagersResize


-- | Sets the instance template to use when creating new instances in this
--   group. Existing instances are not affected.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for
--   <tt>replicapool.instanceGroupManagers.setInstanceTemplate</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetInstanceTemplate

-- | A resource alias for
--   <tt>replicapool.instanceGroupManagers.setInstanceTemplate</tt> method
--   which the <a>InstanceGroupManagersSetInstanceTemplate</a> request
--   conforms to.
type InstanceGroupManagersSetInstanceTemplateResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> ("setInstanceTemplate" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstanceGroupManagersSetInstanceTemplateRequest :> Post '[JSON] Operation))))))))))

-- | Creates a value of <a>InstanceGroupManagersSetInstanceTemplate</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>igmsitProject</a></li>
--   <li><a>igmsitInstanceGroupManager</a></li>
--   <li><a>igmsitZone</a></li>
--   <li><a>igmsitPayload</a></li>
--   </ul>
instanceGroupManagersSetInstanceTemplate :: Text -> Text -> Text -> InstanceGroupManagersSetInstanceTemplateRequest -> InstanceGroupManagersSetInstanceTemplate

-- | Sets the instance template to use when creating new instances in this
--   group. Existing instances are not affected.
--   
--   <i>See:</i> <a>instanceGroupManagersSetInstanceTemplate</a> smart
--   constructor.
data InstanceGroupManagersSetInstanceTemplate

-- | The Google Developers Console project name.
igmsitProject :: Lens' InstanceGroupManagersSetInstanceTemplate Text

-- | The name of the instance group manager.
igmsitInstanceGroupManager :: Lens' InstanceGroupManagersSetInstanceTemplate Text

-- | The name of the zone in which the instance group manager resides.
igmsitZone :: Lens' InstanceGroupManagersSetInstanceTemplate Text

-- | Multipart request metadata.
igmsitPayload :: Lens' InstanceGroupManagersSetInstanceTemplate InstanceGroupManagersSetInstanceTemplateRequest
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetInstanceTemplate.InstanceGroupManagersSetInstanceTemplate
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetInstanceTemplate.InstanceGroupManagersSetInstanceTemplate
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetInstanceTemplate.InstanceGroupManagersSetInstanceTemplate
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetInstanceTemplate.InstanceGroupManagersSetInstanceTemplate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetInstanceTemplate.InstanceGroupManagersSetInstanceTemplate


-- | Modifies the target pools to which all new instances in this group are
--   assigned. Existing instances in the group are not affected.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for
--   <tt>replicapool.instanceGroupManagers.setTargetPools</tt>.
module Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetTargetPools

-- | A resource alias for
--   <tt>replicapool.instanceGroupManagers.setTargetPools</tt> method which
--   the <a>InstanceGroupManagersSetTargetPools</a> request conforms to.
type InstanceGroupManagersSetTargetPoolsResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("instanceGroupManagers" :> (Capture "instanceGroupManager" Text :> ("setTargetPools" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] InstanceGroupManagersSetTargetPoolsRequest :> Post '[JSON] Operation))))))))))

-- | Creates a value of <a>InstanceGroupManagersSetTargetPools</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>igmstpProject</a></li>
--   <li><a>igmstpInstanceGroupManager</a></li>
--   <li><a>igmstpZone</a></li>
--   <li><a>igmstpPayload</a></li>
--   </ul>
instanceGroupManagersSetTargetPools :: Text -> Text -> Text -> InstanceGroupManagersSetTargetPoolsRequest -> InstanceGroupManagersSetTargetPools

-- | Modifies the target pools to which all new instances in this group are
--   assigned. Existing instances in the group are not affected.
--   
--   <i>See:</i> <a>instanceGroupManagersSetTargetPools</a> smart
--   constructor.
data InstanceGroupManagersSetTargetPools

-- | The Google Developers Console project name.
igmstpProject :: Lens' InstanceGroupManagersSetTargetPools Text

-- | The name of the instance group manager.
igmstpInstanceGroupManager :: Lens' InstanceGroupManagersSetTargetPools Text

-- | The name of the zone in which the instance group manager resides.
igmstpZone :: Lens' InstanceGroupManagersSetTargetPools Text

-- | Multipart request metadata.
igmstpPayload :: Lens' InstanceGroupManagersSetTargetPools InstanceGroupManagersSetTargetPoolsRequest
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetTargetPools.InstanceGroupManagersSetTargetPools
instance Data.Data.Data Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetTargetPools.InstanceGroupManagersSetTargetPools
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetTargetPools.InstanceGroupManagersSetTargetPools
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetTargetPools.InstanceGroupManagersSetTargetPools
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.InstanceGroupManagers.SetTargetPools.InstanceGroupManagersSetTargetPools


-- | Retrieves the specified zone-specific operation resource.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.zoneOperations.get</tt>.
module Network.Google.Resource.ReplicaPool.ZoneOperations.Get

-- | A resource alias for <tt>replicapool.zoneOperations.get</tt> method
--   which the <a>ZoneOperationsGet</a> request conforms to.
type ZoneOperationsGetResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("operations" :> (Capture "operation" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Operation))))))))

-- | Creates a value of <a>ZoneOperationsGet</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>zogProject</a></li>
--   <li><a>zogOperation</a></li>
--   <li><a>zogZone</a></li>
--   </ul>
zoneOperationsGet :: Text -> Text -> Text -> ZoneOperationsGet

-- | Retrieves the specified zone-specific operation resource.
--   
--   <i>See:</i> <a>zoneOperationsGet</a> smart constructor.
data ZoneOperationsGet

-- | Name of the project scoping this request.
zogProject :: Lens' ZoneOperationsGet Text

-- | Name of the operation resource to return.
zogOperation :: Lens' ZoneOperationsGet Text

-- | Name of the zone scoping this request.
zogZone :: Lens' ZoneOperationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.ZoneOperations.Get.ZoneOperationsGet
instance Data.Data.Data Network.Google.Resource.ReplicaPool.ZoneOperations.Get.ZoneOperationsGet
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.ZoneOperations.Get.ZoneOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.ZoneOperations.Get.ZoneOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.ZoneOperations.Get.ZoneOperationsGet


-- | Retrieves the list of operation resources contained within the
--   specified zone.
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a> for <tt>replicapool.zoneOperations.list</tt>.
module Network.Google.Resource.ReplicaPool.ZoneOperations.List

-- | A resource alias for <tt>replicapool.zoneOperations.list</tt> method
--   which the <a>ZoneOperationsList</a> request conforms to.
type ZoneOperationsListResource = "replicapool" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("operations" :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] OperationList))))))))))

-- | Creates a value of <a>ZoneOperationsList</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>zolProject</a></li>
--   <li><a>zolZone</a></li>
--   <li><a>zolFilter</a></li>
--   <li><a>zolPageToken</a></li>
--   <li><a>zolMaxResults</a></li>
--   </ul>
zoneOperationsList :: Text -> Text -> ZoneOperationsList

-- | Retrieves the list of operation resources contained within the
--   specified zone.
--   
--   <i>See:</i> <a>zoneOperationsList</a> smart constructor.
data ZoneOperationsList

-- | Name of the project scoping this request.
zolProject :: Lens' ZoneOperationsList Text

-- | Name of the zone scoping this request.
zolZone :: Lens' ZoneOperationsList Text

-- | Optional. Filter expression for filtering listed resources.
zolFilter :: Lens' ZoneOperationsList (Maybe Text)

-- | Optional. Tag returned by a previous list request truncated by
--   maxResults. Used to continue a previous list request.
zolPageToken :: Lens' ZoneOperationsList (Maybe Text)

-- | Optional. Maximum count of results to be returned. Maximum value is
--   500 and default value is 500.
zolMaxResults :: Lens' ZoneOperationsList Word32
instance GHC.Generics.Generic Network.Google.Resource.ReplicaPool.ZoneOperations.List.ZoneOperationsList
instance Data.Data.Data Network.Google.Resource.ReplicaPool.ZoneOperations.List.ZoneOperationsList
instance GHC.Show.Show Network.Google.Resource.ReplicaPool.ZoneOperations.List.ZoneOperationsList
instance GHC.Classes.Eq Network.Google.Resource.ReplicaPool.ZoneOperations.List.ZoneOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.ReplicaPool.ZoneOperations.List.ZoneOperationsList


-- | <ul>
--   <li><i>Deprecated. Please use Instance Group Manager in Compute
--   API</i> Provides groups of homogenous Compute Engine instances.</li>
--   </ul>
--   
--   <i>See:</i> <a>Google Compute Engine Instance Group Manager API
--   Reference</a>
module Network.Google.ReplicaPool

-- | Default request referring to version <tt>v1beta2</tt> of the Google
--   Compute Engine Instance Group Manager API. This contains the host and
--   root path used as a starting point for constructing service requests.
replicaPoolService :: ServiceConfig

-- | View and manage your Google Compute Engine resources
computeScope :: Proxy '["https://www.googleapis.com/auth/compute"]

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

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

-- | View your Google Compute Engine resources
computeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/compute.readonly"]

-- | Represents the entirety of the methods and resources available for the
--   Google Compute Engine Instance Group Manager API service.
type ReplicaPoolAPI = ZoneOperationsListResource :<|> (ZoneOperationsGetResource :<|> (InstanceGroupManagersSetTargetPoolsResource :<|> (InstanceGroupManagersInsertResource :<|> (InstanceGroupManagersResizeResource :<|> (InstanceGroupManagersListResource :<|> (InstanceGroupManagersAbandonInstancesResource :<|> (InstanceGroupManagersSetInstanceTemplateResource :<|> (InstanceGroupManagersGetResource :<|> (InstanceGroupManagersDeleteInstancesResource :<|> (InstanceGroupManagersDeleteResource :<|> InstanceGroupManagersRecreateInstancesResource))))))))))
data OperationWarningsItemDataItem

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

-- | <ul>
--   <li><i>Output Only</i> Metadata value for this warning.</li>
--   </ul>
owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Metadata key for this warning.</li>
--   </ul>
owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)
data InstanceGroupManagersAbandonInstancesRequest

-- | Creates a value of <a>InstanceGroupManagersAbandonInstancesRequest</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>igmairInstances</a></li>
--   </ul>
instanceGroupManagersAbandonInstancesRequest :: InstanceGroupManagersAbandonInstancesRequest

-- | The names of one or more instances to abandon. For example: {
--   'instances': [ 'instance-c3po', 'instance-r2d2' ] }
igmairInstances :: Lens' InstanceGroupManagersAbandonInstancesRequest [Text]
data InstanceGroupManagersSetInstanceTemplateRequest

-- | Creates a value of
--   <a>InstanceGroupManagersSetInstanceTemplateRequest</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>igmsitrInstanceTemplate</a></li>
--   </ul>
instanceGroupManagersSetInstanceTemplateRequest :: InstanceGroupManagersSetInstanceTemplateRequest

-- | The full URL to an Instance Template from which all new instances will
--   be created.
igmsitrInstanceTemplate :: Lens' InstanceGroupManagersSetInstanceTemplateRequest (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The warning type identifier for this
--   warning.</li>
--   </ul>
data OperationWarningsItemCode

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-- | A token used to continue a truncated list request (output only).
olNextPageToken :: Lens' OperationList (Maybe Text)

-- | Type of resource.
olKind :: Lens' OperationList Text

-- | The operation resources.
olItems :: Lens' OperationList [Operation]

-- | Server defined URL for this resource (output only).
olSelfLink :: Lens' OperationList (Maybe Text)

-- | Unique identifier for the resource; defined by the server (output
--   only).
olId :: Lens' OperationList (Maybe Text)
data InstanceGroupManagerList

-- | Creates a value of <a>InstanceGroupManagerList</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>igmlNextPageToken</a></li>
--   <li><a>igmlKind</a></li>
--   <li><a>igmlItems</a></li>
--   <li><a>igmlSelfLink</a></li>
--   <li><a>igmlId</a></li>
--   </ul>
instanceGroupManagerList :: InstanceGroupManagerList

-- | A token used to continue a truncated list request (output only).
igmlNextPageToken :: Lens' InstanceGroupManagerList (Maybe Text)

-- | Type of resource.
igmlKind :: Lens' InstanceGroupManagerList Text

-- | A list of instance resources.
igmlItems :: Lens' InstanceGroupManagerList [InstanceGroupManager]

-- | Server defined URL for this resource (output only).
igmlSelfLink :: Lens' InstanceGroupManagerList (Maybe Text)

-- | Unique identifier for the resource; defined by the server (output
--   only).
igmlId :: Lens' InstanceGroupManagerList (Maybe Text)

-- | The action to perform when an instance becomes unhealthy. Possible
--   values are RECREATE or REBOOT. RECREATE replaces an unhealthy instance
--   with a new instance that is based on the instance template for this
--   managed instance group. REBOOT performs a soft reboot on an instance.
--   If the instance cannot reboot, the instance performs a hard restart.
data ReplicaPoolAutoHealingPolicyActionType

-- | <pre>
--   REBOOT
--   </pre>
Reboot :: ReplicaPoolAutoHealingPolicyActionType

-- | <pre>
--   RECREATE
--   </pre>
Recreate :: ReplicaPoolAutoHealingPolicyActionType

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

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

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

-- | <ul>
--   <li><i>Output Only</i> Status of the operation.</li>
--   </ul>
oStatus :: Lens' Operation (Maybe OperationStatus)

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

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

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

-- | <ul>
--   <li><i>Output only</i> Type of the resource.</li>
--   </ul>
oKind :: Lens' Operation Text

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

-- | <ul>
--   <li><i>Output only</i> If operation fails, the HTTP error message
--   returned.</li>
--   </ul>
oHTTPErrorMessage :: Lens' Operation (Maybe Text)

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

-- | <ul>
--   <li><i>Output Only</i> If there are issues with this operation, a
--   warning is returned.</li>
--   </ul>
oWarnings :: Lens' Operation [OperationWarningsItem]

-- | <ul>
--   <li><i>Output only</i> If operation fails, the HTTP error status code
--   returned.</li>
--   </ul>
oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)

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

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

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

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

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

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

-- | <ul>
--   <li><i>Output Only</i> Unique identifier for the resource, generated
--   by the server.</li>
--   </ul>
oId :: Lens' Operation (Maybe Word64)

-- | <ul>
--   <li><i>Output only</i> Type of the operation. Operations include
--   insert, update, and delete.</li>
--   </ul>
oOperationType :: Lens' Operation (Maybe Text)

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

-- | <ul>
--   <li><i>Output only</i> URL of the resource the operation is
--   mutating.</li>
--   </ul>
oTargetLink :: Lens' Operation (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> An optional identifier specified by the client
--   when the mutation was initiated. Must be unique for all operation
--   resources in the project.</li>
--   </ul>
oClientOperationId :: Lens' Operation (Maybe Text)

-- | An Instance Group Manager resource.
--   
--   <i>See:</i> <a>instanceGroupManager</a> smart constructor.
data InstanceGroupManager

-- | Creates a value of <a>InstanceGroupManager</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>igmCurrentSize</a></li>
--   <li><a>igmGroup</a></li>
--   <li><a>igmKind</a></li>
--   <li><a>igmFingerprint</a></li>
--   <li><a>igmBaseInstanceName</a></li>
--   <li><a>igmAutoHealingPolicies</a></li>
--   <li><a>igmInstanceTemplate</a></li>
--   <li><a>igmTargetSize</a></li>
--   <li><a>igmSelfLink</a></li>
--   <li><a>igmName</a></li>
--   <li><a>igmCreationTimestamp</a></li>
--   <li><a>igmId</a></li>
--   <li><a>igmTargetPools</a></li>
--   <li><a>igmDescription</a></li>
--   </ul>
instanceGroupManager :: InstanceGroupManager

-- | <ul>
--   <li><i>Output only</i> The number of instances that currently exist
--   and are a part of this group. This includes instances that are
--   starting but are not yet RUNNING, and instances that are in the
--   process of being deleted or abandoned.</li>
--   </ul>
igmCurrentSize :: Lens' InstanceGroupManager (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The full URL of the instance group created by
--   the manager. This group contains all of the instances being managed,
--   and cannot contain non-managed instances.</li>
--   </ul>
igmGroup :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The resource type. Always
--   replicapool#instanceGroupManager.</li>
--   </ul>
igmKind :: Lens' InstanceGroupManager Text

-- | <ul>
--   <li><i>Output only</i> Fingerprint of the instance group manager. This
--   field is used for optimistic locking. An up-to-date fingerprint must
--   be provided in order to modify the Instance Group Manager
--   resource.</li>
--   </ul>
igmFingerprint :: Lens' InstanceGroupManager (Maybe ByteString)

-- | The base instance name to use for instances in this group. The value
--   must be a valid RFC1035 name. Supported characters are lowercase
--   letters, numbers, and hyphens (-). Instances are named by appending a
--   hyphen and a random four-character string to the base instance name.
igmBaseInstanceName :: Lens' InstanceGroupManager (Maybe Text)

-- | The autohealing policy for this managed instance group. You can
--   specify only one value.
igmAutoHealingPolicies :: Lens' InstanceGroupManager [ReplicaPoolAutoHealingPolicy]

-- | The full URL to an instance template from which all new instances will
--   be created.
igmInstanceTemplate :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The number of instances that the manager is
--   attempting to maintain. Deleting or abandoning instances affects this
--   number, as does resizing the group.</li>
--   </ul>
igmTargetSize :: Lens' InstanceGroupManager (Maybe Int32)

-- | <ul>
--   <li><i>Output only</i> The fully qualified URL for this resource.</li>
--   </ul>
igmSelfLink :: Lens' InstanceGroupManager (Maybe Text)

-- | The name of the instance group manager. Must be 1-63 characters long
--   and comply with RFC1035. Supported characters include lowercase
--   letters, numbers, and hyphens.
igmName :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> The time the instance group manager was
--   created, in RFC3339 text format.</li>
--   </ul>
igmCreationTimestamp :: Lens' InstanceGroupManager (Maybe Text)

-- | <ul>
--   <li><i>Output only</i> A server-assigned unique identifier for the
--   resource.</li>
--   </ul>
igmId :: Lens' InstanceGroupManager (Maybe Word64)

-- | The full URL of all target pools to which new instances in the group
--   are added. Updating the target pool values does not affect existing
--   instances.
igmTargetPools :: Lens' InstanceGroupManager [Text]

-- | An optional textual description of the instance group manager.
igmDescription :: Lens' InstanceGroupManager (Maybe Text)
data ReplicaPoolAutoHealingPolicy

-- | Creates a value of <a>ReplicaPoolAutoHealingPolicy</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>rpahpHealthCheck</a></li>
--   <li><a>rpahpActionType</a></li>
--   </ul>
replicaPoolAutoHealingPolicy :: ReplicaPoolAutoHealingPolicy

-- | The URL for the HealthCheck that signals autohealing.
rpahpHealthCheck :: Lens' ReplicaPoolAutoHealingPolicy (Maybe Text)

-- | The action to perform when an instance becomes unhealthy. Possible
--   values are RECREATE or REBOOT. RECREATE replaces an unhealthy instance
--   with a new instance that is based on the instance template for this
--   managed instance group. REBOOT performs a soft reboot on an instance.
--   If the instance cannot reboot, the instance performs a hard restart.
rpahpActionType :: Lens' ReplicaPoolAutoHealingPolicy (Maybe ReplicaPoolAutoHealingPolicyActionType)
data InstanceGroupManagersRecreateInstancesRequest

-- | Creates a value of
--   <a>InstanceGroupManagersRecreateInstancesRequest</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>igmrirInstances</a></li>
--   </ul>
instanceGroupManagersRecreateInstancesRequest :: InstanceGroupManagersRecreateInstancesRequest

-- | The names of one or more instances to recreate. For example: {
--   'instances': [ 'instance-c3po', 'instance-r2d2' ] }
igmrirInstances :: Lens' InstanceGroupManagersRecreateInstancesRequest [Text]

-- | <ul>
--   <li><i>Output Only</i> Status of the operation.</li>
--   </ul>
data OperationStatus

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

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

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

-- | Creates a value of <a>InstanceGroupManagersDeleteInstancesRequest</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>igmdirInstances</a></li>
--   </ul>
instanceGroupManagersDeleteInstancesRequest :: InstanceGroupManagersDeleteInstancesRequest

-- | Names of instances to delete. Example: 'instance-foo', 'instance-bar'
igmdirInstances :: Lens' InstanceGroupManagersDeleteInstancesRequest [Text]

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

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

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

-- | Creates a value of <a>InstanceGroupManagersSetTargetPoolsRequest</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>igmstprFingerprint</a></li>
--   <li><a>igmstprTargetPools</a></li>
--   </ul>
instanceGroupManagersSetTargetPoolsRequest :: InstanceGroupManagersSetTargetPoolsRequest

-- | The current fingerprint of the Instance Group Manager resource. If
--   this does not match the server-side fingerprint of the resource, then
--   the request will be rejected.
igmstprFingerprint :: Lens' InstanceGroupManagersSetTargetPoolsRequest (Maybe ByteString)

-- | A list of fully-qualified URLs to existing Target Pool resources. New
--   instances in the Instance Group Manager will be added to the specified
--   target pools; existing instances are not affected.
igmstprTargetPools :: Lens' InstanceGroupManagersSetTargetPoolsRequest [Text]
data OperationErrorErrorsItem

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

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

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

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

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

-- | <ul>
--   <li><i>Output only</i> Metadata for this warning in key:value
--   format.</li>
--   </ul>
owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]

-- | <ul>
--   <li><i>Output only</i> The warning type identifier for this
--   warning.</li>
--   </ul>
owiCode :: Lens' OperationWarningsItem (Maybe OperationWarningsItemCode)

-- | <ul>
--   <li><i>Output only</i> Optional human-readable details for this
--   warning.</li>
--   </ul>
owiMessage :: Lens' OperationWarningsItem (Maybe Text)
