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


-- | Google Storage Transfer SDK.
--   
--   Transfers data from external data sources to a Google Cloud Storage
--   bucket or between Google Cloud Storage buckets.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-storage-transfer
@version 0.3.0


module Network.Google.StorageTransfer.Types

-- | Default request referring to version <tt>v1</tt> of the Google Storage
--   Transfer API. This contains the host and root path used as a starting
--   point for constructing service requests.
storageTransferService :: ServiceConfig

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

-- | A summary of errors by error code, plus a count and sample error log
--   entries.
--   
--   <i>See:</i> <a>errorSummary</a> smart constructor.
data ErrorSummary

-- | Creates a value of <a>ErrorSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esErrorCount</a></li>
--   <li><a>esErrorCode</a></li>
--   <li><a>esErrorLogEntries</a></li>
--   </ul>
errorSummary :: ErrorSummary

-- | Count of this type of error. Required.
esErrorCount :: Lens' ErrorSummary (Maybe Int64)

-- | Required.
esErrorCode :: Lens' ErrorSummary (Maybe Text)

-- | Error samples.
esErrorLogEntries :: Lens' ErrorSummary [ErrorLogEntry]

-- | 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 <a>gRPC</a>. 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][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` which 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 purpose. - 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.
--   
--   <i>See:</i> <a>status</a> smart constructor.
data Status

-- | Creates a value of <a>Status</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDetails</a></li>
--   <li><a>sCode</a></li>
--   <li><a>sMessage</a></li>
--   </ul>
status :: Status

-- | A list of messages that carry the error details. There will be a
--   common set of message types for APIs to use.
sDetails :: Lens' Status [StatusDetailsItem]

-- | The status code, which should be an enum value of
--   [google.rpc.Code][google.rpc.Code].
sCode :: Lens' Status (Maybe Int32)

-- | 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][google.rpc.Status.details] field, or
--   localized by the client.
sMessage :: Lens' Status (Maybe Text)

-- | The response message for
--   [Operations.ListOperations][google.longrunning.Operations.ListOperations].
--   
--   <i>See:</i> <a>listOperationsResponse</a> smart constructor.
data ListOperationsResponse

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

-- | The standard List next-page token.
lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)

-- | A list of operations that matches the specified filter in the request.
lorOperations :: Lens' ListOperationsResponse [Operation]

-- | Transfers can be scheduled to recur or to run just once.
--   
--   <i>See:</i> <a>schedule</a> smart constructor.
data Schedule

-- | Creates a value of <a>Schedule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sScheduleEndDate</a></li>
--   <li><a>sScheduleStartDate</a></li>
--   <li><a>sStartTimeOfDay</a></li>
--   </ul>
schedule :: Schedule

-- | The last day the recurring transfer will be run. If `scheduleEndDate`
--   is the same as `scheduleStartDate`, the transfer will be executed only
--   once.
sScheduleEndDate :: Lens' Schedule (Maybe Date)

-- | The first day the recurring transfer is scheduled to run. Required.
sScheduleStartDate :: Lens' Schedule (Maybe Date)

-- | The time in UTC at which the transfer will be scheduled to start in a
--   day. Transfers may start later than this time. If not specified,
--   transfers are scheduled to start at midnight UTC.
sStartTimeOfDay :: Lens' Schedule (Maybe TimeOfDay')

-- | Conditions that determine which objects will be transferred.
--   
--   <i>See:</i> <a>objectConditions</a> smart constructor.
data ObjectConditions

-- | Creates a value of <a>ObjectConditions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ocMinTimeElapsedSinceLastModification</a></li>
--   <li><a>ocIncludePrefixes</a></li>
--   <li><a>ocMaxTimeElapsedSinceLastModification</a></li>
--   <li><a>ocExcludePrefixes</a></li>
--   </ul>
objectConditions :: ObjectConditions

-- | If unspecified, `minTimeElapsedSinceLastModification` takes a zero
--   value and `maxTimeElapsedSinceLastModification` takes the maximum
--   possible value of Duration. Objects that satisfy the object conditions
--   must either have a `lastModificationTime` greater or equal to `NOW` -
--   `maxTimeElapsedSinceLastModification` and less than `NOW` -
--   `minTimeElapsedSinceLastModification`, or not have a
--   `lastModificationTime`.
ocMinTimeElapsedSinceLastModification :: Lens' ObjectConditions (Maybe Text)

-- | If `includePrefixes` is specified, objects that satisfy the object
--   conditions must have names that start with one of the
--   `includePrefixes` and that do not start with any of the
--   `excludePrefixes`. If `includePrefixes` is not specified, all objects
--   except those that have names starting with one of the
--   `excludePrefixes` must satisfy the object conditions. Requirements: *
--   Each include-prefix and exclude-prefix can contain any sequence of
--   Unicode characters, of max length 1024 bytes when UTF8-encoded, and
--   must not contain Carriage Return or Line Feed characters. Wildcard
--   matching and regular expression matching are not supported. * None of
--   the include-prefix or the exclude-prefix values can be empty, if
--   specified. * Each include-prefix must include a distinct portion of
--   the object namespace, i.e., no include-prefix may be a prefix of
--   another include-prefix. * Each exclude-prefix must exclude a distinct
--   portion of the object namespace, i.e., no exclude-prefix may be a
--   prefix of another exclude-prefix. * If `includePrefixes` is specified,
--   then each exclude-prefix must start with the value of a path
--   explicitly included by `includePrefixes`. The max size of
--   `includePrefixes` is 20.
ocIncludePrefixes :: Lens' ObjectConditions [Text]

-- | `maxTimeElapsedSinceLastModification` is the complement to
--   `minTimeElapsedSinceLastModification`.
ocMaxTimeElapsedSinceLastModification :: Lens' ObjectConditions (Maybe Text)

-- | `excludePrefixes` must follow the requirements described for
--   `includePrefixes`. The max size of `excludePrefixes` is 20.
ocExcludePrefixes :: Lens' ObjectConditions [Text]

-- | This resource represents a long-running operation that is the result
--   of a network API call.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDone</a></li>
--   <li><a>oError</a></li>
--   <li><a>oResponse</a></li>
--   <li><a>oName</a></li>
--   <li><a>oMetadata</a></li>
--   </ul>
operation :: Operation

-- | If the value is `false`, it means the operation is still in progress.
--   If true, the operation is completed and the `result` is available.
oDone :: Lens' Operation (Maybe Bool)

-- | The error result of the operation in case of failure.
oError :: Lens' Operation (Maybe Status)

-- | 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)

-- | The server-assigned name, which is only unique within the same service
--   that originally returns it. If you use the default HTTP mapping above,
--   the `name` should have the format of `operations/some/unique/name`.
oName :: Lens' Operation (Maybe Text)

-- | Represents the transfer operation object.
oMetadata :: Lens' Operation (Maybe OperationMetadata)

-- | 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 `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | Request passed to PauseTransferOperation.
--   
--   <i>See:</i> <a>pauseTransferOperationRequest</a> smart constructor.
data PauseTransferOperationRequest

-- | Creates a value of <a>PauseTransferOperationRequest</a> with the
--   minimum fields required to make a request.
pauseTransferOperationRequest :: PauseTransferOperationRequest

-- | Google service account
--   
--   <i>See:</i> <a>googleServiceAccount</a> smart constructor.
data GoogleServiceAccount

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

-- | Required.
gsaAccountEmail :: Lens' GoogleServiceAccount (Maybe Text)
data StatusDetailsItem

-- | Creates a value of <a>StatusDetailsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdiAddtional</a></li>
--   </ul>
statusDetailsItem :: HashMap Text JSONValue -> StatusDetailsItem

-- | Properties of the object. Contains field 'ype with type URL.
sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)

-- | Represents a whole calendar date, e.g. date of birth. The time of day
--   and time zone are either specified elsewhere or are not significant.
--   The date is relative to the Proleptic Gregorian Calendar. The day may
--   be 0 to represent a year and month where the day is not significant,
--   e.g. credit card expiration date. The year may be 0 to represent a
--   month and day independent of year, e.g. anniversary date. Related
--   types are [google.type.TimeOfDay][google.type.TimeOfDay] and
--   `google.protobuf.Timestamp`.
--   
--   <i>See:</i> <a>date</a> smart constructor.
data Date

-- | Creates a value of <a>Date</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDay</a></li>
--   <li><a>dYear</a></li>
--   <li><a>dMonth</a></li>
--   </ul>
date :: Date

-- | Day of month. Must be from 1 to 31 and valid for the year and month,
--   or 0 if specifying a year/month where the day is not sigificant.
dDay :: Lens' Date (Maybe Int32)

-- | Year of date. Must be from 1 to 9,999, or 0 if specifying a date
--   without a year.
dYear :: Lens' Date (Maybe Int32)

-- | Month of year of date. Must be from 1 to 12.
dMonth :: Lens' Date (Maybe Int32)

-- | Request passed to UpdateTransferJob.
--   
--   <i>See:</i> <a>updateTransferJobRequest</a> smart constructor.
data UpdateTransferJobRequest

-- | Creates a value of <a>UpdateTransferJobRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utjrTransferJob</a></li>
--   <li><a>utjrProjectId</a></li>
--   <li><a>utjrUpdateTransferJobFieldMask</a></li>
--   </ul>
updateTransferJobRequest :: UpdateTransferJobRequest

-- | The job to update. Required.
utjrTransferJob :: Lens' UpdateTransferJobRequest (Maybe TransferJob)

-- | The ID of the Google Developers Console project that owns the job.
--   Required.
utjrProjectId :: Lens' UpdateTransferJobRequest (Maybe Text)

-- | The field mask of the fields in `transferJob` that are to be updated
--   in this request. Fields in `transferJob` that can be updated are:
--   `description`, `transferSpec`, and `status`. To update the
--   `transferSpec` of the job, a complete transfer specification has to be
--   provided. An incomplete specification which misses any required fields
--   will be rejected with the error `INVALID_ARGUMENT`.
utjrUpdateTransferJobFieldMask :: Lens' UpdateTransferJobRequest (Maybe Text)

-- | A collection of counters that report the progress of a transfer
--   operation.
--   
--   <i>See:</i> <a>transferCounters</a> smart constructor.
data TransferCounters

-- | Creates a value of <a>TransferCounters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcBytesFoundOnlyFromSink</a></li>
--   <li><a>tcBytesDeletedFromSink</a></li>
--   <li><a>tcObjectsDeletedFromSource</a></li>
--   <li><a>tcObjectsFoundFromSource</a></li>
--   <li><a>tcBytesFailedToDeleteFromSink</a></li>
--   <li><a>tcBytesFromSourceFailed</a></li>
--   <li><a>tcBytesCopiedToSink</a></li>
--   <li><a>tcBytesFoundFromSource</a></li>
--   <li><a>tcBytesDeletedFromSource</a></li>
--   <li><a>tcObjectsDeletedFromSink</a></li>
--   <li><a>tcObjectsFoundOnlyFromSink</a></li>
--   <li><a>tcBytesFromSourceSkippedBySync</a></li>
--   <li><a>tcObjectsCopiedToSink</a></li>
--   <li><a>tcObjectsFromSourceFailed</a></li>
--   <li><a>tcObjectsFailedToDeleteFromSink</a></li>
--   <li><a>tcObjectsFromSourceSkippedBySync</a></li>
--   </ul>
transferCounters :: TransferCounters

-- | Bytes found only in the data sink that are scheduled to be deleted.
tcBytesFoundOnlyFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that are deleted from the data sink.
tcBytesDeletedFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects that are deleted from the data source.
tcObjectsDeletedFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Objects found in the data source that are scheduled to be transferred,
--   which will be copied, excluded based on conditions, or skipped due to
--   failures.
tcObjectsFoundFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that failed to be deleted from the data sink.
tcBytesFailedToDeleteFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes in the data source that failed during the transfer.
tcBytesFromSourceFailed :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that are copied to the data sink.
tcBytesCopiedToSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes found in the data source that are scheduled to be transferred,
--   which will be copied, excluded based on conditions, or skipped due to
--   failures.
tcBytesFoundFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that are deleted from the data source.
tcBytesDeletedFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Objects that are deleted from the data sink.
tcObjectsDeletedFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects found only in the data sink that are scheduled to be deleted.
tcObjectsFoundOnlyFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes in the data source that are not transferred because they already
--   exist in the data sink.
tcBytesFromSourceSkippedBySync :: Lens' TransferCounters (Maybe Int64)

-- | Objects that are copied to the data sink.
tcObjectsCopiedToSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects in the data source that failed during the transfer.
tcObjectsFromSourceFailed :: Lens' TransferCounters (Maybe Int64)

-- | Objects that failed to be deleted from the data sink.
tcObjectsFailedToDeleteFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects in the data source that are not transferred because they
--   already exist in the data sink.
tcObjectsFromSourceSkippedBySync :: Lens' TransferCounters (Maybe Int64)

-- | This resource represents the configuration of a transfer job that runs
--   periodically.
--   
--   <i>See:</i> <a>transferJob</a> smart constructor.
data TransferJob

-- | Creates a value of <a>TransferJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tjCreationTime</a></li>
--   <li><a>tjStatus</a></li>
--   <li><a>tjSchedule</a></li>
--   <li><a>tjDeletionTime</a></li>
--   <li><a>tjName</a></li>
--   <li><a>tjProjectId</a></li>
--   <li><a>tjTransferSpec</a></li>
--   <li><a>tjDescription</a></li>
--   <li><a>tjLastModificationTime</a></li>
--   </ul>
transferJob :: TransferJob

-- | This field cannot be changed by user requests.
tjCreationTime :: Lens' TransferJob (Maybe Text)

-- | Status of the job. This value MUST be specified for
--   `CreateTransferJobRequests`. NOTE: The effect of the new job status
--   takes place during a subsequent job run. For example, if you change
--   the job status from `ENABLED` to `DISABLED`, and an operation spawned
--   by the transfer is running, the status change would not affect the
--   current operation.
tjStatus :: Lens' TransferJob (Maybe Text)

-- | Schedule specification. Required.
tjSchedule :: Lens' TransferJob (Maybe Schedule)

-- | This field cannot be changed by user requests.
tjDeletionTime :: Lens' TransferJob (Maybe Text)

-- | A globally unique name assigned by Storage Transfer Service when the
--   job is created. This field should be left empty in requests to create
--   a new transfer job; otherwise, the requests result in an
--   `INVALID_ARGUMENT` error.
tjName :: Lens' TransferJob (Maybe Text)

-- | The ID of the Google Developers Console project that owns the job.
--   Required.
tjProjectId :: Lens' TransferJob (Maybe Text)

-- | Transfer specification. Required.
tjTransferSpec :: Lens' TransferJob (Maybe TransferSpec)

-- | A description provided by the user for the job. Its max length is 1024
--   bytes when Unicode-encoded.
tjDescription :: Lens' TransferJob (Maybe Text)

-- | This field cannot be changed by user requests.
tjLastModificationTime :: Lens' TransferJob (Maybe Text)

-- | In a GcsData, an object's name is the Google Cloud Storage object's
--   name and its `lastModificationTime` refers to the object's updated
--   time, which changes when the content or the metadata of the object is
--   updated.
--   
--   <i>See:</i> <a>gcsData</a> smart constructor.
data GcsData

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

-- | Google Cloud Storage bucket name (see <a>Bucket Name
--   Requirements</a>). Required.
gdBucketName :: Lens' GcsData (Maybe Text)

-- | An AwsS3Data can be a data source, but not a data sink. In an
--   AwsS3Data, an object's name is the S3 object's key name.
--   
--   <i>See:</i> <a>awsS3Data</a> smart constructor.
data AwsS3Data

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

-- | S3 Bucket name (see <a>Creating a bucket</a>). Required.
asdBucketName :: Lens' AwsS3Data (Maybe Text)

-- | AWS access key used to sign the API requests to the AWS S3 bucket.
--   Permissions on the bucket must be granted to the access ID of the AWS
--   access key. Required.
asdAwsAccessKey :: Lens' AwsS3Data (Maybe AwsAccessKey)

-- | An HttpData specifies a list of objects on the web to be transferred
--   over HTTP. The information of the objects to be transferred is
--   contained in a file referenced by a URL. The first line in the file
--   must be "TsvHttpData-1.0", which specifies the format of the file.
--   Subsequent lines specify the information of the list of objects, one
--   object per list entry. Each entry has the following tab-delimited
--   fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5
--   hash of the object An HTTP URL that points to the object to be
--   transferred. It must be a valid URL with URL scheme HTTP or HTTPS.
--   When an object with URL `http(s)://hostname:port/` is transferred to
--   the data sink, the name of the object at the data sink is `/`. Length
--   and MD5 provide the size and the base64-encoded MD5 hash of the
--   object. If Length does not match the actual length of the object
--   fetched, the object will not be transferred. If MD5 does not match the
--   MD5 computed from the transferred bytes, the object transfer will
--   fail. `lastModificationTime` is not available in HttpData objects. The
--   objects that the URL list points to must allow public access. Storage
--   Transfer Service obeys `robots.txt` rules and requires the HTTP server
--   to support Range requests and to return a Content-Length header in
--   each response.
--   
--   <i>See:</i> <a>hTTPData</a> smart constructor.
data HTTPData

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

-- | The URL that points to the file that stores the object list entries.
--   This file must allow public access. Currently, only URLs with HTTP and
--   HTTPS schemes are supported. Required.
httpdListURL :: Lens' HTTPData (Maybe Text)

-- | Represents a time of day. The date and time zone are either not
--   significant or are specified elsewhere. An API may chose to allow leap
--   seconds. Related types are [google.type.Date][google.type.Date] and
--   `google.protobuf.Timestamp`.
--   
--   <i>See:</i> <a>timeOfDay</a> smart constructor.
data TimeOfDay'

-- | Creates a value of <a>TimeOfDay</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>todNanos</a></li>
--   <li><a>todHours</a></li>
--   <li><a>todMinutes</a></li>
--   <li><a>todSeconds</a></li>
--   </ul>
timeOfDay :: TimeOfDay'

-- | Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
todNanos :: Lens' TimeOfDay' (Maybe Int32)

-- | Hours of day in 24 hour format. Should be from 0 to 23. An API may
--   choose to allow the value "24:00:00" for scenarios like business
--   closing time.
todHours :: Lens' TimeOfDay' (Maybe Int32)

-- | Minutes of hour of day. Must be from 0 to 59.
todMinutes :: Lens' TimeOfDay' (Maybe Int32)

-- | Seconds of minutes of the time. Must normally be from 0 to 59. An API
--   may allow the value 60 if it allows leap-seconds.
todSeconds :: Lens' TimeOfDay' (Maybe Int32)

-- | An entry describing an error that has occurred.
--   
--   <i>See:</i> <a>errorLogEntry</a> smart constructor.
data ErrorLogEntry

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

-- | A URL that refers to the target (a data source, a data sink, or an
--   object) with which the error is associated. Required.
eleURL :: Lens' ErrorLogEntry (Maybe Text)

-- | A list of messages that carry the error details.
eleErrorDetails :: Lens' ErrorLogEntry [Text]

-- | Represents the transfer operation object.
--   
--   <i>See:</i> <a>operationMetadata</a> smart constructor.
data OperationMetadata

-- | Creates a value of <a>OperationMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>omAddtional</a></li>
--   </ul>
operationMetadata :: HashMap Text JSONValue -> OperationMetadata

-- | Properties of the object. Contains field 'ype with type URL.
omAddtional :: Lens' OperationMetadata (HashMap Text JSONValue)

-- | TransferOptions uses three boolean parameters to define the actions to
--   be performed on objects in a transfer.
--   
--   <i>See:</i> <a>transferOptions</a> smart constructor.
data TransferOptions

-- | Creates a value of <a>TransferOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>toDeleteObjectsUniqueInSink</a></li>
--   <li><a>toDeleteObjectsFromSourceAfterTransfer</a></li>
--   <li><a>toOverwriteObjectsAlreadyExistingInSink</a></li>
--   </ul>
transferOptions :: TransferOptions

-- | Whether objects that exist only in the sink should be deleted.
toDeleteObjectsUniqueInSink :: Lens' TransferOptions (Maybe Bool)

-- | Whether objects should be deleted from the source after they are
--   transferred to the sink.
toDeleteObjectsFromSourceAfterTransfer :: Lens' TransferOptions (Maybe Bool)

-- | Whether overwriting objects that already exist in the sink is allowed.
toOverwriteObjectsAlreadyExistingInSink :: Lens' TransferOptions (Maybe Bool)

-- | A description of the execution of a transfer.
--   
--   <i>See:</i> <a>transferOperation</a> smart constructor.
data TransferOperation

-- | Creates a value of <a>TransferOperation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>toStatus</a></li>
--   <li><a>toCounters</a></li>
--   <li><a>toStartTime</a></li>
--   <li><a>toTransferJobName</a></li>
--   <li><a>toName</a></li>
--   <li><a>toEndTime</a></li>
--   <li><a>toProjectId</a></li>
--   <li><a>toTransferSpec</a></li>
--   <li><a>toErrorBreakdowns</a></li>
--   </ul>
transferOperation :: TransferOperation

-- | Status of the transfer operation.
toStatus :: Lens' TransferOperation (Maybe Text)

-- | Information about the progress of the transfer operation.
toCounters :: Lens' TransferOperation (Maybe TransferCounters)

-- | Start time of this transfer execution.
toStartTime :: Lens' TransferOperation (Maybe Text)

-- | The name of the transfer job that triggers this transfer operation.
toTransferJobName :: Lens' TransferOperation (Maybe Text)

-- | A globally unique ID assigned by the system.
toName :: Lens' TransferOperation (Maybe Text)

-- | End time of this transfer execution.
toEndTime :: Lens' TransferOperation (Maybe Text)

-- | The ID of the Google Developers Console project that owns the
--   operation. Required.
toProjectId :: Lens' TransferOperation (Maybe Text)

-- | Transfer specification. Required.
toTransferSpec :: Lens' TransferOperation (Maybe TransferSpec)

-- | Summarizes errors encountered with sample error log entries.
toErrorBreakdowns :: Lens' TransferOperation [ErrorSummary]

-- | Configuration for running a transfer.
--   
--   <i>See:</i> <a>transferSpec</a> smart constructor.
data TransferSpec

-- | Creates a value of <a>TransferSpec</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsGcsDataSource</a></li>
--   <li><a>tsObjectConditions</a></li>
--   <li><a>tsHTTPDataSource</a></li>
--   <li><a>tsAwsS3DataSource</a></li>
--   <li><a>tsGcsDataSink</a></li>
--   <li><a>tsTransferOptions</a></li>
--   </ul>
transferSpec :: TransferSpec

-- | A Google Cloud Storage data source.
tsGcsDataSource :: Lens' TransferSpec (Maybe GcsData)

-- | Only objects that satisfy these object conditions are included in the
--   set of data source and data sink objects. Object conditions based on
--   objects' `lastModificationTime` do not exclude objects in a data sink.
tsObjectConditions :: Lens' TransferSpec (Maybe ObjectConditions)

-- | An HTTP URL data source.
tsHTTPDataSource :: Lens' TransferSpec (Maybe HTTPData)

-- | An AWS S3 data source.
tsAwsS3DataSource :: Lens' TransferSpec (Maybe AwsS3Data)

-- | A Google Cloud Storage data sink.
tsGcsDataSink :: Lens' TransferSpec (Maybe GcsData)

-- | If the option `deleteObjectsUniqueInSink` is `true`, object conditions
--   based on objects' `lastModificationTime` are ignored and do not
--   exclude objects in a data source or a data sink.
tsTransferOptions :: Lens' TransferSpec (Maybe TransferOptions)

-- | Response from ListTransferJobs.
--   
--   <i>See:</i> <a>listTransferJobsResponse</a> smart constructor.
data ListTransferJobsResponse

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

-- | The list next page token.
ltjrNextPageToken :: Lens' ListTransferJobsResponse (Maybe Text)

-- | A list of transfer jobs.
ltjrTransferJobs :: Lens' ListTransferJobsResponse [TransferJob]

-- | 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`.
--   
--   <i>See:</i> <a>operationResponse</a> smart constructor.
data OperationResponse

-- | Creates a value of <a>OperationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>orAddtional</a></li>
--   </ul>
operationResponse :: HashMap Text JSONValue -> OperationResponse

-- | Properties of the object. Contains field 'ype with type URL.
orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)

-- | Request passed to ResumeTransferOperation.
--   
--   <i>See:</i> <a>resumeTransferOperationRequest</a> smart constructor.
data ResumeTransferOperationRequest

-- | Creates a value of <a>ResumeTransferOperationRequest</a> with the
--   minimum fields required to make a request.
resumeTransferOperationRequest :: ResumeTransferOperationRequest

-- | AWS access key (see <a>AWS Security Credentials</a>).
--   
--   <i>See:</i> <a>awsAccessKey</a> smart constructor.
data AwsAccessKey

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

-- | AWS secret access key. This field is not returned in RPC responses.
--   Required.
aakSecretAccessKey :: Lens' AwsAccessKey (Maybe Text)

-- | AWS access key ID. Required.
aakAccessKeyId :: Lens' AwsAccessKey (Maybe Text)


-- | Resumes a transfer operation that is paused.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferOperations.resume</tt>.
module Network.Google.Resource.StorageTransfer.TransferOperations.Resume

-- | A resource alias for
--   <tt>storagetransfer.transferOperations.resume</tt> method which the
--   <a>TransferOperationsResume</a> request conforms to.
type TransferOperationsResumeResource = "v1" :> (CaptureMode "name" "resume" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] ResumeTransferOperationRequest :> Post '[JSON] Empty))))))))))

-- | Creates a value of <a>TransferOperationsResume</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>torXgafv</a></li>
--   <li><a>torUploadProtocol</a></li>
--   <li><a>torPp</a></li>
--   <li><a>torAccessToken</a></li>
--   <li><a>torUploadType</a></li>
--   <li><a>torPayload</a></li>
--   <li><a>torBearerToken</a></li>
--   <li><a>torName</a></li>
--   <li><a>torCallback</a></li>
--   </ul>
transferOperationsResume :: ResumeTransferOperationRequest -> Text -> TransferOperationsResume

-- | Resumes a transfer operation that is paused.
--   
--   <i>See:</i> <a>transferOperationsResume</a> smart constructor.
data TransferOperationsResume

-- | V1 error format.
torXgafv :: Lens' TransferOperationsResume (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
torUploadProtocol :: Lens' TransferOperationsResume (Maybe Text)

-- | Pretty-print response.
torPp :: Lens' TransferOperationsResume Bool

-- | OAuth access token.
torAccessToken :: Lens' TransferOperationsResume (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
torUploadType :: Lens' TransferOperationsResume (Maybe Text)

-- | Multipart request metadata.
torPayload :: Lens' TransferOperationsResume ResumeTransferOperationRequest

-- | OAuth bearer token.
torBearerToken :: Lens' TransferOperationsResume (Maybe Text)

-- | The name of the transfer operation. Required.
torName :: Lens' TransferOperationsResume Text

-- | JSONP
torCallback :: Lens' TransferOperationsResume (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferOperations.Resume.TransferOperationsResume
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferOperations.Resume.TransferOperationsResume
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferOperations.Resume.TransferOperationsResume
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferOperations.Resume.TransferOperationsResume
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferOperations.Resume.TransferOperationsResume


-- | Pauses a transfer operation.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferOperations.pause</tt>.
module Network.Google.Resource.StorageTransfer.TransferOperations.Pause

-- | A resource alias for <tt>storagetransfer.transferOperations.pause</tt>
--   method which the <a>TransferOperationsPause</a> request conforms to.
type TransferOperationsPauseResource = "v1" :> (CaptureMode "name" "pause" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] PauseTransferOperationRequest :> Post '[JSON] Empty))))))))))

-- | Creates a value of <a>TransferOperationsPause</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>topXgafv</a></li>
--   <li><a>topUploadProtocol</a></li>
--   <li><a>topPp</a></li>
--   <li><a>topAccessToken</a></li>
--   <li><a>topUploadType</a></li>
--   <li><a>topPayload</a></li>
--   <li><a>topBearerToken</a></li>
--   <li><a>topName</a></li>
--   <li><a>topCallback</a></li>
--   </ul>
transferOperationsPause :: PauseTransferOperationRequest -> Text -> TransferOperationsPause

-- | Pauses a transfer operation.
--   
--   <i>See:</i> <a>transferOperationsPause</a> smart constructor.
data TransferOperationsPause

-- | V1 error format.
topXgafv :: Lens' TransferOperationsPause (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
topUploadProtocol :: Lens' TransferOperationsPause (Maybe Text)

-- | Pretty-print response.
topPp :: Lens' TransferOperationsPause Bool

-- | OAuth access token.
topAccessToken :: Lens' TransferOperationsPause (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
topUploadType :: Lens' TransferOperationsPause (Maybe Text)

-- | Multipart request metadata.
topPayload :: Lens' TransferOperationsPause PauseTransferOperationRequest

-- | OAuth bearer token.
topBearerToken :: Lens' TransferOperationsPause (Maybe Text)

-- | The name of the transfer operation. Required.
topName :: Lens' TransferOperationsPause Text

-- | JSONP
topCallback :: Lens' TransferOperationsPause (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferOperations.Pause.TransferOperationsPause
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferOperations.Pause.TransferOperationsPause
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferOperations.Pause.TransferOperationsPause
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferOperations.Pause.TransferOperationsPause
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferOperations.Pause.TransferOperationsPause


-- | Lists operations that match the specified filter in the request. If
--   the server doesn't support this method, it returns `UNIMPLEMENTED`.
--   NOTE: the `name` binding below allows API services to override the
--   binding to use different resource name schemes, such as
--   `users/*/operations`.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferOperations.list</tt>.
module Network.Google.Resource.StorageTransfer.TransferOperations.List

-- | A resource alias for <tt>storagetransfer.transferOperations.list</tt>
--   method which the <a>TransferOperationsList</a> request conforms to.
type TransferOperationsListResource = "v1" :> (Capture "name" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListOperationsResponse))))))))))))

-- | Creates a value of <a>TransferOperationsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tolXgafv</a></li>
--   <li><a>tolUploadProtocol</a></li>
--   <li><a>tolPp</a></li>
--   <li><a>tolAccessToken</a></li>
--   <li><a>tolUploadType</a></li>
--   <li><a>tolBearerToken</a></li>
--   <li><a>tolName</a></li>
--   <li><a>tolFilter</a></li>
--   <li><a>tolPageToken</a></li>
--   <li><a>tolPageSize</a></li>
--   <li><a>tolCallback</a></li>
--   </ul>
transferOperationsList :: Text -> TransferOperationsList

-- | Lists operations that match the specified filter in the request. If
--   the server doesn't support this method, it returns `UNIMPLEMENTED`.
--   NOTE: the `name` binding below allows API services to override the
--   binding to use different resource name schemes, such as
--   `users/*/operations`.
--   
--   <i>See:</i> <a>transferOperationsList</a> smart constructor.
data TransferOperationsList

-- | V1 error format.
tolXgafv :: Lens' TransferOperationsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
tolUploadProtocol :: Lens' TransferOperationsList (Maybe Text)

-- | Pretty-print response.
tolPp :: Lens' TransferOperationsList Bool

-- | OAuth access token.
tolAccessToken :: Lens' TransferOperationsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
tolUploadType :: Lens' TransferOperationsList (Maybe Text)

-- | OAuth bearer token.
tolBearerToken :: Lens' TransferOperationsList (Maybe Text)

-- | The value `transferOperations`.
tolName :: Lens' TransferOperationsList Text

-- | The standard list filter.
tolFilter :: Lens' TransferOperationsList (Maybe Text)

-- | The standard list page token.
tolPageToken :: Lens' TransferOperationsList (Maybe Text)

-- | The standard list page size.
tolPageSize :: Lens' TransferOperationsList (Maybe Int32)

-- | JSONP
tolCallback :: Lens' TransferOperationsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferOperations.List.TransferOperationsList
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferOperations.List.TransferOperationsList
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferOperations.List.TransferOperationsList
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferOperations.List.TransferOperationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferOperations.List.TransferOperationsList


-- | Gets the latest state of a long-running operation. Clients can use
--   this method to poll the operation result at intervals as recommended
--   by the API service.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferOperations.get</tt>.
module Network.Google.Resource.StorageTransfer.TransferOperations.Get

-- | A resource alias for <tt>storagetransfer.transferOperations.get</tt>
--   method which the <a>TransferOperationsGet</a> request conforms to.
type TransferOperationsGetResource = "v1" :> (Capture "name" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Operation)))))))))

-- | Creates a value of <a>TransferOperationsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>togXgafv</a></li>
--   <li><a>togUploadProtocol</a></li>
--   <li><a>togPp</a></li>
--   <li><a>togAccessToken</a></li>
--   <li><a>togUploadType</a></li>
--   <li><a>togBearerToken</a></li>
--   <li><a>togName</a></li>
--   <li><a>togCallback</a></li>
--   </ul>
transferOperationsGet :: Text -> TransferOperationsGet

-- | Gets the latest state of a long-running operation. Clients can use
--   this method to poll the operation result at intervals as recommended
--   by the API service.
--   
--   <i>See:</i> <a>transferOperationsGet</a> smart constructor.
data TransferOperationsGet

-- | V1 error format.
togXgafv :: Lens' TransferOperationsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
togUploadProtocol :: Lens' TransferOperationsGet (Maybe Text)

-- | Pretty-print response.
togPp :: Lens' TransferOperationsGet Bool

-- | OAuth access token.
togAccessToken :: Lens' TransferOperationsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
togUploadType :: Lens' TransferOperationsGet (Maybe Text)

-- | OAuth bearer token.
togBearerToken :: Lens' TransferOperationsGet (Maybe Text)

-- | The name of the operation resource.
togName :: Lens' TransferOperationsGet Text

-- | JSONP
togCallback :: Lens' TransferOperationsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferOperations.Get.TransferOperationsGet
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferOperations.Get.TransferOperationsGet
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferOperations.Get.TransferOperationsGet
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferOperations.Get.TransferOperationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferOperations.Get.TransferOperationsGet


-- | This method is not supported and the server returns `UNIMPLEMENTED`.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferOperations.delete</tt>.
module Network.Google.Resource.StorageTransfer.TransferOperations.Delete

-- | A resource alias for
--   <tt>storagetransfer.transferOperations.delete</tt> method which the
--   <a>TransferOperationsDelete</a> request conforms to.
type TransferOperationsDeleteResource = "v1" :> (Capture "name" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] Empty)))))))))

-- | Creates a value of <a>TransferOperationsDelete</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>todXgafv</a></li>
--   <li><a>todUploadProtocol</a></li>
--   <li><a>todPp</a></li>
--   <li><a>todAccessToken</a></li>
--   <li><a>todUploadType</a></li>
--   <li><a>todBearerToken</a></li>
--   <li><a>todName</a></li>
--   <li><a>todCallback</a></li>
--   </ul>
transferOperationsDelete :: Text -> TransferOperationsDelete

-- | This method is not supported and the server returns `UNIMPLEMENTED`.
--   
--   <i>See:</i> <a>transferOperationsDelete</a> smart constructor.
data TransferOperationsDelete

-- | V1 error format.
todXgafv :: Lens' TransferOperationsDelete (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
todUploadProtocol :: Lens' TransferOperationsDelete (Maybe Text)

-- | Pretty-print response.
todPp :: Lens' TransferOperationsDelete Bool

-- | OAuth access token.
todAccessToken :: Lens' TransferOperationsDelete (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
todUploadType :: Lens' TransferOperationsDelete (Maybe Text)

-- | OAuth bearer token.
todBearerToken :: Lens' TransferOperationsDelete (Maybe Text)

-- | The name of the operation resource to be deleted.
todName :: Lens' TransferOperationsDelete Text

-- | JSONP
todCallback :: Lens' TransferOperationsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferOperations.Delete.TransferOperationsDelete
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferOperations.Delete.TransferOperationsDelete
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferOperations.Delete.TransferOperationsDelete
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferOperations.Delete.TransferOperationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferOperations.Delete.TransferOperationsDelete


-- | Cancels a transfer. Use the get method to check whether the
--   cancellation succeeded or whether the operation completed despite
--   cancellation.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferOperations.cancel</tt>.
module Network.Google.Resource.StorageTransfer.TransferOperations.Cancel

-- | A resource alias for
--   <tt>storagetransfer.transferOperations.cancel</tt> method which the
--   <a>TransferOperationsCancel</a> request conforms to.
type TransferOperationsCancelResource = "v1" :> (CaptureMode "name" "cancel" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Post '[JSON] Empty)))))))))

-- | Creates a value of <a>TransferOperationsCancel</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tocXgafv</a></li>
--   <li><a>tocUploadProtocol</a></li>
--   <li><a>tocPp</a></li>
--   <li><a>tocAccessToken</a></li>
--   <li><a>tocUploadType</a></li>
--   <li><a>tocBearerToken</a></li>
--   <li><a>tocName</a></li>
--   <li><a>tocCallback</a></li>
--   </ul>
transferOperationsCancel :: Text -> TransferOperationsCancel

-- | Cancels a transfer. Use the get method to check whether the
--   cancellation succeeded or whether the operation completed despite
--   cancellation.
--   
--   <i>See:</i> <a>transferOperationsCancel</a> smart constructor.
data TransferOperationsCancel

-- | V1 error format.
tocXgafv :: Lens' TransferOperationsCancel (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
tocUploadProtocol :: Lens' TransferOperationsCancel (Maybe Text)

-- | Pretty-print response.
tocPp :: Lens' TransferOperationsCancel Bool

-- | OAuth access token.
tocAccessToken :: Lens' TransferOperationsCancel (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
tocUploadType :: Lens' TransferOperationsCancel (Maybe Text)

-- | OAuth bearer token.
tocBearerToken :: Lens' TransferOperationsCancel (Maybe Text)

-- | The name of the operation resource to be cancelled.
tocName :: Lens' TransferOperationsCancel Text

-- | JSONP
tocCallback :: Lens' TransferOperationsCancel (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferOperations.Cancel.TransferOperationsCancel
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferOperations.Cancel.TransferOperationsCancel
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferOperations.Cancel.TransferOperationsCancel
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferOperations.Cancel.TransferOperationsCancel
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferOperations.Cancel.TransferOperationsCancel


-- | Updates a transfer job. Updating a job's transfer spec does not affect
--   transfer operations that are running already. Updating the scheduling
--   of a job is not allowed.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferJobs.patch</tt>.
module Network.Google.Resource.StorageTransfer.TransferJobs.Patch

-- | A resource alias for <tt>storagetransfer.transferJobs.patch</tt>
--   method which the <a>TransferJobsPatch</a> request conforms to.
type TransferJobsPatchResource = "v1" :> (Capture "jobName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] UpdateTransferJobRequest :> Patch '[JSON] TransferJob))))))))))

-- | Creates a value of <a>TransferJobsPatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tjpXgafv</a></li>
--   <li><a>tjpUploadProtocol</a></li>
--   <li><a>tjpPp</a></li>
--   <li><a>tjpAccessToken</a></li>
--   <li><a>tjpJobName</a></li>
--   <li><a>tjpUploadType</a></li>
--   <li><a>tjpPayload</a></li>
--   <li><a>tjpBearerToken</a></li>
--   <li><a>tjpCallback</a></li>
--   </ul>
transferJobsPatch :: Text -> UpdateTransferJobRequest -> TransferJobsPatch

-- | Updates a transfer job. Updating a job's transfer spec does not affect
--   transfer operations that are running already. Updating the scheduling
--   of a job is not allowed.
--   
--   <i>See:</i> <a>transferJobsPatch</a> smart constructor.
data TransferJobsPatch

-- | V1 error format.
tjpXgafv :: Lens' TransferJobsPatch (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
tjpUploadProtocol :: Lens' TransferJobsPatch (Maybe Text)

-- | Pretty-print response.
tjpPp :: Lens' TransferJobsPatch Bool

-- | OAuth access token.
tjpAccessToken :: Lens' TransferJobsPatch (Maybe Text)

-- | The name of job to update. Required.
tjpJobName :: Lens' TransferJobsPatch Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
tjpUploadType :: Lens' TransferJobsPatch (Maybe Text)

-- | Multipart request metadata.
tjpPayload :: Lens' TransferJobsPatch UpdateTransferJobRequest

-- | OAuth bearer token.
tjpBearerToken :: Lens' TransferJobsPatch (Maybe Text)

-- | JSONP
tjpCallback :: Lens' TransferJobsPatch (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferJobs.Patch.TransferJobsPatch
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferJobs.Patch.TransferJobsPatch
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferJobs.Patch.TransferJobsPatch
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferJobs.Patch.TransferJobsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferJobs.Patch.TransferJobsPatch


-- | Lists transfer jobs.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferJobs.list</tt>.
module Network.Google.Resource.StorageTransfer.TransferJobs.List

-- | A resource alias for <tt>storagetransfer.transferJobs.list</tt> method
--   which the <a>TransferJobsList</a> request conforms to.
type TransferJobsListResource = "v1" :> ("transferJobs" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "filter" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListTransferJobsResponse))))))))))))

-- | Creates a value of <a>TransferJobsList</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tjlXgafv</a></li>
--   <li><a>tjlUploadProtocol</a></li>
--   <li><a>tjlPp</a></li>
--   <li><a>tjlAccessToken</a></li>
--   <li><a>tjlUploadType</a></li>
--   <li><a>tjlBearerToken</a></li>
--   <li><a>tjlFilter</a></li>
--   <li><a>tjlPageToken</a></li>
--   <li><a>tjlPageSize</a></li>
--   <li><a>tjlCallback</a></li>
--   </ul>
transferJobsList :: TransferJobsList

-- | Lists transfer jobs.
--   
--   <i>See:</i> <a>transferJobsList</a> smart constructor.
data TransferJobsList

-- | V1 error format.
tjlXgafv :: Lens' TransferJobsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
tjlUploadProtocol :: Lens' TransferJobsList (Maybe Text)

-- | Pretty-print response.
tjlPp :: Lens' TransferJobsList Bool

-- | OAuth access token.
tjlAccessToken :: Lens' TransferJobsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
tjlUploadType :: Lens' TransferJobsList (Maybe Text)

-- | OAuth bearer token.
tjlBearerToken :: Lens' TransferJobsList (Maybe Text)

-- | A list of query parameters specified as JSON text in the form of
--   {"`project_id`":"my_project_id",
--   "`job_names`":["jobid1","jobid2",...],
--   "`job_statuses`":["status1","status2",...]}. Since `job_names` and
--   `job_statuses` support multiple values, their values must be specified
--   with array notation. `project_id` is required. `job_names` and
--   `job_statuses` are optional. The valid values for `job_statuses` are
--   case-insensitive: `ENABLED`, `DISABLED`, and `DELETED`.
tjlFilter :: Lens' TransferJobsList (Maybe Text)

-- | The list page token.
tjlPageToken :: Lens' TransferJobsList (Maybe Text)

-- | The list page size. The max allowed value is 256.
tjlPageSize :: Lens' TransferJobsList (Maybe Int32)

-- | JSONP
tjlCallback :: Lens' TransferJobsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferJobs.List.TransferJobsList
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferJobs.List.TransferJobsList
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferJobs.List.TransferJobsList
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferJobs.List.TransferJobsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferJobs.List.TransferJobsList


-- | Gets a transfer job.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferJobs.get</tt>.
module Network.Google.Resource.StorageTransfer.TransferJobs.Get

-- | A resource alias for <tt>storagetransfer.transferJobs.get</tt> method
--   which the <a>TransferJobsGet</a> request conforms to.
type TransferJobsGetResource = "v1" :> (Capture "jobName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] TransferJob))))))))))

-- | Creates a value of <a>TransferJobsGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tjgXgafv</a></li>
--   <li><a>tjgUploadProtocol</a></li>
--   <li><a>tjgPp</a></li>
--   <li><a>tjgAccessToken</a></li>
--   <li><a>tjgJobName</a></li>
--   <li><a>tjgUploadType</a></li>
--   <li><a>tjgBearerToken</a></li>
--   <li><a>tjgProjectId</a></li>
--   <li><a>tjgCallback</a></li>
--   </ul>
transferJobsGet :: Text -> TransferJobsGet

-- | Gets a transfer job.
--   
--   <i>See:</i> <a>transferJobsGet</a> smart constructor.
data TransferJobsGet

-- | V1 error format.
tjgXgafv :: Lens' TransferJobsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
tjgUploadProtocol :: Lens' TransferJobsGet (Maybe Text)

-- | Pretty-print response.
tjgPp :: Lens' TransferJobsGet Bool

-- | OAuth access token.
tjgAccessToken :: Lens' TransferJobsGet (Maybe Text)

-- | The job to get. Required.
tjgJobName :: Lens' TransferJobsGet Text

-- | Legacy upload protocol for media (e.g. "media", "multipart").
tjgUploadType :: Lens' TransferJobsGet (Maybe Text)

-- | OAuth bearer token.
tjgBearerToken :: Lens' TransferJobsGet (Maybe Text)

-- | The ID of the Google Developers Console project that owns the job.
--   Required.
tjgProjectId :: Lens' TransferJobsGet (Maybe Text)

-- | JSONP
tjgCallback :: Lens' TransferJobsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferJobs.Get.TransferJobsGet
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferJobs.Get.TransferJobsGet
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferJobs.Get.TransferJobsGet
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferJobs.Get.TransferJobsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferJobs.Get.TransferJobsGet


-- | Creates a transfer job that runs periodically.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.transferJobs.create</tt>.
module Network.Google.Resource.StorageTransfer.TransferJobs.Create

-- | A resource alias for <tt>storagetransfer.transferJobs.create</tt>
--   method which the <a>TransferJobsCreate</a> request conforms to.
type TransferJobsCreateResource = "v1" :> ("transferJobs" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] TransferJob :> Post '[JSON] TransferJob))))))))))

-- | Creates a value of <a>TransferJobsCreate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tjcXgafv</a></li>
--   <li><a>tjcUploadProtocol</a></li>
--   <li><a>tjcPp</a></li>
--   <li><a>tjcAccessToken</a></li>
--   <li><a>tjcUploadType</a></li>
--   <li><a>tjcPayload</a></li>
--   <li><a>tjcBearerToken</a></li>
--   <li><a>tjcCallback</a></li>
--   </ul>
transferJobsCreate :: TransferJob -> TransferJobsCreate

-- | Creates a transfer job that runs periodically.
--   
--   <i>See:</i> <a>transferJobsCreate</a> smart constructor.
data TransferJobsCreate

-- | V1 error format.
tjcXgafv :: Lens' TransferJobsCreate (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
tjcUploadProtocol :: Lens' TransferJobsCreate (Maybe Text)

-- | Pretty-print response.
tjcPp :: Lens' TransferJobsCreate Bool

-- | OAuth access token.
tjcAccessToken :: Lens' TransferJobsCreate (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
tjcUploadType :: Lens' TransferJobsCreate (Maybe Text)

-- | Multipart request metadata.
tjcPayload :: Lens' TransferJobsCreate TransferJob

-- | OAuth bearer token.
tjcBearerToken :: Lens' TransferJobsCreate (Maybe Text)

-- | JSONP
tjcCallback :: Lens' TransferJobsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.TransferJobs.Create.TransferJobsCreate
instance Data.Data.Data Network.Google.Resource.StorageTransfer.TransferJobs.Create.TransferJobsCreate
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.TransferJobs.Create.TransferJobsCreate
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.TransferJobs.Create.TransferJobsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.TransferJobs.Create.TransferJobsCreate


-- | Returns the Google service account that is used by Storage Transfer
--   Service to access buckets in the project where transfers run or in
--   other projects. Each Google service account is associated with one
--   Google Developers Console project. Users should add this service
--   account to the Google Cloud Storage bucket ACLs to grant access to
--   Storage Transfer Service. This service account is created and owned by
--   Storage Transfer Service and can only be used by Storage Transfer
--   Service.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.googleServiceAccounts.get</tt>.
module Network.Google.Resource.StorageTransfer.GoogleServiceAccounts.Get

-- | A resource alias for
--   <tt>storagetransfer.googleServiceAccounts.get</tt> method which the
--   <a>GoogleServiceAccountsGet</a> request conforms to.
type GoogleServiceAccountsGetResource = "v1" :> ("googleServiceAccounts" :> (Capture "projectId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] GoogleServiceAccount))))))))))

-- | Creates a value of <a>GoogleServiceAccountsGet</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsagXgafv</a></li>
--   <li><a>gsagUploadProtocol</a></li>
--   <li><a>gsagPp</a></li>
--   <li><a>gsagAccessToken</a></li>
--   <li><a>gsagUploadType</a></li>
--   <li><a>gsagBearerToken</a></li>
--   <li><a>gsagProjectId</a></li>
--   <li><a>gsagCallback</a></li>
--   </ul>
googleServiceAccountsGet :: Text -> GoogleServiceAccountsGet

-- | Returns the Google service account that is used by Storage Transfer
--   Service to access buckets in the project where transfers run or in
--   other projects. Each Google service account is associated with one
--   Google Developers Console project. Users should add this service
--   account to the Google Cloud Storage bucket ACLs to grant access to
--   Storage Transfer Service. This service account is created and owned by
--   Storage Transfer Service and can only be used by Storage Transfer
--   Service.
--   
--   <i>See:</i> <a>googleServiceAccountsGet</a> smart constructor.
data GoogleServiceAccountsGet

-- | V1 error format.
gsagXgafv :: Lens' GoogleServiceAccountsGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
gsagUploadProtocol :: Lens' GoogleServiceAccountsGet (Maybe Text)

-- | Pretty-print response.
gsagPp :: Lens' GoogleServiceAccountsGet Bool

-- | OAuth access token.
gsagAccessToken :: Lens' GoogleServiceAccountsGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
gsagUploadType :: Lens' GoogleServiceAccountsGet (Maybe Text)

-- | OAuth bearer token.
gsagBearerToken :: Lens' GoogleServiceAccountsGet (Maybe Text)

-- | The ID of the Google Developers Console project that the Google
--   service account is associated with. Required.
gsagProjectId :: Lens' GoogleServiceAccountsGet Text

-- | JSONP
gsagCallback :: Lens' GoogleServiceAccountsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.GoogleServiceAccounts.Get.GoogleServiceAccountsGet
instance Data.Data.Data Network.Google.Resource.StorageTransfer.GoogleServiceAccounts.Get.GoogleServiceAccountsGet
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.GoogleServiceAccounts.Get.GoogleServiceAccountsGet
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.GoogleServiceAccounts.Get.GoogleServiceAccountsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.GoogleServiceAccounts.Get.GoogleServiceAccountsGet


-- | Returns the Google service account that is used by Storage Transfer
--   Service to access buckets in the project where transfers run or in
--   other projects. Each Google service account is associated with one
--   Google Developers Console project. Users should add this service
--   account to the Google Cloud Storage bucket ACLs to grant access to
--   Storage Transfer Service. This service account is created and owned by
--   Storage Transfer Service and can only be used by Storage Transfer
--   Service.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a> for
--   <tt>storagetransfer.getGoogleServiceAccount</tt>.
module Network.Google.Resource.StorageTransfer.GetGoogleServiceAccount

-- | A resource alias for <tt>storagetransfer.getGoogleServiceAccount</tt>
--   method which the <a>GetGoogleServiceAccount</a> request conforms to.
type GetGoogleServiceAccountResource = "v1:getGoogleServiceAccount" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "projectId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] GoogleServiceAccount)))))))))

-- | Creates a value of <a>GetGoogleServiceAccount</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggsaXgafv</a></li>
--   <li><a>ggsaUploadProtocol</a></li>
--   <li><a>ggsaPp</a></li>
--   <li><a>ggsaAccessToken</a></li>
--   <li><a>ggsaUploadType</a></li>
--   <li><a>ggsaBearerToken</a></li>
--   <li><a>ggsaProjectId</a></li>
--   <li><a>ggsaCallback</a></li>
--   </ul>
getGoogleServiceAccount :: GetGoogleServiceAccount

-- | Returns the Google service account that is used by Storage Transfer
--   Service to access buckets in the project where transfers run or in
--   other projects. Each Google service account is associated with one
--   Google Developers Console project. Users should add this service
--   account to the Google Cloud Storage bucket ACLs to grant access to
--   Storage Transfer Service. This service account is created and owned by
--   Storage Transfer Service and can only be used by Storage Transfer
--   Service.
--   
--   <i>See:</i> <a>getGoogleServiceAccount</a> smart constructor.
data GetGoogleServiceAccount

-- | V1 error format.
ggsaXgafv :: Lens' GetGoogleServiceAccount (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
ggsaUploadProtocol :: Lens' GetGoogleServiceAccount (Maybe Text)

-- | Pretty-print response.
ggsaPp :: Lens' GetGoogleServiceAccount Bool

-- | OAuth access token.
ggsaAccessToken :: Lens' GetGoogleServiceAccount (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
ggsaUploadType :: Lens' GetGoogleServiceAccount (Maybe Text)

-- | OAuth bearer token.
ggsaBearerToken :: Lens' GetGoogleServiceAccount (Maybe Text)

-- | The ID of the Google Developers Console project that the Google
--   service account is associated with. Required.
ggsaProjectId :: Lens' GetGoogleServiceAccount (Maybe Text)

-- | JSONP
ggsaCallback :: Lens' GetGoogleServiceAccount (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.StorageTransfer.GetGoogleServiceAccount.GetGoogleServiceAccount
instance Data.Data.Data Network.Google.Resource.StorageTransfer.GetGoogleServiceAccount.GetGoogleServiceAccount
instance GHC.Show.Show Network.Google.Resource.StorageTransfer.GetGoogleServiceAccount.GetGoogleServiceAccount
instance GHC.Classes.Eq Network.Google.Resource.StorageTransfer.GetGoogleServiceAccount.GetGoogleServiceAccount
instance Network.Google.Types.GoogleRequest Network.Google.Resource.StorageTransfer.GetGoogleServiceAccount.GetGoogleServiceAccount


-- | Transfers data from external data sources to a Google Cloud Storage
--   bucket or between Google Cloud Storage buckets.
--   
--   <i>See:</i> <a>Google Storage Transfer API Reference</a>
module Network.Google.StorageTransfer

-- | Default request referring to version <tt>v1</tt> of the Google Storage
--   Transfer API. This contains the host and root path used as a starting
--   point for constructing service requests.
storageTransferService :: ServiceConfig

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

-- | Represents the entirety of the methods and resources available for the
--   Google Storage Transfer API service.
type StorageTransferAPI = TransferJobsListResource :<|> (TransferJobsPatchResource :<|> (TransferJobsGetResource :<|> (TransferJobsCreateResource :<|> (GetGoogleServiceAccountResource :<|> (TransferOperationsListResource :<|> (TransferOperationsGetResource :<|> (TransferOperationsPauseResource :<|> (TransferOperationsCancelResource :<|> (TransferOperationsDeleteResource :<|> (TransferOperationsResumeResource :<|> GoogleServiceAccountsGetResource))))))))))

-- | A summary of errors by error code, plus a count and sample error log
--   entries.
--   
--   <i>See:</i> <a>errorSummary</a> smart constructor.
data ErrorSummary

-- | Creates a value of <a>ErrorSummary</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>esErrorCount</a></li>
--   <li><a>esErrorCode</a></li>
--   <li><a>esErrorLogEntries</a></li>
--   </ul>
errorSummary :: ErrorSummary

-- | Count of this type of error. Required.
esErrorCount :: Lens' ErrorSummary (Maybe Int64)

-- | Required.
esErrorCode :: Lens' ErrorSummary (Maybe Text)

-- | Error samples.
esErrorLogEntries :: Lens' ErrorSummary [ErrorLogEntry]

-- | 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 <a>gRPC</a>. 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][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` which 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 purpose. - 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.
--   
--   <i>See:</i> <a>status</a> smart constructor.
data Status

-- | Creates a value of <a>Status</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDetails</a></li>
--   <li><a>sCode</a></li>
--   <li><a>sMessage</a></li>
--   </ul>
status :: Status

-- | A list of messages that carry the error details. There will be a
--   common set of message types for APIs to use.
sDetails :: Lens' Status [StatusDetailsItem]

-- | The status code, which should be an enum value of
--   [google.rpc.Code][google.rpc.Code].
sCode :: Lens' Status (Maybe Int32)

-- | 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][google.rpc.Status.details] field, or
--   localized by the client.
sMessage :: Lens' Status (Maybe Text)

-- | The response message for
--   [Operations.ListOperations][google.longrunning.Operations.ListOperations].
--   
--   <i>See:</i> <a>listOperationsResponse</a> smart constructor.
data ListOperationsResponse

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

-- | The standard List next-page token.
lorNextPageToken :: Lens' ListOperationsResponse (Maybe Text)

-- | A list of operations that matches the specified filter in the request.
lorOperations :: Lens' ListOperationsResponse [Operation]

-- | Transfers can be scheduled to recur or to run just once.
--   
--   <i>See:</i> <a>schedule</a> smart constructor.
data Schedule

-- | Creates a value of <a>Schedule</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sScheduleEndDate</a></li>
--   <li><a>sScheduleStartDate</a></li>
--   <li><a>sStartTimeOfDay</a></li>
--   </ul>
schedule :: Schedule

-- | The last day the recurring transfer will be run. If `scheduleEndDate`
--   is the same as `scheduleStartDate`, the transfer will be executed only
--   once.
sScheduleEndDate :: Lens' Schedule (Maybe Date)

-- | The first day the recurring transfer is scheduled to run. Required.
sScheduleStartDate :: Lens' Schedule (Maybe Date)

-- | The time in UTC at which the transfer will be scheduled to start in a
--   day. Transfers may start later than this time. If not specified,
--   transfers are scheduled to start at midnight UTC.
sStartTimeOfDay :: Lens' Schedule (Maybe TimeOfDay')

-- | Conditions that determine which objects will be transferred.
--   
--   <i>See:</i> <a>objectConditions</a> smart constructor.
data ObjectConditions

-- | Creates a value of <a>ObjectConditions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ocMinTimeElapsedSinceLastModification</a></li>
--   <li><a>ocIncludePrefixes</a></li>
--   <li><a>ocMaxTimeElapsedSinceLastModification</a></li>
--   <li><a>ocExcludePrefixes</a></li>
--   </ul>
objectConditions :: ObjectConditions

-- | If unspecified, `minTimeElapsedSinceLastModification` takes a zero
--   value and `maxTimeElapsedSinceLastModification` takes the maximum
--   possible value of Duration. Objects that satisfy the object conditions
--   must either have a `lastModificationTime` greater or equal to `NOW` -
--   `maxTimeElapsedSinceLastModification` and less than `NOW` -
--   `minTimeElapsedSinceLastModification`, or not have a
--   `lastModificationTime`.
ocMinTimeElapsedSinceLastModification :: Lens' ObjectConditions (Maybe Text)

-- | If `includePrefixes` is specified, objects that satisfy the object
--   conditions must have names that start with one of the
--   `includePrefixes` and that do not start with any of the
--   `excludePrefixes`. If `includePrefixes` is not specified, all objects
--   except those that have names starting with one of the
--   `excludePrefixes` must satisfy the object conditions. Requirements: *
--   Each include-prefix and exclude-prefix can contain any sequence of
--   Unicode characters, of max length 1024 bytes when UTF8-encoded, and
--   must not contain Carriage Return or Line Feed characters. Wildcard
--   matching and regular expression matching are not supported. * None of
--   the include-prefix or the exclude-prefix values can be empty, if
--   specified. * Each include-prefix must include a distinct portion of
--   the object namespace, i.e., no include-prefix may be a prefix of
--   another include-prefix. * Each exclude-prefix must exclude a distinct
--   portion of the object namespace, i.e., no exclude-prefix may be a
--   prefix of another exclude-prefix. * If `includePrefixes` is specified,
--   then each exclude-prefix must start with the value of a path
--   explicitly included by `includePrefixes`. The max size of
--   `includePrefixes` is 20.
ocIncludePrefixes :: Lens' ObjectConditions [Text]

-- | `maxTimeElapsedSinceLastModification` is the complement to
--   `minTimeElapsedSinceLastModification`.
ocMaxTimeElapsedSinceLastModification :: Lens' ObjectConditions (Maybe Text)

-- | `excludePrefixes` must follow the requirements described for
--   `includePrefixes`. The max size of `excludePrefixes` is 20.
ocExcludePrefixes :: Lens' ObjectConditions [Text]

-- | This resource represents a long-running operation that is the result
--   of a network API call.
--   
--   <i>See:</i> <a>operation</a> smart constructor.
data Operation

-- | Creates a value of <a>Operation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oDone</a></li>
--   <li><a>oError</a></li>
--   <li><a>oResponse</a></li>
--   <li><a>oName</a></li>
--   <li><a>oMetadata</a></li>
--   </ul>
operation :: Operation

-- | If the value is `false`, it means the operation is still in progress.
--   If true, the operation is completed and the `result` is available.
oDone :: Lens' Operation (Maybe Bool)

-- | The error result of the operation in case of failure.
oError :: Lens' Operation (Maybe Status)

-- | 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)

-- | The server-assigned name, which is only unique within the same service
--   that originally returns it. If you use the default HTTP mapping above,
--   the `name` should have the format of `operations/some/unique/name`.
oName :: Lens' Operation (Maybe Text)

-- | Represents the transfer operation object.
oMetadata :: Lens' Operation (Maybe OperationMetadata)

-- | 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 `{}`.
--   
--   <i>See:</i> <a>empty</a> smart constructor.
data Empty

-- | Creates a value of <a>Empty</a> with the minimum fields required to
--   make a request.
empty :: Empty

-- | Request passed to PauseTransferOperation.
--   
--   <i>See:</i> <a>pauseTransferOperationRequest</a> smart constructor.
data PauseTransferOperationRequest

-- | Creates a value of <a>PauseTransferOperationRequest</a> with the
--   minimum fields required to make a request.
pauseTransferOperationRequest :: PauseTransferOperationRequest

-- | Google service account
--   
--   <i>See:</i> <a>googleServiceAccount</a> smart constructor.
data GoogleServiceAccount

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

-- | Required.
gsaAccountEmail :: Lens' GoogleServiceAccount (Maybe Text)
data StatusDetailsItem

-- | Creates a value of <a>StatusDetailsItem</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdiAddtional</a></li>
--   </ul>
statusDetailsItem :: HashMap Text JSONValue -> StatusDetailsItem

-- | Properties of the object. Contains field 'ype with type URL.
sdiAddtional :: Lens' StatusDetailsItem (HashMap Text JSONValue)

-- | Represents a whole calendar date, e.g. date of birth. The time of day
--   and time zone are either specified elsewhere or are not significant.
--   The date is relative to the Proleptic Gregorian Calendar. The day may
--   be 0 to represent a year and month where the day is not significant,
--   e.g. credit card expiration date. The year may be 0 to represent a
--   month and day independent of year, e.g. anniversary date. Related
--   types are [google.type.TimeOfDay][google.type.TimeOfDay] and
--   `google.protobuf.Timestamp`.
--   
--   <i>See:</i> <a>date</a> smart constructor.
data Date

-- | Creates a value of <a>Date</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDay</a></li>
--   <li><a>dYear</a></li>
--   <li><a>dMonth</a></li>
--   </ul>
date :: Date

-- | Day of month. Must be from 1 to 31 and valid for the year and month,
--   or 0 if specifying a year/month where the day is not sigificant.
dDay :: Lens' Date (Maybe Int32)

-- | Year of date. Must be from 1 to 9,999, or 0 if specifying a date
--   without a year.
dYear :: Lens' Date (Maybe Int32)

-- | Month of year of date. Must be from 1 to 12.
dMonth :: Lens' Date (Maybe Int32)

-- | Request passed to UpdateTransferJob.
--   
--   <i>See:</i> <a>updateTransferJobRequest</a> smart constructor.
data UpdateTransferJobRequest

-- | Creates a value of <a>UpdateTransferJobRequest</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utjrTransferJob</a></li>
--   <li><a>utjrProjectId</a></li>
--   <li><a>utjrUpdateTransferJobFieldMask</a></li>
--   </ul>
updateTransferJobRequest :: UpdateTransferJobRequest

-- | The job to update. Required.
utjrTransferJob :: Lens' UpdateTransferJobRequest (Maybe TransferJob)

-- | The ID of the Google Developers Console project that owns the job.
--   Required.
utjrProjectId :: Lens' UpdateTransferJobRequest (Maybe Text)

-- | The field mask of the fields in `transferJob` that are to be updated
--   in this request. Fields in `transferJob` that can be updated are:
--   `description`, `transferSpec`, and `status`. To update the
--   `transferSpec` of the job, a complete transfer specification has to be
--   provided. An incomplete specification which misses any required fields
--   will be rejected with the error `INVALID_ARGUMENT`.
utjrUpdateTransferJobFieldMask :: Lens' UpdateTransferJobRequest (Maybe Text)

-- | A collection of counters that report the progress of a transfer
--   operation.
--   
--   <i>See:</i> <a>transferCounters</a> smart constructor.
data TransferCounters

-- | Creates a value of <a>TransferCounters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tcBytesFoundOnlyFromSink</a></li>
--   <li><a>tcBytesDeletedFromSink</a></li>
--   <li><a>tcObjectsDeletedFromSource</a></li>
--   <li><a>tcObjectsFoundFromSource</a></li>
--   <li><a>tcBytesFailedToDeleteFromSink</a></li>
--   <li><a>tcBytesFromSourceFailed</a></li>
--   <li><a>tcBytesCopiedToSink</a></li>
--   <li><a>tcBytesFoundFromSource</a></li>
--   <li><a>tcBytesDeletedFromSource</a></li>
--   <li><a>tcObjectsDeletedFromSink</a></li>
--   <li><a>tcObjectsFoundOnlyFromSink</a></li>
--   <li><a>tcBytesFromSourceSkippedBySync</a></li>
--   <li><a>tcObjectsCopiedToSink</a></li>
--   <li><a>tcObjectsFromSourceFailed</a></li>
--   <li><a>tcObjectsFailedToDeleteFromSink</a></li>
--   <li><a>tcObjectsFromSourceSkippedBySync</a></li>
--   </ul>
transferCounters :: TransferCounters

-- | Bytes found only in the data sink that are scheduled to be deleted.
tcBytesFoundOnlyFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that are deleted from the data sink.
tcBytesDeletedFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects that are deleted from the data source.
tcObjectsDeletedFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Objects found in the data source that are scheduled to be transferred,
--   which will be copied, excluded based on conditions, or skipped due to
--   failures.
tcObjectsFoundFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that failed to be deleted from the data sink.
tcBytesFailedToDeleteFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes in the data source that failed during the transfer.
tcBytesFromSourceFailed :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that are copied to the data sink.
tcBytesCopiedToSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes found in the data source that are scheduled to be transferred,
--   which will be copied, excluded based on conditions, or skipped due to
--   failures.
tcBytesFoundFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Bytes that are deleted from the data source.
tcBytesDeletedFromSource :: Lens' TransferCounters (Maybe Int64)

-- | Objects that are deleted from the data sink.
tcObjectsDeletedFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects found only in the data sink that are scheduled to be deleted.
tcObjectsFoundOnlyFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Bytes in the data source that are not transferred because they already
--   exist in the data sink.
tcBytesFromSourceSkippedBySync :: Lens' TransferCounters (Maybe Int64)

-- | Objects that are copied to the data sink.
tcObjectsCopiedToSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects in the data source that failed during the transfer.
tcObjectsFromSourceFailed :: Lens' TransferCounters (Maybe Int64)

-- | Objects that failed to be deleted from the data sink.
tcObjectsFailedToDeleteFromSink :: Lens' TransferCounters (Maybe Int64)

-- | Objects in the data source that are not transferred because they
--   already exist in the data sink.
tcObjectsFromSourceSkippedBySync :: Lens' TransferCounters (Maybe Int64)

-- | This resource represents the configuration of a transfer job that runs
--   periodically.
--   
--   <i>See:</i> <a>transferJob</a> smart constructor.
data TransferJob

-- | Creates a value of <a>TransferJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tjCreationTime</a></li>
--   <li><a>tjStatus</a></li>
--   <li><a>tjSchedule</a></li>
--   <li><a>tjDeletionTime</a></li>
--   <li><a>tjName</a></li>
--   <li><a>tjProjectId</a></li>
--   <li><a>tjTransferSpec</a></li>
--   <li><a>tjDescription</a></li>
--   <li><a>tjLastModificationTime</a></li>
--   </ul>
transferJob :: TransferJob

-- | This field cannot be changed by user requests.
tjCreationTime :: Lens' TransferJob (Maybe Text)

-- | Status of the job. This value MUST be specified for
--   `CreateTransferJobRequests`. NOTE: The effect of the new job status
--   takes place during a subsequent job run. For example, if you change
--   the job status from `ENABLED` to `DISABLED`, and an operation spawned
--   by the transfer is running, the status change would not affect the
--   current operation.
tjStatus :: Lens' TransferJob (Maybe Text)

-- | Schedule specification. Required.
tjSchedule :: Lens' TransferJob (Maybe Schedule)

-- | This field cannot be changed by user requests.
tjDeletionTime :: Lens' TransferJob (Maybe Text)

-- | A globally unique name assigned by Storage Transfer Service when the
--   job is created. This field should be left empty in requests to create
--   a new transfer job; otherwise, the requests result in an
--   `INVALID_ARGUMENT` error.
tjName :: Lens' TransferJob (Maybe Text)

-- | The ID of the Google Developers Console project that owns the job.
--   Required.
tjProjectId :: Lens' TransferJob (Maybe Text)

-- | Transfer specification. Required.
tjTransferSpec :: Lens' TransferJob (Maybe TransferSpec)

-- | A description provided by the user for the job. Its max length is 1024
--   bytes when Unicode-encoded.
tjDescription :: Lens' TransferJob (Maybe Text)

-- | This field cannot be changed by user requests.
tjLastModificationTime :: Lens' TransferJob (Maybe Text)

-- | In a GcsData, an object's name is the Google Cloud Storage object's
--   name and its `lastModificationTime` refers to the object's updated
--   time, which changes when the content or the metadata of the object is
--   updated.
--   
--   <i>See:</i> <a>gcsData</a> smart constructor.
data GcsData

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

-- | Google Cloud Storage bucket name (see <a>Bucket Name
--   Requirements</a>). Required.
gdBucketName :: Lens' GcsData (Maybe Text)

-- | An AwsS3Data can be a data source, but not a data sink. In an
--   AwsS3Data, an object's name is the S3 object's key name.
--   
--   <i>See:</i> <a>awsS3Data</a> smart constructor.
data AwsS3Data

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

-- | S3 Bucket name (see <a>Creating a bucket</a>). Required.
asdBucketName :: Lens' AwsS3Data (Maybe Text)

-- | AWS access key used to sign the API requests to the AWS S3 bucket.
--   Permissions on the bucket must be granted to the access ID of the AWS
--   access key. Required.
asdAwsAccessKey :: Lens' AwsS3Data (Maybe AwsAccessKey)

-- | An HttpData specifies a list of objects on the web to be transferred
--   over HTTP. The information of the objects to be transferred is
--   contained in a file referenced by a URL. The first line in the file
--   must be "TsvHttpData-1.0", which specifies the format of the file.
--   Subsequent lines specify the information of the list of objects, one
--   object per list entry. Each entry has the following tab-delimited
--   fields: * HTTP URL * Length * MD5 - This field is a base64-encoded MD5
--   hash of the object An HTTP URL that points to the object to be
--   transferred. It must be a valid URL with URL scheme HTTP or HTTPS.
--   When an object with URL `http(s)://hostname:port/` is transferred to
--   the data sink, the name of the object at the data sink is `/`. Length
--   and MD5 provide the size and the base64-encoded MD5 hash of the
--   object. If Length does not match the actual length of the object
--   fetched, the object will not be transferred. If MD5 does not match the
--   MD5 computed from the transferred bytes, the object transfer will
--   fail. `lastModificationTime` is not available in HttpData objects. The
--   objects that the URL list points to must allow public access. Storage
--   Transfer Service obeys `robots.txt` rules and requires the HTTP server
--   to support Range requests and to return a Content-Length header in
--   each response.
--   
--   <i>See:</i> <a>hTTPData</a> smart constructor.
data HTTPData

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

-- | The URL that points to the file that stores the object list entries.
--   This file must allow public access. Currently, only URLs with HTTP and
--   HTTPS schemes are supported. Required.
httpdListURL :: Lens' HTTPData (Maybe Text)

-- | Represents a time of day. The date and time zone are either not
--   significant or are specified elsewhere. An API may chose to allow leap
--   seconds. Related types are [google.type.Date][google.type.Date] and
--   `google.protobuf.Timestamp`.
--   
--   <i>See:</i> <a>timeOfDay</a> smart constructor.
data TimeOfDay'

-- | Creates a value of <a>TimeOfDay</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>todNanos</a></li>
--   <li><a>todHours</a></li>
--   <li><a>todMinutes</a></li>
--   <li><a>todSeconds</a></li>
--   </ul>
timeOfDay :: TimeOfDay'

-- | Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
todNanos :: Lens' TimeOfDay' (Maybe Int32)

-- | Hours of day in 24 hour format. Should be from 0 to 23. An API may
--   choose to allow the value "24:00:00" for scenarios like business
--   closing time.
todHours :: Lens' TimeOfDay' (Maybe Int32)

-- | Minutes of hour of day. Must be from 0 to 59.
todMinutes :: Lens' TimeOfDay' (Maybe Int32)

-- | Seconds of minutes of the time. Must normally be from 0 to 59. An API
--   may allow the value 60 if it allows leap-seconds.
todSeconds :: Lens' TimeOfDay' (Maybe Int32)

-- | An entry describing an error that has occurred.
--   
--   <i>See:</i> <a>errorLogEntry</a> smart constructor.
data ErrorLogEntry

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

-- | A URL that refers to the target (a data source, a data sink, or an
--   object) with which the error is associated. Required.
eleURL :: Lens' ErrorLogEntry (Maybe Text)

-- | A list of messages that carry the error details.
eleErrorDetails :: Lens' ErrorLogEntry [Text]

-- | Represents the transfer operation object.
--   
--   <i>See:</i> <a>operationMetadata</a> smart constructor.
data OperationMetadata

-- | Creates a value of <a>OperationMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>omAddtional</a></li>
--   </ul>
operationMetadata :: HashMap Text JSONValue -> OperationMetadata

-- | Properties of the object. Contains field 'ype with type URL.
omAddtional :: Lens' OperationMetadata (HashMap Text JSONValue)

-- | TransferOptions uses three boolean parameters to define the actions to
--   be performed on objects in a transfer.
--   
--   <i>See:</i> <a>transferOptions</a> smart constructor.
data TransferOptions

-- | Creates a value of <a>TransferOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>toDeleteObjectsUniqueInSink</a></li>
--   <li><a>toDeleteObjectsFromSourceAfterTransfer</a></li>
--   <li><a>toOverwriteObjectsAlreadyExistingInSink</a></li>
--   </ul>
transferOptions :: TransferOptions

-- | Whether objects that exist only in the sink should be deleted.
toDeleteObjectsUniqueInSink :: Lens' TransferOptions (Maybe Bool)

-- | Whether objects should be deleted from the source after they are
--   transferred to the sink.
toDeleteObjectsFromSourceAfterTransfer :: Lens' TransferOptions (Maybe Bool)

-- | Whether overwriting objects that already exist in the sink is allowed.
toOverwriteObjectsAlreadyExistingInSink :: Lens' TransferOptions (Maybe Bool)

-- | A description of the execution of a transfer.
--   
--   <i>See:</i> <a>transferOperation</a> smart constructor.
data TransferOperation

-- | Creates a value of <a>TransferOperation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>toStatus</a></li>
--   <li><a>toCounters</a></li>
--   <li><a>toStartTime</a></li>
--   <li><a>toTransferJobName</a></li>
--   <li><a>toName</a></li>
--   <li><a>toEndTime</a></li>
--   <li><a>toProjectId</a></li>
--   <li><a>toTransferSpec</a></li>
--   <li><a>toErrorBreakdowns</a></li>
--   </ul>
transferOperation :: TransferOperation

-- | Status of the transfer operation.
toStatus :: Lens' TransferOperation (Maybe Text)

-- | Information about the progress of the transfer operation.
toCounters :: Lens' TransferOperation (Maybe TransferCounters)

-- | Start time of this transfer execution.
toStartTime :: Lens' TransferOperation (Maybe Text)

-- | The name of the transfer job that triggers this transfer operation.
toTransferJobName :: Lens' TransferOperation (Maybe Text)

-- | A globally unique ID assigned by the system.
toName :: Lens' TransferOperation (Maybe Text)

-- | End time of this transfer execution.
toEndTime :: Lens' TransferOperation (Maybe Text)

-- | The ID of the Google Developers Console project that owns the
--   operation. Required.
toProjectId :: Lens' TransferOperation (Maybe Text)

-- | Transfer specification. Required.
toTransferSpec :: Lens' TransferOperation (Maybe TransferSpec)

-- | Summarizes errors encountered with sample error log entries.
toErrorBreakdowns :: Lens' TransferOperation [ErrorSummary]

-- | Configuration for running a transfer.
--   
--   <i>See:</i> <a>transferSpec</a> smart constructor.
data TransferSpec

-- | Creates a value of <a>TransferSpec</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsGcsDataSource</a></li>
--   <li><a>tsObjectConditions</a></li>
--   <li><a>tsHTTPDataSource</a></li>
--   <li><a>tsAwsS3DataSource</a></li>
--   <li><a>tsGcsDataSink</a></li>
--   <li><a>tsTransferOptions</a></li>
--   </ul>
transferSpec :: TransferSpec

-- | A Google Cloud Storage data source.
tsGcsDataSource :: Lens' TransferSpec (Maybe GcsData)

-- | Only objects that satisfy these object conditions are included in the
--   set of data source and data sink objects. Object conditions based on
--   objects' `lastModificationTime` do not exclude objects in a data sink.
tsObjectConditions :: Lens' TransferSpec (Maybe ObjectConditions)

-- | An HTTP URL data source.
tsHTTPDataSource :: Lens' TransferSpec (Maybe HTTPData)

-- | An AWS S3 data source.
tsAwsS3DataSource :: Lens' TransferSpec (Maybe AwsS3Data)

-- | A Google Cloud Storage data sink.
tsGcsDataSink :: Lens' TransferSpec (Maybe GcsData)

-- | If the option `deleteObjectsUniqueInSink` is `true`, object conditions
--   based on objects' `lastModificationTime` are ignored and do not
--   exclude objects in a data source or a data sink.
tsTransferOptions :: Lens' TransferSpec (Maybe TransferOptions)

-- | Response from ListTransferJobs.
--   
--   <i>See:</i> <a>listTransferJobsResponse</a> smart constructor.
data ListTransferJobsResponse

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

-- | The list next page token.
ltjrNextPageToken :: Lens' ListTransferJobsResponse (Maybe Text)

-- | A list of transfer jobs.
ltjrTransferJobs :: Lens' ListTransferJobsResponse [TransferJob]

-- | 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`.
--   
--   <i>See:</i> <a>operationResponse</a> smart constructor.
data OperationResponse

-- | Creates a value of <a>OperationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>orAddtional</a></li>
--   </ul>
operationResponse :: HashMap Text JSONValue -> OperationResponse

-- | Properties of the object. Contains field 'ype with type URL.
orAddtional :: Lens' OperationResponse (HashMap Text JSONValue)

-- | Request passed to ResumeTransferOperation.
--   
--   <i>See:</i> <a>resumeTransferOperationRequest</a> smart constructor.
data ResumeTransferOperationRequest

-- | Creates a value of <a>ResumeTransferOperationRequest</a> with the
--   minimum fields required to make a request.
resumeTransferOperationRequest :: ResumeTransferOperationRequest

-- | AWS access key (see <a>AWS Security Credentials</a>).
--   
--   <i>See:</i> <a>awsAccessKey</a> smart constructor.
data AwsAccessKey

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

-- | AWS secret access key. This field is not returned in RPC responses.
--   Required.
aakSecretAccessKey :: Lens' AwsAccessKey (Maybe Text)

-- | AWS access key ID. Required.
aakAccessKeyId :: Lens' AwsAccessKey (Maybe Text)
