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


-- | Google Compute Engine Autoscaler SDK.
--   
--   The Google Compute Engine Autoscaler API provides autoscaling for
--   groups of Cloud VMs.
--   
--   <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-autoscaler
@version 0.3.0


module Network.Google.Autoscaler.Types

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

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

-- | 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
owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)
owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)
data DeprecationStatus

-- | Creates a value of <a>DeprecationStatus</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>dsState</a></li>
--   <li><a>dsDeleted</a></li>
--   <li><a>dsReplacement</a></li>
--   <li><a>dsObsolete</a></li>
--   <li><a>dsDeprecated</a></li>
--   </ul>
deprecationStatus :: DeprecationStatus
dsState :: Lens' DeprecationStatus (Maybe Text)
dsDeleted :: Lens' DeprecationStatus (Maybe Text)
dsReplacement :: Lens' DeprecationStatus (Maybe Text)
dsObsolete :: Lens' DeprecationStatus (Maybe Text)
dsDeprecated :: Lens' DeprecationStatus (Maybe Text)

-- | Custom utilization metric policy.
--   
--   <i>See:</i> <a>autoscalingPolicyCustomMetricUtilization</a> smart
--   constructor.
data AutoscalingPolicyCustomMetricUtilization

-- | Creates a value of <a>AutoscalingPolicyCustomMetricUtilization</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>apcmuUtilizationTarget</a></li>
--   <li><a>apcmuMetric</a></li>
--   <li><a>apcmuUtilizationTargetType</a></li>
--   </ul>
autoscalingPolicyCustomMetricUtilization :: AutoscalingPolicyCustomMetricUtilization

-- | Target value of the metric which Autoscaler should maintain. Must be a
--   positive value.
apcmuUtilizationTarget :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Double)

-- | Identifier of the metric. It should be a Cloud Monitoring metric. The
--   metric can not have negative values. The metric should be an
--   utilization metric (increasing number of VMs handling requests x times
--   should reduce average value of the metric roughly x times). For
--   example you could use:
--   compute.googleapis.com/instance/network/received_bytes_count.
apcmuMetric :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Text)

-- | Defines type in which utilization_target is expressed.
apcmuUtilizationTargetType :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Text)
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
olNextPageToken :: Lens' OperationList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always compute#operations for
--   Operations resource.</li>
--   </ul>
olKind :: Lens' OperationList Text
olItems :: Lens' OperationList [Operation]
olSelfLink :: Lens' OperationList (Maybe Text)
olId :: Lens' OperationList (Maybe Text)
data Operation

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

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always compute#operation
--   for Operation resources.</li>
--   </ul>
oKind :: Lens' Operation Text
oError :: Lens' Operation (Maybe OperationError)
oHTTPErrorMessage :: Lens' Operation (Maybe Text)
oZone :: Lens' Operation (Maybe Text)
oWarnings :: Lens' Operation [OperationWarningsItem]
oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)
oUser :: Lens' Operation (Maybe Text)
oSelfLink :: Lens' Operation (Maybe Text)
oName :: Lens' Operation (Maybe Text)
oStatusMessage :: Lens' Operation (Maybe Text)
oCreationTimestamp :: Lens' Operation (Maybe Text)
oEndTime :: Lens' Operation (Maybe Text)
oId :: Lens' Operation (Maybe Word64)
oOperationType :: Lens' Operation (Maybe Text)
oRegion :: Lens' Operation (Maybe Text)
oDescription :: Lens' Operation (Maybe Text)
oTargetLink :: Lens' Operation (Maybe Text)
oClientOperationId :: Lens' Operation (Maybe Text)

-- | Load balancing utilization policy.
--   
--   <i>See:</i> <a>autoscalingPolicyLoadBalancingUtilization</a> smart
--   constructor.
data AutoscalingPolicyLoadBalancingUtilization

-- | Creates a value of <a>AutoscalingPolicyLoadBalancingUtilization</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>aplbuUtilizationTarget</a></li>
--   </ul>
autoscalingPolicyLoadBalancingUtilization :: AutoscalingPolicyLoadBalancingUtilization

-- | Fraction of backend capacity utilization (set in HTTP load balancing
--   configuration) that Autoscaler should maintain. Must be a positive
--   float value. If not defined, the default is 0.8. For example if your
--   maxRatePerInstance capacity (in HTTP Load Balancing configuration) is
--   set at 10 and you would like to keep number of instances such that
--   each instance receives 7 QPS on average, set this to 0.7.
aplbuUtilizationTarget :: Lens' AutoscalingPolicyLoadBalancingUtilization (Maybe Double)
data Zone

-- | Creates a value of <a>Zone</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>zStatus</a></li>
--   <li><a>zKind</a></li>
--   <li><a>zSelfLink</a></li>
--   <li><a>zName</a></li>
--   <li><a>zCreationTimestamp</a></li>
--   <li><a>zId</a></li>
--   <li><a>zRegion</a></li>
--   <li><a>zDescription</a></li>
--   <li><a>zDeprecated</a></li>
--   </ul>
zone :: Zone
zStatus :: Lens' Zone (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always compute#zone for
--   zones.</li>
--   </ul>
zKind :: Lens' Zone Text
zSelfLink :: Lens' Zone (Maybe Text)
zName :: Lens' Zone (Maybe Text)
zCreationTimestamp :: Lens' Zone (Maybe Text)
zId :: Lens' Zone (Maybe Word64)
zRegion :: Lens' Zone (Maybe Text)
zDescription :: Lens' Zone (Maybe Text)
zDeprecated :: Lens' Zone (Maybe DeprecationStatus)
data ZoneList

-- | Creates a value of <a>ZoneList</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>zlNextPageToken</a></li>
--   <li><a>zlKind</a></li>
--   <li><a>zlItems</a></li>
--   <li><a>zlSelfLink</a></li>
--   <li><a>zlId</a></li>
--   </ul>
zoneList :: ZoneList
zlNextPageToken :: Lens' ZoneList (Maybe Text)

-- | Type of resource.
zlKind :: Lens' ZoneList Text
zlItems :: Lens' ZoneList [Zone]

-- | <ul>
--   <li><i>Output Only</i> Server-defined URL for this resource.</li>
--   </ul>
zlSelfLink :: Lens' ZoneList (Maybe Text)
zlId :: Lens' ZoneList (Maybe Text)
data AutoscalerListResponse

-- | Creates a value of <a>AutoscalerListResponse</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>alrNextPageToken</a></li>
--   <li><a>alrKind</a></li>
--   <li><a>alrItems</a></li>
--   </ul>
autoscalerListResponse :: AutoscalerListResponse

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

-- | Type of resource.
alrKind :: Lens' AutoscalerListResponse Text

-- | Autoscaler resources.
alrItems :: Lens' AutoscalerListResponse [Autoscaler]

-- | Cloud Autoscaler policy.
--   
--   <i>See:</i> <a>autoscalingPolicy</a> smart constructor.
data AutoscalingPolicy

-- | Creates a value of <a>AutoscalingPolicy</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>apCustomMetricUtilizations</a></li>
--   <li><a>apMaxNumReplicas</a></li>
--   <li><a>apCPUUtilization</a></li>
--   <li><a>apLoadBalancingUtilization</a></li>
--   <li><a>apMinNumReplicas</a></li>
--   <li><a>apCoolDownPeriodSec</a></li>
--   </ul>
autoscalingPolicy :: AutoscalingPolicy

-- | Configuration parameters of autoscaling based on custom metric.
apCustomMetricUtilizations :: Lens' AutoscalingPolicy [AutoscalingPolicyCustomMetricUtilization]

-- | The maximum number of replicas that the Autoscaler can scale up to.
apMaxNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)

-- | Configuration parameters of CPU based autoscaling policy.
apCPUUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyCPUUtilization)

-- | Configuration parameters of autoscaling based on load balancer.
apLoadBalancingUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyLoadBalancingUtilization)

-- | The minimum number of replicas that the Autoscaler can scale down to.
apMinNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)

-- | The number of seconds that the Autoscaler should wait between two
--   succeeding changes to the number of virtual machines. You should
--   define an interval that is at least as long as the initialization time
--   of a virtual machine and the time it may take for replica pool to
--   create the virtual machine. The default is 60 seconds.
apCoolDownPeriodSec :: Lens' AutoscalingPolicy (Maybe Int32)
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
oeErrors :: Lens' OperationError [OperationErrorErrorsItem]

-- | Cloud Autoscaler resource.
--   
--   <i>See:</i> <a>autoscaler</a> smart constructor.
data Autoscaler

-- | Creates a value of <a>Autoscaler</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>aKind</a></li>
--   <li><a>aSelfLink</a></li>
--   <li><a>aName</a></li>
--   <li><a>aCreationTimestamp</a></li>
--   <li><a>aAutoscalingPolicy</a></li>
--   <li><a>aId</a></li>
--   <li><a>aDescription</a></li>
--   <li><a>aTarget</a></li>
--   </ul>
autoscaler :: Autoscaler

-- | Type of resource.
aKind :: Lens' Autoscaler Text

-- | <ul>
--   <li><i>Output Only</i> A self-link to the Autoscaler configuration
--   resource.</li>
--   </ul>
aSelfLink :: Lens' Autoscaler (Maybe Text)

-- | Name of the Autoscaler resource. Must be unique per project and zone.
aName :: Lens' Autoscaler (Maybe Text)

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

-- | Configuration parameters for autoscaling algorithm.
aAutoscalingPolicy :: Lens' Autoscaler (Maybe AutoscalingPolicy)

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

-- | An optional textual description of the resource provided by the
--   client.
aDescription :: Lens' Autoscaler (Maybe Text)

-- | URL to the entity which will be autoscaled. Currently the only
--   supported value is ReplicaPool?s URL. Note: it is illegal to specify
--   multiple Autoscalers for the same target.
aTarget :: Lens' Autoscaler (Maybe Text)
data OperationErrorErrorsItem

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

-- | CPU utilization policy.
--   
--   <i>See:</i> <a>autoscalingPolicyCPUUtilization</a> smart constructor.
data AutoscalingPolicyCPUUtilization

-- | Creates a value of <a>AutoscalingPolicyCPUUtilization</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>apcuUtilizationTarget</a></li>
--   </ul>
autoscalingPolicyCPUUtilization :: AutoscalingPolicyCPUUtilization

-- | The target utilization that the Autoscaler should maintain. It is
--   represented as a fraction of used cores. For example: 6 cores used in
--   8-core VM are represented here as 0.75. Must be a float value between
--   (0, 1]. If not defined, the default is 0.8.
apcuUtilizationTarget :: Lens' AutoscalingPolicyCPUUtilization (Maybe Double)
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
owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]
owiCode :: Lens' OperationWarningsItem (Maybe Text)
owiMessage :: Lens' OperationWarningsItem (Maybe Text)


-- | Deletes the specified Autoscaler resource.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.autoscalers.delete</tt>.
module Network.Google.Resource.Autoscaler.Autoscalers.Delete

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

-- | Creates a value of <a>AutoscalersDelete</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>adProject</a></li>
--   <li><a>adZone</a></li>
--   <li><a>adAutoscaler</a></li>
--   </ul>
autoscalersDelete :: Text -> Text -> Text -> AutoscalersDelete

-- | Deletes the specified Autoscaler resource.
--   
--   <i>See:</i> <a>autoscalersDelete</a> smart constructor.
data AutoscalersDelete

-- | Project ID of Autoscaler resource.
adProject :: Lens' AutoscalersDelete Text

-- | Zone name of Autoscaler resource.
adZone :: Lens' AutoscalersDelete Text

-- | Name of the Autoscaler resource.
adAutoscaler :: Lens' AutoscalersDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Autoscalers.Delete.AutoscalersDelete
instance Data.Data.Data Network.Google.Resource.Autoscaler.Autoscalers.Delete.AutoscalersDelete
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Autoscalers.Delete.AutoscalersDelete
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Autoscalers.Delete.AutoscalersDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Autoscalers.Delete.AutoscalersDelete


-- | Gets the specified Autoscaler resource.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.autoscalers.get</tt>.
module Network.Google.Resource.Autoscaler.Autoscalers.Get

-- | A resource alias for <tt>autoscaler.autoscalers.get</tt> method which
--   the <a>AutoscalersGet</a> request conforms to.
type AutoscalersGetResource = "autoscaler" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("autoscalers" :> (Capture "autoscaler" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Autoscaler))))))))

-- | Creates a value of <a>AutoscalersGet</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>agProject</a></li>
--   <li><a>agZone</a></li>
--   <li><a>agAutoscaler</a></li>
--   </ul>
autoscalersGet :: Text -> Text -> Text -> AutoscalersGet

-- | Gets the specified Autoscaler resource.
--   
--   <i>See:</i> <a>autoscalersGet</a> smart constructor.
data AutoscalersGet

-- | Project ID of Autoscaler resource.
agProject :: Lens' AutoscalersGet Text

-- | Zone name of Autoscaler resource.
agZone :: Lens' AutoscalersGet Text

-- | Name of the Autoscaler resource.
agAutoscaler :: Lens' AutoscalersGet Text
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Autoscalers.Get.AutoscalersGet
instance Data.Data.Data Network.Google.Resource.Autoscaler.Autoscalers.Get.AutoscalersGet
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Autoscalers.Get.AutoscalersGet
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Autoscalers.Get.AutoscalersGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Autoscalers.Get.AutoscalersGet


-- | Adds new Autoscaler resource.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.autoscalers.insert</tt>.
module Network.Google.Resource.Autoscaler.Autoscalers.Insert

-- | A resource alias for <tt>autoscaler.autoscalers.insert</tt> method
--   which the <a>AutoscalersInsert</a> request conforms to.
type AutoscalersInsertResource = "autoscaler" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("autoscalers" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Autoscaler :> Post '[JSON] Operation))))))))

-- | Creates a value of <a>AutoscalersInsert</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>aiProject</a></li>
--   <li><a>aiZone</a></li>
--   <li><a>aiPayload</a></li>
--   </ul>
autoscalersInsert :: Text -> Text -> Autoscaler -> AutoscalersInsert

-- | Adds new Autoscaler resource.
--   
--   <i>See:</i> <a>autoscalersInsert</a> smart constructor.
data AutoscalersInsert

-- | Project ID of Autoscaler resource.
aiProject :: Lens' AutoscalersInsert Text

-- | Zone name of Autoscaler resource.
aiZone :: Lens' AutoscalersInsert Text

-- | Multipart request metadata.
aiPayload :: Lens' AutoscalersInsert Autoscaler
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Autoscalers.Insert.AutoscalersInsert
instance Data.Data.Data Network.Google.Resource.Autoscaler.Autoscalers.Insert.AutoscalersInsert
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Autoscalers.Insert.AutoscalersInsert
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Autoscalers.Insert.AutoscalersInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Autoscalers.Insert.AutoscalersInsert


-- | Lists all Autoscaler resources in this zone.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.autoscalers.list</tt>.
module Network.Google.Resource.Autoscaler.Autoscalers.List

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

-- | Creates a value of <a>AutoscalersList</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>alProject</a></li>
--   <li><a>alZone</a></li>
--   <li><a>alFilter</a></li>
--   <li><a>alPageToken</a></li>
--   <li><a>alMaxResults</a></li>
--   </ul>
autoscalersList :: Text -> Text -> AutoscalersList

-- | Lists all Autoscaler resources in this zone.
--   
--   <i>See:</i> <a>autoscalersList</a> smart constructor.
data AutoscalersList

-- | Project ID of Autoscaler resource.
alProject :: Lens' AutoscalersList Text

-- | Zone name of Autoscaler resource.
alZone :: Lens' AutoscalersList Text
alFilter :: Lens' AutoscalersList (Maybe Text)
alPageToken :: Lens' AutoscalersList (Maybe Text)
alMaxResults :: Lens' AutoscalersList Word32
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Autoscalers.List.AutoscalersList
instance Data.Data.Data Network.Google.Resource.Autoscaler.Autoscalers.List.AutoscalersList
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Autoscalers.List.AutoscalersList
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Autoscalers.List.AutoscalersList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Autoscalers.List.AutoscalersList


-- | Update the entire content of the Autoscaler resource. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.autoscalers.patch</tt>.
module Network.Google.Resource.Autoscaler.Autoscalers.Patch

-- | A resource alias for <tt>autoscaler.autoscalers.patch</tt> method
--   which the <a>AutoscalersPatch</a> request conforms to.
type AutoscalersPatchResource = "autoscaler" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("autoscalers" :> (Capture "autoscaler" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Autoscaler :> Patch '[JSON] Operation)))))))))

-- | Creates a value of <a>AutoscalersPatch</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>apProject</a></li>
--   <li><a>apZone</a></li>
--   <li><a>apPayload</a></li>
--   <li><a>apAutoscaler</a></li>
--   </ul>
autoscalersPatch :: Text -> Text -> Autoscaler -> Text -> AutoscalersPatch

-- | Update the entire content of the Autoscaler resource. This method
--   supports patch semantics.
--   
--   <i>See:</i> <a>autoscalersPatch</a> smart constructor.
data AutoscalersPatch

-- | Project ID of Autoscaler resource.
apProject :: Lens' AutoscalersPatch Text

-- | Zone name of Autoscaler resource.
apZone :: Lens' AutoscalersPatch Text

-- | Multipart request metadata.
apPayload :: Lens' AutoscalersPatch Autoscaler

-- | Name of the Autoscaler resource.
apAutoscaler :: Lens' AutoscalersPatch Text
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Autoscalers.Patch.AutoscalersPatch
instance Data.Data.Data Network.Google.Resource.Autoscaler.Autoscalers.Patch.AutoscalersPatch
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Autoscalers.Patch.AutoscalersPatch
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Autoscalers.Patch.AutoscalersPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Autoscalers.Patch.AutoscalersPatch


-- | Update the entire content of the Autoscaler resource.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.autoscalers.update</tt>.
module Network.Google.Resource.Autoscaler.Autoscalers.Update

-- | A resource alias for <tt>autoscaler.autoscalers.update</tt> method
--   which the <a>AutoscalersUpdate</a> request conforms to.
type AutoscalersUpdateResource = "autoscaler" :> ("v1beta2" :> ("projects" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("autoscalers" :> (Capture "autoscaler" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] Autoscaler :> Put '[JSON] Operation)))))))))

-- | Creates a value of <a>AutoscalersUpdate</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>auProject</a></li>
--   <li><a>auZone</a></li>
--   <li><a>auPayload</a></li>
--   <li><a>auAutoscaler</a></li>
--   </ul>
autoscalersUpdate :: Text -> Text -> Autoscaler -> Text -> AutoscalersUpdate

-- | Update the entire content of the Autoscaler resource.
--   
--   <i>See:</i> <a>autoscalersUpdate</a> smart constructor.
data AutoscalersUpdate

-- | Project ID of Autoscaler resource.
auProject :: Lens' AutoscalersUpdate Text

-- | Zone name of Autoscaler resource.
auZone :: Lens' AutoscalersUpdate Text

-- | Multipart request metadata.
auPayload :: Lens' AutoscalersUpdate Autoscaler

-- | Name of the Autoscaler resource.
auAutoscaler :: Lens' AutoscalersUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Autoscalers.Update.AutoscalersUpdate
instance Data.Data.Data Network.Google.Resource.Autoscaler.Autoscalers.Update.AutoscalersUpdate
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Autoscalers.Update.AutoscalersUpdate
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Autoscalers.Update.AutoscalersUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Autoscalers.Update.AutoscalersUpdate


-- | Deletes the specified zone-specific operation resource.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.zoneOperations.delete</tt>.
module Network.Google.Resource.Autoscaler.ZoneOperations.Delete

-- | A resource alias for <tt>autoscaler.zoneOperations.delete</tt> method
--   which the <a>ZoneOperationsDelete</a> request conforms to.
type ZoneOperationsDeleteResource = "autoscaler" :> ("v1beta2" :> (Capture "project" Text :> ("zones" :> (Capture "zone" Text :> ("operations" :> (Capture "operation" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ())))))))

-- | Creates a value of <a>ZoneOperationsDelete</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>zodProject</a></li>
--   <li><a>zodOperation</a></li>
--   <li><a>zodZone</a></li>
--   </ul>
zoneOperationsDelete :: Text -> Text -> Text -> ZoneOperationsDelete

-- | Deletes the specified zone-specific operation resource.
--   
--   <i>See:</i> <a>zoneOperationsDelete</a> smart constructor.
data ZoneOperationsDelete
zodProject :: Lens' ZoneOperationsDelete Text
zodOperation :: Lens' ZoneOperationsDelete Text
zodZone :: Lens' ZoneOperationsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.ZoneOperations.Delete.ZoneOperationsDelete
instance Data.Data.Data Network.Google.Resource.Autoscaler.ZoneOperations.Delete.ZoneOperationsDelete
instance GHC.Show.Show Network.Google.Resource.Autoscaler.ZoneOperations.Delete.ZoneOperationsDelete
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.ZoneOperations.Delete.ZoneOperationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.ZoneOperations.Delete.ZoneOperationsDelete


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

-- | A resource alias for <tt>autoscaler.zoneOperations.get</tt> method
--   which the <a>ZoneOperationsGet</a> request conforms to.
type ZoneOperationsGetResource = "autoscaler" :> ("v1beta2" :> (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
zogProject :: Lens' ZoneOperationsGet Text
zogOperation :: Lens' ZoneOperationsGet Text
zogZone :: Lens' ZoneOperationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.ZoneOperations.Get.ZoneOperationsGet
instance Data.Data.Data Network.Google.Resource.Autoscaler.ZoneOperations.Get.ZoneOperationsGet
instance GHC.Show.Show Network.Google.Resource.Autoscaler.ZoneOperations.Get.ZoneOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.ZoneOperations.Get.ZoneOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.ZoneOperations.Get.ZoneOperationsGet


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

-- | A resource alias for <tt>autoscaler.zoneOperations.list</tt> method
--   which the <a>ZoneOperationsList</a> request conforms to.
type ZoneOperationsListResource = "autoscaler" :> ("v1beta2" :> (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
zolProject :: Lens' ZoneOperationsList Text
zolZone :: Lens' ZoneOperationsList Text
zolFilter :: Lens' ZoneOperationsList (Maybe Text)
zolPageToken :: Lens' ZoneOperationsList (Maybe Text)
zolMaxResults :: Lens' ZoneOperationsList Word32
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.ZoneOperations.List.ZoneOperationsList
instance Data.Data.Data Network.Google.Resource.Autoscaler.ZoneOperations.List.ZoneOperationsList
instance GHC.Show.Show Network.Google.Resource.Autoscaler.ZoneOperations.List.ZoneOperationsList
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.ZoneOperations.List.ZoneOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.ZoneOperations.List.ZoneOperationsList


-- | <ul>
--   <li>- |</li>
--   </ul>
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a> for
--   <tt>autoscaler.zones.list</tt>.
module Network.Google.Resource.Autoscaler.Zones.List

-- | A resource alias for <tt>autoscaler.zones.list</tt> method which the
--   <a>ZonesList</a> request conforms to.
type ZonesListResource = "autoscaler" :> ("v1beta2" :> ("zones" :> (QueryParam "project" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Word32) :> (QueryParam "alt" AltJSON :> Get '[JSON] ZoneList)))))))

-- | Creates a value of <a>ZonesList</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>zlProject</a></li>
--   <li><a>zlFilter</a></li>
--   <li><a>zlPageToken</a></li>
--   <li><a>zlMaxResults</a></li>
--   </ul>
zonesList :: ZonesList

-- | <i>See:</i> <a>zonesList</a> smart constructor.
data ZonesList
zlProject :: Lens' ZonesList (Maybe Text)
zlFilter :: Lens' ZonesList (Maybe Text)
zlPageToken :: Lens' ZonesList (Maybe Text)
zlMaxResults :: Lens' ZonesList Word32
instance GHC.Generics.Generic Network.Google.Resource.Autoscaler.Zones.List.ZonesList
instance Data.Data.Data Network.Google.Resource.Autoscaler.Zones.List.ZonesList
instance GHC.Show.Show Network.Google.Resource.Autoscaler.Zones.List.ZonesList
instance GHC.Classes.Eq Network.Google.Resource.Autoscaler.Zones.List.ZonesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Autoscaler.Zones.List.ZonesList


-- | The Google Compute Engine Autoscaler API provides autoscaling for
--   groups of Cloud VMs.
--   
--   <i>See:</i> <a>Google Compute Engine Autoscaler API Reference</a>
module Network.Google.Autoscaler

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

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

-- | 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 Autoscaler API service.
type AutoscalerAPI = ZonesListResource :<|> (AutoscalersInsertResource :<|> (AutoscalersListResource :<|> (AutoscalersPatchResource :<|> (AutoscalersGetResource :<|> (AutoscalersDeleteResource :<|> (AutoscalersUpdateResource :<|> (ZoneOperationsListResource :<|> (ZoneOperationsGetResource :<|> ZoneOperationsDeleteResource))))))))
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
owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)
owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)
data DeprecationStatus

-- | Creates a value of <a>DeprecationStatus</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>dsState</a></li>
--   <li><a>dsDeleted</a></li>
--   <li><a>dsReplacement</a></li>
--   <li><a>dsObsolete</a></li>
--   <li><a>dsDeprecated</a></li>
--   </ul>
deprecationStatus :: DeprecationStatus
dsState :: Lens' DeprecationStatus (Maybe Text)
dsDeleted :: Lens' DeprecationStatus (Maybe Text)
dsReplacement :: Lens' DeprecationStatus (Maybe Text)
dsObsolete :: Lens' DeprecationStatus (Maybe Text)
dsDeprecated :: Lens' DeprecationStatus (Maybe Text)

-- | Custom utilization metric policy.
--   
--   <i>See:</i> <a>autoscalingPolicyCustomMetricUtilization</a> smart
--   constructor.
data AutoscalingPolicyCustomMetricUtilization

-- | Creates a value of <a>AutoscalingPolicyCustomMetricUtilization</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>apcmuUtilizationTarget</a></li>
--   <li><a>apcmuMetric</a></li>
--   <li><a>apcmuUtilizationTargetType</a></li>
--   </ul>
autoscalingPolicyCustomMetricUtilization :: AutoscalingPolicyCustomMetricUtilization

-- | Target value of the metric which Autoscaler should maintain. Must be a
--   positive value.
apcmuUtilizationTarget :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Double)

-- | Identifier of the metric. It should be a Cloud Monitoring metric. The
--   metric can not have negative values. The metric should be an
--   utilization metric (increasing number of VMs handling requests x times
--   should reduce average value of the metric roughly x times). For
--   example you could use:
--   compute.googleapis.com/instance/network/received_bytes_count.
apcmuMetric :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Text)

-- | Defines type in which utilization_target is expressed.
apcmuUtilizationTargetType :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Text)
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
olNextPageToken :: Lens' OperationList (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of resource. Always compute#operations for
--   Operations resource.</li>
--   </ul>
olKind :: Lens' OperationList Text
olItems :: Lens' OperationList [Operation]
olSelfLink :: Lens' OperationList (Maybe Text)
olId :: Lens' OperationList (Maybe Text)
data Operation

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

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always compute#operation
--   for Operation resources.</li>
--   </ul>
oKind :: Lens' Operation Text
oError :: Lens' Operation (Maybe OperationError)
oHTTPErrorMessage :: Lens' Operation (Maybe Text)
oZone :: Lens' Operation (Maybe Text)
oWarnings :: Lens' Operation [OperationWarningsItem]
oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)
oUser :: Lens' Operation (Maybe Text)
oSelfLink :: Lens' Operation (Maybe Text)
oName :: Lens' Operation (Maybe Text)
oStatusMessage :: Lens' Operation (Maybe Text)
oCreationTimestamp :: Lens' Operation (Maybe Text)
oEndTime :: Lens' Operation (Maybe Text)
oId :: Lens' Operation (Maybe Word64)
oOperationType :: Lens' Operation (Maybe Text)
oRegion :: Lens' Operation (Maybe Text)
oDescription :: Lens' Operation (Maybe Text)
oTargetLink :: Lens' Operation (Maybe Text)
oClientOperationId :: Lens' Operation (Maybe Text)

-- | Load balancing utilization policy.
--   
--   <i>See:</i> <a>autoscalingPolicyLoadBalancingUtilization</a> smart
--   constructor.
data AutoscalingPolicyLoadBalancingUtilization

-- | Creates a value of <a>AutoscalingPolicyLoadBalancingUtilization</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>aplbuUtilizationTarget</a></li>
--   </ul>
autoscalingPolicyLoadBalancingUtilization :: AutoscalingPolicyLoadBalancingUtilization

-- | Fraction of backend capacity utilization (set in HTTP load balancing
--   configuration) that Autoscaler should maintain. Must be a positive
--   float value. If not defined, the default is 0.8. For example if your
--   maxRatePerInstance capacity (in HTTP Load Balancing configuration) is
--   set at 10 and you would like to keep number of instances such that
--   each instance receives 7 QPS on average, set this to 0.7.
aplbuUtilizationTarget :: Lens' AutoscalingPolicyLoadBalancingUtilization (Maybe Double)
data Zone

-- | Creates a value of <a>Zone</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>zStatus</a></li>
--   <li><a>zKind</a></li>
--   <li><a>zSelfLink</a></li>
--   <li><a>zName</a></li>
--   <li><a>zCreationTimestamp</a></li>
--   <li><a>zId</a></li>
--   <li><a>zRegion</a></li>
--   <li><a>zDescription</a></li>
--   <li><a>zDeprecated</a></li>
--   </ul>
zone :: Zone
zStatus :: Lens' Zone (Maybe Text)

-- | <ul>
--   <li><i>Output Only</i> Type of the resource. Always compute#zone for
--   zones.</li>
--   </ul>
zKind :: Lens' Zone Text
zSelfLink :: Lens' Zone (Maybe Text)
zName :: Lens' Zone (Maybe Text)
zCreationTimestamp :: Lens' Zone (Maybe Text)
zId :: Lens' Zone (Maybe Word64)
zRegion :: Lens' Zone (Maybe Text)
zDescription :: Lens' Zone (Maybe Text)
zDeprecated :: Lens' Zone (Maybe DeprecationStatus)
data ZoneList

-- | Creates a value of <a>ZoneList</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>zlNextPageToken</a></li>
--   <li><a>zlKind</a></li>
--   <li><a>zlItems</a></li>
--   <li><a>zlSelfLink</a></li>
--   <li><a>zlId</a></li>
--   </ul>
zoneList :: ZoneList
zlNextPageToken :: Lens' ZoneList (Maybe Text)

-- | Type of resource.
zlKind :: Lens' ZoneList Text
zlItems :: Lens' ZoneList [Zone]

-- | <ul>
--   <li><i>Output Only</i> Server-defined URL for this resource.</li>
--   </ul>
zlSelfLink :: Lens' ZoneList (Maybe Text)
zlId :: Lens' ZoneList (Maybe Text)
data AutoscalerListResponse

-- | Creates a value of <a>AutoscalerListResponse</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>alrNextPageToken</a></li>
--   <li><a>alrKind</a></li>
--   <li><a>alrItems</a></li>
--   </ul>
autoscalerListResponse :: AutoscalerListResponse

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

-- | Type of resource.
alrKind :: Lens' AutoscalerListResponse Text

-- | Autoscaler resources.
alrItems :: Lens' AutoscalerListResponse [Autoscaler]

-- | Cloud Autoscaler policy.
--   
--   <i>See:</i> <a>autoscalingPolicy</a> smart constructor.
data AutoscalingPolicy

-- | Creates a value of <a>AutoscalingPolicy</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>apCustomMetricUtilizations</a></li>
--   <li><a>apMaxNumReplicas</a></li>
--   <li><a>apCPUUtilization</a></li>
--   <li><a>apLoadBalancingUtilization</a></li>
--   <li><a>apMinNumReplicas</a></li>
--   <li><a>apCoolDownPeriodSec</a></li>
--   </ul>
autoscalingPolicy :: AutoscalingPolicy

-- | Configuration parameters of autoscaling based on custom metric.
apCustomMetricUtilizations :: Lens' AutoscalingPolicy [AutoscalingPolicyCustomMetricUtilization]

-- | The maximum number of replicas that the Autoscaler can scale up to.
apMaxNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)

-- | Configuration parameters of CPU based autoscaling policy.
apCPUUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyCPUUtilization)

-- | Configuration parameters of autoscaling based on load balancer.
apLoadBalancingUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyLoadBalancingUtilization)

-- | The minimum number of replicas that the Autoscaler can scale down to.
apMinNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)

-- | The number of seconds that the Autoscaler should wait between two
--   succeeding changes to the number of virtual machines. You should
--   define an interval that is at least as long as the initialization time
--   of a virtual machine and the time it may take for replica pool to
--   create the virtual machine. The default is 60 seconds.
apCoolDownPeriodSec :: Lens' AutoscalingPolicy (Maybe Int32)
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
oeErrors :: Lens' OperationError [OperationErrorErrorsItem]

-- | Cloud Autoscaler resource.
--   
--   <i>See:</i> <a>autoscaler</a> smart constructor.
data Autoscaler

-- | Creates a value of <a>Autoscaler</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>aKind</a></li>
--   <li><a>aSelfLink</a></li>
--   <li><a>aName</a></li>
--   <li><a>aCreationTimestamp</a></li>
--   <li><a>aAutoscalingPolicy</a></li>
--   <li><a>aId</a></li>
--   <li><a>aDescription</a></li>
--   <li><a>aTarget</a></li>
--   </ul>
autoscaler :: Autoscaler

-- | Type of resource.
aKind :: Lens' Autoscaler Text

-- | <ul>
--   <li><i>Output Only</i> A self-link to the Autoscaler configuration
--   resource.</li>
--   </ul>
aSelfLink :: Lens' Autoscaler (Maybe Text)

-- | Name of the Autoscaler resource. Must be unique per project and zone.
aName :: Lens' Autoscaler (Maybe Text)

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

-- | Configuration parameters for autoscaling algorithm.
aAutoscalingPolicy :: Lens' Autoscaler (Maybe AutoscalingPolicy)

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

-- | An optional textual description of the resource provided by the
--   client.
aDescription :: Lens' Autoscaler (Maybe Text)

-- | URL to the entity which will be autoscaled. Currently the only
--   supported value is ReplicaPool?s URL. Note: it is illegal to specify
--   multiple Autoscalers for the same target.
aTarget :: Lens' Autoscaler (Maybe Text)
data OperationErrorErrorsItem

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

-- | CPU utilization policy.
--   
--   <i>See:</i> <a>autoscalingPolicyCPUUtilization</a> smart constructor.
data AutoscalingPolicyCPUUtilization

-- | Creates a value of <a>AutoscalingPolicyCPUUtilization</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>apcuUtilizationTarget</a></li>
--   </ul>
autoscalingPolicyCPUUtilization :: AutoscalingPolicyCPUUtilization

-- | The target utilization that the Autoscaler should maintain. It is
--   represented as a fraction of used cores. For example: 6 cores used in
--   8-core VM are represented here as 0.75. Must be a float value between
--   (0, 1]. If not defined, the default is 0.8.
apcuUtilizationTarget :: Lens' AutoscalingPolicyCPUUtilization (Maybe Double)
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
owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]
owiCode :: Lens' OperationWarningsItem (Maybe Text)
owiMessage :: Lens' OperationWarningsItem (Maybe Text)
