@@ -483,6 +483,102 @@ instance ToJSON OperationWarningsItemDataItem where
483483 [("value" .=) <$> _owidiValue,
484484 ("key" .=) <$> _owidiKey])
485485
486+--
487+-- /See:/ 'instanceGroupManagerUpdatePolicy' smart constructor.
488+data InstanceGroupManagerUpdatePolicy =
489+ InstanceGroupManagerUpdatePolicy'
490+ { _igmupMaxSurge :: !(Maybe FixedOrPercent)
491+ , _igmupMaxUnavailable :: !(Maybe FixedOrPercent)
492+ , _igmupMinimalAction :: !(Maybe InstanceGroupManagerUpdatePolicyMinimalAction)
493+ , _igmupType :: !(Maybe InstanceGroupManagerUpdatePolicyType)
494+ }
495+ deriving (Eq, Show, Data, Typeable, Generic)
496+
497+-- | Creates a value of 'InstanceGroupManagerUpdatePolicy' with the minimum fields required to make a request.
498+--
499+-- Use one of the following lenses to modify other fields as desired:
500+--
501+-- * 'igmupMaxSurge'
502+--
503+-- * 'igmupMaxUnavailable'
504+--
505+-- * 'igmupMinimalAction'
506+--
507+-- * 'igmupType'
508+instanceGroupManagerUpdatePolicy
509+ :: InstanceGroupManagerUpdatePolicy
510+instanceGroupManagerUpdatePolicy =
511+ InstanceGroupManagerUpdatePolicy'
512+ { _igmupMaxSurge = Nothing
513+ , _igmupMaxUnavailable = Nothing
514+ , _igmupMinimalAction = Nothing
515+ , _igmupType = Nothing
516+ }
517+
518+-- | The maximum number of instances that can be created above the specified
519+-- targetSize during the update process. By default, a fixed value of 1 is
520+-- used. This value can be either a fixed number or a percentage if the
521+-- instance group has 10 or more instances. If you set a percentage, the
522+-- number of instances will be rounded up if necessary. At least one of
523+-- either maxSurge or maxUnavailable must be greater than 0. Learn more
524+-- about maxSurge.
525+igmupMaxSurge :: Lens' InstanceGroupManagerUpdatePolicy (Maybe FixedOrPercent)
526+igmupMaxSurge
527+ = lens _igmupMaxSurge
528+ (\ s a -> s{_igmupMaxSurge = a})
529+
530+-- | The maximum number of instances that can be unavailable during the
531+-- update process. An instance is considered available if all of the
532+-- following conditions are satisfied: - The instance\'s status is RUNNING.
533+-- - If there is a health check on the instance group, the instance\'s
534+-- liveness health check result must be HEALTHY at least once. If there is
535+-- no health check on the group, then the instance only needs to have a
536+-- status of RUNNING to be considered available. By default, a fixed value
537+-- of 1 is used. This value can be either a fixed number or a percentage if
538+-- the instance group has 10 or more instances. If you set a percentage,
539+-- the number of instances will be rounded up if necessary. At least one of
540+-- either maxSurge or maxUnavailable must be greater than 0. Learn more
541+-- about maxUnavailable.
542+igmupMaxUnavailable :: Lens' InstanceGroupManagerUpdatePolicy (Maybe FixedOrPercent)
543+igmupMaxUnavailable
544+ = lens _igmupMaxUnavailable
545+ (\ s a -> s{_igmupMaxUnavailable = a})
546+
547+-- | Minimal action to be taken on an instance. You can specify either
548+-- RESTART to restart existing instances or REPLACE to delete and create
549+-- new instances from the target template. If you specify a RESTART, the
550+-- Updater will attempt to perform that action only. However, if the
551+-- Updater determines that the minimal action you specify is not enough to
552+-- perform the update, it might perform a more disruptive action.
553+igmupMinimalAction :: Lens' InstanceGroupManagerUpdatePolicy (Maybe InstanceGroupManagerUpdatePolicyMinimalAction)
554+igmupMinimalAction
555+ = lens _igmupMinimalAction
556+ (\ s a -> s{_igmupMinimalAction = a})
557+
558+igmupType :: Lens' InstanceGroupManagerUpdatePolicy (Maybe InstanceGroupManagerUpdatePolicyType)
559+igmupType
560+ = lens _igmupType (\ s a -> s{_igmupType = a})
561+
562+instance FromJSON InstanceGroupManagerUpdatePolicy
563+ where
564+ parseJSON
565+ = withObject "InstanceGroupManagerUpdatePolicy"
566+ (\ o ->
567+ InstanceGroupManagerUpdatePolicy' <$>
568+ (o .:? "maxSurge") <*> (o .:? "maxUnavailable") <*>
569+ (o .:? "minimalAction")
570+ <*> (o .:? "type"))
571+
572+instance ToJSON InstanceGroupManagerUpdatePolicy
573+ where
574+ toJSON InstanceGroupManagerUpdatePolicy'{..}
575+ = object
576+ (catMaybes
577+ [("maxSurge" .=) <$> _igmupMaxSurge,
578+ ("maxUnavailable" .=) <$> _igmupMaxUnavailable,
579+ ("minimalAction" .=) <$> _igmupMinimalAction,
580+ ("type" .=) <$> _igmupType])
581+
486582--
487583-- /See:/ 'regionInstanceGroupsListInstancesRequest' smart constructor.
488584data RegionInstanceGroupsListInstancesRequest =
@@ -3962,6 +4058,74 @@ instance ToJSON InstanceGroupManagerList where
39624058 ("warning" .=) <$> _igmlWarning,
39634059 ("id" .=) <$> _igmlId])
39644060
4061+--
4062+-- /See:/ 'instanceGroupManagerVersion' smart constructor.
4063+data InstanceGroupManagerVersion =
4064+ InstanceGroupManagerVersion'
4065+ { _igmvInstanceTemplate :: !(Maybe Text)
4066+ , _igmvTargetSize :: !(Maybe FixedOrPercent)
4067+ , _igmvName :: !(Maybe Text)
4068+ }
4069+ deriving (Eq, Show, Data, Typeable, Generic)
4070+
4071+-- | Creates a value of 'InstanceGroupManagerVersion' with the minimum fields required to make a request.
4072+--
4073+-- Use one of the following lenses to modify other fields as desired:
4074+--
4075+-- * 'igmvInstanceTemplate'
4076+--
4077+-- * 'igmvTargetSize'
4078+--
4079+-- * 'igmvName'
4080+instanceGroupManagerVersion
4081+ :: InstanceGroupManagerVersion
4082+instanceGroupManagerVersion =
4083+ InstanceGroupManagerVersion'
4084+ { _igmvInstanceTemplate = Nothing
4085+ , _igmvTargetSize = Nothing
4086+ , _igmvName = Nothing
4087+ }
4088+
4089+igmvInstanceTemplate :: Lens' InstanceGroupManagerVersion (Maybe Text)
4090+igmvInstanceTemplate
4091+ = lens _igmvInstanceTemplate
4092+ (\ s a -> s{_igmvInstanceTemplate = a})
4093+
4094+-- | Specifies the intended number of instances to be created from the
4095+-- instanceTemplate. The final number of instances created from the
4096+-- template will be equal to: - If expressed as a fixed number, the minimum
4097+-- of either targetSize.fixed or instanceGroupManager.targetSize is used. -
4098+-- if expressed as a percent, the targetSize would be
4099+-- (targetSize.percent\/100 * InstanceGroupManager.targetSize) If there is
4100+-- a remainder, the number is rounded up. If unset, this version will
4101+-- update any remaining instances not updated by another version. Read
4102+-- Starting a canary update for more information.
4103+igmvTargetSize :: Lens' InstanceGroupManagerVersion (Maybe FixedOrPercent)
4104+igmvTargetSize
4105+ = lens _igmvTargetSize
4106+ (\ s a -> s{_igmvTargetSize = a})
4107+
4108+-- | Name of the version. Unique among all versions in the scope of this
4109+-- managed instance group.
4110+igmvName :: Lens' InstanceGroupManagerVersion (Maybe Text)
4111+igmvName = lens _igmvName (\ s a -> s{_igmvName = a})
4112+
4113+instance FromJSON InstanceGroupManagerVersion where
4114+ parseJSON
4115+ = withObject "InstanceGroupManagerVersion"
4116+ (\ o ->
4117+ InstanceGroupManagerVersion' <$>
4118+ (o .:? "instanceTemplate") <*> (o .:? "targetSize")
4119+ <*> (o .:? "name"))
4120+
4121+instance ToJSON InstanceGroupManagerVersion where
4122+ toJSON InstanceGroupManagerVersion'{..}
4123+ = object
4124+ (catMaybes
4125+ [("instanceTemplate" .=) <$> _igmvInstanceTemplate,
4126+ ("targetSize" .=) <$> _igmvTargetSize,
4127+ ("name" .=) <$> _igmvName])
4128+
39654129-- | An informational warning that appears when the list of addresses is
39664130-- empty.
39674131--
@@ -4845,11 +5009,15 @@ umFingerprint
48455009 (\ s a -> s{_umFingerprint = a})
48465010 . mapping _Bytes
48475011
4848−-- | The URL of the backendService resource if none of the hostRules match.
4849−-- Use defaultService instead of defaultRouteAction when simple routing to
4850−-- a backendService is desired and other advanced capabilities like traffic
4851−-- splitting and rewrites are not required. Only one of defaultService,
4852−-- defaultRouteAction or defaultUrlRedirect should must be set.
5012+-- | The full or partial URL of the defaultService resource to which traffic
5013+-- is directed if none of the hostRules match. If defaultRouteAction is
5014+-- additionally specified, advanced routing actions like URL Rewrites, etc.
5015+-- take effect prior to sending the request to the backend. However, if
5016+-- defaultService is specified, defaultRouteAction cannot contain any
5017+-- weightedBackendServices. Conversely, if routeAction specifies any
5018+-- weightedBackendServices, service must not be specified. Only one of
5019+-- defaultService, defaultUrlRedirect or
5020+-- defaultRouteAction.weightedBackendService must be set.
48535021umDefaultService :: Lens' URLMap (Maybe Text)
48545022umDefaultService
48555023 = lens _umDefaultService
@@ -7680,6 +7848,64 @@ instance ToJSON
76807848 where
76817849 toJSON = toJSON . _iaaliAddtional
76827850
7851+-- |
7852+--
7853+-- /See:/ 'instanceGroupManagerAutoHealingPolicy' smart constructor.
7854+data InstanceGroupManagerAutoHealingPolicy =
7855+ InstanceGroupManagerAutoHealingPolicy'
7856+ { _igmahpHealthCheck :: !(Maybe Text)
7857+ , _igmahpInitialDelaySec :: !(Maybe (Textual Int32))
7858+ }
7859+ deriving (Eq, Show, Data, Typeable, Generic)
7860+
7861+-- | Creates a value of 'InstanceGroupManagerAutoHealingPolicy' with the minimum fields required to make a request.
7862+--
7863+-- Use one of the following lenses to modify other fields as desired:
7864+--
7865+-- * 'igmahpHealthCheck'
7866+--
7867+-- * 'igmahpInitialDelaySec'
7868+instanceGroupManagerAutoHealingPolicy
7869+ :: InstanceGroupManagerAutoHealingPolicy
7870+instanceGroupManagerAutoHealingPolicy =
7871+ InstanceGroupManagerAutoHealingPolicy'
7872+ {_igmahpHealthCheck = Nothing, _igmahpInitialDelaySec = Nothing}
7873+
7874+-- | The URL for the health check that signals autohealing.
7875+igmahpHealthCheck :: Lens' InstanceGroupManagerAutoHealingPolicy (Maybe Text)
7876+igmahpHealthCheck
7877+ = lens _igmahpHealthCheck
7878+ (\ s a -> s{_igmahpHealthCheck = a})
7879+
7880+-- | The number of seconds that the managed instance group waits before it
7881+-- applies autohealing policies to new instances or recently recreated
7882+-- instances. This initial delay allows instances to initialize and run
7883+-- their startup scripts before the instance group determines that they are
7884+-- UNHEALTHY. This prevents the managed instance group from recreating its
7885+-- instances prematurely. This value must be from range [0, 3600].
7886+igmahpInitialDelaySec :: Lens' InstanceGroupManagerAutoHealingPolicy (Maybe Int32)
7887+igmahpInitialDelaySec
7888+ = lens _igmahpInitialDelaySec
7889+ (\ s a -> s{_igmahpInitialDelaySec = a})
7890+ . mapping _Coerce
7891+
7892+instance FromJSON
7893+ InstanceGroupManagerAutoHealingPolicy
7894+ where
7895+ parseJSON
7896+ = withObject "InstanceGroupManagerAutoHealingPolicy"
7897+ (\ o ->
7898+ InstanceGroupManagerAutoHealingPolicy' <$>
7899+ (o .:? "healthCheck") <*> (o .:? "initialDelaySec"))
7900+
7901+instance ToJSON InstanceGroupManagerAutoHealingPolicy
7902+ where
7903+ toJSON InstanceGroupManagerAutoHealingPolicy'{..}
7904+ = object
7905+ (catMaybes
7906+ [("healthCheck" .=) <$> _igmahpHealthCheck,
7907+ ("initialDelaySec" .=) <$> _igmahpInitialDelaySec])
7908+
76837909-- | Increment a streamz counter with the specified metric and field names.
76847910-- Metric names should start with a \'\/\', generally be lowercase-only,
76857911-- and end in \"_count\". Field names should not contain an initial slash.
@@ -8932,10 +9158,12 @@ data ForwardingRule =
89329158 , _frName :: !(Maybe Text)
89339159 , _frIPProtocol :: !(Maybe ForwardingRuleIPProtocol)
89349160 , _frCreationTimestamp :: !(Maybe Text)
9161+ , _frServiceName :: !(Maybe Text)
89359162 , _frSubnetwork :: !(Maybe Text)
89369163 , _frPorts :: !(Maybe [Text])
89379164 , _frId :: !(Maybe (Textual Word64))
89389165 , _frRegion :: !(Maybe Text)
9166+ , _frServiceLabel :: !(Maybe Text)
89399167 , _frDescription :: !(Maybe Text)
89409168 , _frTarget :: !(Maybe Text)
89419169 , _frBackendService :: !(Maybe Text)
@@ -8968,6 +9196,8 @@ data ForwardingRule =
89689196--
89699197-- * 'frCreationTimestamp'
89709198--
9199+-- * 'frServiceName'
9200+--
89719201-- * 'frSubnetwork'
89729202--
89739203-- * 'frPorts'
@@ -8976,6 +9206,8 @@ data ForwardingRule =
89769206--
89779207-- * 'frRegion'
89789208--
9209+-- * 'frServiceLabel'
9210+--
89799211-- * 'frDescription'
89809212--
89819213-- * 'frTarget'
@@ -8996,10 +9228,12 @@ forwardingRule =
89969228 , _frName = Nothing
89979229 , _frIPProtocol = Nothing
89989230 , _frCreationTimestamp = Nothing
9231+ , _frServiceName = Nothing
89999232 , _frSubnetwork = Nothing
90009233 , _frPorts = Nothing
90019234 , _frId = Nothing
90029235 , _frRegion = Nothing
9236+ , _frServiceLabel = Nothing
90039237 , _frDescription = Nothing
90049238 , _frTarget = Nothing
90059239 , _frBackendService = Nothing
@@ -9120,6 +9354,13 @@ frCreationTimestamp
91209354 = lens _frCreationTimestamp
91219355 (\ s a -> s{_frCreationTimestamp = a})
91229356
9357+-- | [Output Only] The internal fully qualified service name for this
9358+-- Forwarding Rule. This field is only used for internal load balancing.
9359+frServiceName :: Lens' ForwardingRule (Maybe Text)
9360+frServiceName
9361+ = lens _frServiceName
9362+ (\ s a -> s{_frServiceName = a})
9363+
91239364-- | This field is only used for INTERNAL load balancing. For internal load
91249365-- balancing, this field identifies the subnetwork that the load balanced
91259366-- IP should belong to for this Forwarding Rule. If the network specified
@@ -9154,6 +9395,19 @@ frId
91549395frRegion :: Lens' ForwardingRule (Maybe Text)
91559396frRegion = lens _frRegion (\ s a -> s{_frRegion = a})
91569397
9398+-- | An optional prefix to the service name for this Forwarding Rule. If
9399+-- specified, will be the first label of the fully qualified service name.
9400+-- The label must be 1-63 characters long, and comply with RFC1035.
9401+-- Specifically, the label must be 1-63 characters long and match the
9402+-- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
9403+-- character must be a lowercase letter, and all following characters must
9404+-- be a dash, lowercase letter, or digit, except the last character, which
9405+-- cannot be a dash. This field is only used for internal load balancing.
9406+frServiceLabel :: Lens' ForwardingRule (Maybe Text)
9407+frServiceLabel
9408+ = lens _frServiceLabel
9409+ (\ s a -> s{_frServiceLabel = a})
9410+
91579411-- | An optional description of this resource. Provide this property when you
91589412-- create the resource.
91599413frDescription :: Lens' ForwardingRule (Maybe Text)
@@ -9193,10 +9447,12 @@ instance FromJSON ForwardingRule where
91939447 <*> (o .:? "name")
91949448 <*> (o .:? "IPProtocol")
91959449 <*> (o .:? "creationTimestamp")
9450+ <*> (o .:? "serviceName")
91969451 <*> (o .:? "subnetwork")
91979452 <*> (o .:? "ports" .!= mempty)
91989453 <*> (o .:? "id")
91999454 <*> (o .:? "region")
9455+ <*> (o .:? "serviceLabel")
92009456 <*> (o .:? "description")
92019457 <*> (o .:? "target")
92029458 <*> (o .:? "backendService"))
@@ -9217,9 +9473,11 @@ instance ToJSON ForwardingRule where
92179473 ("name" .=) <$> _frName,
92189474 ("IPProtocol" .=) <$> _frIPProtocol,
92199475 ("creationTimestamp" .=) <$> _frCreationTimestamp,
9476+ ("serviceName" .=) <$> _frServiceName,
92209477 ("subnetwork" .=) <$> _frSubnetwork,
92219478 ("ports" .=) <$> _frPorts, ("id" .=) <$> _frId,
92229479 ("region" .=) <$> _frRegion,
9480+ ("serviceLabel" .=) <$> _frServiceLabel,
92239481 ("description" .=) <$> _frDescription,
92249482 ("target" .=) <$> _frTarget,
92259483 ("backendService" .=) <$> _frBackendService])
@@ -11205,7 +11463,7 @@ autoscalingPolicyLoadBalancingUtilization
1120511463autoscalingPolicyLoadBalancingUtilization =
1120611464 AutoscalingPolicyLoadBalancingUtilization' {_aplbuUtilizationTarget = Nothing}
1120711465
11208−-- | Fraction of backend capacity utilization (set in HTTP(s) load balancing
11466+-- | Fraction of backend capacity utilization (set in HTTP(S) load balancing
1120911467-- configuration) that autoscaler should maintain. Must be a positive float
1121011468-- value. If not defined, the default is 0.8.
1121111469aplbuUtilizationTarget :: Lens' AutoscalingPolicyLoadBalancingUtilization (Maybe Double)
@@ -11354,23 +11612,27 @@ instance ToJSON TargetPoolsScopedListWarningDataItem
1135411612-- /See:/ 'instanceGroupManager' smart constructor.
1135511613data InstanceGroupManager =
1135611614 InstanceGroupManager'
11357− { _igmKind :: !Text
11358− , _igmFingerprint :: !(Maybe Bytes)
11359− , _igmBaseInstanceName :: !(Maybe Text)
11360− , _igmZone :: !(Maybe Text)
11361− , _igmInstanceTemplate :: !(Maybe Text)
11362− , _igmTargetSize :: !(Maybe (Textual Int32))
11363− , _igmSelfLink :: !(Maybe Text)
11364− , _igmCurrentActions :: !(Maybe InstanceGroupManagerActionsSummary)
11365− , _igmName :: !(Maybe Text)
11366− , _igmCreationTimestamp :: !(Maybe Text)
11367− , _igmDistributionPolicy :: !(Maybe DistributionPolicy)
11368− , _igmId :: !(Maybe (Textual Word64))
11369− , _igmRegion :: !(Maybe Text)
11370− , _igmTargetPools :: !(Maybe [Text])
11371− , _igmDescription :: !(Maybe Text)
11372− , _igmInstanceGroup :: !(Maybe Text)
11373− , _igmNamedPorts :: !(Maybe [NamedPort])
11615+ { _igmStatus :: !(Maybe InstanceGroupManagerStatus)
11616+ , _igmKind :: !Text
11617+ , _igmFingerprint :: !(Maybe Bytes)
11618+ , _igmBaseInstanceName :: !(Maybe Text)
11619+ , _igmZone :: !(Maybe Text)
11620+ , _igmAutoHealingPolicies :: !(Maybe [InstanceGroupManagerAutoHealingPolicy])
11621+ , _igmVersions :: !(Maybe [InstanceGroupManagerVersion])
11622+ , _igmInstanceTemplate :: !(Maybe Text)
11623+ , _igmUpdatePolicy :: !(Maybe InstanceGroupManagerUpdatePolicy)
11624+ , _igmTargetSize :: !(Maybe (Textual Int32))
11625+ , _igmSelfLink :: !(Maybe Text)
11626+ , _igmCurrentActions :: !(Maybe InstanceGroupManagerActionsSummary)
11627+ , _igmName :: !(Maybe Text)
11628+ , _igmCreationTimestamp :: !(Maybe Text)
11629+ , _igmDistributionPolicy :: !(Maybe DistributionPolicy)
11630+ , _igmId :: !(Maybe (Textual Word64))
11631+ , _igmRegion :: !(Maybe Text)
11632+ , _igmTargetPools :: !(Maybe [Text])
11633+ , _igmDescription :: !(Maybe Text)
11634+ , _igmInstanceGroup :: !(Maybe Text)
11635+ , _igmNamedPorts :: !(Maybe [NamedPort])
1137411636 }
1137511637 deriving (Eq, Show, Data, Typeable, Generic)
1137611638
@@ -11378,6 +11640,8 @@ data InstanceGroupManager =
1137811640--
1137911641-- Use one of the following lenses to modify other fields as desired:
1138011642--
11643+-- * 'igmStatus'
11644+--
1138111645-- * 'igmKind'
1138211646--
1138311647-- * 'igmFingerprint'
@@ -11386,8 +11650,14 @@ data InstanceGroupManager =
1138611650--
1138711651-- * 'igmZone'
1138811652--
11653+-- * 'igmAutoHealingPolicies'
11654+--
11655+-- * 'igmVersions'
11656+--
1138911657-- * 'igmInstanceTemplate'
1139011658--
11659+-- * 'igmUpdatePolicy'
11660+--
1139111661-- * 'igmTargetSize'
1139211662--
1139311663-- * 'igmSelfLink'
@@ -11415,11 +11685,15 @@ instanceGroupManager
1141511685 :: InstanceGroupManager
1141611686instanceGroupManager =
1141711687 InstanceGroupManager'
11418− { _igmKind = "compute#instanceGroupManager"
11688+ { _igmStatus = Nothing
11689+ , _igmKind = "compute#instanceGroupManager"
1141911690 , _igmFingerprint = Nothing
1142011691 , _igmBaseInstanceName = Nothing
1142111692 , _igmZone = Nothing
11693+ , _igmAutoHealingPolicies = Nothing
11694+ , _igmVersions = Nothing
1142211695 , _igmInstanceTemplate = Nothing
11696+ , _igmUpdatePolicy = Nothing
1142311697 , _igmTargetSize = Nothing
1142411698 , _igmSelfLink = Nothing
1142511699 , _igmCurrentActions = Nothing
@@ -11434,6 +11708,11 @@ instanceGroupManager =
1143411708 , _igmNamedPorts = Nothing
1143511709 }
1143611710
11711+-- | [Output Only] The status of this managed instance group.
11712+igmStatus :: Lens' InstanceGroupManager (Maybe InstanceGroupManagerStatus)
11713+igmStatus
11714+ = lens _igmStatus (\ s a -> s{_igmStatus = a})
11715+
1143711716-- | [Output Only] The resource type, which is always
1143811717-- compute#instanceGroupManager for managed instance groups.
1143911718igmKind :: Lens' InstanceGroupManager Text
@@ -11465,6 +11744,28 @@ igmBaseInstanceName
1146511744igmZone :: Lens' InstanceGroupManager (Maybe Text)
1146611745igmZone = lens _igmZone (\ s a -> s{_igmZone = a})
1146711746
11747+-- | The autohealing policy for this managed instance group. You can specify
11748+-- only one value.
11749+igmAutoHealingPolicies :: Lens' InstanceGroupManager [InstanceGroupManagerAutoHealingPolicy]
11750+igmAutoHealingPolicies
11751+ = lens _igmAutoHealingPolicies
11752+ (\ s a -> s{_igmAutoHealingPolicies = a})
11753+ . _Default
11754+ . _Coerce
11755+
11756+-- | Specifies the instance templates used by this managed instance group to
11757+-- create instances. Each version is defined by an instanceTemplate. Every
11758+-- template can appear at most once per instance group. This field
11759+-- overrides the top-level instanceTemplate field. Read more about the
11760+-- relationships between these fields. Exactly one version must leave the
11761+-- targetSize field unset. That version will be applied to all remaining
11762+-- instances. For more information, read about canary updates.
11763+igmVersions :: Lens' InstanceGroupManager [InstanceGroupManagerVersion]
11764+igmVersions
11765+ = lens _igmVersions (\ s a -> s{_igmVersions = a}) .
11766+ _Default
11767+ . _Coerce
11768+
1146811769-- | The URL of the instance template that is specified for this managed
1146911770-- instance group. The group uses this template to create all new instances
1147011771-- in the managed instance group.
@@ -11473,6 +11774,12 @@ igmInstanceTemplate
1147311774 = lens _igmInstanceTemplate
1147411775 (\ s a -> s{_igmInstanceTemplate = a})
1147511776
11777+-- | The update policy for this managed instance group.
11778+igmUpdatePolicy :: Lens' InstanceGroupManager (Maybe InstanceGroupManagerUpdatePolicy)
11779+igmUpdatePolicy
11780+ = lens _igmUpdatePolicy
11781+ (\ s a -> s{_igmUpdatePolicy = a})
11782+
1147611783-- | The target number of running instances for this managed instance group.
1147711784-- Deleting or abandoning instances reduces this number. Resizing the group
1147811785-- changes this number.
@@ -11565,11 +11872,15 @@ instance FromJSON InstanceGroupManager where
1156511872 = withObject "InstanceGroupManager"
1156611873 (\ o ->
1156711874 InstanceGroupManager' <$>
11568− (o .:? "kind" .!= "compute#instanceGroupManager") <*>
11569− (o .:? "fingerprint")
11875+ (o .:? "status") <*>
11876+ (o .:? "kind" .!= "compute#instanceGroupManager")
11877+ <*> (o .:? "fingerprint")
1157011878 <*> (o .:? "baseInstanceName")
1157111879 <*> (o .:? "zone")
11880+ <*> (o .:? "autoHealingPolicies" .!= mempty)
11881+ <*> (o .:? "versions" .!= mempty)
1157211882 <*> (o .:? "instanceTemplate")
11883+ <*> (o .:? "updatePolicy")
1157311884 <*> (o .:? "targetSize")
1157411885 <*> (o .:? "selfLink")
1157511886 <*> (o .:? "currentActions")
@@ -11587,11 +11898,16 @@ instance ToJSON InstanceGroupManager where
1158711898 toJSON InstanceGroupManager'{..}
1158811899 = object
1158911900 (catMaybes
11590− [Just ("kind" .= _igmKind),
11901+ [("status" .=) <$> _igmStatus,
11902+ Just ("kind" .= _igmKind),
1159111903 ("fingerprint" .=) <$> _igmFingerprint,
1159211904 ("baseInstanceName" .=) <$> _igmBaseInstanceName,
1159311905 ("zone" .=) <$> _igmZone,
11906+ ("autoHealingPolicies" .=) <$>
11907+ _igmAutoHealingPolicies,
11908+ ("versions" .=) <$> _igmVersions,
1159411909 ("instanceTemplate" .=) <$> _igmInstanceTemplate,
11910+ ("updatePolicy" .=) <$> _igmUpdatePolicy,
1159511911 ("targetSize" .=) <$> _igmTargetSize,
1159611912 ("selfLink" .=) <$> _igmSelfLink,
1159711913 ("currentActions" .=) <$> _igmCurrentActions,
@@ -13576,6 +13892,75 @@ instance ToJSON
1357613892 [("value" .=) <$> _vtalwdiValue,
1357713893 ("key" .=) <$> _vtalwdiKey])
1357813894
13895+-- | Encapsulates numeric value that can be either absolute or relative.
13896+--
13897+-- /See:/ 'fixedOrPercent' smart constructor.
13898+data FixedOrPercent =
13899+ FixedOrPercent'
13900+ { _fopCalculated :: !(Maybe (Textual Int32))
13901+ , _fopPercent :: !(Maybe (Textual Int32))
13902+ , _fopFixed :: !(Maybe (Textual Int32))
13903+ }
13904+ deriving (Eq, Show, Data, Typeable, Generic)
13905+
13906+-- | Creates a value of 'FixedOrPercent' with the minimum fields required to make a request.
13907+--
13908+-- Use one of the following lenses to modify other fields as desired:
13909+--
13910+-- * 'fopCalculated'
13911+--
13912+-- * 'fopPercent'
13913+--
13914+-- * 'fopFixed'
13915+fixedOrPercent
13916+ :: FixedOrPercent
13917+fixedOrPercent =
13918+ FixedOrPercent'
13919+ {_fopCalculated = Nothing, _fopPercent = Nothing, _fopFixed = Nothing}
13920+
13921+-- | [Output Only] Absolute value of VM instances calculated based on the
13922+-- specific mode. - If the value is fixed, then the caculated value is
13923+-- equal to the fixed value. - If the value is a percent, then the
13924+-- calculated value is percent\/100 * targetSize. For example, the
13925+-- calculated value of a 80% of a managed instance group with 150 instances
13926+-- would be (80\/100 * 150) = 120 VM instances. If there is a remainder,
13927+-- the number is rounded up.
13928+fopCalculated :: Lens' FixedOrPercent (Maybe Int32)
13929+fopCalculated
13930+ = lens _fopCalculated
13931+ (\ s a -> s{_fopCalculated = a})
13932+ . mapping _Coerce
13933+
13934+-- | Specifies a percentage of instances between 0 to 100%, inclusive. For
13935+-- example, specify 80 for 80%.
13936+fopPercent :: Lens' FixedOrPercent (Maybe Int32)
13937+fopPercent
13938+ = lens _fopPercent (\ s a -> s{_fopPercent = a}) .
13939+ mapping _Coerce
13940+
13941+-- | Specifies a fixed number of VM instances. This must be a positive
13942+-- integer.
13943+fopFixed :: Lens' FixedOrPercent (Maybe Int32)
13944+fopFixed
13945+ = lens _fopFixed (\ s a -> s{_fopFixed = a}) .
13946+ mapping _Coerce
13947+
13948+instance FromJSON FixedOrPercent where
13949+ parseJSON
13950+ = withObject "FixedOrPercent"
13951+ (\ o ->
13952+ FixedOrPercent' <$>
13953+ (o .:? "calculated") <*> (o .:? "percent") <*>
13954+ (o .:? "fixed"))
13955+
13956+instance ToJSON FixedOrPercent where
13957+ toJSON FixedOrPercent'{..}
13958+ = object
13959+ (catMaybes
13960+ [("calculated" .=) <$> _fopCalculated,
13961+ ("percent" .=) <$> _fopPercent,
13962+ ("fixed" .=) <$> _fopFixed])
13963+
1357913964-- | The available logging options for a firewall rule.
1358013965--
1358113966-- /See:/ 'firewallLogConfig' smart constructor.
@@ -20950,6 +21335,45 @@ instance ToJSON TargetSSLProxy where
2095021335 ("proxyHeader" .=) <$> _tspProxyHeader,
2095121336 ("description" .=) <$> _tspDescription])
2095221337
21338+--
21339+-- /See:/ 'instanceGroupManagerStatus' smart constructor.
21340+newtype InstanceGroupManagerStatus =
21341+ InstanceGroupManagerStatus'
21342+ { _igmsIsStable :: Maybe Bool
21343+ }
21344+ deriving (Eq, Show, Data, Typeable, Generic)
21345+
21346+-- | Creates a value of 'InstanceGroupManagerStatus' with the minimum fields required to make a request.
21347+--
21348+-- Use one of the following lenses to modify other fields as desired:
21349+--
21350+-- * 'igmsIsStable'
21351+instanceGroupManagerStatus
21352+ :: InstanceGroupManagerStatus
21353+instanceGroupManagerStatus =
21354+ InstanceGroupManagerStatus' {_igmsIsStable = Nothing}
21355+
21356+-- | [Output Only] A bit indicating whether the managed instance group is in
21357+-- a stable state. A stable state means that: none of the instances in the
21358+-- managed instance group is currently undergoing any type of change (for
21359+-- example, creation, restart, or deletion); no future changes are
21360+-- scheduled for instances in the managed instance group; and the managed
21361+-- instance group itself is not being modified.
21362+igmsIsStable :: Lens' InstanceGroupManagerStatus (Maybe Bool)
21363+igmsIsStable
21364+ = lens _igmsIsStable (\ s a -> s{_igmsIsStable = a})
21365+
21366+instance FromJSON InstanceGroupManagerStatus where
21367+ parseJSON
21368+ = withObject "InstanceGroupManagerStatus"
21369+ (\ o ->
21370+ InstanceGroupManagerStatus' <$> (o .:? "isStable"))
21371+
21372+instance ToJSON InstanceGroupManagerStatus where
21373+ toJSON InstanceGroupManagerStatus'{..}
21374+ = object
21375+ (catMaybes [("isStable" .=) <$> _igmsIsStable])
21376+
2095321377-- | [Output Only] Informational warning message.
2095421378--
2095521379-- /See:/ 'sslCertificateListWarning' smart constructor.
@@ -25116,6 +25540,7 @@ instance ToJSON SubnetworkAggregatedListWarning where
2511625540data InterconnectLocation =
2511725541 InterconnectLocation'
2511825542 { _intFacilityProviderFacilityId :: !(Maybe Text)
25543+ , _intStatus :: !(Maybe InterconnectLocationStatus)
2511925544 , _intRegionInfos :: !(Maybe [InterconnectLocationRegionInfo])
2512025545 , _intKind :: !Text
2512125546 , _intAddress :: !(Maybe Text)
@@ -25138,6 +25563,8 @@ data InterconnectLocation =
2513825563--
2513925564-- * 'intFacilityProviderFacilityId'
2514025565--
25566+-- * 'intStatus'
25567+--
2514125568-- * 'intRegionInfos'
2514225569--
2514325570-- * 'intKind'
@@ -25168,6 +25595,7 @@ interconnectLocation
2516825595interconnectLocation =
2516925596 InterconnectLocation'
2517025597 { _intFacilityProviderFacilityId = Nothing
25598+ , _intStatus = Nothing
2517125599 , _intRegionInfos = Nothing
2517225600 , _intKind = "compute#interconnectLocation"
2517325601 , _intAddress = Nothing
@@ -25190,6 +25618,14 @@ intFacilityProviderFacilityId
2519025618 = lens _intFacilityProviderFacilityId
2519125619 (\ s a -> s{_intFacilityProviderFacilityId = a})
2519225620
25621+-- | [Output Only] The status of this InterconnectLocation. If the status is
25622+-- AVAILABLE, new Interconnects may be provisioned in this
25623+-- InterconnectLocation. Otherwise, no new Interconnects may be
25624+-- provisioned.
25625+intStatus :: Lens' InterconnectLocation (Maybe InterconnectLocationStatus)
25626+intStatus
25627+ = lens _intStatus (\ s a -> s{_intStatus = a})
25628+
2519325629-- | [Output Only] A list of InterconnectLocation.RegionInfo objects, that
2519425630-- describe parameters pertaining to the relation between this
2519525631-- InterconnectLocation and various Google Cloud regions.
@@ -25279,7 +25715,8 @@ instance FromJSON InterconnectLocation where
2527925715 (\ o ->
2528025716 InterconnectLocation' <$>
2528125717 (o .:? "facilityProviderFacilityId") <*>
25282− (o .:? "regionInfos" .!= mempty)
25718+ (o .:? "status")
25719+ <*> (o .:? "regionInfos" .!= mempty)
2528325720 <*> (o .:? "kind" .!= "compute#interconnectLocation")
2528425721 <*> (o .:? "address")
2528525722 <*> (o .:? "facilityProvider")
@@ -25299,6 +25736,7 @@ instance ToJSON InterconnectLocation where
2529925736 (catMaybes
2530025737 [("facilityProviderFacilityId" .=) <$>
2530125738 _intFacilityProviderFacilityId,
25739+ ("status" .=) <$> _intStatus,
2530225740 ("regionInfos" .=) <$> _intRegionInfos,
2530325741 Just ("kind" .= _intKind),
2530425742 ("address" .=) <$> _intAddress,
@@ -25704,7 +26142,7 @@ adInitializeParams
2570426142-- within the instance. This name can be used to reference the device for
2570526143-- mounting, resizing, and so on, from within the instance. If not
2570626144-- specified, the server chooses a default device name to apply to this
25707−-- disk, in the form persistent-disks-x, where x is a number assigned by
26145+-- disk, in the form persistent-disk-x, where x is a number assigned by
2570826146-- Google Compute Engine. This field is only applicable for persistent
2570926147-- disks.
2571026148adDeviceName :: Lens' AttachedDisk (Maybe Text)
@@ -28996,8 +29434,7 @@ iiInterconnectAttachments
2899629434 . _Coerce
2899729435
2899829436-- | Type of link requested. This field indicates speed of each of the links
28999−-- in the bundle, not the entire bundle. Only 10G per link is allowed for a
29000−-- dedicated interconnect. Options: Ethernet_10G_LR
29437+-- in the bundle, not the entire bundle.
2900129438iiLinkType :: Lens' Interconnect (Maybe InterconnectLinkType)
2900229439iiLinkType
2900329440 = lens _iiLinkType (\ s a -> s{_iiLinkType = a})
@@ -31543,8 +31980,10 @@ acAcceleratorCount
3154331980 . mapping _Coerce
3154431981
3154531982-- | Full or partial URL of the accelerator type resource to attach to this
31546−-- instance. If you are creating an instance template, specify only the
31547−-- accelerator name.
31983+-- instance. For example:
31984+-- projects\/my-project\/zones\/us-central1-c\/acceleratorTypes\/nvidia-tesla-p100
31985+-- If you are creating an instance template, specify only the accelerator
31986+-- name. See GPUs on Compute Engine for a full list of accelerator types.
3154831987acAcceleratorType :: Lens' AcceleratorConfig (Maybe Text)
3154931988acAcceleratorType
3155031989 = lens _acAcceleratorType
@@ -36789,11 +37228,14 @@ pathRule
3678937228 :: PathRule
3679037229pathRule = PathRule' {_prService = Nothing, _prPaths = Nothing}
3679137230
36792−-- | The URL of the backend service resource if this rule is matched. Use
36793−-- service instead of routeAction when simple routing to a backend service
36794−-- is desired and other advanced capabilities like traffic splitting and
36795−-- rewrites are not required. Only one of service, routeAction or
36796−-- urlRedirect should must be set.
37231+-- | The full or partial URL of the backend service resource to which traffic
37232+-- is directed if this rule is matched. If routeAction is additionally
37233+-- specified, advanced routing actions like URL Rewrites, etc. take effect
37234+-- prior to sending the request to the backend. However, if service is
37235+-- specified, routeAction cannot contain any weightedBackendService s.
37236+-- Conversely, if routeAction specifies any weightedBackendServices,
37237+-- service must not be specified. Only one of urlRedirect, service or
37238+-- routeAction.weightedBackendService must be set.
3679737239prService :: Lens' PathRule (Maybe Text)
3679837240prService
3679937241 = lens _prService (\ s a -> s{_prService = a})
@@ -39533,7 +39975,8 @@ instance ToJSON SecurityPolicyListWarning where
3953339975-- /See:/ 'quota' smart constructor.
3953439976data Quota =
3953539977 Quota'
39536− { _qMetric :: !(Maybe QuotaMetric)
39978+ { _qOwner :: !(Maybe Text)
39979+ , _qMetric :: !(Maybe QuotaMetric)
3953739980 , _qLimit :: !(Maybe (Textual Double))
3953839981 , _qUsage :: !(Maybe (Textual Double))
3953939982 }
@@ -39543,6 +39986,8 @@ data Quota =
3954339986--
3954439987-- Use one of the following lenses to modify other fields as desired:
3954539988--
39989+-- * 'qOwner'
39990+--
3954639991-- * 'qMetric'
3954739992--
3954839993-- * 'qLimit'
@@ -39550,7 +39995,18 @@ data Quota =
3955039995-- * 'qUsage'
3955139996quota
3955239997 :: Quota
39553−quota = Quota' {_qMetric = Nothing, _qLimit = Nothing, _qUsage = Nothing}
39998+quota =
39999+ Quota'
40000+ { _qOwner = Nothing
40001+ , _qMetric = Nothing
40002+ , _qLimit = Nothing
40003+ , _qUsage = Nothing
40004+ }
40005+
40006+-- | [Output Only] Owning resource. This is the resource on which this quota
40007+-- is applied.
40008+qOwner :: Lens' Quota (Maybe Text)
40009+qOwner = lens _qOwner (\ s a -> s{_qOwner = a})
3955440010
3955540011-- | [Output Only] Name of the quota metric.
3955640012qMetric :: Lens' Quota (Maybe QuotaMetric)
@@ -39573,15 +40029,17 @@ instance FromJSON Quota where
3957340029 = withObject "Quota"
3957440030 (\ o ->
3957540031 Quota' <$>
39576− (o .:? "metric") <*> (o .:? "limit") <*>
39577− (o .:? "usage"))
40032+ (o .:? "owner") <*> (o .:? "metric") <*>
40033+ (o .:? "limit")
40034+ <*> (o .:? "usage"))
3957840035
3957940036instance ToJSON Quota where
3958040037 toJSON Quota'{..}
3958140038 = object
3958240039 (catMaybes
39583− [("metric" .=) <$> _qMetric,
39584− ("limit" .=) <$> _qLimit, ("usage" .=) <$> _qUsage])
40040+ [("owner" .=) <$> _qOwner,
40041+ ("metric" .=) <$> _qMetric, ("limit" .=) <$> _qLimit,
40042+ ("usage" .=) <$> _qUsage])
3958540043
3958640044-- | InstanceGroups (== resource_for beta.instanceGroups ==) (== resource_for
3958740045-- v1.instanceGroups ==) (== resource_for beta.regionInstanceGroups ==) (==
@@ -43563,6 +44021,7 @@ data Instance =
4356344021 { _i1Status :: !(Maybe InstanceStatus)
4356444022 , _i1ServiceAccounts :: !(Maybe [ServiceAccount])
4356544023 , _i1DeletionProtection :: !(Maybe Bool)
44024+ , _i1Hostname :: !(Maybe Text)
4356644025 , _i1NetworkInterfaces :: !(Maybe [NetworkInterface])
4356744026 , _i1Kind :: !Text
4356844027 , _i1Zone :: !(Maybe Text)
@@ -43597,6 +44056,8 @@ data Instance =
4359744056--
4359844057-- * 'i1DeletionProtection'
4359944058--
44059+-- * 'i1Hostname'
44060+--
4360044061-- * 'i1NetworkInterfaces'
4360144062--
4360244063-- * 'i1Kind'
@@ -43645,6 +44106,7 @@ instance' =
4364544106 { _i1Status = Nothing
4364644107 , _i1ServiceAccounts = Nothing
4364744108 , _i1DeletionProtection = Nothing
44109+ , _i1Hostname = Nothing
4364844110 , _i1NetworkInterfaces = Nothing
4364944111 , _i1Kind = "compute#instance"
4365044112 , _i1Zone = Nothing
@@ -43692,6 +44154,10 @@ i1DeletionProtection
4369244154 = lens _i1DeletionProtection
4369344155 (\ s a -> s{_i1DeletionProtection = a})
4369444156
44157+i1Hostname :: Lens' Instance (Maybe Text)
44158+i1Hostname
44159+ = lens _i1Hostname (\ s a -> s{_i1Hostname = a})
44160+
4369544161-- | An array of network configurations for this instance. These specify how
4369644162-- interfaces are configured to interact with other network services, such
4369744163-- as connecting to the internet. Multiple interfaces are supported per
@@ -43862,6 +44328,7 @@ instance FromJSON Instance where
4386244328 (o .:? "status") <*>
4386344329 (o .:? "serviceAccounts" .!= mempty)
4386444330 <*> (o .:? "deletionProtection")
44331+ <*> (o .:? "hostname")
4386544332 <*> (o .:? "networkInterfaces" .!= mempty)
4386644333 <*> (o .:? "kind" .!= "compute#instance")
4386744334 <*> (o .:? "zone")
@@ -43891,6 +44358,7 @@ instance ToJSON Instance where
4389144358 [("status" .=) <$> _i1Status,
4389244359 ("serviceAccounts" .=) <$> _i1ServiceAccounts,
4389344360 ("deletionProtection" .=) <$> _i1DeletionProtection,
44361+ ("hostname" .=) <$> _i1Hostname,
4389444362 ("networkInterfaces" .=) <$> _i1NetworkInterfaces,
4389544363 Just ("kind" .= _i1Kind), ("zone" .=) <$> _i1Zone,
4389644364 ("cpuPlatform" .=) <$> _i1CPUPlatform,
@@ -43953,13 +44421,16 @@ pathMatcher =
4395344421-- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/backendServices\/backendService
4395444422-- -
4395544423-- compute\/v1\/projects\/project\/global\/backendServices\/backendService
43956−-- - global\/backendServices\/backendService Use defaultService instead of
43957−-- defaultRouteAction when simple routing to a backend service is desired
43958−-- and other advanced capabilities like traffic splitting and URL rewrites
43959−-- are not required. Only one of defaultService, defaultRouteAction or
43960−-- defaultUrlRedirect must be set. Authorization requires one or more of
43961−-- the following Google IAM permissions on the specified resource
43962−-- default_service: - compute.backendBuckets.use -
44424+-- - global\/backendServices\/backendService If defaultRouteAction is
44425+-- additionally specified, advanced routing actions like URL Rewrites, etc.
44426+-- take effect prior to sending the request to the backend. However, if
44427+-- defaultService is specified, defaultRouteAction cannot contain any
44428+-- weightedBackendServices. Conversely, if defaultRouteAction specifies any
44429+-- weightedBackendServices, defaultService must not be specified. Only one
44430+-- of defaultService, defaultUrlRedirect or
44431+-- defaultRouteAction.weightedBackendService must be set. Authorization
44432+-- requires one or more of the following Google IAM permissions on the
44433+-- specified resource default_service: - compute.backendBuckets.use -
4396344434-- compute.backendServices.use
4396444435pmDefaultService :: Lens' PathMatcher (Maybe Text)
4396544436pmDefaultService