packages feed

google-cloud-compute 0.1.0.0 → 1.1.0.0

raw patch · 10 files changed

+764/−501 lines, 10 filesdep ~google-cloud-commonsetup-changedPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: google-cloud-common

API changes (from Hackage documentation)

- Google.Cloud.Compute.Disk: [$sel:code:Warning] :: Warning -> String
- Google.Cloud.Compute.Disk: [$sel:data_:Warning] :: Warning -> Maybe [WarningData]
- Google.Cloud.Compute.Disk: [$sel:description:CreateSnapshotOps] :: CreateSnapshotOps -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:description:InsertDiskOps] :: InsertDiskOps -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:diskEncryptionKey:InsertDiskOps] :: InsertDiskOps -> Maybe EncryptionKey
- Google.Cloud.Compute.Disk: [$sel:endTime:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:error:Operation] :: Operation -> Maybe OperationError
- Google.Cloud.Compute.Disk: [$sel:guestOsFeatures:InsertDiskOps] :: InsertDiskOps -> Maybe [GuestOsFeature]
- Google.Cloud.Compute.Disk: [$sel:id:DiskResponse] :: DiskResponse -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:id:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:insertTime:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:items:DiskResponse] :: DiskResponse -> Maybe [DiskItem]
- Google.Cloud.Compute.Disk: [$sel:key:WarningData] :: WarningData -> String
- Google.Cloud.Compute.Disk: [$sel:kind:DiskResponse] :: DiskResponse -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:labels:CreateSnapshotOps] :: CreateSnapshotOps -> Maybe (Map String String)
- Google.Cloud.Compute.Disk: [$sel:labels:InsertDiskOps] :: InsertDiskOps -> Maybe (Map String String)
- Google.Cloud.Compute.Disk: [$sel:message:Warning] :: Warning -> String
- Google.Cloud.Compute.Disk: [$sel:name:CreateSnapshotOps] :: CreateSnapshotOps -> String
- Google.Cloud.Compute.Disk: [$sel:name:InsertDiskOps] :: InsertDiskOps -> String
- Google.Cloud.Compute.Disk: [$sel:name:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:nextPageToken:DiskResponse] :: DiskResponse -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:operationType:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:progress:Operation] :: Operation -> Maybe Int
- Google.Cloud.Compute.Disk: [$sel:selfLink:DiskResponse] :: DiskResponse -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:selfLink:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:sizeGb:InsertDiskOps] :: InsertDiskOps -> String
- Google.Cloud.Compute.Disk: [$sel:snapshotEncryptionKey:CreateSnapshotOps] :: CreateSnapshotOps -> Maybe EncryptionKey
- Google.Cloud.Compute.Disk: [$sel:sourceImage:InsertDiskOps] :: InsertDiskOps -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:sourceSnapshot:InsertDiskOps] :: InsertDiskOps -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:startTime:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:status:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:storageLocations:CreateSnapshotOps] :: CreateSnapshotOps -> Maybe [String]
- Google.Cloud.Compute.Disk: [$sel:targetLink:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:type_:InsertDiskOps] :: InsertDiskOps -> Maybe String
- Google.Cloud.Compute.Disk: [$sel:value:WarningData] :: WarningData -> String
- Google.Cloud.Compute.Disk: [$sel:warning:DiskResponse] :: DiskResponse -> Maybe Warning
- Google.Cloud.Compute.Disk: [$sel:warnings:Operation] :: Operation -> Maybe [Warning]
- Google.Cloud.Compute.Disk: [$sel:zone:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.CreateSnapshotOps
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.CreateSnapshotQuery
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.DeleteDiskQuery
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.DiskItem
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.DiskResponse
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.EncryptionKey
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.ErrorDetail
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.GuestOsFeature
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.InsertDiskOps
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.InsertDiskQuery
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.ListDisksQuery
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.Operation
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.OperationError
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.Warning
- Google.Cloud.Compute.Disk: instance GHC.Show.Show Google.Cloud.Compute.Disk.WarningData
- Google.Cloud.Compute.Firewall: [$sel:allowed:CreateFirewallOps] :: CreateFirewallOps -> Maybe [AllowedFirewall]
- Google.Cloud.Compute.Firewall: [$sel:allowed:FirewallMeta] :: FirewallMeta -> Maybe [AllowedFirewall]
- Google.Cloud.Compute.Firewall: [$sel:code:Warning] :: Warning -> String
- Google.Cloud.Compute.Firewall: [$sel:creationTimestamp:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:data_:Warning] :: Warning -> Maybe [WarningData]
- Google.Cloud.Compute.Firewall: [$sel:denied:CreateFirewallOps] :: CreateFirewallOps -> Maybe [DeniedFirewall]
- Google.Cloud.Compute.Firewall: [$sel:denied:FirewallMeta] :: FirewallMeta -> Maybe [DeniedFirewall]
- Google.Cloud.Compute.Firewall: [$sel:description:CreateFirewallOps] :: CreateFirewallOps -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:description:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:direction:CreateFirewallOps] :: CreateFirewallOps -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:direction:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:disabled:CreateFirewallOps] :: CreateFirewallOps -> Maybe Bool
- Google.Cloud.Compute.Firewall: [$sel:disabled:FirewallMeta] :: FirewallMeta -> Maybe Bool
- Google.Cloud.Compute.Firewall: [$sel:enable:LogConfig] :: LogConfig -> Bool
- Google.Cloud.Compute.Firewall: [$sel:endTime:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:error_:Operation] :: Operation -> Maybe OperationError
- Google.Cloud.Compute.Firewall: [$sel:iPProtocol:AllowedFirewall] :: AllowedFirewall -> String
- Google.Cloud.Compute.Firewall: [$sel:iPProtocol:DeniedFirewall] :: DeniedFirewall -> String
- Google.Cloud.Compute.Firewall: [$sel:id:FirewallList] :: FirewallList -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:id:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:id:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:insertTime:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:items:FirewallList] :: FirewallList -> Maybe [FirewallMeta]
- Google.Cloud.Compute.Firewall: [$sel:key:WarningData] :: WarningData -> String
- Google.Cloud.Compute.Firewall: [$sel:kind:FirewallList] :: FirewallList -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:kind:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:logConfig:CreateFirewallOps] :: CreateFirewallOps -> Maybe LogConfig
- Google.Cloud.Compute.Firewall: [$sel:logConfig:FirewallMeta] :: FirewallMeta -> Maybe LogConfig
- Google.Cloud.Compute.Firewall: [$sel:message:Warning] :: Warning -> String
- Google.Cloud.Compute.Firewall: [$sel:metadata:LogConfig] :: LogConfig -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:name:CreateFirewallOps] :: CreateFirewallOps -> String
- Google.Cloud.Compute.Firewall: [$sel:name:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:name:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:network:CreateFirewallOps] :: CreateFirewallOps -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:network:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:nextPageToken:FirewallList] :: FirewallList -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:operationType:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:ports:AllowedFirewall] :: AllowedFirewall -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:ports:DeniedFirewall] :: DeniedFirewall -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:priority:CreateFirewallOps] :: CreateFirewallOps -> Maybe Int
- Google.Cloud.Compute.Firewall: [$sel:priority:FirewallMeta] :: FirewallMeta -> Maybe Int
- Google.Cloud.Compute.Firewall: [$sel:progress:Operation] :: Operation -> Maybe Int
- Google.Cloud.Compute.Firewall: [$sel:selfLink:FirewallList] :: FirewallList -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:selfLink:FirewallMeta] :: FirewallMeta -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:selfLink:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:sourceRanges:CreateFirewallOps] :: CreateFirewallOps -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:sourceRanges:FirewallMeta] :: FirewallMeta -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:sourceTags:CreateFirewallOps] :: CreateFirewallOps -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:sourceTags:FirewallMeta] :: FirewallMeta -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:startTime:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:status:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:targetLink:Operation] :: Operation -> Maybe String
- Google.Cloud.Compute.Firewall: [$sel:targetTags:CreateFirewallOps] :: CreateFirewallOps -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:targetTags:FirewallMeta] :: FirewallMeta -> Maybe [String]
- Google.Cloud.Compute.Firewall: [$sel:value:WarningData] :: WarningData -> String
- Google.Cloud.Compute.Firewall: [$sel:warning:FirewallList] :: FirewallList -> Maybe Warning
- Google.Cloud.Compute.Firewall: [$sel:warnings:Operation] :: Operation -> Maybe [Warning]
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.AllowedFirewall
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.CreateFirewallOps
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.CreateFirewallQuery
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.DeniedFirewall
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.ErrorDetail
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.FirewallList
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.FirewallMeta
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.ListFirewallsQuery
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.LogConfig
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.Operation
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.OperationError
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.Warning
- Google.Cloud.Compute.Firewall: instance GHC.Show.Show Google.Cloud.Compute.Firewall.WarningData
- Google.Cloud.Compute.Instance: [$sel:acceleratorCount:GuestAccelerator] :: GuestAccelerator -> Int
- Google.Cloud.Compute.Instance: [$sel:acceleratorType:GuestAccelerator] :: GuestAccelerator -> Text
- Google.Cloud.Compute.Instance: [$sel:automaticRestart:ResourceStatus] :: ResourceStatus -> Bool
- Google.Cloud.Compute.Instance: [$sel:automaticRestart:Scheduling] :: Scheduling -> Bool
- Google.Cloud.Compute.Instance: [$sel:availabilityDomain:ResourceStatus] :: ResourceStatus -> Int
- Google.Cloud.Compute.Instance: [$sel:availabilityDomain:Scheduling] :: Scheduling -> Int
- Google.Cloud.Compute.Instance: [$sel:clientOperationId:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:clientOperationId:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:code:ErrorDetail] :: ErrorDetail -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:code:Warning] :: Warning -> String
- Google.Cloud.Compute.Instance: [$sel:confidentialInstanceConfig:InstanceMetadata] :: InstanceMetadata -> Maybe ConfidentialInstanceConfig
- Google.Cloud.Compute.Instance: [$sel:confidentialInstanceType:ConfidentialInstanceConfig] :: ConfidentialInstanceConfig -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:consumeReservationType:ReservationAffinity] :: ReservationAffinity -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:cpuPlatform:InstanceMetadata] :: InstanceMetadata -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:creationTimestamp:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:creationTimestamp:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:deletionProtection:InstanceMetadata] :: InstanceMetadata -> Maybe Bool
- Google.Cloud.Compute.Instance: [$sel:description:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:description:Link] :: Link -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:discardLocalSsd:DiscardLocalSsd] :: OnInstanceTerminationAction -> Bool
- Google.Cloud.Compute.Instance: [$sel:disks:InsertInstanceOps] :: InsertInstanceOps -> Maybe [Disk]
- Google.Cloud.Compute.Instance: [$sel:displayDevice:InstanceMetadata] :: InstanceMetadata -> Maybe DisplayDevice
- Google.Cloud.Compute.Instance: [$sel:domain:ErrorInfo] :: ErrorInfo -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:enableConfidentialCompute:ConfidentialInstanceConfig] :: ConfidentialInstanceConfig -> Maybe Bool
- Google.Cloud.Compute.Instance: [$sel:enableDisplay:DisplayDevice] :: DisplayDevice -> Bool
- Google.Cloud.Compute.Instance: [$sel:enableIntegrityMonitoring:ShieldedInstanceConfig] :: ShieldedInstanceConfig -> Bool
- Google.Cloud.Compute.Instance: [$sel:enableSecureBoot:ShieldedInstanceConfig] :: ShieldedInstanceConfig -> Bool
- Google.Cloud.Compute.Instance: [$sel:enableVtpm:ShieldedInstanceConfig] :: ShieldedInstanceConfig -> Bool
- Google.Cloud.Compute.Instance: [$sel:endTime:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:errorDetails:ErrorDetail] :: ErrorDetail -> Maybe [DetailedError]
- Google.Cloud.Compute.Instance: [$sel:errorInfo:DetailedError] :: DetailedError -> Maybe ErrorInfo
- Google.Cloud.Compute.Instance: [$sel:error_:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe Error_
- Google.Cloud.Compute.Instance: [$sel:errors:Error_] :: Error_ -> Maybe [ErrorDetail]
- Google.Cloud.Compute.Instance: [$sel:filter_:ListInstancesQuery] :: ListInstancesQuery -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:fingerprint:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:futureLimit:QuotaInfo] :: QuotaInfo -> Maybe Double
- Google.Cloud.Compute.Instance: [$sel:guestAccelerators:InstanceMetadata] :: InstanceMetadata -> Maybe [GuestAccelerator]
- Google.Cloud.Compute.Instance: [$sel:help:DetailedError] :: DetailedError -> Maybe Help
- Google.Cloud.Compute.Instance: [$sel:hostname:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:httpErrorMessage:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:httpErrorStatusCode:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe Int
- Google.Cloud.Compute.Instance: [$sel:id_:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:id_:InstanceList] :: InstanceList -> String
- Google.Cloud.Compute.Instance: [$sel:id_:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:insertTime:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:instanceEncryptionKey:InstanceMetadata] :: InstanceMetadata -> Maybe InstanceEncryptionKey
- Google.Cloud.Compute.Instance: [$sel:instanceTerminationAction:ResourceStatus] :: ResourceStatus -> InstanceTerminationAction
- Google.Cloud.Compute.Instance: [$sel:instanceTerminationAction:Scheduling] :: Scheduling -> InstanceTerminationAction
- Google.Cloud.Compute.Instance: [$sel:items:InstanceList] :: InstanceList -> Maybe [InstanceMetadata]
- Google.Cloud.Compute.Instance: [$sel:key:NodeAffinity] :: NodeAffinity -> String
- Google.Cloud.Compute.Instance: [$sel:key:ReservationAffinity] :: ReservationAffinity -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:keyRevocationActionType:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:kind:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:kind:InstanceList] :: InstanceList -> String
- Google.Cloud.Compute.Instance: [$sel:kind:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:kmsKeyName:InstanceEncryptionKey] :: InstanceEncryptionKey -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:kmsKeyServiceAccount:InstanceEncryptionKey] :: InstanceEncryptionKey -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:labelFingerprint:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:lastStartTimestamp:InstanceMetadata] :: InstanceMetadata -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:lastStopTimestamp:InstanceMetadata] :: InstanceMetadata -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:lastSuspendedTimestamp:InstanceMetadata] :: InstanceMetadata -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:limit:QuotaInfo] :: QuotaInfo -> Maybe Double
- Google.Cloud.Compute.Instance: [$sel:limitName:QuotaInfo] :: QuotaInfo -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:links:Help] :: Help -> Maybe [Link]
- Google.Cloud.Compute.Instance: [$sel:locale:LocalizedMessage] :: LocalizedMessage -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:localizedMessage:DetailedError] :: DetailedError -> Maybe LocalizedMessage
- Google.Cloud.Compute.Instance: [$sel:location:ErrorDetail] :: ErrorDetail -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:locationHint:ResourceStatus] :: ResourceStatus -> String
- Google.Cloud.Compute.Instance: [$sel:locationHint:Scheduling] :: Scheduling -> String
- Google.Cloud.Compute.Instance: [$sel:machineType:InsertInstanceOps] :: InsertInstanceOps -> String
- Google.Cloud.Compute.Instance: [$sel:maxResults:ListInstancesQuery] :: ListInstancesQuery -> Maybe Int
- Google.Cloud.Compute.Instance: [$sel:message:ErrorDetail] :: ErrorDetail -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:message:LocalizedMessage] :: LocalizedMessage -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:message:Warning] :: Warning -> String
- Google.Cloud.Compute.Instance: [$sel:metricName:QuotaInfo] :: QuotaInfo -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:minCpuPlatform:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:minNodeCpus:ResourceStatus] :: ResourceStatus -> Int
- Google.Cloud.Compute.Instance: [$sel:minNodeCpus:Scheduling] :: Scheduling -> Int
- Google.Cloud.Compute.Instance: [$sel:name:InsertInstanceOps] :: InsertInstanceOps -> String
- Google.Cloud.Compute.Instance: [$sel:name:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:name:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:networkInterfaces:InsertInstanceOps] :: InsertInstanceOps -> Maybe [NetworkInterface]
- Google.Cloud.Compute.Instance: [$sel:networkPerformanceConfig:InstanceMetadata] :: InstanceMetadata -> Maybe NetworkPerformanceConfig
- Google.Cloud.Compute.Instance: [$sel:nodeAffinities:ResourceStatus] :: ResourceStatus -> [NodeAffinity]
- Google.Cloud.Compute.Instance: [$sel:nodeAffinities:Scheduling] :: Scheduling -> [NodeAffinity]
- Google.Cloud.Compute.Instance: [$sel:onHostMaintenance:ResourceStatus] :: ResourceStatus -> String
- Google.Cloud.Compute.Instance: [$sel:onHostMaintenance:Scheduling] :: Scheduling -> String
- Google.Cloud.Compute.Instance: [$sel:operationGroupId:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:operationType:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:operationType:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:operator:NodeAffinity] :: NodeAffinity -> String
- Google.Cloud.Compute.Instance: [$sel:orderBy:ListInstancesQuery] :: ListInstancesQuery -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:pageToken:ListInstancesQuery] :: ListInstancesQuery -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:policy:ShieldedInstanceIntegrityPolicy] :: ShieldedInstanceIntegrityPolicy -> Maybe UpdateAutoLearnPolicy
- Google.Cloud.Compute.Instance: [$sel:preemptible:ResourceStatus] :: ResourceStatus -> Bool
- Google.Cloud.Compute.Instance: [$sel:preemptible:Scheduling] :: Scheduling -> Bool
- Google.Cloud.Compute.Instance: [$sel:privateIpv6GoogleAccess:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:progress:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe Int
- Google.Cloud.Compute.Instance: [$sel:provisioningModel:ResourceStatus] :: ResourceStatus -> String
- Google.Cloud.Compute.Instance: [$sel:provisioningModel:Scheduling] :: Scheduling -> String
- Google.Cloud.Compute.Instance: [$sel:quotaInfo:DetailedError] :: DetailedError -> Maybe QuotaInfo
- Google.Cloud.Compute.Instance: [$sel:rawKey:InstanceEncryptionKey] :: InstanceEncryptionKey -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:reason:ErrorInfo] :: ErrorInfo -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:region:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:requestId:RequestIdQuery] :: RequestIdQuery -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:reservationAffinity:InstanceMetadata] :: InstanceMetadata -> Maybe ReservationAffinity
- Google.Cloud.Compute.Instance: [$sel:resourcePolicies:InstanceMetadata] :: InstanceMetadata -> Maybe [Text]
- Google.Cloud.Compute.Instance: [$sel:resourceStatus:InstanceMetadata] :: InstanceMetadata -> Maybe ResourceStatus
- Google.Cloud.Compute.Instance: [$sel:returnPartialSuccess:ListInstancesQuery] :: ListInstancesQuery -> Maybe Bool
- Google.Cloud.Compute.Instance: [$sel:rolloutStatus:QuotaInfo] :: QuotaInfo -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:rsaEncryptedKey:InstanceEncryptionKey] :: InstanceEncryptionKey -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:satisfiesPzi:InstanceMetadata] :: InstanceMetadata -> Maybe Bool
- Google.Cloud.Compute.Instance: [$sel:satisfiesPzs:InstanceMetadata] :: InstanceMetadata -> Maybe Bool
- Google.Cloud.Compute.Instance: [$sel:selfLink:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:sha256:InstanceEncryptionKey] :: InstanceEncryptionKey -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:shieldedInstanceConfig:InstanceMetadata] :: InstanceMetadata -> Maybe ShieldedInstanceConfig
- Google.Cloud.Compute.Instance: [$sel:shieldedInstanceIntegrityPolicy:InstanceMetadata] :: InstanceMetadata -> Maybe ShieldedInstanceIntegrityPolicy
- Google.Cloud.Compute.Instance: [$sel:sourceMachineImage:InstanceMetadata] :: InstanceMetadata -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:sourceMachineImageEncryptionKey:InstanceMetadata] :: InstanceMetadata -> Maybe InstanceEncryptionKey
- Google.Cloud.Compute.Instance: [$sel:startRestricted:InstanceMetadata] :: InstanceMetadata -> Maybe Bool
- Google.Cloud.Compute.Instance: [$sel:startTime:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:status:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:status:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:statusMessage:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:statusMessage:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:targetId:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:targetId:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:targetLink:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:targetLink:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:totalEgressBandwidthTier:NetworkPerformanceConfig] :: NetworkPerformanceConfig -> Text
- Google.Cloud.Compute.Instance: [$sel:updateAutoLearnPolicy:UpdateAutoLearnPolicy] :: UpdateAutoLearnPolicy -> Bool
- Google.Cloud.Compute.Instance: [$sel:url:Link] :: Link -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:user:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:user:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: [$sel:values:NodeAffinity] :: NodeAffinity -> [String]
- Google.Cloud.Compute.Instance: [$sel:values:ReservationAffinity] :: ReservationAffinity -> Maybe [Text]
- Google.Cloud.Compute.Instance: [$sel:warnings:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe [Warning]
- Google.Cloud.Compute.Instance: [$sel:zone:InstanceDeleteResp] :: InstanceDeleteResp -> Maybe String
- Google.Cloud.Compute.Instance: [$sel:zone:InstanceStartResponse] :: InstanceStartResponse -> Maybe Text
- Google.Cloud.Compute.Instance: data DisplayDevice
- Google.Cloud.Compute.Instance: data Error_
- Google.Cloud.Compute.Instance: data Help
- Google.Cloud.Compute.Instance: data InstanceTerminationAction
- Google.Cloud.Compute.Instance: data NetworkPerformanceConfig
- Google.Cloud.Compute.Instance: data OnInstanceTerminationAction
- Google.Cloud.Compute.Instance: data RequestIdQuery
- Google.Cloud.Compute.Instance: data RunDuration
- Google.Cloud.Compute.Instance: data ShieldedInstanceIntegrityPolicy
- Google.Cloud.Compute.Instance: data UpdateAutoLearnPolicy
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ConfidentialInstanceConfig
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.DetailedError
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.Disk
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.DisplayDevice
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ErrorDetail
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ErrorInfo
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.Error_
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.GuestAccelerator
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.Help
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InitializeParams
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InsertInstanceOps
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InsertInstanceQuery
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InstanceDeleteResp
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InstanceEncryptionKey
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InstanceList
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InstanceMetadata
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InstanceStartResponse
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.InstanceTerminationAction
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.Link
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ListInstancesQuery
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.LocalizedMessage
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.NetworkInterface
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.NetworkPerformanceConfig
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.NodeAffinity
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.OnInstanceTerminationAction
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.QuotaInfo
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.RequestIdQuery
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ReservationAffinity
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ResourceStatus
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.RunDuration
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.Scheduling
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ShieldedInstanceConfig
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.ShieldedInstanceIntegrityPolicy
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.UpdateAutoLearnPolicy
- Google.Cloud.Compute.Instance: instance GHC.Show.Show Google.Cloud.Compute.Instance.Warning
- Google.Cloud.Compute.Network: [$sel:autoCreateSubnetworks:NetworkMeta] :: NetworkMeta -> Maybe Bool
- Google.Cloud.Compute.Network: [$sel:creationTimestamp:NetworkMeta] :: NetworkMeta -> Text
- Google.Cloud.Compute.Network: [$sel:description:NetworkMeta] :: NetworkMeta -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:enableUlaInternalIpv6:NetworkMeta] :: NetworkMeta -> Maybe Bool
- Google.Cloud.Compute.Network: [$sel:exchangeSubnetRoutes:NetworkPeering] :: NetworkPeering -> Maybe Bool
- Google.Cloud.Compute.Network: [$sel:exportCustomRoutes:NetworkPeering] :: NetworkPeering -> Maybe Bool
- Google.Cloud.Compute.Network: [$sel:filter_:ListNetworksQuery] :: ListNetworksQuery -> Maybe String
- Google.Cloud.Compute.Network: [$sel:gatewayIPv4:NetworkMeta] :: NetworkMeta -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:iPv4Range:NetworkMeta] :: NetworkMeta -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:iPv6Range:NetworkMeta] :: NetworkMeta -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:id_:NetworkList] :: NetworkList -> Text
- Google.Cloud.Compute.Network: [$sel:id_:NetworkMeta] :: NetworkMeta -> Text
- Google.Cloud.Compute.Network: [$sel:importCustomRoutes:NetworkPeering] :: NetworkPeering -> Maybe Bool
- Google.Cloud.Compute.Network: [$sel:internalIpv6Range:NetworkMeta] :: NetworkMeta -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:items:NetworkList] :: NetworkList -> [NetworkMeta]
- Google.Cloud.Compute.Network: [$sel:kind:NetworkList] :: NetworkList -> Text
- Google.Cloud.Compute.Network: [$sel:kind:NetworkMeta] :: NetworkMeta -> Text
- Google.Cloud.Compute.Network: [$sel:maxResults:ListNetworksQuery] :: ListNetworksQuery -> Maybe Int
- Google.Cloud.Compute.Network: [$sel:mtu:NetworkMeta] :: NetworkMeta -> Maybe Int
- Google.Cloud.Compute.Network: [$sel:name:NetworkMeta] :: NetworkMeta -> Text
- Google.Cloud.Compute.Network: [$sel:name:NetworkPeering] :: NetworkPeering -> Text
- Google.Cloud.Compute.Network: [$sel:network:NetworkPeering] :: NetworkPeering -> Text
- Google.Cloud.Compute.Network: [$sel:networkFirewallPolicyEnforcementOrder:NetworkMeta] :: NetworkMeta -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:nextPageToken:NetworkList] :: NetworkList -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:orderBy:ListNetworksQuery] :: ListNetworksQuery -> Maybe String
- Google.Cloud.Compute.Network: [$sel:pageToken:ListNetworksQuery] :: ListNetworksQuery -> Maybe String
- Google.Cloud.Compute.Network: [$sel:peerings:NetworkMeta] :: NetworkMeta -> Maybe [NetworkPeering]
- Google.Cloud.Compute.Network: [$sel:returnPartialSuccess:ListNetworksQuery] :: ListNetworksQuery -> Maybe Bool
- Google.Cloud.Compute.Network: [$sel:selfLink:NetworkList] :: NetworkList -> Text
- Google.Cloud.Compute.Network: [$sel:selfLink:NetworkMeta] :: NetworkMeta -> Text
- Google.Cloud.Compute.Network: [$sel:state:NetworkPeering] :: NetworkPeering -> Text
- Google.Cloud.Compute.Network: [$sel:stateDetails:NetworkPeering] :: NetworkPeering -> Maybe Text
- Google.Cloud.Compute.Network: [$sel:subnetworks:NetworkMeta] :: NetworkMeta -> [Text]
- Google.Cloud.Compute.Network: instance GHC.Show.Show Google.Cloud.Compute.Network.ListNetworksQuery
- Google.Cloud.Compute.Network: instance GHC.Show.Show Google.Cloud.Compute.Network.NetworkList
- Google.Cloud.Compute.Network: instance GHC.Show.Show Google.Cloud.Compute.Network.NetworkMeta
- Google.Cloud.Compute.Network: instance GHC.Show.Show Google.Cloud.Compute.Network.NetworkPeering
+ Google.Cloud.Compute.Disk: [code] :: Warning -> String
+ Google.Cloud.Compute.Disk: [data_] :: Warning -> Maybe [WarningData]
+ Google.Cloud.Compute.Disk: [description] :: CreateSnapshotOps -> Maybe String
+ Google.Cloud.Compute.Disk: [diskEncryptionKey] :: InsertDiskOps -> Maybe EncryptionKey
+ Google.Cloud.Compute.Disk: [endTime] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [error] :: Operation -> Maybe OperationError
+ Google.Cloud.Compute.Disk: [guestOsFeatures] :: InsertDiskOps -> Maybe [GuestOsFeature]
+ Google.Cloud.Compute.Disk: [id] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [insertTime] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [items] :: DiskResponse -> Maybe [DiskItem]
+ Google.Cloud.Compute.Disk: [key] :: WarningData -> String
+ Google.Cloud.Compute.Disk: [kind] :: DiskResponse -> Maybe String
+ Google.Cloud.Compute.Disk: [labels] :: CreateSnapshotOps -> Maybe (Map String String)
+ Google.Cloud.Compute.Disk: [message] :: Warning -> String
+ Google.Cloud.Compute.Disk: [name] :: CreateSnapshotOps -> String
+ Google.Cloud.Compute.Disk: [nextPageToken] :: DiskResponse -> Maybe String
+ Google.Cloud.Compute.Disk: [operationType] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [progress] :: Operation -> Maybe Int
+ Google.Cloud.Compute.Disk: [selfLink] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [sizeGb] :: InsertDiskOps -> String
+ Google.Cloud.Compute.Disk: [snapshotEncryptionKey] :: CreateSnapshotOps -> Maybe EncryptionKey
+ Google.Cloud.Compute.Disk: [sourceImage] :: InsertDiskOps -> Maybe String
+ Google.Cloud.Compute.Disk: [sourceSnapshot] :: InsertDiskOps -> Maybe String
+ Google.Cloud.Compute.Disk: [startTime] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [status] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [storageLocations] :: CreateSnapshotOps -> Maybe [String]
+ Google.Cloud.Compute.Disk: [targetLink] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: [type_] :: InsertDiskOps -> Maybe String
+ Google.Cloud.Compute.Disk: [value] :: WarningData -> String
+ Google.Cloud.Compute.Disk: [warning] :: DiskResponse -> Maybe Warning
+ Google.Cloud.Compute.Disk: [warnings] :: Operation -> Maybe [Warning]
+ Google.Cloud.Compute.Disk: [zone] :: Operation -> Maybe String
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.CreateSnapshotOps
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.CreateSnapshotQuery
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.DeleteDiskQuery
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.DiskItem
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.DiskResponse
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.EncryptionKey
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.ErrorDetail
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.GuestOsFeature
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.InsertDiskOps
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.InsertDiskQuery
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.ListDisksQuery
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.Operation
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.OperationError
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.Warning
+ Google.Cloud.Compute.Disk: instance GHC.Internal.Show.Show Google.Cloud.Compute.Disk.WarningData
+ Google.Cloud.Compute.Firewall: [allowed] :: CreateFirewallOps -> Maybe [AllowedFirewall]
+ Google.Cloud.Compute.Firewall: [code] :: Warning -> String
+ Google.Cloud.Compute.Firewall: [creationTimestamp] :: FirewallMeta -> Maybe String
+ Google.Cloud.Compute.Firewall: [data_] :: Warning -> Maybe [WarningData]
+ Google.Cloud.Compute.Firewall: [denied] :: CreateFirewallOps -> Maybe [DeniedFirewall]
+ Google.Cloud.Compute.Firewall: [description] :: CreateFirewallOps -> Maybe String
+ Google.Cloud.Compute.Firewall: [direction] :: CreateFirewallOps -> Maybe String
+ Google.Cloud.Compute.Firewall: [disabled] :: CreateFirewallOps -> Maybe Bool
+ Google.Cloud.Compute.Firewall: [enable] :: LogConfig -> Bool
+ Google.Cloud.Compute.Firewall: [endTime] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [error_] :: Operation -> Maybe OperationError
+ Google.Cloud.Compute.Firewall: [iPProtocol] :: DeniedFirewall -> String
+ Google.Cloud.Compute.Firewall: [id] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [insertTime] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [items] :: FirewallList -> Maybe [FirewallMeta]
+ Google.Cloud.Compute.Firewall: [key] :: WarningData -> String
+ Google.Cloud.Compute.Firewall: [kind] :: FirewallMeta -> Maybe String
+ Google.Cloud.Compute.Firewall: [logConfig] :: CreateFirewallOps -> Maybe LogConfig
+ Google.Cloud.Compute.Firewall: [message] :: Warning -> String
+ Google.Cloud.Compute.Firewall: [metadata] :: LogConfig -> Maybe String
+ Google.Cloud.Compute.Firewall: [name] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [network] :: CreateFirewallOps -> Maybe String
+ Google.Cloud.Compute.Firewall: [nextPageToken] :: FirewallList -> Maybe String
+ Google.Cloud.Compute.Firewall: [operationType] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [ports] :: DeniedFirewall -> Maybe [String]
+ Google.Cloud.Compute.Firewall: [priority] :: CreateFirewallOps -> Maybe Int
+ Google.Cloud.Compute.Firewall: [progress] :: Operation -> Maybe Int
+ Google.Cloud.Compute.Firewall: [selfLink] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [sourceRanges] :: CreateFirewallOps -> Maybe [String]
+ Google.Cloud.Compute.Firewall: [sourceTags] :: CreateFirewallOps -> Maybe [String]
+ Google.Cloud.Compute.Firewall: [startTime] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [status] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [targetLink] :: Operation -> Maybe String
+ Google.Cloud.Compute.Firewall: [targetTags] :: CreateFirewallOps -> Maybe [String]
+ Google.Cloud.Compute.Firewall: [value] :: WarningData -> String
+ Google.Cloud.Compute.Firewall: [warning] :: FirewallList -> Maybe Warning
+ Google.Cloud.Compute.Firewall: [warnings] :: Operation -> Maybe [Warning]
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.AllowedFirewall
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.CreateFirewallOps
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.CreateFirewallQuery
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.DeniedFirewall
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.ErrorDetail
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.FirewallList
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.FirewallMeta
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.ListFirewallsQuery
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.LogConfig
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.Operation
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.OperationError
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.Warning
+ Google.Cloud.Compute.Firewall: instance GHC.Internal.Show.Show Google.Cloud.Compute.Firewall.WarningData
+ Google.Cloud.Compute.Instance: [acceleratorCount] :: GuestAccelerator -> Int
+ Google.Cloud.Compute.Instance: [acceleratorType] :: GuestAccelerator -> Text
+ Google.Cloud.Compute.Instance: [automaticRestart] :: ResourceStatus -> Bool
+ Google.Cloud.Compute.Instance: [availabilityDomain] :: ResourceStatus -> Int
+ Google.Cloud.Compute.Instance: [clientOperationId] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [code] :: ErrorDetail -> Maybe String
+ Google.Cloud.Compute.Instance: [confidentialInstanceConfig] :: InstanceMetadata -> Maybe ConfidentialInstanceConfig
+ Google.Cloud.Compute.Instance: [confidentialInstanceType] :: ConfidentialInstanceConfig -> Maybe Text
+ Google.Cloud.Compute.Instance: [consumeReservationType] :: ReservationAffinity -> Maybe Text
+ Google.Cloud.Compute.Instance: [cpuPlatform] :: InstanceMetadata -> Maybe String
+ Google.Cloud.Compute.Instance: [creationTimestamp] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [deletionProtection] :: InstanceMetadata -> Maybe Bool
+ Google.Cloud.Compute.Instance: [description] :: Link -> Maybe String
+ Google.Cloud.Compute.Instance: [discardLocalSsd] :: OnInstanceTerminationAction -> Bool
+ Google.Cloud.Compute.Instance: [disks] :: InsertInstanceOps -> Maybe [Disk]
+ Google.Cloud.Compute.Instance: [displayDevice] :: InstanceMetadata -> Maybe DisplayDevice
+ Google.Cloud.Compute.Instance: [domain] :: ErrorInfo -> Maybe String
+ Google.Cloud.Compute.Instance: [enableConfidentialCompute] :: ConfidentialInstanceConfig -> Maybe Bool
+ Google.Cloud.Compute.Instance: [enableDisplay] :: DisplayDevice -> Bool
+ Google.Cloud.Compute.Instance: [enableIntegrityMonitoring] :: ShieldedInstanceConfig -> Bool
+ Google.Cloud.Compute.Instance: [enableSecureBoot] :: ShieldedInstanceConfig -> Bool
+ Google.Cloud.Compute.Instance: [enableVtpm] :: ShieldedInstanceConfig -> Bool
+ Google.Cloud.Compute.Instance: [endTime] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [errorDetails] :: ErrorDetail -> Maybe [DetailedError]
+ Google.Cloud.Compute.Instance: [errorInfo] :: DetailedError -> Maybe ErrorInfo
+ Google.Cloud.Compute.Instance: [error_] :: InstanceDeleteResp -> Maybe Error_
+ Google.Cloud.Compute.Instance: [errors] :: Error_ -> Maybe [ErrorDetail]
+ Google.Cloud.Compute.Instance: [filter_] :: ListInstancesQuery -> Maybe String
+ Google.Cloud.Compute.Instance: [fingerprint] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [futureLimit] :: QuotaInfo -> Maybe Double
+ Google.Cloud.Compute.Instance: [guestAccelerators] :: InstanceMetadata -> Maybe [GuestAccelerator]
+ Google.Cloud.Compute.Instance: [help] :: DetailedError -> Maybe Help
+ Google.Cloud.Compute.Instance: [hostname] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [httpErrorMessage] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [httpErrorStatusCode] :: InstanceDeleteResp -> Maybe Int
+ Google.Cloud.Compute.Instance: [id_] :: InstanceList -> String
+ Google.Cloud.Compute.Instance: [insertTime] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [instanceEncryptionKey] :: InstanceMetadata -> Maybe InstanceEncryptionKey
+ Google.Cloud.Compute.Instance: [instanceTerminationAction] :: ResourceStatus -> InstanceTerminationAction
+ Google.Cloud.Compute.Instance: [items] :: InstanceList -> Maybe [InstanceMetadata]
+ Google.Cloud.Compute.Instance: [keyRevocationActionType] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [key] :: ReservationAffinity -> Maybe Text
+ Google.Cloud.Compute.Instance: [kind] :: InstanceList -> String
+ Google.Cloud.Compute.Instance: [kmsKeyName] :: InstanceEncryptionKey -> Maybe Text
+ Google.Cloud.Compute.Instance: [kmsKeyServiceAccount] :: InstanceEncryptionKey -> Maybe Text
+ Google.Cloud.Compute.Instance: [labelFingerprint] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [lastStartTimestamp] :: InstanceMetadata -> Maybe String
+ Google.Cloud.Compute.Instance: [lastStopTimestamp] :: InstanceMetadata -> Maybe String
+ Google.Cloud.Compute.Instance: [lastSuspendedTimestamp] :: InstanceMetadata -> Maybe String
+ Google.Cloud.Compute.Instance: [limitName] :: QuotaInfo -> Maybe String
+ Google.Cloud.Compute.Instance: [limit] :: QuotaInfo -> Maybe Double
+ Google.Cloud.Compute.Instance: [links] :: Help -> Maybe [Link]
+ Google.Cloud.Compute.Instance: [locale] :: LocalizedMessage -> Maybe String
+ Google.Cloud.Compute.Instance: [localizedMessage] :: DetailedError -> Maybe LocalizedMessage
+ Google.Cloud.Compute.Instance: [locationHint] :: ResourceStatus -> String
+ Google.Cloud.Compute.Instance: [location] :: ErrorDetail -> Maybe String
+ Google.Cloud.Compute.Instance: [machineType] :: InsertInstanceOps -> String
+ Google.Cloud.Compute.Instance: [maxResults] :: ListInstancesQuery -> Maybe Int
+ Google.Cloud.Compute.Instance: [message] :: LocalizedMessage -> Maybe String
+ Google.Cloud.Compute.Instance: [metricName] :: QuotaInfo -> Maybe String
+ Google.Cloud.Compute.Instance: [minCpuPlatform] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [minNodeCpus] :: ResourceStatus -> Int
+ Google.Cloud.Compute.Instance: [name] :: InsertInstanceOps -> String
+ Google.Cloud.Compute.Instance: [networkInterfaces] :: InsertInstanceOps -> Maybe [NetworkInterface]
+ Google.Cloud.Compute.Instance: [networkPerformanceConfig] :: InstanceMetadata -> Maybe NetworkPerformanceConfig
+ Google.Cloud.Compute.Instance: [nodeAffinities] :: ResourceStatus -> [NodeAffinity]
+ Google.Cloud.Compute.Instance: [onHostMaintenance] :: ResourceStatus -> String
+ Google.Cloud.Compute.Instance: [operationGroupId] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [operationType] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [operator] :: NodeAffinity -> String
+ Google.Cloud.Compute.Instance: [orderBy] :: ListInstancesQuery -> Maybe String
+ Google.Cloud.Compute.Instance: [pageToken] :: ListInstancesQuery -> Maybe String
+ Google.Cloud.Compute.Instance: [policy] :: ShieldedInstanceIntegrityPolicy -> Maybe UpdateAutoLearnPolicy
+ Google.Cloud.Compute.Instance: [preemptible] :: ResourceStatus -> Bool
+ Google.Cloud.Compute.Instance: [privateIpv6GoogleAccess] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [progress] :: InstanceDeleteResp -> Maybe Int
+ Google.Cloud.Compute.Instance: [provisioningModel] :: ResourceStatus -> String
+ Google.Cloud.Compute.Instance: [quotaInfo] :: DetailedError -> Maybe QuotaInfo
+ Google.Cloud.Compute.Instance: [rawKey] :: InstanceEncryptionKey -> Maybe Text
+ Google.Cloud.Compute.Instance: [reason] :: ErrorInfo -> Maybe String
+ Google.Cloud.Compute.Instance: [region] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [requestId] :: RequestIdQuery -> Maybe String
+ Google.Cloud.Compute.Instance: [reservationAffinity] :: InstanceMetadata -> Maybe ReservationAffinity
+ Google.Cloud.Compute.Instance: [resourcePolicies] :: InstanceMetadata -> Maybe [Text]
+ Google.Cloud.Compute.Instance: [resourceStatus] :: InstanceMetadata -> Maybe ResourceStatus
+ Google.Cloud.Compute.Instance: [returnPartialSuccess] :: ListInstancesQuery -> Maybe Bool
+ Google.Cloud.Compute.Instance: [rolloutStatus] :: QuotaInfo -> Maybe String
+ Google.Cloud.Compute.Instance: [rsaEncryptedKey] :: InstanceEncryptionKey -> Maybe Text
+ Google.Cloud.Compute.Instance: [satisfiesPzi] :: InstanceMetadata -> Maybe Bool
+ Google.Cloud.Compute.Instance: [satisfiesPzs] :: InstanceMetadata -> Maybe Bool
+ Google.Cloud.Compute.Instance: [selfLink] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [sha256] :: InstanceEncryptionKey -> Maybe Text
+ Google.Cloud.Compute.Instance: [shieldedInstanceConfig] :: InstanceMetadata -> Maybe ShieldedInstanceConfig
+ Google.Cloud.Compute.Instance: [shieldedInstanceIntegrityPolicy] :: InstanceMetadata -> Maybe ShieldedInstanceIntegrityPolicy
+ Google.Cloud.Compute.Instance: [sourceMachineImageEncryptionKey] :: InstanceMetadata -> Maybe InstanceEncryptionKey
+ Google.Cloud.Compute.Instance: [sourceMachineImage] :: InstanceMetadata -> Maybe Text
+ Google.Cloud.Compute.Instance: [startRestricted] :: InstanceMetadata -> Maybe Bool
+ Google.Cloud.Compute.Instance: [startTime] :: InstanceDeleteResp -> Maybe String
+ Google.Cloud.Compute.Instance: [statusMessage] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [status] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [targetId] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [targetLink] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [totalEgressBandwidthTier] :: NetworkPerformanceConfig -> Text
+ Google.Cloud.Compute.Instance: [updateAutoLearnPolicy] :: UpdateAutoLearnPolicy -> Bool
+ Google.Cloud.Compute.Instance: [url] :: Link -> Maybe String
+ Google.Cloud.Compute.Instance: [user] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: [values] :: ReservationAffinity -> Maybe [Text]
+ Google.Cloud.Compute.Instance: [warnings] :: InstanceDeleteResp -> Maybe [Warning]
+ Google.Cloud.Compute.Instance: [zone] :: InstanceStartResponse -> Maybe Text
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ConfidentialInstanceConfig
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.DetailedError
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.Disk
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.DisplayDevice
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ErrorDetail
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ErrorInfo
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.Error_
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.GuestAccelerator
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.Help
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InitializeParams
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InsertInstanceOps
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InsertInstanceQuery
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InstanceDeleteResp
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InstanceEncryptionKey
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InstanceList
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InstanceMetadata
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InstanceStartResponse
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.InstanceTerminationAction
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.Link
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ListInstancesQuery
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.LocalizedMessage
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.NetworkInterface
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.NetworkPerformanceConfig
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.NodeAffinity
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.OnInstanceTerminationAction
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.QuotaInfo
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.RequestIdQuery
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ReservationAffinity
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ResourceStatus
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.RunDuration
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.Scheduling
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ShieldedInstanceConfig
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.ShieldedInstanceIntegrityPolicy
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.UpdateAutoLearnPolicy
+ Google.Cloud.Compute.Instance: instance GHC.Internal.Show.Show Google.Cloud.Compute.Instance.Warning
+ Google.Cloud.Compute.Instance: newtype DisplayDevice
+ Google.Cloud.Compute.Instance: newtype Error_
+ Google.Cloud.Compute.Instance: newtype Help
+ Google.Cloud.Compute.Instance: newtype InstanceTerminationAction
+ Google.Cloud.Compute.Instance: newtype NetworkPerformanceConfig
+ Google.Cloud.Compute.Instance: newtype OnInstanceTerminationAction
+ Google.Cloud.Compute.Instance: newtype RequestIdQuery
+ Google.Cloud.Compute.Instance: newtype RunDuration
+ Google.Cloud.Compute.Instance: newtype ShieldedInstanceIntegrityPolicy
+ Google.Cloud.Compute.Instance: newtype UpdateAutoLearnPolicy
+ Google.Cloud.Compute.Network: [autoCreateSubnetworks] :: NetworkMeta -> Maybe Bool
+ Google.Cloud.Compute.Network: [creationTimestamp] :: NetworkMeta -> Text
+ Google.Cloud.Compute.Network: [description] :: NetworkMeta -> Maybe Text
+ Google.Cloud.Compute.Network: [enableUlaInternalIpv6] :: NetworkMeta -> Maybe Bool
+ Google.Cloud.Compute.Network: [exchangeSubnetRoutes] :: NetworkPeering -> Maybe Bool
+ Google.Cloud.Compute.Network: [exportCustomRoutes] :: NetworkPeering -> Maybe Bool
+ Google.Cloud.Compute.Network: [filter_] :: ListNetworksQuery -> Maybe String
+ Google.Cloud.Compute.Network: [gatewayIPv4] :: NetworkMeta -> Maybe Text
+ Google.Cloud.Compute.Network: [iPv4Range] :: NetworkMeta -> Maybe Text
+ Google.Cloud.Compute.Network: [iPv6Range] :: NetworkMeta -> Maybe Text
+ Google.Cloud.Compute.Network: [id_] :: NetworkMeta -> Text
+ Google.Cloud.Compute.Network: [importCustomRoutes] :: NetworkPeering -> Maybe Bool
+ Google.Cloud.Compute.Network: [internalIpv6Range] :: NetworkMeta -> Maybe Text
+ Google.Cloud.Compute.Network: [items] :: NetworkList -> Maybe [NetworkMeta]
+ Google.Cloud.Compute.Network: [kind] :: NetworkMeta -> Text
+ Google.Cloud.Compute.Network: [maxResults] :: ListNetworksQuery -> Maybe Int
+ Google.Cloud.Compute.Network: [mtu] :: NetworkMeta -> Maybe Int
+ Google.Cloud.Compute.Network: [name] :: NetworkPeering -> Text
+ Google.Cloud.Compute.Network: [networkFirewallPolicyEnforcementOrder] :: NetworkMeta -> Maybe Text
+ Google.Cloud.Compute.Network: [network] :: NetworkPeering -> Text
+ Google.Cloud.Compute.Network: [nextPageToken] :: NetworkList -> Maybe Text
+ Google.Cloud.Compute.Network: [orderBy] :: ListNetworksQuery -> Maybe String
+ Google.Cloud.Compute.Network: [pageToken] :: ListNetworksQuery -> Maybe String
+ Google.Cloud.Compute.Network: [peerings] :: NetworkMeta -> Maybe [NetworkPeering]
+ Google.Cloud.Compute.Network: [returnPartialSuccess] :: ListNetworksQuery -> Maybe Bool
+ Google.Cloud.Compute.Network: [selfLink] :: NetworkMeta -> Text
+ Google.Cloud.Compute.Network: [stateDetails] :: NetworkPeering -> Maybe Text
+ Google.Cloud.Compute.Network: [state] :: NetworkPeering -> Text
+ Google.Cloud.Compute.Network: [subnetworks] :: NetworkMeta -> [Text]
+ Google.Cloud.Compute.Network: instance GHC.Internal.Show.Show Google.Cloud.Compute.Network.ListNetworksQuery
+ Google.Cloud.Compute.Network: instance GHC.Internal.Show.Show Google.Cloud.Compute.Network.NetworkList
+ Google.Cloud.Compute.Network: instance GHC.Internal.Show.Show Google.Cloud.Compute.Network.NetworkMeta
+ Google.Cloud.Compute.Network: instance GHC.Internal.Show.Show Google.Cloud.Compute.Network.NetworkPeering
- Google.Cloud.Compute.Network: NetworkList :: Text -> Text -> [NetworkMeta] -> Maybe Text -> Text -> NetworkList
+ Google.Cloud.Compute.Network: NetworkList :: Text -> Text -> Maybe [NetworkMeta] -> Maybe Text -> Text -> NetworkList

Files

CHANGELOG.md view
@@ -8,4 +8,8 @@  ## Unreleased +## 1.1.0.0 - 2025-09-11++- Synchronized version bump for v1.1.0.0 release.+ ## 0.1.0.0 - YYYY-MM-DD
README.md view
@@ -3,3 +3,75 @@ Haskell idiomatic client for [Google Cloud Platform](https://cloud.google.com/) Compute service.  Full docs are available at https://github.com/tusharad/google-cloud-haskell++## Installation++- Cabal: add to your `.cabal`+  - `build-depends: google-cloud-compute == 1.1.0.0`+- Stack: add to your `package.yaml`+  - `dependencies: - google-cloud-compute == 1.1.0.0`++This package depends on `google-cloud-common` for auth and HTTP helpers.++## Authentication++Authentication is handled by `google-cloud-common` and follows this order:++1. Use `GOOGLE_APPLICATION_CREDENTIALS` to load a Service Account JSON and+   exchange a signed JWT for an access token.+2. Otherwise, use the Compute metadata server (suitable for GCE/GKE).++## Examples++Below are minimal examples. See `examples/` in the repo for more.++```haskell+{-# LANGUAGE OverloadedStrings #-}++import Google.Cloud.Compute.Instance++-- List instances+listInstancesExample :: IO ()+listInstancesExample = do+  let projectId = "my-gcp-project"+      zone = "us-central1-a"+      query = defaultListInstancesQuery+  result <- listInstances projectId zone (Just query)+  case result of+    Left err -> putStrLn ("Error: " <> err)+    Right instances -> print instances++-- Create an instance+createInstanceExample :: IO ()+createInstanceExample = do+  let projectId = "my-gcp-project"+      zone = "us-central1-a"+      instanceName = "my-instance"+      machineType = "e2-medium"+      ops = defaultInsertInstanceOps projectId zone instanceName machineType+  res <- insertInstance projectId zone ops (Just (InsertInstanceQuery (Just "req-123") Nothing))+  case res of+    Left err -> putStrLn ("Create error: " <> err)+    Right _  -> putStrLn "Create initiated"++-- Start/Stop an instance+startStopExample :: IO ()+startStopExample = do+  let projectId = "my-gcp-project"+      zone = "us-central1-a"+      name = "my-instance"+      reqId = defaultRequestIdQuery "req-456"+  _ <- startInstance projectId zone name (Just reqId)+  _ <- stopInstance  projectId zone name (Just reqId)+  putStrLn "Start/Stop submitted"+```++Additional modules:++- `Google.Cloud.Compute.Disk`+- `Google.Cloud.Compute.Firewall`+- `Google.Cloud.Compute.Network`++## License++MIT © Contributors
Setup.hs view
@@ -1,2 +1,3 @@ import Distribution.Simple+ main = defaultMain
google-cloud-compute.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.37.0.+-- This file has been generated from package.yaml by hpack version 0.38.1. -- -- see: https://github.com/sol/hpack  name:           google-cloud-compute-version:        0.1.0.0+version:        1.1.0.0 synopsis:       GCP Client for Haskell description:    GCP Compute client for Haskell. category:       Web@@ -42,7 +42,7 @@     , base >=4.7 && <5     , bytestring >=0.9.1.4     , containers >=0.6 && <1-    , google-cloud-common+    , google-cloud-common >=1.1.0.0 && <1.2.0.0     , http-conduit >=2.2 && <2.4     , text >=1.2 && <3   default-language: Haskell2010@@ -60,7 +60,7 @@     , base >=4.7 && <5     , bytestring >=0.9.1.4     , containers >=0.6 && <1-    , google-cloud-common+    , google-cloud-common >=1.1.0.0 && <1.2.0.0     , google-cloud-compute     , hspec >=1.3     , http-conduit >=2.2 && <2.4
src/Google/Cloud/Compute/Common.hs view
@@ -1,3 +1,11 @@+{- |+Module      : Google.Cloud.Compute.Common+License     : MIT+Maintainer  : maintainers@google-cloud-haskell+Stability   : experimental++Common helpers and constants for Google Cloud Compute client modules.+-} module Google.Cloud.Compute.Common (googleComputeUrl) where  googleComputeUrl :: String
src/Google/Cloud/Compute/Disk.hs view
@@ -1,17 +1,17 @@-{-|+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}++{- | Module      : Google.Cloud.Compute.Disk Copyright   : (c) 2025 License     : MIT-Maintainer  : +Maintainer  : Stability   : experimental  This module provides a Haskell client for Google Cloud Compute Engine Disk operations. -}-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE NamedFieldPuns #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}- module Google.Cloud.Compute.Disk   ( listDisks   , insertDisk@@ -21,7 +21,7 @@   , Operation (..)   , deleteDisk   , createDiskSnapshot-  , CreateSnapshotResp +  , CreateSnapshotResp   , CreateSnapshotOps (..)   , Warning (..)   , WarningData (..)@@ -31,6 +31,7 @@  import Data.Aeson import qualified Data.ByteString.Char8 as BS+import qualified Data.ByteString.Lazy.Char8 as BSL import Data.Map (Map) import Google.Cloud.Common.Core import Google.Cloud.Compute.Common@@ -38,117 +39,183 @@  -- | Represents a warning object returned by Google Cloud API operations data Warning = Warning-  { code :: String       -- ^ Warning type identifier-  , message :: String    -- ^ Human-readable warning message-  , data_ :: Maybe [WarningData] -- ^ Optional metadata about the warning+  { code :: String+  -- ^ Warning type identifier+  , message :: String+  -- ^ Human-readable warning message+  , data_ :: Maybe [WarningData]+  -- ^ Optional metadata about the warning   }   deriving (Show, Eq)  -- | Key-value pair providing additional context for warnings data WarningData = WarningData-  { key :: String    -- ^ Metadata key describing the warning aspect-  , value :: String  -- ^ Metadata value associated with the key+  { key :: String+  -- ^ Metadata key describing the warning aspect+  , value :: String+  -- ^ Metadata value associated with the key   }   deriving (Show, Eq)  -- | Response format for disk listing operations data DiskResponse = DiskResponse-  { kind :: Maybe String         -- ^ Type identifier ("compute#diskList")-  , id :: Maybe String           -- ^ Unique identifier for the resource-  , items :: Maybe [DiskItem]    -- ^ List of disks in the project/zone-  , nextPageToken :: Maybe String -- ^ Pagination token for next page-  , selfLink :: Maybe String     -- ^ Server-defined URL for the resource-  , warning :: Maybe Warning     -- ^ Any warnings about the result+  { kind :: Maybe String+  -- ^ Type identifier ("compute#diskList")+  , id :: Maybe String+  -- ^ Unique identifier for the resource+  , items :: Maybe [DiskItem]+  -- ^ List of disks in the project/zone+  , nextPageToken :: Maybe String+  -- ^ Pagination token for next page+  , selfLink :: Maybe String+  -- ^ Server-defined URL for the resource+  , warning :: Maybe Warning+  -- ^ Any warnings about the result   }   deriving (Show, Eq)  -- | Represents a Google Cloud Persistent Disk data DiskItem = DiskItem-  { kind :: Maybe String              -- ^ Type identifier ("compute#disk")-  , id :: Maybe String                -- ^ Unique numeric ID-  , creationTimestamp :: Maybe String -- ^ ISO 8601 creation timestamp-  , name :: Maybe String              -- ^ User-provided disk name-  , description :: Maybe String       -- ^ Optional disk description-  , sizeGb :: Maybe String            -- ^ Disk size in gigabytes-  , zone :: Maybe String              -- ^ Zone where the disk resides-  , status :: Maybe String            -- ^ Current status (READY, CREATING, etc.)-  , sourceSnapshot :: Maybe String    -- ^ Source snapshot URL if applicable-  , sourceSnapshotId :: Maybe String  -- ^ Unique ID of source snapshot-  , sourceImage :: Maybe String       -- ^ Source image URL if applicable-  , sourceImageId :: Maybe String     -- ^ Unique ID of source image-  , type_ :: Maybe String             -- ^ Disk type (e.g., "pd-standard")-  , labels :: Maybe (Map String String) -- ^ User-defined labels-  , labelFingerprint :: Maybe String  -- ^ Fingerprint for label operations-  , licenses :: Maybe [String]        -- ^ License resource URLs-  , users :: Maybe [String]           -- ^ Instances currently using the disk-  , guestOsFeatures :: Maybe [GuestOsFeature] -- ^ OS-specific features-  , diskEncryptionKey :: Maybe EncryptionKey -- ^ Disk encryption details-  , sourceDisk :: Maybe String        -- ^ Source disk URL for regional disks-  , sourceDiskId :: Maybe String      -- ^ Unique ID of source disk-  , physicalBlockSizeBytes :: Maybe String -- ^ Physical block size in bytes-  , provisionedIops :: Maybe String   -- ^ Provisioned IOPS for SSD-  , resourcePolicies :: Maybe [String] -- ^ Resource policy URLs-  , selfLink :: Maybe String          -- ^ Server-defined URL for the disk+  { kind :: Maybe String+  -- ^ Type identifier ("compute#disk")+  , id :: Maybe String+  -- ^ Unique numeric ID+  , creationTimestamp :: Maybe String+  -- ^ ISO 8601 creation timestamp+  , name :: Maybe String+  -- ^ User-provided disk name+  , description :: Maybe String+  -- ^ Optional disk description+  , sizeGb :: Maybe String+  -- ^ Disk size in gigabytes+  , zone :: Maybe String+  -- ^ Zone where the disk resides+  , status :: Maybe String+  -- ^ Current status (READY, CREATING, etc.)+  , sourceSnapshot :: Maybe String+  -- ^ Source snapshot URL if applicable+  , sourceSnapshotId :: Maybe String+  -- ^ Unique ID of source snapshot+  , sourceImage :: Maybe String+  -- ^ Source image URL if applicable+  , sourceImageId :: Maybe String+  -- ^ Unique ID of source image+  , type_ :: Maybe String+  -- ^ Disk type (e.g., "pd-standard")+  , labels :: Maybe (Map String String)+  -- ^ User-defined labels+  , labelFingerprint :: Maybe String+  -- ^ Fingerprint for label operations+  , licenses :: Maybe [String]+  -- ^ License resource URLs+  , users :: Maybe [String]+  -- ^ Instances currently using the disk+  , guestOsFeatures :: Maybe [GuestOsFeature]+  -- ^ OS-specific features+  , diskEncryptionKey :: Maybe EncryptionKey+  -- ^ Disk encryption details+  , sourceDisk :: Maybe String+  -- ^ Source disk URL for regional disks+  , sourceDiskId :: Maybe String+  -- ^ Unique ID of source disk+  , physicalBlockSizeBytes :: Maybe String+  -- ^ Physical block size in bytes+  , provisionedIops :: Maybe String+  -- ^ Provisioned IOPS for SSD+  , resourcePolicies :: Maybe [String]+  -- ^ Resource policy URLs+  , selfLink :: Maybe String+  -- ^ Server-defined URL for the disk   }   deriving (Show, Eq)  -- | Guest OS features enabled on the disk-data GuestOsFeature = GuestOsFeature-  { type_ :: String  -- ^ Feature type (e.g., "UEFI_COMPATIBLE")+newtype GuestOsFeature = GuestOsFeature+  { type_ :: String+  -- ^ Feature type (e.g., "UEFI_COMPATIBLE")   }   deriving (Show, Eq)  -- | Disk encryption key information data EncryptionKey = EncryptionKey-  { rawKey :: Maybe String        -- ^ Raw encryption key (base64)-  , rsaEncryptedKey :: Maybe String -- ^ RSA-wrapped encryption key-  , sha256 :: Maybe String        -- ^ RFC 4648 base64 SHA-256 hash+  { rawKey :: Maybe String+  -- ^ Raw encryption key (base64)+  , rsaEncryptedKey :: Maybe String+  -- ^ RSA-wrapped encryption key+  , sha256 :: Maybe String+  -- ^ RFC 4648 base64 SHA-256 hash   }   deriving (Show, Eq)  -- | Long-running operation resource data Operation = Operation-  { id :: Maybe String          -- ^ Unique operation ID-  , name :: Maybe String        -- ^ Operation name-  , zone :: Maybe String        -- ^ Zone where operation is executed-  , operationType :: Maybe String -- ^ Operation type (insert, delete, etc.)-  , targetLink :: Maybe String  -- ^ URL of resource being modified-  , status :: Maybe String      -- ^ Current status (DONE, RUNNING, etc.)-  , progress :: Maybe Int       -- ^ Operation progress (0-100)-  , insertTime :: Maybe String  -- ^ ISO 8601 creation timestamp-  , startTime :: Maybe String   -- ^ ISO 8601 start timestamp-  , endTime :: Maybe String     -- ^ ISO 8601 completion timestamp-  , error :: Maybe OperationError -- ^ Error details if failed-  , warnings :: Maybe [Warning] -- ^ Warnings during operation-  , selfLink :: Maybe String    -- ^ Server-defined URL for the operation+  { id :: Maybe String+  -- ^ Unique operation ID+  , name :: Maybe String+  -- ^ Operation name+  , zone :: Maybe String+  -- ^ Zone where operation is executed+  , operationType :: Maybe String+  -- ^ Operation type (insert, delete, etc.)+  , targetLink :: Maybe String+  -- ^ URL of resource being modified+  , status :: Maybe String+  -- ^ Current status (DONE, RUNNING, etc.)+  , progress :: Maybe Int+  -- ^ Operation progress (0-100)+  , insertTime :: Maybe String+  -- ^ ISO 8601 creation timestamp+  , startTime :: Maybe String+  -- ^ ISO 8601 start timestamp+  , endTime :: Maybe String+  -- ^ ISO 8601 completion timestamp+  , error :: Maybe OperationError+  -- ^ Error details if failed+  , warnings :: Maybe [Warning]+  -- ^ Warnings during operation+  , selfLink :: Maybe String+  -- ^ Server-defined URL for the operation   }   deriving (Show, Eq)  -- | Error information from failed operations-data OperationError = OperationError-  { errors :: [ErrorDetail] -- ^ List of error details+newtype OperationError = OperationError+  { errors :: [ErrorDetail]+  -- ^ List of error details   }   deriving (Show, Eq)  -- | Detailed error information data ErrorDetail = ErrorDetail-  { code :: String         -- ^ Error type identifier-  , message :: String      -- ^ Human-readable error message-  , location :: Maybe String -- ^ Location in request that triggered error+  { code :: String+  -- ^ Error type identifier+  , message :: String+  -- ^ Human-readable error message+  , location :: Maybe String+  -- ^ Location in request that triggered error   }   deriving (Show, Eq)  -- | Disk creation options data InsertDiskOps = InsertDiskOps-  { name :: String                -- ^ Required disk name-  , sizeGb :: String              -- ^ Required size in gigabytes-  , description :: Maybe String   -- ^ Optional description-  , type_ :: Maybe String         -- ^ Disk type (default: pd-standard)-  , sourceImage :: Maybe String   -- ^ Source image URL for disk creation-  , sourceSnapshot :: Maybe String -- ^ Source snapshot URL for disk creation-  , labels :: Maybe (Map String String) -- ^ Initial labels-  , guestOsFeatures :: Maybe [GuestOsFeature] -- ^ OS features to enable-  , diskEncryptionKey :: Maybe EncryptionKey -- ^ Encryption configuration+  { name :: String+  -- ^ Required disk name+  , sizeGb :: String+  -- ^ Required size in gigabytes+  , description :: Maybe String+  -- ^ Optional description+  , type_ :: Maybe String+  -- ^ Disk type (default: pd-standard)+  , sourceImage :: Maybe String+  -- ^ Source image URL for disk creation+  , sourceSnapshot :: Maybe String+  -- ^ Source snapshot URL for disk creation+  , labels :: Maybe (Map String String)+  -- ^ Initial labels+  , guestOsFeatures :: Maybe [GuestOsFeature]+  -- ^ OS features to enable+  , diskEncryptionKey :: Maybe EncryptionKey+  -- ^ Encryption configuration   }   deriving (Show, Eq) @@ -157,11 +224,16 @@  -- | Snapshot creation options data CreateSnapshotOps = CreateSnapshotOps-  { name :: String                -- ^ Required snapshot name-  , description :: Maybe String   -- ^ Optional description-  , labels :: Maybe (Map String String) -- ^ Labels for the snapshot-  , storageLocations :: Maybe [String] -- ^ Preferred storage locations-  , snapshotEncryptionKey :: Maybe EncryptionKey -- ^ Snapshot encryption+  { name :: String+  -- ^ Required snapshot name+  , description :: Maybe String+  -- ^ Optional description+  , labels :: Maybe (Map String String)+  -- ^ Labels for the snapshot+  , storageLocations :: Maybe [String]+  -- ^ Preferred storage locations+  , snapshotEncryptionKey :: Maybe EncryptionKey+  -- ^ Snapshot encryption   }   deriving (Show, Eq) @@ -184,13 +256,13 @@   deriving (Show, Eq)  -- | Query parameters for deleteDisk-data DeleteDiskQuery = DeleteDiskQuery+newtype DeleteDiskQuery = DeleteDiskQuery   { force :: Maybe Bool   }   deriving (Show, Eq)  -- | Query parameters for createDiskSnapshot-data CreateSnapshotQuery = CreateSnapshotQuery+newtype CreateSnapshotQuery = CreateSnapshotQuery   { guestFlush :: Maybe Bool   }   deriving (Show, Eq)@@ -470,15 +542,22 @@       ]  -- Functions--- | List disks in a zone------ Example:------ > listDisks "my-project" "us-central1-a" Nothing-listDisks :: String               -- ^ GCP Project ID-          -> String               -- ^ Zone name-          -> Maybe ListDisksQuery -- ^ Optional query parameters-          -> IO (Either String DiskResponse) -- ^ List result or error}++{- | List disks in a zone++Example:++> listDisks "my-project" "us-central1-a" Nothing+-}+listDisks ::+  -- | GCP Project ID+  String ->+  -- | Zone name+  String ->+  -- | Optional query parameters+  Maybe ListDisksQuery ->+  -- | List result or error}+  IO (Either String DiskResponse) listDisks project zone_ mbQuery = do   let queryParams = maybe [] queryToList mbQuery   doRequestJSON@@ -499,16 +578,23 @@       , maybe mempty (\x -> ("orderBy", Just $ BS.pack x)) orderBy       ] --- | Create a new persistent disk------ Example:------ > insertDisk "my-project" "us-central1-a" (defaultInsertOps "disk1" "100") Nothing-insertDisk :: String               -- ^ GCP Project ID-           -> String               -- ^ Zone name-           -> InsertDiskOps        -- ^ Disk configuration-           -> Maybe InsertDiskQuery -- ^ Optional query parameters-           -> IO (Either String InsertDiskResponse) -- ^ Operation or error}+{- | Create a new persistent disk++Example:++> insertDisk "my-project" "us-central1-a" (defaultInsertOps "disk1" "100") Nothing+-}+insertDisk ::+  -- | GCP Project ID+  String ->+  -- | Zone name+  String ->+  -- | Disk configuration+  InsertDiskOps ->+  -- | Optional query parameters+  Maybe InsertDiskQuery ->+  -- | Operation or error}+  IO (Either String InsertDiskResponse) insertDisk project zone_ insertDiskOps mbQuery = do   let queryParams = maybe [] queryToList mbQuery   doRequestJSON@@ -526,22 +612,29 @@       [ maybe mempty (\x -> ("sourceImage", Just $ BS.pack x)) sourceImage       , maybe           mempty-          (\x -> ("sourceImageEncryptionKey", Just . BS.toStrict $ encode x))+          (\x -> ("sourceImageEncryptionKey", Just . BSL.toStrict $ encode x))           sourceImageEncryptionKey       ]  -- | Deletes a disk with optional query parameters --- | Delete a persistent disk------ Example:------ > deleteDisk "my-project" "us-central1-a" "old-disk" (Just DeleteDiskQuery { force = True })-deleteDisk :: String               -- ^ GCP Project ID-           -> String               -- ^ Zone name-           -> String               -- ^ Disk name to delete-           -> Maybe DeleteDiskQuery -- ^ Optional force deletion-           -> IO (Either String Operation) -- ^ Operation or error+{- | Delete a persistent disk++Example:++> deleteDisk "my-project" "us-central1-a" "old-disk" (Just DeleteDiskQuery { force = True })+-}+deleteDisk ::+  -- | GCP Project ID+  String ->+  -- | Zone name+  String ->+  -- | Disk name to delete+  String ->+  -- | Optional force deletion+  Maybe DeleteDiskQuery ->+  -- | Operation or error+  IO (Either String Operation) deleteDisk project zone_ diskName mbQuery = do   let queryParams = maybe [] queryToList mbQuery   doRequestJSON@@ -559,19 +652,27 @@       [ maybe mempty (\x -> ("force", Just . BS.pack $ show x)) (force q)       ] --- | Creates a snapshot of a disk with optional query parameters--- | Create disk snapshot------ Example:------ > createDiskSnapshot "my-project" "us-central1-a" "source-disk" --- >   (defaultCreateSnapshotOps "daily-backup") Nothing-createDiskSnapshot :: String               -- ^ GCP Project ID-                   -> String               -- ^ Zone name-                   -> String               -- ^ Source disk name-                   -> CreateSnapshotOps    -- ^ Snapshot configuration-                   -> Maybe CreateSnapshotQuery -- ^ Optional guest flush-                   -> IO (Either String CreateSnapshotResp) -- ^ Operation or error+{- | Creates a snapshot of a disk with optional query parameters+| Create disk snapshot++Example:++> createDiskSnapshot "my-project" "us-central1-a" "source-disk"+>   (defaultCreateSnapshotOps "daily-backup") Nothing+-}+createDiskSnapshot ::+  -- | GCP Project ID+  String ->+  -- | Zone name+  String ->+  -- | Source disk name+  String ->+  -- | Snapshot configuration+  CreateSnapshotOps ->+  -- | Optional guest flush+  Maybe CreateSnapshotQuery ->+  -- | Operation or error+  IO (Either String CreateSnapshotResp) createDiskSnapshot project zone_ diskName createSnapshotOps mbQuery = do   let queryParams = maybe [] queryToList mbQuery   doRequestJSON@@ -590,12 +691,13 @@       [ maybe mempty (\x -> ("guestFlush", Just . BS.pack $ show x)) (guestFlush q)       ] --- | Default disk creation options------ Creates minimal valid configuration with required name and size.--- Other fields can be added using record update syntax:------ > defaultInsertOps "new-disk" "50" { type_ = Just "pd-ssd" }+{- | Default disk creation options++Creates minimal valid configuration with required name and size.+Other fields can be added using record update syntax:++> defaultInsertOps "new-disk" "50" { type_ = Just "pd-ssd" }+-} defaultInsertOps :: String -> String -> InsertDiskOps defaultInsertOps diskName diskSizeGb =   InsertDiskOps@@ -610,12 +712,13 @@     , diskEncryptionKey = Nothing     } --- | Default snapshot creation options------ Creates minimal valid configuration with required snapshot name.--- Additional fields can be added using record update syntax:------ > defaultCreateSnapshotOps "backup" { description = Just "Daily backup" }+{- | Default snapshot creation options++Creates minimal valid configuration with required snapshot name.+Additional fields can be added using record update syntax:++> defaultCreateSnapshotOps "backup" { description = Just "Daily backup" }+-} defaultCreateSnapshotOps :: String -> CreateSnapshotOps defaultCreateSnapshotOps snapshotName =   CreateSnapshotOps
src/Google/Cloud/Compute/Firewall.hs view
@@ -4,9 +4,9 @@  {- | Module      : Google.Cloud.Compute.Firewall-Copyright   : (c) 2025 +Copyright   : (c) 2025 License     : MIT-Maintainer  : +Maintainer  : Stability   : experimental  This module provides a Haskell client for Google Cloud Compute Engine Firewall operations.@@ -165,7 +165,7 @@   deriving (Show, Eq)  -- | Error information from failed operations-data OperationError = OperationError+newtype OperationError = OperationError   { errors :: [ErrorDetail]   -- ^ List of error details   }@@ -477,7 +477,7 @@   deriving (Show, Eq)  -- | Query parameters for createFirewall-data CreateFirewallQuery = CreateFirewallQuery+newtype CreateFirewallQuery = CreateFirewallQuery   { requestId :: Maybe String   }   deriving (Show, Eq)@@ -558,15 +558,16 @@       catMaybes         [("requestId",) <$> requestId q] --- | Default firewall creation options------ Creates minimal valid configuration with required name.--- Additional fields can be added using record update syntax:------ > defaultCreateFirewallOps "web-allow" --- >   { description = Just "Allow web traffic"--- >   , allowed = Just [AllowedFirewall "tcp" (Just ["80","443"])]--- >   }+{- | Default firewall creation options++Creates minimal valid configuration with required name.+Additional fields can be added using record update syntax:++> defaultCreateFirewallOps "web-allow"+>   { description = Just "Allow web traffic"+>   , allowed = Just [AllowedFirewall "tcp" (Just ["80","443"])]+>   }+-} defaultCreateFirewallOps :: String -> CreateFirewallOps defaultCreateFirewallOps firewallName =   CreateFirewallOps
src/Google/Cloud/Compute/Instance.hs view
@@ -1,8 +1,13 @@-{-|+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TupleSections #-}++{- | Module      : Google.Cloud.Compute.Instance Copyright   : (c) 2025 Tushar License     : MIT-Maintainer  : +Maintainer  : Stability   : experimental  This module provides types and functions for interacting with Google Cloud Platform (GCP)@@ -15,12 +20,6 @@ For more information on the underlying API, see: <https://cloud.google.com/compute/docs/reference/rest/v1/instances GCP Compute Instances Documentation> -}--{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TupleSections #-}- module Google.Cloud.Compute.Instance   ( -- Data Types     InstanceMetadata (..)@@ -71,38 +70,38 @@ import Data.Aeson import qualified Data.ByteString as BS import qualified Data.ByteString.Char8 as BS8+import qualified Data.Map.Strict as Map import Data.Maybe (catMaybes) import Data.Text (Text) import Google.Cloud.Common.Core import Google.Cloud.Compute.Common-import qualified Data.Map.Strict as Map  -- ** Query Parameter Types**  -- | Query parameters for listing instances data ListInstancesQuery = ListInstancesQuery   { filter_ :: Maybe String-    -- ^ Filter expression for filtering listed instances+  -- ^ Filter expression for filtering listed instances   , maxResults :: Maybe Int-    -- ^ Maximum number of results per page+  -- ^ Maximum number of results per page   , orderBy :: Maybe String-    -- ^ Sort order for results+  -- ^ Sort order for results   , pageToken :: Maybe String-    -- ^ Page token for paginated results+  -- ^ Page token for paginated results   , returnPartialSuccess :: Maybe Bool-    -- ^ Whether to return partial success results+  -- ^ Whether to return partial success results   }   deriving (Show, Eq)  -- Query parameters for operations with requestId (start, stop, delete)-data RequestIdQuery = RequestIdQuery+newtype RequestIdQuery = RequestIdQuery   { requestId :: Maybe String   }   deriving (Show, Eq)  -- ** Data Types with Custom JSON Instances** -data RunDuration+newtype RunDuration   = TerminationTime String   deriving (Show, Eq) @@ -112,7 +111,7 @@ instance ToJSON RunDuration where   toJSON (TerminationTime t) = object ["terminationTime" .= t] -data OnInstanceTerminationAction = DiscardLocalSsd {discardLocalSsd :: Bool}+newtype OnInstanceTerminationAction = DiscardLocalSsd {discardLocalSsd :: Bool}   deriving (Show, Eq)  instance FromJSON OnInstanceTerminationAction where@@ -161,7 +160,7 @@       , "instanceTerminationAction" .= instanceTerminationAction       ] -data InstanceTerminationAction+newtype InstanceTerminationAction   = RunDurationRunDuration RunDuration   deriving (Show, Eq) @@ -215,57 +214,57 @@ -- | Metadata representing a Compute Engine instance data InstanceMetadata = InstanceMetadata   { cpuPlatform :: Maybe String-    -- ^ The CPU platform used by this instance+  -- ^ The CPU platform used by this instance   , labelFingerprint :: Maybe Text-    -- ^ Fingerprint of the label metadata+  -- ^ Fingerprint of the label metadata   , instanceEncryptionKey :: Maybe InstanceEncryptionKey-    -- ^ Encryption key configuration for the instance+  -- ^ Encryption key configuration for the instance   , minCpuPlatform :: Maybe Text-    -- ^ Minimum CPU platform required by the instance+  -- ^ Minimum CPU platform required by the instance   , guestAccelerators :: Maybe [GuestAccelerator]-    -- ^ List of guest accelerators attached to the instance+  -- ^ List of guest accelerators attached to the instance   , startRestricted :: Maybe Bool-    -- ^ Whether instance start is restricted due to storage issues+  -- ^ Whether instance start is restricted due to storage issues   , deletionProtection :: Maybe Bool-    -- ^ Whether deletion protection is enabled+  -- ^ Whether deletion protection is enabled   , resourcePolicies :: Maybe [Text]-    -- ^ Resource policies applied to the instance+  -- ^ Resource policies applied to the instance   , sourceMachineImage :: Maybe Text-    -- ^ Source machine image used to create the instance+  -- ^ Source machine image used to create the instance   , reservationAffinity :: Maybe ReservationAffinity-    -- ^ Reservation affinity configuration+  -- ^ Reservation affinity configuration   , hostname :: Maybe Text-    -- ^ Custom hostname assigned to the instance+  -- ^ Custom hostname assigned to the instance   , displayDevice :: Maybe DisplayDevice-    -- ^ Display device configuration+  -- ^ Display device configuration   , shieldedInstanceConfig :: Maybe ShieldedInstanceConfig-    -- ^ Shielded VM configuration+  -- ^ Shielded VM configuration   , shieldedInstanceIntegrityPolicy :: Maybe ShieldedInstanceIntegrityPolicy-    -- ^ Integrity policy for shielded instances+  -- ^ Integrity policy for shielded instances   , sourceMachineImageEncryptionKey :: Maybe InstanceEncryptionKey-    -- ^ Encryption key for source machine image+  -- ^ Encryption key for source machine image   , confidentialInstanceConfig :: Maybe ConfidentialInstanceConfig-    -- ^ Confidential computing configuration+  -- ^ Confidential computing configuration   , fingerprint :: Maybe Text-    -- ^ Unique fingerprint for resource metadata+  -- ^ Unique fingerprint for resource metadata   , privateIpv6GoogleAccess :: Maybe Text-    -- ^ Private IPv6 Google access configuration+  -- ^ Private IPv6 Google access configuration   , lastStartTimestamp :: Maybe String-    -- ^ Last start timestamp in RFC3339 format+  -- ^ Last start timestamp in RFC3339 format   , lastStopTimestamp :: Maybe String-    -- ^ Last stop timestamp in RFC3339 format+  -- ^ Last stop timestamp in RFC3339 format   , lastSuspendedTimestamp :: Maybe String-    -- ^ Last suspension timestamp in RFC3339 format+  -- ^ Last suspension timestamp in RFC3339 format   , satisfiesPzs :: Maybe Bool-    -- ^ Whether instance satisfies zone separation policy+  -- ^ Whether instance satisfies zone separation policy   , satisfiesPzi :: Maybe Bool-    -- ^ Whether instance satisfies instance separation policy+  -- ^ Whether instance satisfies instance separation policy   , resourceStatus :: Maybe ResourceStatus-    -- ^ Current resource status of the instance+  -- ^ Current resource status of the instance   , networkPerformanceConfig :: Maybe NetworkPerformanceConfig-    -- ^ Network performance configuration+  -- ^ Network performance configuration   , keyRevocationActionType :: Maybe Text-    -- ^ Type of key revocation action if applicable+  -- ^ Type of key revocation action if applicable   }   deriving (Show, Eq) @@ -373,7 +372,7 @@         , ("values" .=) <$> values         ] -data DisplayDevice = DisplayDevice+newtype DisplayDevice = DisplayDevice   { enableDisplay :: Bool   }   deriving (Show, Eq)@@ -408,7 +407,7 @@       , "enableIntegrityMonitoring" .= enableIntegrityMonitoring sic       ] -data ShieldedInstanceIntegrityPolicy = ShieldedInstanceIntegrityPolicy+newtype ShieldedInstanceIntegrityPolicy = ShieldedInstanceIntegrityPolicy   { policy :: Maybe UpdateAutoLearnPolicy   }   deriving (Show, Eq)@@ -424,7 +423,7 @@       catMaybes         [("policy" .=) <$> policy sip] -data UpdateAutoLearnPolicy = UpdateAutoLearnPolicy {updateAutoLearnPolicy :: Bool}+newtype UpdateAutoLearnPolicy = UpdateAutoLearnPolicy {updateAutoLearnPolicy :: Bool}   deriving (Show, Eq)  instance FromJSON UpdateAutoLearnPolicy where@@ -484,7 +483,7 @@         , ("kmsKeyName" .=) <$> kmsKeyName iek         ] -data NetworkPerformanceConfig = NetworkPerformanceConfig+newtype NetworkPerformanceConfig = NetworkPerformanceConfig   { totalEgressBandwidthTier :: Text   }   deriving (Show, Eq)@@ -562,11 +561,11 @@ -- | Response structure for delete instance operation data InstanceDeleteResp = InstanceDeleteResp   { kind :: Maybe String-     -- ^ Type of resource (always "compute#operation")+  -- ^ Type of resource (always "compute#operation")   , id_ :: Maybe String-        -- ^ Unique identifier for the operation+  -- ^ Unique identifier for the operation   , creationTimestamp :: Maybe String-      -- ^ Creation timestamp in RFC3339 format+  -- ^ Creation timestamp in RFC3339 format   , name :: Maybe String   , zone :: Maybe String   , clientOperationId :: Maybe String@@ -649,7 +648,7 @@         , ("operationGroupId" .=) <$> operationGroupId         ] -data Error_ = Error_+newtype Error_ = Error_   { errors :: Maybe [ErrorDetail]   }   deriving (Show, Eq)@@ -761,7 +760,7 @@         , ("rolloutStatus" .=) <$> rolloutStatus qi         ] -data Help = Help+newtype Help = Help   { links :: Maybe [Link]   }   deriving (Show, Eq)@@ -870,7 +869,7 @@   }   deriving (Show, Eq) -data NetworkInterface = NetworkInterface+newtype NetworkInterface = NetworkInterface   { network :: String   }   deriving (Show, Eq)@@ -899,82 +898,86 @@ -- | Represents a disk attached to a Compute Engine instance data Disk = Disk   { autoDelete :: Bool-    -- ^ Whether disk should be auto-deleted when instance is deleted+  -- ^ Whether disk should be auto-deleted when instance is deleted   , boot :: Bool-    -- ^ Whether this is a boot disk+  -- ^ Whether this is a boot disk   , deviceName :: String-    -- ^ Unique device name visible to the guest OS+  -- ^ Unique device name visible to the guest OS   , initializeParams :: Maybe InitializeParams-    -- ^ Initialization parameters for the disk+  -- ^ Initialization parameters for the disk   , mode :: String-    -- ^ Access mode (READ_WRITE or READ_ONLY)+  -- ^ Access mode (READ_WRITE or READ_ONLY)   , type_ :: String-    -- ^ Disk type (PERSISTENT or SCRATCH)+  -- ^ Disk type (PERSISTENT or SCRATCH)   }   deriving (Show, Eq)  -- | Disk initialization parameters for new disk creation data InitializeParams = InitializeParams   { diskSizeGb :: String-    -- ^ Size of the disk in GB (passed as String to match API format)+  -- ^ Size of the disk in GB (passed as String to match API format)   , diskType :: String-    -- ^ Full URL of disk type resource+  -- ^ Full URL of disk type resource   , labels :: Map.Map String String-    -- ^ Labels to apply to the disk+  -- ^ Labels to apply to the disk   , sourceImage :: String-    -- ^ Source image used to create the disk+  -- ^ Source image used to create the disk   }   deriving (Show, Eq)  instance ToJSON Disk where-  toJSON Disk{..} = object-    [ "autoDelete" .= autoDelete-    , "boot" .= boot-    , "deviceName" .= deviceName-    , "initializeParams" .= initializeParams-    , "mode" .= mode-    , "type" .= type_  -- Map type_ to "type" in JSON-    ]+  toJSON Disk {..} =+    object+      [ "autoDelete" .= autoDelete+      , "boot" .= boot+      , "deviceName" .= deviceName+      , "initializeParams" .= initializeParams+      , "mode" .= mode+      , "type" .= type_ -- Map type_ to "type" in JSON+      ]  instance FromJSON Disk where-  parseJSON = withObject "Disk" $ \v -> Disk-    <$> v .: "autoDelete"-    <*> v .: "boot"-    <*> v .: "deviceName"-    <*> v .:? "initializeParams"-    <*> v .: "mode"-    <*> v .: "type"  -- Parse "type" field into type_+  parseJSON = withObject "Disk" $ \v ->+    Disk+      <$> v .: "autoDelete"+      <*> v .: "boot"+      <*> v .: "deviceName"+      <*> v .:? "initializeParams"+      <*> v .: "mode"+      <*> v .: "type" -- Parse "type" field into type_  instance ToJSON InitializeParams where-  toJSON InitializeParams{..} = object-    [ "diskSizeGb" .= diskSizeGb-    , "diskType" .= diskType-    , "labels" .= labels-    , "sourceImage" .= sourceImage-    ]+  toJSON InitializeParams {..} =+    object+      [ "diskSizeGb" .= diskSizeGb+      , "diskType" .= diskType+      , "labels" .= labels+      , "sourceImage" .= sourceImage+      ]  instance FromJSON InitializeParams where-  parseJSON = withObject "InitializeParams" $ \v -> InitializeParams-    <$> v .: "diskSizeGb"-    <*> v .: "diskType"-    <*> v .: "labels"-    <*> v .: "sourceImage"-+  parseJSON = withObject "InitializeParams" $ \v ->+    InitializeParams+      <$> v .: "diskSizeGb"+      <*> v .: "diskType"+      <*> v .: "labels"+      <*> v .: "sourceImage"  -- ** Instance Operation Functions** --- | List instances in a given zone------ @--- listInstances ---   :: String       -- ^ GCP Project ID---   -> String       -- ^ Zone name---   -> Maybe ListInstancesQuery  -- ^ Optional query parameters---   -> IO (Either String InstanceList)--- @------ Returns either an error message or an 'InstanceList' containing--- the collection of instances+{- | List instances in a given zone++@+listInstances+  :: String       -- ^ GCP Project ID+  -> String       -- ^ Zone name+  -> Maybe ListInstancesQuery  -- ^ Optional query parameters+  -> IO (Either String InstanceList)+@++Returns either an error message or an 'InstanceList' containing+the collection of instances+-} listInstances ::   String -> String -> Maybe ListInstancesQuery -> IO (Either String InstanceList) listInstances projectId zone_ mbQuery = do@@ -1094,9 +1097,13 @@ -- ** Default Query Parameter Constructors**  -- All fields set to 'Nothing', which the API interprets as:+ -- * No filtering+ -- * Default page size+ -- * No sorting+ -- * Return full results defaultListInstancesQuery :: ListInstancesQuery defaultListInstancesQuery =@@ -1111,12 +1118,13 @@ defaultRequestIdQuery :: String -> RequestIdQuery defaultRequestIdQuery rid = RequestIdQuery {requestId = Just rid} --- | Create a default instance configuration------ Creates a basic instance configuration with:--- * 10GB persistent boot disk--- * Default Debian image--- * Network interface on default VPC+{- | Create a default instance configuration++Creates a basic instance configuration with:+* 10GB persistent boot disk+* Default Debian image+* Network interface on default VPC+-} defaultInsertInstanceOps :: String -> String -> String -> String -> InsertInstanceOps defaultInsertInstanceOps projectId zone instanceName machineType =   InsertInstanceOps@@ -1124,22 +1132,25 @@     , machineType = "zones/" ++ zone ++ "/machineTypes/" ++ machineType     , disks = Just [defaultDisk]     , networkInterfaces = Just [defaultNetworkInterface]-  }+    }   where-    defaultDisk = Disk-      { autoDelete = True-      , boot = True-      , deviceName = instanceName ++ "-boot"  -- Dynamic, based on instanceName-      , initializeParams = Just defaultInitializeParams-      , mode = "READ_WRITE"-      , type_ = "PERSISTENT"-      }-    defaultInitializeParams = InitializeParams-      { diskSizeGb = "10"-      , diskType = "projects/" ++ projectId ++ "/zones/" ++ zone ++ "/diskTypes/pd-standard"-      , labels = Map.empty-      , sourceImage = "projects/debian-cloud/global/images/debian-12-bookworm-v20250311"-      }-    defaultNetworkInterface = NetworkInterface-      { network = "projects/" ++ projectId ++ "/global/networks/default"-      }+    defaultDisk =+      Disk+        { autoDelete = True+        , boot = True+        , deviceName = instanceName ++ "-boot" -- Dynamic, based on instanceName+        , initializeParams = Just defaultInitializeParams+        , mode = "READ_WRITE"+        , type_ = "PERSISTENT"+        }+    defaultInitializeParams =+      InitializeParams+        { diskSizeGb = "10"+        , diskType = "projects/" ++ projectId ++ "/zones/" ++ zone ++ "/diskTypes/pd-standard"+        , labels = Map.empty+        , sourceImage = "projects/debian-cloud/global/images/debian-12-bookworm-v20250311"+        }+    defaultNetworkInterface =+      NetworkInterface+        { network = "projects/" ++ projectId ++ "/global/networks/default"+        }
src/Google/Cloud/Compute/Network.hs view
@@ -1,8 +1,13 @@-{-|+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TupleSections #-}++{- | Module      : Google.Cloud.Compute.Network Copyright   : (c) 2025 Tushar License     : MIT-Maintainer  : +Maintainer  : Stability   : experimental  This module provides types and functions for interacting with Google Cloud Platform (GCP)@@ -15,204 +20,216 @@ For more information on the underlying API, see: <https://cloud.google.com/compute/docs/reference/rest/v1/networks GCP Compute Network Documentation> -}-{-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TupleSections #-}--module Google.Cloud.Compute.Network +module Google.Cloud.Compute.Network   ( -- * Network Operations     listNetworks+     -- * Data Types-  , NetworkList(..)-  , NetworkMeta(..)-  , NetworkPeering(..)-  , ListNetworksQuery(..)+  , NetworkList (..)+  , NetworkMeta (..)+  , NetworkPeering (..)+  , ListNetworksQuery (..)+     -- * Defaults   , defaultListNetworksQuery   ) where  import Data.Aeson+import qualified Data.ByteString.Char8 as BS8+import Data.Maybe (catMaybes) import Data.Text (Text) import Google.Cloud.Common.Core import Google.Cloud.Compute.Common-import Data.Maybe (catMaybes)-import qualified Data.ByteString.Char8 as BS8  -- | Response structure for listNetworks operation data NetworkList = NetworkList   { kind :: Text-    -- ^ Type of resource (always "compute#networkList")+  -- ^ Type of resource (always "compute#networkList")   , id_ :: Text-    -- ^ Unique identifier for the resource-  , items :: [NetworkMeta]-    -- ^ List of network resources+  -- ^ Unique identifier for the resource+  , items :: Maybe [NetworkMeta]+  -- ^ List of network resources   , nextPageToken :: Maybe Text-    -- ^ Pagination token for next page+  -- ^ Pagination token for next page   , selfLink :: Text-    -- ^ Server-defined URL for the resource-  } deriving (Eq, Show)+  -- ^ Server-defined URL for the resource+  }+  deriving (Eq, Show)  instance FromJSON NetworkList where-  parseJSON = withObject "NetworkList" $ \v -> NetworkList-    <$> v .: "kind"-    <*> v .: "id"-    <*> v .: "items"-    <*> v .:? "nextPageToken"-    <*> v .: "selfLink"+  parseJSON = withObject "NetworkList" $ \v ->+    NetworkList+      <$> v .: "kind"+      <*> v .: "id"+      <*> v .: "items"+      <*> v .:? "nextPageToken"+      <*> v .: "selfLink"  instance ToJSON NetworkList where-  toJSON NetworkList{..} = object-    [ "kind" .= kind-    , "id" .= id_-    , "items" .= items -    , "nextPageToken" .= nextPageToken -    , "selfLink" .= selfLink -    ]+  toJSON NetworkList {..} =+    object+      [ "kind" .= kind+      , "id" .= id_+      , "items" .= items+      , "nextPageToken" .= nextPageToken+      , "selfLink" .= selfLink+      ]  -- | Detailed network resource metadata data NetworkMeta = NetworkMeta   { kind :: Text-    -- ^ Type of resource (always "compute#network")+  -- ^ Type of resource (always "compute#network")   , id_ :: Text-    -- ^ Unique identifier for the network+  -- ^ Unique identifier for the network   , creationTimestamp :: Text-    -- ^ Creation timestamp in RFC3339 format+  -- ^ Creation timestamp in RFC3339 format   , name :: Text-    -- ^ Name of the network+  -- ^ Name of the network   , description :: Maybe Text-    -- ^ User-provided description+  -- ^ User-provided description   , autoCreateSubnetworks :: Maybe Bool-    -- ^ Whether to auto-create subnetworks+  -- ^ Whether to auto-create subnetworks   , subnetworks :: [Text]-    -- ^ List of subnetworks URLs in this network+  -- ^ List of subnetworks URLs in this network   , iPv4Range :: Maybe Text-    -- ^ IPv4 range for legacy networks+  -- ^ IPv4 range for legacy networks   , iPv6Range :: Maybe Text-    -- ^ IPv6 range for legacy networks+  -- ^ IPv6 range for legacy networks   , gatewayIPv4 :: Maybe Text-    -- ^ Gateway IPv4 address+  -- ^ Gateway IPv4 address   , mtu :: Maybe Int-    -- ^ Maximum transmission unit+  -- ^ Maximum transmission unit   , peerings :: Maybe [NetworkPeering]-    -- ^ List of network peerings+  -- ^ List of network peerings   , selfLink :: Text-    -- ^ Server-defined URL for the resource+  -- ^ Server-defined URL for the resource   , enableUlaInternalIpv6 :: Maybe Bool-    -- ^ ULA internal IPv6 support+  -- ^ ULA internal IPv6 support   , internalIpv6Range :: Maybe Text-    -- ^ Internal IPv6 range+  -- ^ Internal IPv6 range   , networkFirewallPolicyEnforcementOrder :: Maybe Text-    -- ^ Firewall policy order-  } deriving (Eq, Show)+  -- ^ Firewall policy order+  }+  deriving (Eq, Show)  instance FromJSON NetworkMeta where-  parseJSON = withObject "NetworkMeta" $ \v -> NetworkMeta-    <$> v .: "kind"-    <*> v .: "id"-    <*> v .: "creationTimestamp"-    <*> v .: "name"-    <*> v .:? "description"-    <*> v .:? "autoCreateSubnetworks"-    <*> v .: "subnetworks"-    <*> v .:? "IPv4Range"  -- Match API's casing-    <*> v .:? "IPv6Range"-    <*> v .:? "gatewayIPv4"-    <*> v .:? "mtu"-    <*> (v .:? "peerings")-    <*> v .: "selfLink"-    <*> v .:? "enableUlaInternalIpv6"-    <*> v .:? "internalIpv6Range"-    <*> v .:? "networkFirewallPolicyEnforcementOrder"+  parseJSON = withObject "NetworkMeta" $ \v ->+    NetworkMeta+      <$> v .: "kind"+      <*> v .: "id"+      <*> v .: "creationTimestamp"+      <*> v .: "name"+      <*> v .:? "description"+      <*> v .:? "autoCreateSubnetworks"+      <*> v .: "subnetworks"+      <*> v .:? "IPv4Range" -- Match API's casing+      <*> v .:? "IPv6Range"+      <*> v .:? "gatewayIPv4"+      <*> v .:? "mtu"+      <*> (v .:? "peerings")+      <*> v .: "selfLink"+      <*> v .:? "enableUlaInternalIpv6"+      <*> v .:? "internalIpv6Range"+      <*> v .:? "networkFirewallPolicyEnforcementOrder"  instance ToJSON NetworkMeta where-  toJSON NetworkMeta{..} = object $ catMaybes-    [ Just ("kind" .= kind)-    , Just ("id" .= id_)-    , Just ("creationTimestamp" .= creationTimestamp )-    , Just ("name" .= name )-    , ("description" .=) <$> description -    , ("autoCreateSubnetworks" .=) <$> autoCreateSubnetworks-    , Just ("subnetworks" .= subnetworks)-    , ("IPv4Range" .=) <$> iPv4Range -    , ("IPv6Range" .=) <$> iPv6Range -    , ("gatewayIPv4" .=) <$> gatewayIPv4 -    , ("mtu" .=) <$> mtu -    , Just ("peerings" .= peerings )-    , Just ("selfLink" .= selfLink )-    , ("enableUlaInternalIpv6" .=) <$> enableUlaInternalIpv6 -    , ("internalIpv6Range" .=) <$> internalIpv6Range -    , ("networkFirewallPolicyEnforcementOrder" .=) <$> networkFirewallPolicyEnforcementOrder -    ]+  toJSON NetworkMeta {..} =+    object $+      catMaybes+        [ Just ("kind" .= kind)+        , Just ("id" .= id_)+        , Just ("creationTimestamp" .= creationTimestamp)+        , Just ("name" .= name)+        , ("description" .=) <$> description+        , ("autoCreateSubnetworks" .=) <$> autoCreateSubnetworks+        , Just ("subnetworks" .= subnetworks)+        , ("IPv4Range" .=) <$> iPv4Range+        , ("IPv6Range" .=) <$> iPv6Range+        , ("gatewayIPv4" .=) <$> gatewayIPv4+        , ("mtu" .=) <$> mtu+        , Just ("peerings" .= peerings)+        , Just ("selfLink" .= selfLink)+        , ("enableUlaInternalIpv6" .=) <$> enableUlaInternalIpv6+        , ("internalIpv6Range" .=) <$> internalIpv6Range+        , ("networkFirewallPolicyEnforcementOrder" .=) <$> networkFirewallPolicyEnforcementOrder+        ]  -- | Network peering configuration data NetworkPeering = NetworkPeering   { name :: Text-    -- ^ Name of the peering+  -- ^ Name of the peering   , network :: Text-    -- ^ URL of peer network+  -- ^ URL of peer network   , state :: Text-    -- ^ Peering state (ACTIVE/INACTIVE)+  -- ^ Peering state (ACTIVE/INACTIVE)   , stateDetails :: Maybe Text-    -- ^ Detailed state information+  -- ^ Detailed state information   , exchangeSubnetRoutes :: Maybe Bool-    -- ^ Subnet route exchange+  -- ^ Subnet route exchange   , exportCustomRoutes :: Maybe Bool-    -- ^ Custom route export+  -- ^ Custom route export   , importCustomRoutes :: Maybe Bool-    -- ^ Custom route import-  } deriving (Eq, Show)+  -- ^ Custom route import+  }+  deriving (Eq, Show)  instance FromJSON NetworkPeering where-  parseJSON = withObject "NetworkPeering" $ \v -> NetworkPeering-    <$> v .: "name"-    <*> v .: "network"-    <*> v .: "state"-    <*> v .:? "stateDetails"-    <*> v .:? "exchangeSubnetRoutes"-    <*> v .:? "exportCustomRoutes"-    <*> v .:? "importCustomRoutes"+  parseJSON = withObject "NetworkPeering" $ \v ->+    NetworkPeering+      <$> v .: "name"+      <*> v .: "network"+      <*> v .: "state"+      <*> v .:? "stateDetails"+      <*> v .:? "exchangeSubnetRoutes"+      <*> v .:? "exportCustomRoutes"+      <*> v .:? "importCustomRoutes"  instance ToJSON NetworkPeering where-  toJSON NetworkPeering{..} = object $ catMaybes-    [ Just ("name" .= name)-    , Just ("network" .= network)-    , Just ("state" .= state)-    , ("stateDetails" .=) <$> stateDetails-    , ("exchangeSubnetRoutes" .=) <$> exchangeSubnetRoutes-    , ("exportCustomRoutes" .=) <$> exportCustomRoutes-    , ("importCustomRoutes" .=) <$> importCustomRoutes-    ]+  toJSON NetworkPeering {..} =+    object $+      catMaybes+        [ Just ("name" .= name)+        , Just ("network" .= network)+        , Just ("state" .= state)+        , ("stateDetails" .=) <$> stateDetails+        , ("exchangeSubnetRoutes" .=) <$> exchangeSubnetRoutes+        , ("exportCustomRoutes" .=) <$> exportCustomRoutes+        , ("importCustomRoutes" .=) <$> importCustomRoutes+        ]  -- | Query parameters for listNetworks operation data ListNetworksQuery = ListNetworksQuery   { filter_ :: Maybe String-    -- ^ Filter expression+  -- ^ Filter expression   , maxResults :: Maybe Int-    -- ^ Maximum results per page+  -- ^ Maximum results per page   , orderBy :: Maybe String-    -- ^ Sort order+  -- ^ Sort order   , pageToken :: Maybe String-    -- ^ Page token+  -- ^ Page token   , returnPartialSuccess :: Maybe Bool-    -- ^ Partial success return-  } deriving (Show)+  -- ^ Partial success return+  }+  deriving (Show)  -- | Default list networks query parameters defaultListNetworksQuery :: ListNetworksQuery-defaultListNetworksQuery = ListNetworksQuery-  { filter_ = Nothing-  , maxResults = Nothing-  , orderBy = Nothing-  , pageToken = Nothing-  , returnPartialSuccess = Nothing-  }+defaultListNetworksQuery =+  ListNetworksQuery+    { filter_ = Nothing+    , maxResults = Nothing+    , orderBy = Nothing+    , pageToken = Nothing+    , returnPartialSuccess = Nothing+    }  -- | List networks in a project listNetworks ::-  String               -- ^ GCP Project ID-  -> Maybe ListNetworksQuery  -- ^ Query parameters-  -> IO (Either String NetworkList)+  -- | GCP Project ID+  String ->+  -- | Query parameters+  Maybe ListNetworksQuery ->+  IO (Either String NetworkList) listNetworks project mbQuery = do   let queryParams = maybe [] toQueryList mbQuery   doRequestJSON@@ -222,16 +239,18 @@       , mbQueryParams = Just queryParams       , mbReqBody = Nothing       , mbReqHeaders = Nothing-      , mbReqPath = Just $ toPath-          [ "projects"-          , project-          , "global"-          , "networks"-          ]+      , mbReqPath =+          Just $+            toPath+              [ "projects"+              , project+              , "global"+              , "networks"+              ]       }   where     toQueryList :: ListNetworksQuery -> [(BS8.ByteString, Maybe BS8.ByteString)]-    toQueryList ListNetworksQuery{..} =+    toQueryList ListNetworksQuery {..} =       catMaybes         [ ("filter",) . Just . BS8.pack <$> filter_         , ("maxResults",) . Just . BS8.pack . show <$> maxResults
test/Spec.hs view
@@ -1,19 +1,23 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} -import Test.Hspec-import Google.Cloud.Compute.Disk as Disk-import Google.Cloud.Compute.Instance as Instance-import qualified Google.Cloud.Compute.Firewall as Firewall import Data.Aeson (decode, encode)-import Data.Maybe (isJust) import qualified Data.ByteString.Lazy.Char8 as BSL+import Data.Maybe (isJust)+import Google.Cloud.Compute.Common (googleComputeUrl)+import Google.Cloud.Compute.Disk as Disk+import qualified Google.Cloud.Compute.Firewall as Firewall+import Google.Cloud.Compute.Instance as Instance+import Test.Hspec  main :: IO () main = hspec spec  spec :: Spec spec = do+  describe "Google.Cloud.Compute.Common" $ do+    it "googleComputeUrl is v1 endpoint" $ do+      googleComputeUrl `shouldBe` "https://compute.googleapis.com/compute/v1"   describe "Google.Cloud.Compute.Disk" $ do     context "DiskResponse JSON serialization" $ do       it "successfully parses valid JSON to DiskResponse" $ do@@ -29,15 +33,15 @@     context "InsertDiskOps default" $ do       it "creates a default InsertDiskOps" $ do         let diskOps = defaultInsertOps "my-disk" "100"-        (\InsertDiskOps{..} -> name) diskOps `shouldBe` "my-disk"-        (\InsertDiskOps{..} -> sizeGb) diskOps `shouldBe` "100"-        (\InsertDiskOps{..} -> description) diskOps `shouldBe` Nothing+        (\InsertDiskOps {..} -> name) diskOps `shouldBe` "my-disk"+        (\InsertDiskOps {..} -> sizeGb) diskOps `shouldBe` "100"+        (\InsertDiskOps {..} -> description) diskOps `shouldBe` Nothing      context "CreateSnapshotOps default" $ do       it "creates a default CreateSnapshotOps" $ do         let snapshotOps = defaultCreateSnapshotOps "my-snapshot"-        (\CreateSnapshotOps{..} -> name) snapshotOps `shouldBe` "my-snapshot"-        (\CreateSnapshotOps{..} -> description) snapshotOps `shouldBe` Nothing+        (\CreateSnapshotOps {..} -> name) snapshotOps `shouldBe` "my-snapshot"+        (\CreateSnapshotOps {..} -> description) snapshotOps `shouldBe` Nothing      context "Warning JSON serialization" $ do       it "serializes and deserializes Warning correctly" $ do@@ -52,7 +56,21 @@         result `shouldSatisfy` isJust        it "successfully converts Operation to JSON" $ do-        let operation = Operation (Just "123") (Just "operation-1") Nothing Nothing Nothing (Just "DONE") Nothing Nothing Nothing Nothing Nothing Nothing Nothing+        let operation =+              Operation+                (Just "123")+                (Just "operation-1")+                Nothing+                Nothing+                Nothing+                (Just "DONE")+                Nothing+                Nothing+                Nothing+                Nothing+                Nothing+                Nothing+                Nothing         let json = encode operation         decode json `shouldBe` Just operation @@ -66,17 +84,18 @@           decode (encode action) `shouldBe` Just action          it "correctly serializes and deserializes Scheduling" $ do-          let scheduling = Scheduling {-                onHostMaintenance = "MIGRATE",-                automaticRestart = True,-                preemptible = False,-                nodeAffinities = [],-                minNodeCpus = 1,-                locationHint = "us-central1",-                availabilityDomain = 0,-                provisioningModel = "STANDARD",-                instanceTerminationAction = RunDurationRunDuration (TerminationTime "2023-10-15T12:00:00Z")-              }+          let scheduling =+                Scheduling+                  { onHostMaintenance = "MIGRATE"+                  , automaticRestart = True+                  , preemptible = False+                  , nodeAffinities = []+                  , minNodeCpus = 1+                  , locationHint = "us-central1"+                  , availabilityDomain = 0+                  , provisioningModel = "STANDARD"+                  , instanceTerminationAction = RunDurationRunDuration (TerminationTime "2023-10-15T12:00:00Z")+                  }           decode (encode scheduling) `shouldBe` Just scheduling        describe "Default Query Constructors" $ do@@ -90,7 +109,7 @@          it "creates a default InsertInstanceOps with correct settings" $ do           let ops = defaultInsertInstanceOps "my-project" "us-central1-a" "test-instance" "f1-micro"-          (\InsertInstanceOps{..} -> name) ops `shouldBe` "test-instance"+          (\InsertInstanceOps {..} -> name) ops `shouldBe` "test-instance"           machineType ops `shouldBe` "zones/us-central1-a/machineTypes/f1-micro"           isJust (disks ops) `shouldBe` True           isJust (networkInterfaces ops) `shouldBe` True@@ -99,73 +118,98 @@           let rid = "request-123"           let query = defaultRequestIdQuery rid           requestId query `shouldBe` Just rid-      -    describe "Google.Cloud.Compute.Firewall" $ do -        describe "JSON serialization/deserialization" $ do-          it "should serialize and deserialize WarningData" $ do-            let warningData = Firewall.WarningData "some_key" "some_value"-            let json = encode warningData-            decode json `shouldBe` Just warningData+    describe "Google.Cloud.Compute.Firewall" $ do+      describe "JSON serialization/deserialization" $ do+        it "should serialize and deserialize WarningData" $ do+          let warningData = Firewall.WarningData "some_key" "some_value"+          let json = encode warningData+          decode json `shouldBe` Just warningData -          it "should serialize and deserialize Warning" $ do-            let warning = Firewall.Warning "some_code" "some_message" Nothing-            let json = encode warning-            decode json `shouldBe` Just warning+        it "should serialize and deserialize Warning" $ do+          let warning = Firewall.Warning "some_code" "some_message" Nothing+          let json = encode warning+          decode json `shouldBe` Just warning -          it "should serialize and deserialize LogConfig" $ do-            let logConfig = Firewall.LogConfig True (Just "INCLUDE_ALL_METADATA")-            let json = encode logConfig-            decode json `shouldBe` Just logConfig+        it "should serialize and deserialize LogConfig" $ do+          let logConfig = Firewall.LogConfig True (Just "INCLUDE_ALL_METADATA")+          let json = encode logConfig+          decode json `shouldBe` Just logConfig -          it "should serialize and deserialize AllowedFirewall" $ do-            let allowedFirewall = Firewall.AllowedFirewall "tcp" (Just ["80", "443"])-            let json = encode allowedFirewall-            decode json `shouldBe` Just allowedFirewall+        it "should serialize and deserialize AllowedFirewall" $ do+          let allowedFirewall = Firewall.AllowedFirewall "tcp" (Just ["80", "443"])+          let json = encode allowedFirewall+          decode json `shouldBe` Just allowedFirewall -          it "should serialize and deserialize DeniedFirewall" $ do-            let deniedFirewall = Firewall.DeniedFirewall "tcp" (Just ["22"])-            let json = encode deniedFirewall-            decode json `shouldBe` Just deniedFirewall+        it "should serialize and deserialize DeniedFirewall" $ do+          let deniedFirewall = Firewall.DeniedFirewall "tcp" (Just ["22"])+          let json = encode deniedFirewall+          decode json `shouldBe` Just deniedFirewall -          it "should serialize and deserialize FirewallMeta" $ do-            let firewallMeta = Firewall.FirewallMeta (Just "compute#firewall") (Just "123456") (Just "2021-01-01T00:00:00Z") -                                          (Just "test-firewall") (Just "A test firewall") -                                          (Just "global/networks/default") (Just 1000) -                                          (Just ["0.0.0.0/0"]) (Just ["tag1"]) (Just ["tag2"]) -                                          (Just [Firewall.AllowedFirewall "tcp" (Just ["80"])]) -                                          (Just [Firewall.DeniedFirewall "tcp" (Just ["22"])]) -                                          (Just "INGRESS") (Just (Firewall.LogConfig True (Just "INCLUDE_ALL_METADATA"))) -                                          (Just False) (Just "selfLink")-            let json = encode firewallMeta-            decode json `shouldBe` Just firewallMeta+        it "should serialize and deserialize FirewallMeta" $ do+          let firewallMeta =+                Firewall.FirewallMeta+                  (Just "compute#firewall")+                  (Just "123456")+                  (Just "2021-01-01T00:00:00Z")+                  (Just "test-firewall")+                  (Just "A test firewall")+                  (Just "global/networks/default")+                  (Just 1000)+                  (Just ["0.0.0.0/0"])+                  (Just ["tag1"])+                  (Just ["tag2"])+                  (Just [Firewall.AllowedFirewall "tcp" (Just ["80"])])+                  (Just [Firewall.DeniedFirewall "tcp" (Just ["22"])])+                  (Just "INGRESS")+                  (Just (Firewall.LogConfig True (Just "INCLUDE_ALL_METADATA")))+                  (Just False)+                  (Just "selfLink")+          let json = encode firewallMeta+          decode json `shouldBe` Just firewallMeta -          it "should serialize and deserialize FirewallList" $ do-            let firewallList = Firewall.FirewallList (Just "compute#firewallList") (Just "12345") -                                            (Just [Firewall.FirewallMeta (Just "compute#firewall") (Just "123456") -                                            (Just "2021-01-01T00:00:00Z") (Just "test-firewall") -                                            (Just "A test firewall") (Just "global/networks/default") -                                            (Just 1000) (Just ["0.0.0.0/0"]) (Just ["tag1"]) -                                            (Just ["tag2"]) (Just [Firewall.AllowedFirewall "tcp" (Just ["80"])] ) -                                            (Just [Firewall.DeniedFirewall "tcp" (Just ["22"])] ) -                                            (Just "INGRESS") (Just (Firewall.LogConfig True (Just "INCLUDE_ALL_METADATA"))) -                                            (Just False) (Just "selfLink")]) -                                            (Just "nextPageToken") (Just "selfLink") -                                            (Just (Firewall.Warning "some_code" "some_message" Nothing))-            let json = encode firewallList-            decode json `shouldBe` Just firewallList+        it "should serialize and deserialize FirewallList" $ do+          let firewallList =+                Firewall.FirewallList+                  (Just "compute#firewallList")+                  (Just "12345")+                  ( Just+                      [ Firewall.FirewallMeta+                          (Just "compute#firewall")+                          (Just "123456")+                          (Just "2021-01-01T00:00:00Z")+                          (Just "test-firewall")+                          (Just "A test firewall")+                          (Just "global/networks/default")+                          (Just 1000)+                          (Just ["0.0.0.0/0"])+                          (Just ["tag1"])+                          (Just ["tag2"])+                          (Just [Firewall.AllowedFirewall "tcp" (Just ["80"])])+                          (Just [Firewall.DeniedFirewall "tcp" (Just ["22"])])+                          (Just "INGRESS")+                          (Just (Firewall.LogConfig True (Just "INCLUDE_ALL_METADATA")))+                          (Just False)+                          (Just "selfLink")+                      ]+                  )+                  (Just "nextPageToken")+                  (Just "selfLink")+                  (Just (Firewall.Warning "some_code" "some_message" Nothing))+          let json = encode firewallList+          decode json `shouldBe` Just firewallList -          it "should create default CreateFirewallOps" $ do-            let defaultOps = Firewall.defaultCreateFirewallOps "test-firewall"-            (\Firewall.CreateFirewallOps{..} -> name) defaultOps `shouldBe` "test-firewall"-            (\Firewall.CreateFirewallOps{..} -> description) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> network) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> priority) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> sourceRanges) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> sourceTags) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> targetTags) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> allowed) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> denied) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> direction) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> logConfig) defaultOps `shouldBe` Nothing-            (\Firewall.CreateFirewallOps{..} -> disabled) defaultOps `shouldBe` Nothing+        it "should create default CreateFirewallOps" $ do+          let defaultOps = Firewall.defaultCreateFirewallOps "test-firewall"+          (\Firewall.CreateFirewallOps {..} -> name) defaultOps `shouldBe` "test-firewall"+          (\Firewall.CreateFirewallOps {..} -> description) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> network) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> priority) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> sourceRanges) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> sourceTags) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> targetTags) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> allowed) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> denied) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> direction) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> logConfig) defaultOps `shouldBe` Nothing+          (\Firewall.CreateFirewallOps {..} -> disabled) defaultOps `shouldBe` Nothing