{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- | -- Module : Network.Google.File.Types.Product -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.Google.File.Types.Product where import Network.Google.File.Types.Sum import Network.Google.Prelude -- | Resource labels to represent user provided metadata. -- -- /See:/ 'instanceLabels' smart constructor. newtype InstanceLabels = InstanceLabels' { _ilAddtional :: HashMap Text Text } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'InstanceLabels' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ilAddtional' instanceLabels :: HashMap Text Text -- ^ 'ilAddtional' -> InstanceLabels instanceLabels pIlAddtional_ = InstanceLabels' { _ilAddtional = _Coerce # pIlAddtional_ } ilAddtional :: Lens' InstanceLabels (HashMap Text Text) ilAddtional = lens _ilAddtional (\ s a -> s{_ilAddtional = a}) . _Coerce instance FromJSON InstanceLabels where parseJSON = withObject "InstanceLabels" (\ o -> InstanceLabels' <$> (parseJSONObject o)) instance ToJSON InstanceLabels where toJSON = toJSON . _ilAddtional -- | The \`Status\` type defines a logical error model that is suitable for -- different programming environments, including REST APIs and RPC APIs. It -- is used by [gRPC](https:\/\/github.com\/grpc). The error model is -- designed to be: - Simple to use and understand for most users - Flexible -- enough to meet unexpected needs # Overview The \`Status\` message -- contains three pieces of data: error code, error message, and error -- details. The error code should be an enum value of google.rpc.Code, but -- it may accept additional error codes if needed. The error message should -- be a developer-facing English message that helps developers *understand* -- and *resolve* the error. If a localized user-facing error message is -- needed, put the localized message in the error details or localize it in -- the client. The optional error details may contain arbitrary information -- about the error. There is a predefined set of error detail types in the -- package \`google.rpc\` that can be used for common error conditions. # -- Language mapping The \`Status\` message is the logical representation of -- the error model, but it is not necessarily the actual wire format. When -- the \`Status\` message is exposed in different client libraries and -- different wire protocols, it can be mapped differently. For example, it -- will likely be mapped to some exceptions in Java, but more likely mapped -- to some error codes in C. # Other uses The error model and the -- \`Status\` message can be used in a variety of environments, either with -- or without APIs, to provide a consistent developer experience across -- different environments. Example uses of this error model include: - -- Partial errors. If a service needs to return partial errors to the -- client, it may embed the \`Status\` in the normal response to indicate -- the partial errors. - Workflow errors. A typical workflow has multiple -- steps. Each step may have a \`Status\` message for error reporting. - -- Batch operations. If a client uses batch request and batch response, the -- \`Status\` message should be used directly inside batch response, one -- for each error sub-response. - Asynchronous operations. If an API call -- embeds asynchronous operation results in its response, the status of -- those operations should be represented directly using the \`Status\` -- message. - Logging. If some API errors are stored in logs, the message -- \`Status\` could be used directly after any stripping needed for -- security\/privacy reasons. -- -- /See:/ 'status' smart constructor. data Status = Status' { _sDetails :: !(Maybe [StatusDetailsItem]) , _sCode :: !(Maybe (Textual Int32)) , _sMessage :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'Status' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sDetails' -- -- * 'sCode' -- -- * 'sMessage' status :: Status status = Status' { _sDetails = Nothing , _sCode = Nothing , _sMessage = Nothing } -- | A list of messages that carry the error details. There is a common set -- of message types for APIs to use. sDetails :: Lens' Status [StatusDetailsItem] sDetails = lens _sDetails (\ s a -> s{_sDetails = a}) . _Default . _Coerce -- | The status code, which should be an enum value of google.rpc.Code. sCode :: Lens' Status (Maybe Int32) sCode = lens _sCode (\ s a -> s{_sCode = a}) . mapping _Coerce -- | A developer-facing error message, which should be in English. Any -- user-facing error message should be localized and sent in the -- google.rpc.Status.details field, or localized by the client. sMessage :: Lens' Status (Maybe Text) sMessage = lens _sMessage (\ s a -> s{_sMessage = a}) instance FromJSON Status where parseJSON = withObject "Status" (\ o -> Status' <$> (o .:? "details" .!= mempty) <*> (o .:? "code") <*> (o .:? "message")) instance ToJSON Status where toJSON Status'{..} = object (catMaybes [("details" .=) <$> _sDetails, ("code" .=) <$> _sCode, ("message" .=) <$> _sMessage]) -- | Service-specific metadata associated with the operation. It typically -- contains progress information and common metadata such as create time. -- Some services might not provide such metadata. Any method that returns a -- long-running operation should document the metadata type, if any. -- -- /See:/ 'operationSchema' smart constructor. newtype OperationSchema = OperationSchema' { _osAddtional :: HashMap Text JSONValue } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'OperationSchema' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'osAddtional' operationSchema :: HashMap Text JSONValue -- ^ 'osAddtional' -> OperationSchema operationSchema pOsAddtional_ = OperationSchema' { _osAddtional = _Coerce # pOsAddtional_ } -- | Properties of the object. Contains field \'type with type URL. osAddtional :: Lens' OperationSchema (HashMap Text JSONValue) osAddtional = lens _osAddtional (\ s a -> s{_osAddtional = a}) . _Coerce instance FromJSON OperationSchema where parseJSON = withObject "OperationSchema" (\ o -> OperationSchema' <$> (parseJSONObject o)) instance ToJSON OperationSchema where toJSON = toJSON . _osAddtional -- | The response message for Locations.ListLocations. -- -- /See:/ 'listLocationsResponse' smart constructor. data ListLocationsResponse = ListLocationsResponse' { _llrNextPageToken :: !(Maybe Text) , _llrLocations :: !(Maybe [Location]) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'ListLocationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'llrNextPageToken' -- -- * 'llrLocations' listLocationsResponse :: ListLocationsResponse listLocationsResponse = ListLocationsResponse' { _llrNextPageToken = Nothing , _llrLocations = Nothing } -- | The standard List next-page token. llrNextPageToken :: Lens' ListLocationsResponse (Maybe Text) llrNextPageToken = lens _llrNextPageToken (\ s a -> s{_llrNextPageToken = a}) -- | A list of locations that matches the specified filter in the request. llrLocations :: Lens' ListLocationsResponse [Location] llrLocations = lens _llrLocations (\ s a -> s{_llrLocations = a}) . _Default . _Coerce instance FromJSON ListLocationsResponse where parseJSON = withObject "ListLocationsResponse" (\ o -> ListLocationsResponse' <$> (o .:? "nextPageToken") <*> (o .:? "locations" .!= mempty)) instance ToJSON ListLocationsResponse where toJSON ListLocationsResponse'{..} = object (catMaybes [("nextPageToken" .=) <$> _llrNextPageToken, ("locations" .=) <$> _llrLocations]) -- | The response message for Operations.ListOperations. -- -- /See:/ 'listOperationsResponse' smart constructor. data ListOperationsResponse = ListOperationsResponse' { _lorNextPageToken :: !(Maybe Text) , _lorOperations :: !(Maybe [Operation]) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lorNextPageToken' -- -- * 'lorOperations' listOperationsResponse :: ListOperationsResponse listOperationsResponse = ListOperationsResponse' { _lorNextPageToken = Nothing , _lorOperations = Nothing } -- | The standard List next-page token. lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text) lorNextPageToken = lens _lorNextPageToken (\ s a -> s{_lorNextPageToken = a}) -- | A list of operations that matches the specified filter in the request. lorOperations :: Lens' ListOperationsResponse [Operation] lorOperations = lens _lorOperations (\ s a -> s{_lorOperations = a}) . _Default . _Coerce instance FromJSON ListOperationsResponse where parseJSON = withObject "ListOperationsResponse" (\ o -> ListOperationsResponse' <$> (o .:? "nextPageToken") <*> (o .:? "operations" .!= mempty)) instance ToJSON ListOperationsResponse where toJSON ListOperationsResponse'{..} = object (catMaybes [("nextPageToken" .=) <$> _lorNextPageToken, ("operations" .=) <$> _lorOperations]) -- | The request message for Operations.CancelOperation. -- -- /See:/ 'cancelOperationRequest' smart constructor. data CancelOperationRequest = CancelOperationRequest' deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'CancelOperationRequest' with the minimum fields required to make a request. -- cancelOperationRequest :: CancelOperationRequest cancelOperationRequest = CancelOperationRequest' instance FromJSON CancelOperationRequest where parseJSON = withObject "CancelOperationRequest" (\ o -> pure CancelOperationRequest') instance ToJSON CancelOperationRequest where toJSON = const emptyObject -- | A resource that represents Google Cloud Platform location. -- -- /See:/ 'location' smart constructor. data Location = Location' { _lName :: !(Maybe Text) , _lMetadata :: !(Maybe LocationMetadata) , _lDisplayName :: !(Maybe Text) , _lLabels :: !(Maybe LocationLabels) , _lLocationId :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'Location' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lName' -- -- * 'lMetadata' -- -- * 'lDisplayName' -- -- * 'lLabels' -- -- * 'lLocationId' location :: Location location = Location' { _lName = Nothing , _lMetadata = Nothing , _lDisplayName = Nothing , _lLabels = Nothing , _lLocationId = Nothing } -- | Resource name for the location, which may vary between implementations. -- For example: \`\"projects\/example-project\/locations\/us-east1\"\` lName :: Lens' Location (Maybe Text) lName = lens _lName (\ s a -> s{_lName = a}) -- | Service-specific metadata. For example the available capacity at the -- given location. lMetadata :: Lens' Location (Maybe LocationMetadata) lMetadata = lens _lMetadata (\ s a -> s{_lMetadata = a}) -- | The friendly name for this location, typically a nearby city name. For -- example, \"Tokyo\". lDisplayName :: Lens' Location (Maybe Text) lDisplayName = lens _lDisplayName (\ s a -> s{_lDisplayName = a}) -- | Cross-service attributes for the location. For example -- {\"cloud.googleapis.com\/region\": \"us-east1\"} lLabels :: Lens' Location (Maybe LocationLabels) lLabels = lens _lLabels (\ s a -> s{_lLabels = a}) -- | The canonical id for this location. For example: \`\"us-east1\"\`. lLocationId :: Lens' Location (Maybe Text) lLocationId = lens _lLocationId (\ s a -> s{_lLocationId = a}) instance FromJSON Location where parseJSON = withObject "Location" (\ o -> Location' <$> (o .:? "name") <*> (o .:? "metadata") <*> (o .:? "displayName") <*> (o .:? "labels") <*> (o .:? "locationId")) instance ToJSON Location where toJSON Location'{..} = object (catMaybes [("name" .=) <$> _lName, ("metadata" .=) <$> _lMetadata, ("displayName" .=) <$> _lDisplayName, ("labels" .=) <$> _lLabels, ("locationId" .=) <$> _lLocationId]) -- | This resource represents a long-running operation that is the result of -- a network API call. -- -- /See:/ 'operation' smart constructor. data Operation = Operation' { _oDone :: !(Maybe Bool) , _oError :: !(Maybe Status) , _oResponse :: !(Maybe OperationResponse) , _oName :: !(Maybe Text) , _oMetadata :: !(Maybe OperationSchema) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'Operation' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'oDone' -- -- * 'oError' -- -- * 'oResponse' -- -- * 'oName' -- -- * 'oMetadata' operation :: Operation operation = Operation' { _oDone = Nothing , _oError = Nothing , _oResponse = Nothing , _oName = Nothing , _oMetadata = Nothing } -- | If the value is \`false\`, it means the operation is still in progress. -- If \`true\`, the operation is completed, and either \`error\` or -- \`response\` is available. oDone :: Lens' Operation (Maybe Bool) oDone = lens _oDone (\ s a -> s{_oDone = a}) -- | The error result of the operation in case of failure or cancellation. oError :: Lens' Operation (Maybe Status) oError = lens _oError (\ s a -> s{_oError = a}) -- | The normal response of the operation in case of success. If the original -- method returns no data on success, such as \`Delete\`, the response is -- \`google.protobuf.Empty\`. If the original method is standard -- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource. -- For other methods, the response should have the type \`XxxResponse\`, -- where \`Xxx\` is the original method name. For example, if the original -- method name is \`TakeSnapshot()\`, the inferred response type is -- \`TakeSnapshotResponse\`. oResponse :: Lens' Operation (Maybe OperationResponse) oResponse = lens _oResponse (\ s a -> s{_oResponse = a}) -- | The server-assigned name, which is only unique within the same service -- that originally returns it. If you use the default HTTP mapping, the -- \`name\` should have the format of \`operations\/some\/unique\/name\`. oName :: Lens' Operation (Maybe Text) oName = lens _oName (\ s a -> s{_oName = a}) -- | Service-specific metadata associated with the operation. It typically -- contains progress information and common metadata such as create time. -- Some services might not provide such metadata. Any method that returns a -- long-running operation should document the metadata type, if any. oMetadata :: Lens' Operation (Maybe OperationSchema) oMetadata = lens _oMetadata (\ s a -> s{_oMetadata = a}) instance FromJSON Operation where parseJSON = withObject "Operation" (\ o -> Operation' <$> (o .:? "done") <*> (o .:? "error") <*> (o .:? "response") <*> (o .:? "name") <*> (o .:? "metadata")) instance ToJSON Operation where toJSON Operation'{..} = object (catMaybes [("done" .=) <$> _oDone, ("error" .=) <$> _oError, ("response" .=) <$> _oResponse, ("name" .=) <$> _oName, ("metadata" .=) <$> _oMetadata]) -- | A generic empty message that you can re-use to avoid defining duplicated -- empty messages in your APIs. A typical example is to use it as the -- request or the response type of an API method. For instance: service Foo -- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The -- JSON representation for \`Empty\` is empty JSON object \`{}\`. -- -- /See:/ 'empty' smart constructor. data Empty = Empty' deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'Empty' with the minimum fields required to make a request. -- empty :: Empty empty = Empty' instance FromJSON Empty where parseJSON = withObject "Empty" (\ o -> pure Empty') instance ToJSON Empty where toJSON = const emptyObject -- -- /See:/ 'statusDetailsItem' smart constructor. newtype StatusDetailsItem = StatusDetailsItem' { _sdiAddtional :: HashMap Text JSONValue } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'StatusDetailsItem' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sdiAddtional' statusDetailsItem :: HashMap Text JSONValue -- ^ 'sdiAddtional' -> StatusDetailsItem statusDetailsItem pSdiAddtional_ = StatusDetailsItem' { _sdiAddtional = _Coerce # pSdiAddtional_ } -- | Properties of the object. Contains field \'type with type URL. sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue) sdiAddtional = lens _sdiAddtional (\ s a -> s{_sdiAddtional = a}) . _Coerce instance FromJSON StatusDetailsItem where parseJSON = withObject "StatusDetailsItem" (\ o -> StatusDetailsItem' <$> (parseJSONObject o)) instance ToJSON StatusDetailsItem where toJSON = toJSON . _sdiAddtional -- | File share configuration for the instance. -- -- /See:/ 'fileShareConfig' smart constructor. data FileShareConfig = FileShareConfig' { _fscName :: !(Maybe Text) , _fscCapacityGb :: !(Maybe (Textual Int64)) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'FileShareConfig' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'fscName' -- -- * 'fscCapacityGb' fileShareConfig :: FileShareConfig fileShareConfig = FileShareConfig' { _fscName = Nothing , _fscCapacityGb = Nothing } -- | The name of the file share (must be 16 characters or less). fscName :: Lens' FileShareConfig (Maybe Text) fscName = lens _fscName (\ s a -> s{_fscName = a}) -- | File share capacity in gigabytes (GB). Cloud Filestore defines 1 GB as -- 1024^3 bytes. fscCapacityGb :: Lens' FileShareConfig (Maybe Int64) fscCapacityGb = lens _fscCapacityGb (\ s a -> s{_fscCapacityGb = a}) . mapping _Coerce instance FromJSON FileShareConfig where parseJSON = withObject "FileShareConfig" (\ o -> FileShareConfig' <$> (o .:? "name") <*> (o .:? "capacityGb")) instance ToJSON FileShareConfig where toJSON FileShareConfig'{..} = object (catMaybes [("name" .=) <$> _fscName, ("capacityGb" .=) <$> _fscCapacityGb]) -- | Network configuration for the instance. -- -- /See:/ 'networkConfig' smart constructor. data NetworkConfig = NetworkConfig' { _ncModes :: !(Maybe [Text]) , _ncNetwork :: !(Maybe Text) , _ncReservedIPRange :: !(Maybe Text) , _ncIPAddresses :: !(Maybe [Text]) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'NetworkConfig' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'ncModes' -- -- * 'ncNetwork' -- -- * 'ncReservedIPRange' -- -- * 'ncIPAddresses' networkConfig :: NetworkConfig networkConfig = NetworkConfig' { _ncModes = Nothing , _ncNetwork = Nothing , _ncReservedIPRange = Nothing , _ncIPAddresses = Nothing } -- | Internet protocol versions for which the instance has IP addresses -- assigned. For this version, only MODE_IPV4 is supported. ncModes :: Lens' NetworkConfig [Text] ncModes = lens _ncModes (\ s a -> s{_ncModes = a}) . _Default . _Coerce -- | The name of the Google Compute Engine [VPC -- network](\/compute\/docs\/networks-and-firewalls#networks) to which the -- instance is connected. ncNetwork :: Lens' NetworkConfig (Maybe Text) ncNetwork = lens _ncNetwork (\ s a -> s{_ncNetwork = a}) -- | A \/29 CIDR block in one of the [internal IP address -- ranges](https:\/\/www.arin.net\/knowledge\/address_filters.html) that -- identifies the range of IP addresses reserved for this instance. For -- example, 10.0.0.0\/29 or 192.168.0.0\/29. The range you specify can\'t -- overlap with either existing subnets or assigned IP address ranges for -- other Cloud Filestore instances in the selected VPC network. ncReservedIPRange :: Lens' NetworkConfig (Maybe Text) ncReservedIPRange = lens _ncReservedIPRange (\ s a -> s{_ncReservedIPRange = a}) -- | Output only. IPv4 addresses in the format {octet 1}.{octet 2}.{octet -- 3}.{octet 4} or IPv6 addresses in the format {block 1}:{block 2}:{block -- 3}:{block 4}:{block 5}:{block 6}:{block 7}:{block 8}. ncIPAddresses :: Lens' NetworkConfig [Text] ncIPAddresses = lens _ncIPAddresses (\ s a -> s{_ncIPAddresses = a}) . _Default . _Coerce instance FromJSON NetworkConfig where parseJSON = withObject "NetworkConfig" (\ o -> NetworkConfig' <$> (o .:? "modes" .!= mempty) <*> (o .:? "network") <*> (o .:? "reservedIpRange") <*> (o .:? "ipAddresses" .!= mempty)) instance ToJSON NetworkConfig where toJSON NetworkConfig'{..} = object (catMaybes [("modes" .=) <$> _ncModes, ("network" .=) <$> _ncNetwork, ("reservedIpRange" .=) <$> _ncReservedIPRange, ("ipAddresses" .=) <$> _ncIPAddresses]) -- | Cross-service attributes for the location. For example -- {\"cloud.googleapis.com\/region\": \"us-east1\"} -- -- /See:/ 'locationLabels' smart constructor. newtype LocationLabels = LocationLabels' { _llAddtional :: HashMap Text Text } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'LocationLabels' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'llAddtional' locationLabels :: HashMap Text Text -- ^ 'llAddtional' -> LocationLabels locationLabels pLlAddtional_ = LocationLabels' { _llAddtional = _Coerce # pLlAddtional_ } llAddtional :: Lens' LocationLabels (HashMap Text Text) llAddtional = lens _llAddtional (\ s a -> s{_llAddtional = a}) . _Coerce instance FromJSON LocationLabels where parseJSON = withObject "LocationLabels" (\ o -> LocationLabels' <$> (parseJSONObject o)) instance ToJSON LocationLabels where toJSON = toJSON . _llAddtional -- | Service-specific metadata. For example the available capacity at the -- given location. -- -- /See:/ 'locationMetadata' smart constructor. newtype LocationMetadata = LocationMetadata' { _lmAddtional :: HashMap Text JSONValue } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'LocationMetadata' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lmAddtional' locationMetadata :: HashMap Text JSONValue -- ^ 'lmAddtional' -> LocationMetadata locationMetadata pLmAddtional_ = LocationMetadata' { _lmAddtional = _Coerce # pLmAddtional_ } -- | Properties of the object. Contains field \'type with type URL. lmAddtional :: Lens' LocationMetadata (HashMap Text JSONValue) lmAddtional = lens _lmAddtional (\ s a -> s{_lmAddtional = a}) . _Coerce instance FromJSON LocationMetadata where parseJSON = withObject "LocationMetadata" (\ o -> LocationMetadata' <$> (parseJSONObject o)) instance ToJSON LocationMetadata where toJSON = toJSON . _lmAddtional -- | Represents the metadata of the long-running operation. -- -- /See:/ 'operationMetadata' smart constructor. data OperationMetadata = OperationMetadata' { _omAPIVersion :: !(Maybe Text) , _omEndTime :: !(Maybe DateTime') , _omStatusDetail :: !(Maybe Text) , _omVerb :: !(Maybe Text) , _omCancelRequested :: !(Maybe Bool) , _omTarget :: !(Maybe Text) , _omCreateTime :: !(Maybe DateTime') } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'OperationMetadata' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'omAPIVersion' -- -- * 'omEndTime' -- -- * 'omStatusDetail' -- -- * 'omVerb' -- -- * 'omCancelRequested' -- -- * 'omTarget' -- -- * 'omCreateTime' operationMetadata :: OperationMetadata operationMetadata = OperationMetadata' { _omAPIVersion = Nothing , _omEndTime = Nothing , _omStatusDetail = Nothing , _omVerb = Nothing , _omCancelRequested = Nothing , _omTarget = Nothing , _omCreateTime = Nothing } -- | [Output only] API version used to start the operation. omAPIVersion :: Lens' OperationMetadata (Maybe Text) omAPIVersion = lens _omAPIVersion (\ s a -> s{_omAPIVersion = a}) -- | [Output only] The time the operation finished running. omEndTime :: Lens' OperationMetadata (Maybe UTCTime) omEndTime = lens _omEndTime (\ s a -> s{_omEndTime = a}) . mapping _DateTime -- | [Output only] Human-readable status of the operation, if any. omStatusDetail :: Lens' OperationMetadata (Maybe Text) omStatusDetail = lens _omStatusDetail (\ s a -> s{_omStatusDetail = a}) -- | [Output only] Name of the verb executed by the operation. omVerb :: Lens' OperationMetadata (Maybe Text) omVerb = lens _omVerb (\ s a -> s{_omVerb = a}) -- | [Output only] Identifies whether the user has requested cancellation of -- the operation. Operations that have successfully been cancelled have -- Operation.error value with a google.rpc.Status.code of 1, corresponding -- to \`Code.CANCELLED\`. omCancelRequested :: Lens' OperationMetadata (Maybe Bool) omCancelRequested = lens _omCancelRequested (\ s a -> s{_omCancelRequested = a}) -- | [Output only] Server-defined resource path for the target of the -- operation. omTarget :: Lens' OperationMetadata (Maybe Text) omTarget = lens _omTarget (\ s a -> s{_omTarget = a}) -- | [Output only] The time the operation was created. omCreateTime :: Lens' OperationMetadata (Maybe UTCTime) omCreateTime = lens _omCreateTime (\ s a -> s{_omCreateTime = a}) . mapping _DateTime instance FromJSON OperationMetadata where parseJSON = withObject "OperationMetadata" (\ o -> OperationMetadata' <$> (o .:? "apiVersion") <*> (o .:? "endTime") <*> (o .:? "statusDetail") <*> (o .:? "verb") <*> (o .:? "cancelRequested") <*> (o .:? "target") <*> (o .:? "createTime")) instance ToJSON OperationMetadata where toJSON OperationMetadata'{..} = object (catMaybes [("apiVersion" .=) <$> _omAPIVersion, ("endTime" .=) <$> _omEndTime, ("statusDetail" .=) <$> _omStatusDetail, ("verb" .=) <$> _omVerb, ("cancelRequested" .=) <$> _omCancelRequested, ("target" .=) <$> _omTarget, ("createTime" .=) <$> _omCreateTime]) -- | ListInstancesResponse is the result of ListInstancesRequest. -- -- /See:/ 'listInstancesResponse' smart constructor. data ListInstancesResponse = ListInstancesResponse' { _lirNextPageToken :: !(Maybe Text) , _lirUnreachable :: !(Maybe [Text]) , _lirInstances :: !(Maybe [Instance]) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'ListInstancesResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'lirNextPageToken' -- -- * 'lirUnreachable' -- -- * 'lirInstances' listInstancesResponse :: ListInstancesResponse listInstancesResponse = ListInstancesResponse' { _lirNextPageToken = Nothing , _lirUnreachable = Nothing , _lirInstances = Nothing } -- | The token you can use to retrieve the next page of results. Not returned -- if there are no more results in the list. lirNextPageToken :: Lens' ListInstancesResponse (Maybe Text) lirNextPageToken = lens _lirNextPageToken (\ s a -> s{_lirNextPageToken = a}) -- | Locations that could not be reached. lirUnreachable :: Lens' ListInstancesResponse [Text] lirUnreachable = lens _lirUnreachable (\ s a -> s{_lirUnreachable = a}) . _Default . _Coerce -- | A list of instances in the project for the specified location. If the -- {location} value in the request is \"-\", the response contains a list -- of instances from all locations. If any location is unreachable, the -- response will only return instances in reachable locations and the -- \"unreachable\" field will be populated with a list of unreachable -- locations. lirInstances :: Lens' ListInstancesResponse [Instance] lirInstances = lens _lirInstances (\ s a -> s{_lirInstances = a}) . _Default . _Coerce instance FromJSON ListInstancesResponse where parseJSON = withObject "ListInstancesResponse" (\ o -> ListInstancesResponse' <$> (o .:? "nextPageToken") <*> (o .:? "unreachable" .!= mempty) <*> (o .:? "instances" .!= mempty)) instance ToJSON ListInstancesResponse where toJSON ListInstancesResponse'{..} = object (catMaybes [("nextPageToken" .=) <$> _lirNextPageToken, ("unreachable" .=) <$> _lirUnreachable, ("instances" .=) <$> _lirInstances]) -- | The normal response of the operation in case of success. If the original -- method returns no data on success, such as \`Delete\`, the response is -- \`google.protobuf.Empty\`. If the original method is standard -- \`Get\`\/\`Create\`\/\`Update\`, the response should be the resource. -- For other methods, the response should have the type \`XxxResponse\`, -- where \`Xxx\` is the original method name. For example, if the original -- method name is \`TakeSnapshot()\`, the inferred response type is -- \`TakeSnapshotResponse\`. -- -- /See:/ 'operationResponse' smart constructor. newtype OperationResponse = OperationResponse' { _orAddtional :: HashMap Text JSONValue } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'OperationResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'orAddtional' operationResponse :: HashMap Text JSONValue -- ^ 'orAddtional' -> OperationResponse operationResponse pOrAddtional_ = OperationResponse' { _orAddtional = _Coerce # pOrAddtional_ } -- | Properties of the object. Contains field \'type with type URL. orAddtional :: Lens' OperationResponse (HashMap Text JSONValue) orAddtional = lens _orAddtional (\ s a -> s{_orAddtional = a}) . _Coerce instance FromJSON OperationResponse where parseJSON = withObject "OperationResponse" (\ o -> OperationResponse' <$> (parseJSONObject o)) instance ToJSON OperationResponse where toJSON = toJSON . _orAddtional -- | A Cloud Filestore instance. -- -- /See:/ 'instance'' smart constructor. data Instance = Instance' { _iEtag :: !(Maybe Text) , _iState :: !(Maybe InstanceState) , _iNetworks :: !(Maybe [NetworkConfig]) , _iFileShares :: !(Maybe [FileShareConfig]) , _iName :: !(Maybe Text) , _iStatusMessage :: !(Maybe Text) , _iTier :: !(Maybe InstanceTier) , _iLabels :: !(Maybe InstanceLabels) , _iDescription :: !(Maybe Text) , _iCreateTime :: !(Maybe DateTime') } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'Instance' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'iEtag' -- -- * 'iState' -- -- * 'iNetworks' -- -- * 'iFileShares' -- -- * 'iName' -- -- * 'iStatusMessage' -- -- * 'iTier' -- -- * 'iLabels' -- -- * 'iDescription' -- -- * 'iCreateTime' instance' :: Instance instance' = Instance' { _iEtag = Nothing , _iState = Nothing , _iNetworks = Nothing , _iFileShares = Nothing , _iName = Nothing , _iStatusMessage = Nothing , _iTier = Nothing , _iLabels = Nothing , _iDescription = Nothing , _iCreateTime = Nothing } -- | Server-specified ETag for the instance resource to prevent simultaneous -- updates from overwriting each other. iEtag :: Lens' Instance (Maybe Text) iEtag = lens _iEtag (\ s a -> s{_iEtag = a}) -- | Output only. The instance state. iState :: Lens' Instance (Maybe InstanceState) iState = lens _iState (\ s a -> s{_iState = a}) -- | VPC networks to which the instance is connected. For this version, only -- a single network is supported. iNetworks :: Lens' Instance [NetworkConfig] iNetworks = lens _iNetworks (\ s a -> s{_iNetworks = a}) . _Default . _Coerce -- | File system shares on the instance. For this version, only a single file -- share is supported. iFileShares :: Lens' Instance [FileShareConfig] iFileShares = lens _iFileShares (\ s a -> s{_iFileShares = a}) . _Default . _Coerce -- | Output only. The resource name of the instance, in the format -- projects\/{project_id}\/locations\/{location_id}\/instances\/{instance_id}. iName :: Lens' Instance (Maybe Text) iName = lens _iName (\ s a -> s{_iName = a}) -- | Output only. Additional information about the instance state, if -- available. iStatusMessage :: Lens' Instance (Maybe Text) iStatusMessage = lens _iStatusMessage (\ s a -> s{_iStatusMessage = a}) -- | The service tier of the instance. iTier :: Lens' Instance (Maybe InstanceTier) iTier = lens _iTier (\ s a -> s{_iTier = a}) -- | Resource labels to represent user provided metadata. iLabels :: Lens' Instance (Maybe InstanceLabels) iLabels = lens _iLabels (\ s a -> s{_iLabels = a}) -- | Optional. A description of the instance (2048 characters or less). iDescription :: Lens' Instance (Maybe Text) iDescription = lens _iDescription (\ s a -> s{_iDescription = a}) -- | Output only. The time when the instance was created. iCreateTime :: Lens' Instance (Maybe UTCTime) iCreateTime = lens _iCreateTime (\ s a -> s{_iCreateTime = a}) . mapping _DateTime instance FromJSON Instance where parseJSON = withObject "Instance" (\ o -> Instance' <$> (o .:? "etag") <*> (o .:? "state") <*> (o .:? "networks" .!= mempty) <*> (o .:? "fileShares" .!= mempty) <*> (o .:? "name") <*> (o .:? "statusMessage") <*> (o .:? "tier") <*> (o .:? "labels") <*> (o .:? "description") <*> (o .:? "createTime")) instance ToJSON Instance where toJSON Instance'{..} = object (catMaybes [("etag" .=) <$> _iEtag, ("state" .=) <$> _iState, ("networks" .=) <$> _iNetworks, ("fileShares" .=) <$> _iFileShares, ("name" .=) <$> _iName, ("statusMessage" .=) <$> _iStatusMessage, ("tier" .=) <$> _iTier, ("labels" .=) <$> _iLabels, ("description" .=) <$> _iDescription, ("createTime" .=) <$> _iCreateTime])