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


-- | Google Stackdriver Logging SDK.
--   
--   Writes log entries and manages your Stackdriver Logging configuration.
--   
--   <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>v2</tt> of the API.
@package gogol-logging
@version 0.3.0


module Network.Google.Logging.Types

-- | Default request referring to version <tt>v2</tt> of the Stackdriver
--   Logging API. This contains the host and root path used as a starting
--   point for constructing service requests.
loggingService :: ServiceConfig

-- | Administrate log data for your projects
loggingAdminScope :: Proxy '["https://www.googleapis.com/auth/logging.admin"]

-- | View log data for your projects
loggingReadScope :: Proxy '["https://www.googleapis.com/auth/logging.read"]

-- | Submit log data for your projects
loggingWriteScope :: Proxy '["https://www.googleapis.com/auth/logging.write"]

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

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

-- | An object that describes the schema of a MonitoredResource object
--   using a type name and a set of labels. For example, the monitored
--   resource descriptor for Google Compute Engine VM instances has a type
--   of "gce_instance" and specifies the use of the labels "instance_id"
--   and "zone" to identify particular VM instances.Different APIs can
--   support different monitored resource types. APIs generally provide a
--   list method that returns the monitored resource descriptors used by
--   the API.
--   
--   <i>See:</i> <a>monitoredResourceDescriptor</a> smart constructor.
data MonitoredResourceDescriptor

-- | Creates a value of <a>MonitoredResourceDescriptor</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>mrdName</a></li>
--   <li><a>mrdDisplayName</a></li>
--   <li><a>mrdLabels</a></li>
--   <li><a>mrdType</a></li>
--   <li><a>mrdDescription</a></li>
--   </ul>
monitoredResourceDescriptor :: MonitoredResourceDescriptor

-- | Optional. The resource name of the monitored resource descriptor:
--   "projects/{project_id}/monitoredResourceDescriptors/{type}" where
--   {type} is the value of the type field in this object and {project_id}
--   is a project ID that provides API-specific context for accessing the
--   type. APIs that do not use project information can use the resource
--   name format "monitoredResourceDescriptors/{type}".
mrdName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A concise name for the monitored resource type that might be
--   displayed in user interfaces. It should be a Title Cased Noun Phrase,
--   without any article or other determiners. For example, "Google Cloud
--   SQL Database".
mrdDisplayName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Required. A set of labels used to describe instances of this monitored
--   resource type. For example, an individual Google Cloud SQL database is
--   identified by values for the labels "database_id" and "zone".
mrdLabels :: Lens' MonitoredResourceDescriptor [LabelDescriptor]

-- | Required. The monitored resource type. For example, the type
--   "cloudsql_database" represents databases in Google Cloud SQL. The
--   maximum length of this value is 256 characters.
mrdType :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A detailed description of the monitored resource type that
--   might be used in documentation.
mrdDescription :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Result returned from ListLogEntries.
--   
--   <i>See:</i> <a>listLogEntriesResponse</a> smart constructor.
data ListLogEntriesResponse

-- | Creates a value of <a>ListLogEntriesResponse</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>llerNextPageToken</a></li>
--   <li><a>llerEntries</a></li>
--   </ul>
listLogEntriesResponse :: ListLogEntriesResponse

-- | If there might be more results than those appearing in this response,
--   then nextPageToken is included. To get the next set of results, call
--   this method again using the value of nextPageToken as pageToken.If a
--   value for next_page_token appears and the entries field is empty, it
--   means that the search found no log entries so far but it did not have
--   time to search all the possible log entries. Retry the method with
--   this value for page_token to continue the search. Alternatively,
--   consider speeding up the search by changing your filter to specify a
--   single log name or resource type, or to narrow the time range of the
--   search.
llerNextPageToken :: Lens' ListLogEntriesResponse (Maybe Text)

-- | A list of log entries.
llerEntries :: Lens' ListLogEntriesResponse [LogEntry]

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
--   
--   <i>See:</i> <a>monitoredResourceLabels</a> smart constructor.
data MonitoredResourceLabels

-- | Creates a value of <a>MonitoredResourceLabels</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>mrlAddtional</a></li>
--   </ul>
monitoredResourceLabels :: HashMap Text Text -> MonitoredResourceLabels
mrlAddtional :: Lens' MonitoredResourceLabels (HashMap Text Text)

-- | Output only. The API version that created or updated this metric. The
--   version also dictates the syntax of the filter expression. When a
--   value for this field is missing, the default value of V2 should be
--   assumed.
data LogMetricVersion

-- | <tt>V2</tt> Stackdriver Logging API v2.
V2 :: LogMetricVersion

-- | <tt>V1</tt> Stackdriver Logging API v1.
V1 :: LogMetricVersion

-- | Result returned from ListLogMetrics.
--   
--   <i>See:</i> <a>listLogMetricsResponse</a> smart constructor.
data ListLogMetricsResponse

-- | Creates a value of <a>ListLogMetricsResponse</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>llmrMetrics</a></li>
--   <li><a>llmrNextPageToken</a></li>
--   </ul>
listLogMetricsResponse :: ListLogMetricsResponse

-- | A list of logs-based metrics.
llmrMetrics :: Lens' ListLogMetricsResponse [LogMetric]

-- | If there might be more results than appear in this response, then
--   nextPageToken is included. To get the next set of results, call this
--   method again using the value of nextPageToken as pageToken.
llmrNextPageToken :: Lens' ListLogMetricsResponse (Maybe Text)

-- | The parameters to WriteLogEntries.
--   
--   <i>See:</i> <a>writeLogEntriesRequest</a> smart constructor.
data WriteLogEntriesRequest

-- | Creates a value of <a>WriteLogEntriesRequest</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>wlerEntries</a></li>
--   <li><a>wlerPartialSuccess</a></li>
--   <li><a>wlerResource</a></li>
--   <li><a>wlerLabels</a></li>
--   <li><a>wlerLogName</a></li>
--   </ul>
writeLogEntriesRequest :: WriteLogEntriesRequest

-- | Required. The log entries to write. Values supplied for the fields
--   log_name, resource, and labels in this entries.write request are added
--   to those log entries that do not provide their own values for the
--   fields.To improve throughput and to avoid exceeding the quota limit
--   for calls to entries.write, you should write multiple log entries at
--   once rather than calling this method for each individual log entry.
wlerEntries :: Lens' WriteLogEntriesRequest [LogEntry]

-- | Optional. Whether valid entries should be written even if some other
--   entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If
--   any entry is not written, the response status will be the error
--   associated with one of the failed entries and include error details in
--   the form of WriteLogEntriesPartialErrors.
wlerPartialSuccess :: Lens' WriteLogEntriesRequest (Maybe Bool)

-- | Optional. A default monitored resource object that is assigned to all
--   log entries in entries that do not specify a value for resource.
--   Example: { "type": "gce_instance", "labels": { "zone":
--   "us-central1-a", "instance_id": "00000000000000000000" }} See
--   LogEntry.
wlerResource :: Lens' WriteLogEntriesRequest (Maybe MonitoredResource)

-- | Optional. Default labels that are added to the labels field of all log
--   entries in entries. If a log entry already has a label with the same
--   key as a label in this parameter, then the log entry's label is not
--   changed. See LogEntry.
wlerLabels :: Lens' WriteLogEntriesRequest (Maybe WriteLogEntriesRequestLabels)

-- | Optional. A default log resource name that is assigned to all log
--   entries in entries that do not specify a value for log_name:
--   "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded. For example, "projects/my-project-id/logs/syslog" or
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   For more information about log names, see LogEntry.
wlerLogName :: Lens' WriteLogEntriesRequest (Maybe Text)

-- | Optional. The log entry format to use for this sink's exported log
--   entries. The v2 format is used by default. The v1 format is deprecated
--   and should be used only as part of a migration effort to v2. See
--   Migration to the v2 API.
data LogSinkOutputVersionFormat

-- | <tt>VERSION_FORMAT_UNSPECIFIED</tt> An unspecified format version that
--   will default to V2.
LSOVFVersionFormatUnspecified :: LogSinkOutputVersionFormat

-- | <tt>V2</tt> LogEntry version 2 format.
LSOVFV2 :: LogSinkOutputVersionFormat

-- | <tt>V1</tt> LogEntry version 1 format.
LSOVFV1 :: LogSinkOutputVersionFormat

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

-- | Optional. A set of user-defined (key, value) data that provides
--   additional information about the log entry.
--   
--   <i>See:</i> <a>logEntryLabels</a> smart constructor.
data LogEntryLabels

-- | Creates a value of <a>LogEntryLabels</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>lelAddtional</a></li>
--   </ul>
logEntryLabels :: HashMap Text Text -> LogEntryLabels
lelAddtional :: Lens' LogEntryLabels (HashMap Text Text)

-- | Result returned from ListSinks.
--   
--   <i>See:</i> <a>listSinksResponse</a> smart constructor.
data ListSinksResponse

-- | Creates a value of <a>ListSinksResponse</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>lsrSinks</a></li>
--   <li><a>lsrNextPageToken</a></li>
--   </ul>
listSinksResponse :: ListSinksResponse

-- | A list of sinks.
lsrSinks :: Lens' ListSinksResponse [LogSink]

-- | If there might be more results than appear in this response, then
--   nextPageToken is included. To get the next set of results, call the
--   same method again using the value of nextPageToken as pageToken.
lsrNextPageToken :: Lens' ListSinksResponse (Maybe Text)

-- | Complete log information about a single HTTP request to an App Engine
--   application.
--   
--   <i>See:</i> <a>requestLog</a> smart constructor.
data RequestLog

-- | Creates a value of <a>RequestLog</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>rlTraceId</a></li>
--   <li><a>rlInstanceId</a></li>
--   <li><a>rlStatus</a></li>
--   <li><a>rlRequestId</a></li>
--   <li><a>rlInstanceIndex</a></li>
--   <li><a>rlModuleId</a></li>
--   <li><a>rlVersionId</a></li>
--   <li><a>rlHTTPVersion</a></li>
--   <li><a>rlTaskName</a></li>
--   <li><a>rlPendingTime</a></li>
--   <li><a>rlWasLoadingRequest</a></li>
--   <li><a>rlFirst</a></li>
--   <li><a>rlStartTime</a></li>
--   <li><a>rlLatency</a></li>
--   <li><a>rlURLMapEntry</a></li>
--   <li><a>rlCost</a></li>
--   <li><a>rlReferrer</a></li>
--   <li><a>rlLine</a></li>
--   <li><a>rlIP</a></li>
--   <li><a>rlAppId</a></li>
--   <li><a>rlMethod</a></li>
--   <li><a>rlResource</a></li>
--   <li><a>rlEndTime</a></li>
--   <li><a>rlFinished</a></li>
--   <li><a>rlMegaCycles</a></li>
--   <li><a>rlUserAgent</a></li>
--   <li><a>rlNickname</a></li>
--   <li><a>rlHost</a></li>
--   <li><a>rlTaskQueueName</a></li>
--   <li><a>rlResponseSize</a></li>
--   <li><a>rlSourceReference</a></li>
--   <li><a>rlAppEngineRelease</a></li>
--   </ul>
requestLog :: RequestLog

-- | Stackdriver Trace identifier for this request.
rlTraceId :: Lens' RequestLog (Maybe Text)

-- | An identifier for the instance that handled the request.
rlInstanceId :: Lens' RequestLog (Maybe Text)

-- | HTTP response status code. Example: 200, 404.
rlStatus :: Lens' RequestLog (Maybe Int32)

-- | Globally unique identifier for a request, which is based on the
--   request start time. Request IDs for requests which started later will
--   compare greater as strings than those for requests which started
--   earlier.
rlRequestId :: Lens' RequestLog (Maybe Text)

-- | If the instance processing this request belongs to a manually scaled
--   module, then this is the 0-based index of the instance. Otherwise,
--   this value is -1.
rlInstanceIndex :: Lens' RequestLog (Maybe Int32)

-- | Module of the application that handled this request.
rlModuleId :: Lens' RequestLog (Maybe Text)

-- | Version of the application that handled this request.
rlVersionId :: Lens' RequestLog (Maybe Text)

-- | HTTP version of request. Example: "HTTP/1.1".
rlHTTPVersion :: Lens' RequestLog (Maybe Text)

-- | Task name of the request, in the case of an offline request.
rlTaskName :: Lens' RequestLog (Maybe Text)

-- | Time this request spent in the pending request queue.
rlPendingTime :: Lens' RequestLog (Maybe Scientific)

-- | Whether this was a loading request for the instance.
rlWasLoadingRequest :: Lens' RequestLog (Maybe Bool)

-- | Whether this is the first RequestLog entry for this request. If an
--   active request has several RequestLog entries written to Stackdriver
--   Logging, then this field will be set for one of them.
rlFirst :: Lens' RequestLog (Maybe Bool)

-- | Time when the request started.
rlStartTime :: Lens' RequestLog (Maybe UTCTime)

-- | Latency of the request.
rlLatency :: Lens' RequestLog (Maybe Scientific)

-- | File or class that handled the request.
rlURLMapEntry :: Lens' RequestLog (Maybe Text)

-- | An indication of the relative cost of serving this request.
rlCost :: Lens' RequestLog (Maybe Double)

-- | Referrer URL of request.
rlReferrer :: Lens' RequestLog (Maybe Text)

-- | A list of log lines emitted by the application while serving this
--   request.
rlLine :: Lens' RequestLog [LogLine]

-- | Origin IP address.
rlIP :: Lens' RequestLog (Maybe Text)

-- | Application that handled this request.
rlAppId :: Lens' RequestLog (Maybe Text)

-- | Request method. Example: "GET", "HEAD", "PUT", "POST", "DELETE".
rlMethod :: Lens' RequestLog (Maybe Text)

-- | Contains the path and query portion of the URL that was requested. For
--   example, if the URL was "http://example.com/app?name=val", the
--   resource would be "/app?name=val". The fragment identifier, which is
--   identified by the # character, is not included.
rlResource :: Lens' RequestLog (Maybe Text)

-- | Time when the request finished.
rlEndTime :: Lens' RequestLog (Maybe UTCTime)

-- | Whether this request is finished or active.
rlFinished :: Lens' RequestLog (Maybe Bool)

-- | Number of CPU megacycles used to process request.
rlMegaCycles :: Lens' RequestLog (Maybe Int64)

-- | User agent that made the request.
rlUserAgent :: Lens' RequestLog (Maybe Text)

-- | The logged-in user who made the request.Most likely, this is the part
--   of the user's email before the ' sign. The field value is the same for
--   different requests from the same user, but different users can have
--   similar names. This information is also available to the application
--   via the App Engine Users API.This field will be populated starting
--   with App Engine 1.9.21.
rlNickname :: Lens' RequestLog (Maybe Text)

-- | Internet host and port number of the resource being requested.
rlHost :: Lens' RequestLog (Maybe Text)

-- | Queue name of the request, in the case of an offline request.
rlTaskQueueName :: Lens' RequestLog (Maybe Text)

-- | Size in bytes sent back to client by request.
rlResponseSize :: Lens' RequestLog (Maybe Int64)

-- | Source code for the application that handled this request. There can
--   be more than one source reference per deployed application if source
--   code is distributed among multiple repositories.
rlSourceReference :: Lens' RequestLog [SourceReference]

-- | App Engine release version.
rlAppEngineRelease :: Lens' RequestLog (Maybe Text)

-- | The log entry payload, represented as a protocol buffer. Some Google
--   Cloud Platform services use this field for their log entry payloads.
--   
--   <i>See:</i> <a>logEntryProtoPayload</a> smart constructor.
data LogEntryProtoPayload

-- | Creates a value of <a>LogEntryProtoPayload</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>leppAddtional</a></li>
--   </ul>
logEntryProtoPayload :: HashMap Text JSONValue -> LogEntryProtoPayload

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

-- | Additional information about the source code location that produced
--   the log entry.
--   
--   <i>See:</i> <a>logEntrySourceLocation</a> smart constructor.
data LogEntrySourceLocation

-- | Creates a value of <a>LogEntrySourceLocation</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>leslFunction</a></li>
--   <li><a>leslLine</a></li>
--   <li><a>leslFile</a></li>
--   </ul>
logEntrySourceLocation :: LogEntrySourceLocation

-- | Optional. Human-readable name of the function or method being invoked,
--   with optional context such as the class or package name. This
--   information may be used in contexts such as the logs viewer, where a
--   file and line number are less meaningful. The format can vary by
--   language. For example: qual.if.ied.Class.method (Java),
--   dir/package.func (Go), function (Python).
leslFunction :: Lens' LogEntrySourceLocation (Maybe Text)

-- | Optional. Line within the source file. 1-based; 0 indicates no line
--   number available.
leslLine :: Lens' LogEntrySourceLocation (Maybe Int64)

-- | Optional. Source file name. Depending on the runtime environment, this
--   might be a simple name or a fully-qualified name.
leslFile :: Lens' LogEntrySourceLocation (Maybe Text)

-- | Result returned from WriteLogEntries. empty
--   
--   <i>See:</i> <a>writeLogEntriesResponse</a> smart constructor.
data WriteLogEntriesResponse

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

-- | Describes a sink used to export log entries to one of the following
--   destinations in any project: a Cloud Storage bucket, a BigQuery
--   dataset, or a Cloud Pub/Sub topic. A logs filter controls which log
--   entries are exported. The sink must be created within a project or
--   organization.
--   
--   <i>See:</i> <a>logSink</a> smart constructor.
data LogSink

-- | Creates a value of <a>LogSink</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>lsDestination</a></li>
--   <li><a>lsStartTime</a></li>
--   <li><a>lsOutputVersionFormat</a></li>
--   <li><a>lsWriterIdentity</a></li>
--   <li><a>lsName</a></li>
--   <li><a>lsEndTime</a></li>
--   <li><a>lsFilter</a></li>
--   </ul>
logSink :: LogSink

-- | Required. The export destination:
--   "storage.googleapis.com/[GCS_BUCKET]"
--   "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]"
--   "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]" The
--   sink's writer_identity, set when the sink is created, must have
--   permission to write to the destination or else the log entries are not
--   exported. For more information, see Exporting Logs With Sinks.
lsDestination :: Lens' LogSink (Maybe Text)

-- | Optional. The time at which this sink will begin exporting log
--   entries. Log entries are exported only if their timestamp is not
--   earlier than the start time. The default value of this field is the
--   time the sink is created or updated.
lsStartTime :: Lens' LogSink (Maybe UTCTime)

-- | Optional. The log entry format to use for this sink's exported log
--   entries. The v2 format is used by default. The v1 format is deprecated
--   and should be used only as part of a migration effort to v2. See
--   Migration to the v2 API.
lsOutputVersionFormat :: Lens' LogSink (Maybe LogSinkOutputVersionFormat)

-- | Output only. An IAM identity—a service account or group—under which
--   Stackdriver Logging writes the exported log entries to the sink's
--   destination. This field is set by sinks.create and sinks.update, based
--   on the setting of unique_writer_identity in those methods.Until you
--   grant this identity write-access to the destination, log entry exports
--   from this sink will fail. For more information, see Granting access
--   for a resource. Consult the destination service's documentation to
--   determine the appropriate IAM roles to assign to the identity.
lsWriterIdentity :: Lens' LogSink (Maybe Text)

-- | Required. The client-assigned sink identifier, unique within the
--   project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are
--   limited to 100 characters and can include only the following
--   characters: upper and lower-case alphanumeric characters, underscores,
--   hyphens, and periods.
lsName :: Lens' LogSink (Maybe Text)

-- | Optional. The time at which this sink will stop exporting log entries.
--   Log entries are exported only if their timestamp is earlier than the
--   end time. If this field is not supplied, there is no end time. If both
--   a start time and an end time are provided, then the end time must be
--   later than the start time.
lsEndTime :: Lens' LogSink (Maybe UTCTime)

-- | Optional. An advanced logs filter. The only exported log entries are
--   those that are in the resource owning the sink and that match the
--   filter. The filter must use the log entry format specified by the
--   output_version_format parameter. For example, in the v2 format:
--   logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity&gt;=ERROR
lsFilter :: Lens' LogSink (Maybe Text)

-- | Result returned from ListLogs.
--   
--   <i>See:</i> <a>listLogsResponse</a> smart constructor.
data ListLogsResponse

-- | Creates a value of <a>ListLogsResponse</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>llrNextPageToken</a></li>
--   <li><a>llrLogNames</a></li>
--   </ul>
listLogsResponse :: ListLogsResponse

-- | If there might be more results than those appearing in this response,
--   then nextPageToken is included. To get the next set of results, call
--   this method again using the value of nextPageToken as pageToken.
llrNextPageToken :: Lens' ListLogsResponse (Maybe Text)

-- | A list of log names. For example, "projects/my-project/syslog" or
--   "organizations/123/cloudresourcemanager.googleapis.com%2Factivity".
llrLogNames :: Lens' ListLogsResponse [Text]

-- | Result returned from ListMonitoredResourceDescriptors.
--   
--   <i>See:</i> <a>listMonitoredResourceDescriptorsResponse</a> smart
--   constructor.
data ListMonitoredResourceDescriptorsResponse

-- | Creates a value of <a>ListMonitoredResourceDescriptorsResponse</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>lmrdrNextPageToken</a></li>
--   <li><a>lmrdrResourceDescriptors</a></li>
--   </ul>
listMonitoredResourceDescriptorsResponse :: ListMonitoredResourceDescriptorsResponse

-- | If there might be more results than those appearing in this response,
--   then nextPageToken is included. To get the next set of results, call
--   this method again using the value of nextPageToken as pageToken.
lmrdrNextPageToken :: Lens' ListMonitoredResourceDescriptorsResponse (Maybe Text)

-- | A list of resource descriptors.
lmrdrResourceDescriptors :: Lens' ListMonitoredResourceDescriptorsResponse [MonitoredResourceDescriptor]

-- | The type of data that can be assigned to the label.
data LabelDescriptorValueType

-- | <tt>STRING</tt> A variable-length string. This is the default.
String :: LabelDescriptorValueType

-- | <tt>BOOL</tt> Boolean; true or false.
Bool :: LabelDescriptorValueType

-- | <tt>INT64</tt> A 64-bit signed integer.
INT64 :: LabelDescriptorValueType

-- | A common proto for logging HTTP requests. Only contains semantics
--   defined by the HTTP specification. Product-specific logging
--   information MUST be defined in a separate message.
--   
--   <i>See:</i> <a>hTTPRequest</a> smart constructor.
data HTTPRequest

-- | Creates a value of <a>HTTPRequest</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>httprStatus</a></li>
--   <li><a>httprRequestURL</a></li>
--   <li><a>httprCacheFillBytes</a></li>
--   <li><a>httprRemoteIP</a></li>
--   <li><a>httprLatency</a></li>
--   <li><a>httprServerIP</a></li>
--   <li><a>httprRequestSize</a></li>
--   <li><a>httprCacheValidatedWithOriginServer</a></li>
--   <li><a>httprUserAgent</a></li>
--   <li><a>httprCacheLookup</a></li>
--   <li><a>httprResponseSize</a></li>
--   <li><a>httprRequestMethod</a></li>
--   <li><a>httprCacheHit</a></li>
--   <li><a>httprReferer</a></li>
--   </ul>
hTTPRequest :: HTTPRequest

-- | The response code indicating the status of response. Examples: 200,
--   404.
httprStatus :: Lens' HTTPRequest (Maybe Int32)

-- | The scheme (http, https), the host name, the path and the query
--   portion of the URL that was requested. Example:
--   "http://example.com/some/info?color=red".
httprRequestURL :: Lens' HTTPRequest (Maybe Text)

-- | The number of HTTP response bytes inserted into cache. Set only when a
--   cache fill was attempted.
httprCacheFillBytes :: Lens' HTTPRequest (Maybe Int64)

-- | The IP address (IPv4 or IPv6) of the client that issued the HTTP
--   request. Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
httprRemoteIP :: Lens' HTTPRequest (Maybe Text)

-- | The request processing latency on the server, from the time the
--   request was received until the response was sent.
httprLatency :: Lens' HTTPRequest (Maybe Scientific)

-- | The IP address (IPv4 or IPv6) of the origin server that the request
--   was sent to.
httprServerIP :: Lens' HTTPRequest (Maybe Text)

-- | The size of the HTTP request message in bytes, including the request
--   headers and the request body.
httprRequestSize :: Lens' HTTPRequest (Maybe Int64)

-- | Whether or not the response was validated with the origin server
--   before being served from cache. This field is only meaningful if
--   cache_hit is True.
httprCacheValidatedWithOriginServer :: Lens' HTTPRequest (Maybe Bool)

-- | The user agent sent by the client. Example: "Mozilla/4.0 (compatible;
--   MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
httprUserAgent :: Lens' HTTPRequest (Maybe Text)

-- | Whether or not a cache lookup was attempted.
httprCacheLookup :: Lens' HTTPRequest (Maybe Bool)

-- | The size of the HTTP response message sent back to the client, in
--   bytes, including the response headers and the response body.
httprResponseSize :: Lens' HTTPRequest (Maybe Int64)

-- | The request method. Examples: "GET", "HEAD", "PUT", "POST".
httprRequestMethod :: Lens' HTTPRequest (Maybe Text)

-- | Whether or not an entity was served from cache (with or without
--   validation).
httprCacheHit :: Lens' HTTPRequest (Maybe Bool)

-- | The referer URL of the request, as defined in HTTP/1.1 Header Field
--   Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
httprReferer :: Lens' HTTPRequest (Maybe Text)

-- | Optional. Default labels that are added to the labels field of all log
--   entries in entries. If a log entry already has a label with the same
--   key as a label in this parameter, then the log entry's label is not
--   changed. See LogEntry.
--   
--   <i>See:</i> <a>writeLogEntriesRequestLabels</a> smart constructor.
data WriteLogEntriesRequestLabels

-- | Creates a value of <a>WriteLogEntriesRequestLabels</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>wlerlAddtional</a></li>
--   </ul>
writeLogEntriesRequestLabels :: HashMap Text Text -> WriteLogEntriesRequestLabels
wlerlAddtional :: Lens' WriteLogEntriesRequestLabels (HashMap Text Text)

-- | An object representing a resource that can be used for monitoring,
--   logging, billing, or other purposes. Examples include virtual machine
--   instances, databases, and storage devices such as disks. The type
--   field identifies a MonitoredResourceDescriptor object that describes
--   the resource's schema. Information in the labels field identifies the
--   actual resource and its attributes according to the schema. For
--   example, a particular Compute Engine VM instance could be represented
--   by the following object, because the MonitoredResourceDescriptor for
--   "gce_instance" has labels "instance_id" and "zone": { "type":
--   "gce_instance", "labels": { "instance_id": "12345678901234", "zone":
--   "us-central1-a" }}
--   
--   <i>See:</i> <a>monitoredResource</a> smart constructor.
data MonitoredResource

-- | Creates a value of <a>MonitoredResource</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>mrLabels</a></li>
--   <li><a>mrType</a></li>
--   </ul>
monitoredResource :: MonitoredResource

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
mrLabels :: Lens' MonitoredResource (Maybe MonitoredResourceLabels)

-- | Required. The monitored resource type. This field must match the type
--   field of a MonitoredResourceDescriptor object. For example, the type
--   of a Cloud SQL database is "cloudsql_database".
mrType :: Lens' MonitoredResource (Maybe Text)

-- | V1 error format.
data Xgafv

-- | <tt>1</tt> v1 error format
X1 :: Xgafv

-- | <tt>2</tt> v2 error format
X2 :: Xgafv

-- | Application log line emitted while processing a request.
--   
--   <i>See:</i> <a>logLine</a> smart constructor.
data LogLine

-- | Creates a value of <a>LogLine</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>llTime</a></li>
--   <li><a>llSeverity</a></li>
--   <li><a>llLogMessage</a></li>
--   <li><a>llSourceLocation</a></li>
--   </ul>
logLine :: LogLine

-- | Approximate time when this log entry was made.
llTime :: Lens' LogLine (Maybe UTCTime)

-- | Severity of this log entry.
llSeverity :: Lens' LogLine (Maybe LogLineSeverity)

-- | App-provided log message.
llLogMessage :: Lens' LogLine (Maybe Text)

-- | Where in the source code this log message was written.
llSourceLocation :: Lens' LogLine (Maybe SourceLocation)

-- | A description of a label.
--   
--   <i>See:</i> <a>labelDescriptor</a> smart constructor.
data LabelDescriptor

-- | Creates a value of <a>LabelDescriptor</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>ldKey</a></li>
--   <li><a>ldValueType</a></li>
--   <li><a>ldDescription</a></li>
--   </ul>
labelDescriptor :: LabelDescriptor

-- | The label key.
ldKey :: Lens' LabelDescriptor (Maybe Text)

-- | The type of data that can be assigned to the label.
ldValueType :: Lens' LabelDescriptor (Maybe LabelDescriptorValueType)

-- | A human-readable description for the label.
ldDescription :: Lens' LabelDescriptor (Maybe Text)

-- | The parameters to ListLogEntries.
--   
--   <i>See:</i> <a>listLogEntriesRequest</a> smart constructor.
data ListLogEntriesRequest

-- | Creates a value of <a>ListLogEntriesRequest</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>llerOrderBy</a></li>
--   <li><a>llerProjectIds</a></li>
--   <li><a>llerFilter</a></li>
--   <li><a>llerPageToken</a></li>
--   <li><a>llerPageSize</a></li>
--   <li><a>llerResourceNames</a></li>
--   </ul>
listLogEntriesRequest :: ListLogEntriesRequest

-- | Optional. How the results should be sorted. Presently, the only
--   permitted values are "timestamp asc" (default) and "timestamp desc".
--   The first option returns entries in order of increasing values of
--   LogEntry.timestamp (oldest first), and the second option returns
--   entries in order of decreasing timestamps (newest first). Entries with
--   equal timestamps are returned in order of LogEntry.insertId.
llerOrderBy :: Lens' ListLogEntriesRequest (Maybe Text)

-- | Deprecated. Use resource_names instead. One or more project
--   identifiers or project numbers from which to retrieve log entries.
--   Example: "my-project-1A". If present, these project identifiers are
--   converted to resource name format and added to the list of resources
--   in resource_names.
llerProjectIds :: Lens' ListLogEntriesRequest [Text]

-- | Optional. A filter that chooses which log entries to return. See
--   Advanced Logs Filters. Only log entries that match the filter are
--   returned. An empty filter matches all log entries in the resources
--   listed in resource_names. Referencing a parent resource that is not
--   listed in resource_names will cause the filter to return no results.
--   The maximum length of the filter is 20000 characters.
llerFilter :: Lens' ListLogEntriesRequest (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
llerPageToken :: Lens' ListLogEntriesRequest (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
llerPageSize :: Lens' ListLogEntriesRequest (Maybe Int32)

-- | Required. Names of one or more resources from which to retrieve log
--   entries: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]"
--   Projects listed in the project_ids field are added to this list.
llerResourceNames :: Lens' ListLogEntriesRequest [Text]

-- | Additional information about a potentially long-running operation with
--   which a log entry is associated.
--   
--   <i>See:</i> <a>logEntryOperation</a> smart constructor.
data LogEntryOperation

-- | Creates a value of <a>LogEntryOperation</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>leoFirst</a></li>
--   <li><a>leoProducer</a></li>
--   <li><a>leoLast</a></li>
--   <li><a>leoId</a></li>
--   </ul>
logEntryOperation :: LogEntryOperation

-- | Optional. Set this to True if this is the first log entry in the
--   operation.
leoFirst :: Lens' LogEntryOperation (Maybe Bool)

-- | Optional. An arbitrary producer identifier. The combination of id and
--   producer must be globally unique. Examples for producer:
--   "MyDivision.MyBigCompany.com", "github.com/MyProject/MyApplication".
leoProducer :: Lens' LogEntryOperation (Maybe Text)

-- | Optional. Set this to True if this is the last log entry in the
--   operation.
leoLast :: Lens' LogEntryOperation (Maybe Bool)

-- | Optional. An arbitrary operation identifier. Log entries with the same
--   identifier are assumed to be part of the same operation.
leoId :: Lens' LogEntryOperation (Maybe Text)

-- | Describes a logs-based metric. The value of the metric is the number
--   of log entries that match a logs filter in a given time interval.
--   
--   <i>See:</i> <a>logMetric</a> smart constructor.
data LogMetric

-- | Creates a value of <a>LogMetric</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>lmName</a></li>
--   <li><a>lmVersion</a></li>
--   <li><a>lmFilter</a></li>
--   <li><a>lmDescription</a></li>
--   </ul>
logMetric :: LogMetric

-- | Required. The client-assigned metric identifier. Examples:
--   "error_count", "nginx/requests".Metric identifiers are limited to 100
--   characters and can include only the following characters: A-Z, a-z,
--   0-9, and the special characters _-.,+!*',()%/. The forward-slash
--   character (/) denotes a hierarchy of name pieces, and it cannot be the
--   first character of the name.The metric identifier in this field must
--   not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding).
--   However, when the metric identifier appears as the [METRIC_ID] part of
--   a metric_name API parameter, then the metric identifier must be
--   URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
lmName :: Lens' LogMetric (Maybe Text)

-- | Output only. The API version that created or updated this metric. The
--   version also dictates the syntax of the filter expression. When a
--   value for this field is missing, the default value of V2 should be
--   assumed.
lmVersion :: Lens' LogMetric (Maybe LogMetricVersion)

-- | Required. An advanced logs filter which is used to match log entries.
--   Example: "resource.type=gae_app AND severity&gt;=ERROR" The maximum
--   length of the filter is 20000 characters.
lmFilter :: Lens' LogMetric (Maybe Text)

-- | Optional. A description of this metric, which is used in
--   documentation.
lmDescription :: Lens' LogMetric (Maybe Text)

-- | An individual entry in a log.
--   
--   <i>See:</i> <a>logEntry</a> smart constructor.
data LogEntry

-- | Creates a value of <a>LogEntry</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>leOperation</a></li>
--   <li><a>leSeverity</a></li>
--   <li><a>leTextPayload</a></li>
--   <li><a>leJSONPayload</a></li>
--   <li><a>leHTTPRequest</a></li>
--   <li><a>leResource</a></li>
--   <li><a>leInsertId</a></li>
--   <li><a>leLabels</a></li>
--   <li><a>leProtoPayload</a></li>
--   <li><a>leSourceLocation</a></li>
--   <li><a>leLogName</a></li>
--   <li><a>leTimestamp</a></li>
--   <li><a>leTrace</a></li>
--   </ul>
logEntry :: LogEntry

-- | Optional. Information about an operation associated with the log
--   entry, if applicable.
leOperation :: Lens' LogEntry (Maybe LogEntryOperation)

-- | Optional. The severity of the log entry. The default value is
--   LogSeverity.DEFAULT.
leSeverity :: Lens' LogEntry (Maybe LogEntrySeverity)

-- | The log entry payload, represented as a Unicode string (UTF-8).
leTextPayload :: Lens' LogEntry (Maybe Text)

-- | The log entry payload, represented as a structure that is expressed as
--   a JSON object.
leJSONPayload :: Lens' LogEntry (Maybe LogEntryJSONPayload)

-- | Optional. Information about the HTTP request associated with this log
--   entry, if applicable.
leHTTPRequest :: Lens' LogEntry (Maybe HTTPRequest)

-- | Required. The monitored resource associated with this log entry.
--   Example: a log entry that reports a database error would be associated
--   with the monitored resource designating the particular database that
--   reported the error.
leResource :: Lens' LogEntry (Maybe MonitoredResource)

-- | Optional. A unique ID for the log entry. If you provide this field,
--   the logging service considers other log entries in the same project
--   with the same ID as duplicates which can be removed. If omitted,
--   Stackdriver Logging will generate a unique ID for this log entry.
leInsertId :: Lens' LogEntry (Maybe Text)

-- | Optional. A set of user-defined (key, value) data that provides
--   additional information about the log entry.
leLabels :: Lens' LogEntry (Maybe LogEntryLabels)

-- | The log entry payload, represented as a protocol buffer. Some Google
--   Cloud Platform services use this field for their log entry payloads.
leProtoPayload :: Lens' LogEntry (Maybe LogEntryProtoPayload)

-- | Optional. Source code location information associated with the log
--   entry, if any.
leSourceLocation :: Lens' LogEntry (Maybe LogEntrySourceLocation)

-- | Required. The resource name of the log to which this log entry
--   belongs: "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded within log_name. Example:
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   [LOG_ID] must be less than 512 characters long and can only include
--   the following characters: upper and lower case alphanumeric
--   characters, forward-slash, underscore, hyphen, and period.For backward
--   compatibility, if log_name begins with a forward-slash, such as
--   /projects/..., then the log entry is ingested as usual but the
--   forward-slash is removed. Listing the log entry will not show the
--   leading slash and filtering for a log name with a leading slash will
--   never return any results.
leLogName :: Lens' LogEntry (Maybe Text)

-- | Optional. The time the event described by the log entry occurred. If
--   omitted, Stackdriver Logging will use the time the log entry is
--   received.
leTimestamp :: Lens' LogEntry (Maybe UTCTime)

-- | Optional. Resource name of the trace associated with the log entry, if
--   any. If it contains a relative resource name, the name is assumed to
--   be relative to //tracing.googleapis.com. Example:
--   projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
leTrace :: Lens' LogEntry (Maybe Text)

-- | Specifies a location in a source code file.
--   
--   <i>See:</i> <a>sourceLocation</a> smart constructor.
data SourceLocation

-- | Creates a value of <a>SourceLocation</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>slLine</a></li>
--   <li><a>slFunctionName</a></li>
--   <li><a>slFile</a></li>
--   </ul>
sourceLocation :: SourceLocation

-- | Line within the source file.
slLine :: Lens' SourceLocation (Maybe Int64)

-- | Human-readable name of the function or method being invoked, with
--   optional context such as the class or package name. This information
--   is used in contexts such as the logs viewer, where a file and line
--   number are less meaningful. The format can vary by language. For
--   example: qual.if.ied.Class.method (Java), dir/package.func (Go),
--   function (Python).
slFunctionName :: Lens' SourceLocation (Maybe Text)

-- | Source file name. Depending on the runtime environment, this might be
--   a simple name or a fully-qualified name.
slFile :: Lens' SourceLocation (Maybe Text)

-- | Optional. The severity of the log entry. The default value is
--   LogSeverity.DEFAULT.
data LogEntrySeverity

-- | <tt>DEFAULT</tt> (0) The log entry has no assigned severity level.
Default :: LogEntrySeverity

-- | <tt>DEBUG</tt> (100) Debug or trace information.
Debug :: LogEntrySeverity

-- | <tt>INFO</tt> (200) Routine information, such as ongoing status or
--   performance.
Info :: LogEntrySeverity

-- | <tt>NOTICE</tt> (300) Normal but significant events, such as start up,
--   shut down, or a configuration change.
Notice :: LogEntrySeverity

-- | <tt>WARNING</tt> (400) Warning events might cause problems.
Warning :: LogEntrySeverity

-- | <tt>ERROR</tt> (500) Error events are likely to cause problems.
Error' :: LogEntrySeverity

-- | <tt>CRITICAL</tt> (600) Critical events cause more severe problems or
--   outages.
Critical :: LogEntrySeverity

-- | <tt>ALERT</tt> (700) A person must take an action immediately.
Alert :: LogEntrySeverity

-- | <tt>EMERGENCY</tt> (800) One or more systems are unusable.
Emergency :: LogEntrySeverity

-- | A reference to a particular snapshot of the source tree used to build
--   and deploy an application.
--   
--   <i>See:</i> <a>sourceReference</a> smart constructor.
data SourceReference

-- | Creates a value of <a>SourceReference</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>srRepository</a></li>
--   <li><a>srRevisionId</a></li>
--   </ul>
sourceReference :: SourceReference

-- | Optional. A URI string identifying the repository. Example:
--   "https://github.com/GoogleCloudPlatform/kubernetes.git"
srRepository :: Lens' SourceReference (Maybe Text)

-- | The canonical and persistent identifier of the deployed revision.
--   Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
srRevisionId :: Lens' SourceReference (Maybe Text)

-- | The log entry payload, represented as a structure that is expressed as
--   a JSON object.
--   
--   <i>See:</i> <a>logEntryJSONPayload</a> smart constructor.
data LogEntryJSONPayload

-- | Creates a value of <a>LogEntryJSONPayload</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>lejpAddtional</a></li>
--   </ul>
logEntryJSONPayload :: HashMap Text JSONValue -> LogEntryJSONPayload

-- | Properties of the object.
lejpAddtional :: Lens' LogEntryJSONPayload (HashMap Text JSONValue)

-- | Severity of this log entry.
data LogLineSeverity

-- | <tt>DEFAULT</tt> (0) The log entry has no assigned severity level.
LLSDefault :: LogLineSeverity

-- | <tt>DEBUG</tt> (100) Debug or trace information.
LLSDebug :: LogLineSeverity

-- | <tt>INFO</tt> (200) Routine information, such as ongoing status or
--   performance.
LLSInfo :: LogLineSeverity

-- | <tt>NOTICE</tt> (300) Normal but significant events, such as start up,
--   shut down, or a configuration change.
LLSNotice :: LogLineSeverity

-- | <tt>WARNING</tt> (400) Warning events might cause problems.
LLSWarning :: LogLineSeverity

-- | <tt>ERROR</tt> (500) Error events are likely to cause problems.
LLSError' :: LogLineSeverity

-- | <tt>CRITICAL</tt> (600) Critical events cause more severe problems or
--   outages.
LLSCritical :: LogLineSeverity

-- | <tt>ALERT</tt> (700) A person must take an action immediately.
LLSAlert :: LogLineSeverity

-- | <tt>EMERGENCY</tt> (800) One or more systems are unusable.
LLSEmergency :: LogLineSeverity


-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.logs.delete</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Logs.Delete

-- | A resource alias for <tt>logging.billingAccounts.logs.delete</tt>
--   method which the <a>BillingAccountsLogsDelete</a> request conforms to.
type BillingAccountsLogsDeleteResource = "v2" :> (Capture "logName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>BillingAccountsLogsDelete</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>baldXgafv</a></li>
--   <li><a>baldUploadProtocol</a></li>
--   <li><a>baldPp</a></li>
--   <li><a>baldAccessToken</a></li>
--   <li><a>baldUploadType</a></li>
--   <li><a>baldBearerToken</a></li>
--   <li><a>baldLogName</a></li>
--   <li><a>baldCallback</a></li>
--   </ul>
billingAccountsLogsDelete :: Text -> BillingAccountsLogsDelete

-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>billingAccountsLogsDelete</a> smart constructor.
data BillingAccountsLogsDelete

-- | V1 error format.
baldXgafv :: Lens' BillingAccountsLogsDelete (Maybe Xgafv)

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

-- | Pretty-print response.
baldPp :: Lens' BillingAccountsLogsDelete Bool

-- | OAuth access token.
baldAccessToken :: Lens' BillingAccountsLogsDelete (Maybe Text)

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

-- | OAuth bearer token.
baldBearerToken :: Lens' BillingAccountsLogsDelete (Maybe Text)

-- | Required. The resource name of the log to delete:
--   "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded. For example, "projects/my-project-id/logs/syslog",
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   For more information about log names, see LogEntry.
baldLogName :: Lens' BillingAccountsLogsDelete Text

-- | JSONP
baldCallback :: Lens' BillingAccountsLogsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Logs.Delete.BillingAccountsLogsDelete
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Logs.Delete.BillingAccountsLogsDelete
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Logs.Delete.BillingAccountsLogsDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Logs.Delete.BillingAccountsLogsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Logs.Delete.BillingAccountsLogsDelete


-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.logs.list</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Logs.List

-- | A resource alias for <tt>logging.billingAccounts.logs.list</tt> method
--   which the <a>BillingAccountsLogsList</a> request conforms to.
type BillingAccountsLogsListResource = "v2" :> (Capture "parent" Text :> ("logs" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListLogsResponse))))))))))))

-- | Creates a value of <a>BillingAccountsLogsList</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>ballParent</a></li>
--   <li><a>ballXgafv</a></li>
--   <li><a>ballUploadProtocol</a></li>
--   <li><a>ballPp</a></li>
--   <li><a>ballAccessToken</a></li>
--   <li><a>ballUploadType</a></li>
--   <li><a>ballBearerToken</a></li>
--   <li><a>ballPageToken</a></li>
--   <li><a>ballPageSize</a></li>
--   <li><a>ballCallback</a></li>
--   </ul>
billingAccountsLogsList :: Text -> BillingAccountsLogsList

-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>billingAccountsLogsList</a> smart constructor.
data BillingAccountsLogsList

-- | Required. The resource name that owns the logs:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]"
ballParent :: Lens' BillingAccountsLogsList Text

-- | V1 error format.
ballXgafv :: Lens' BillingAccountsLogsList (Maybe Xgafv)

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

-- | Pretty-print response.
ballPp :: Lens' BillingAccountsLogsList Bool

-- | OAuth access token.
ballAccessToken :: Lens' BillingAccountsLogsList (Maybe Text)

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

-- | OAuth bearer token.
ballBearerToken :: Lens' BillingAccountsLogsList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
ballPageToken :: Lens' BillingAccountsLogsList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
ballPageSize :: Lens' BillingAccountsLogsList (Maybe Int32)

-- | JSONP
ballCallback :: Lens' BillingAccountsLogsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Logs.List.BillingAccountsLogsList
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Logs.List.BillingAccountsLogsList
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Logs.List.BillingAccountsLogsList
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Logs.List.BillingAccountsLogsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Logs.List.BillingAccountsLogsList


-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.sinks.create</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Sinks.Create

-- | A resource alias for <tt>logging.billingAccounts.sinks.create</tt>
--   method which the <a>BillingAccountsSinksCreate</a> request conforms
--   to.
type BillingAccountsSinksCreateResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Post '[JSON] LogSink))))))))))))

-- | Creates a value of <a>BillingAccountsSinksCreate</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>bascParent</a></li>
--   <li><a>bascXgafv</a></li>
--   <li><a>bascUniqueWriterIdentity</a></li>
--   <li><a>bascUploadProtocol</a></li>
--   <li><a>bascPp</a></li>
--   <li><a>bascAccessToken</a></li>
--   <li><a>bascUploadType</a></li>
--   <li><a>bascPayload</a></li>
--   <li><a>bascBearerToken</a></li>
--   <li><a>bascCallback</a></li>
--   </ul>
billingAccountsSinksCreate :: Text -> LogSink -> BillingAccountsSinksCreate

-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>billingAccountsSinksCreate</a> smart constructor.
data BillingAccountsSinksCreate

-- | Required. The resource in which to create the sink:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" Examples:
--   "projects/my-logging-project", "organizations/123456789".
bascParent :: Lens' BillingAccountsSinksCreate Text

-- | V1 error format.
bascXgafv :: Lens' BillingAccountsSinksCreate (Maybe Xgafv)

-- | Optional. Determines the kind of IAM identity returned as
--   writer_identity in the new sink. If this value is omitted or set to
--   false, and if the sink's parent is a project, then the value returned
--   as writer_identity is cloud-logs'google.com, the same identity used
--   before the addition of writer identities to this API. The sink's
--   destination must be in the same project as the sink itself.If this
--   field is set to true, or if the sink is owned by a non-project
--   resource such as an organization, then the value of writer_identity
--   will be a unique service account used only for exports from the new
--   sink. For more information, see writer_identity in LogSink.
bascUniqueWriterIdentity :: Lens' BillingAccountsSinksCreate (Maybe Bool)

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

-- | Pretty-print response.
bascPp :: Lens' BillingAccountsSinksCreate Bool

-- | OAuth access token.
bascAccessToken :: Lens' BillingAccountsSinksCreate (Maybe Text)

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

-- | Multipart request metadata.
bascPayload :: Lens' BillingAccountsSinksCreate LogSink

-- | OAuth bearer token.
bascBearerToken :: Lens' BillingAccountsSinksCreate (Maybe Text)

-- | JSONP
bascCallback :: Lens' BillingAccountsSinksCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Sinks.Create.BillingAccountsSinksCreate
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Sinks.Create.BillingAccountsSinksCreate
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Sinks.Create.BillingAccountsSinksCreate
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Sinks.Create.BillingAccountsSinksCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Sinks.Create.BillingAccountsSinksCreate


-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.sinks.delete</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Sinks.Delete

-- | A resource alias for <tt>logging.billingAccounts.sinks.delete</tt>
--   method which the <a>BillingAccountsSinksDelete</a> request conforms
--   to.
type BillingAccountsSinksDeleteResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>BillingAccountsSinksDelete</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>basdXgafv</a></li>
--   <li><a>basdUploadProtocol</a></li>
--   <li><a>basdPp</a></li>
--   <li><a>basdAccessToken</a></li>
--   <li><a>basdUploadType</a></li>
--   <li><a>basdBearerToken</a></li>
--   <li><a>basdSinkName</a></li>
--   <li><a>basdCallback</a></li>
--   </ul>
billingAccountsSinksDelete :: Text -> BillingAccountsSinksDelete

-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>billingAccountsSinksDelete</a> smart constructor.
data BillingAccountsSinksDelete

-- | V1 error format.
basdXgafv :: Lens' BillingAccountsSinksDelete (Maybe Xgafv)

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

-- | Pretty-print response.
basdPp :: Lens' BillingAccountsSinksDelete Bool

-- | OAuth access token.
basdAccessToken :: Lens' BillingAccountsSinksDelete (Maybe Text)

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

-- | OAuth bearer token.
basdBearerToken :: Lens' BillingAccountsSinksDelete (Maybe Text)

-- | Required. The full resource name of the sink to delete, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" It is an error if
--   the sink does not exist. Example:
--   "projects/my-project-id/sinks/my-sink-id". It is an error if the sink
--   does not exist.
basdSinkName :: Lens' BillingAccountsSinksDelete Text

-- | JSONP
basdCallback :: Lens' BillingAccountsSinksDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Sinks.Delete.BillingAccountsSinksDelete
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Sinks.Delete.BillingAccountsSinksDelete
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Sinks.Delete.BillingAccountsSinksDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Sinks.Delete.BillingAccountsSinksDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Sinks.Delete.BillingAccountsSinksDelete


-- | Gets a sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.sinks.get</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Sinks.Get

-- | A resource alias for <tt>logging.billingAccounts.sinks.get</tt> method
--   which the <a>BillingAccountsSinksGet</a> request conforms to.
type BillingAccountsSinksGetResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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] LogSink)))))))))

-- | Creates a value of <a>BillingAccountsSinksGet</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>basgXgafv</a></li>
--   <li><a>basgUploadProtocol</a></li>
--   <li><a>basgPp</a></li>
--   <li><a>basgAccessToken</a></li>
--   <li><a>basgUploadType</a></li>
--   <li><a>basgBearerToken</a></li>
--   <li><a>basgSinkName</a></li>
--   <li><a>basgCallback</a></li>
--   </ul>
billingAccountsSinksGet :: Text -> BillingAccountsSinksGet

-- | Gets a sink.
--   
--   <i>See:</i> <a>billingAccountsSinksGet</a> smart constructor.
data BillingAccountsSinksGet

-- | V1 error format.
basgXgafv :: Lens' BillingAccountsSinksGet (Maybe Xgafv)

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

-- | Pretty-print response.
basgPp :: Lens' BillingAccountsSinksGet Bool

-- | OAuth access token.
basgAccessToken :: Lens' BillingAccountsSinksGet (Maybe Text)

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

-- | OAuth bearer token.
basgBearerToken :: Lens' BillingAccountsSinksGet (Maybe Text)

-- | Required. The parent resource name of the sink:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
basgSinkName :: Lens' BillingAccountsSinksGet Text

-- | JSONP
basgCallback :: Lens' BillingAccountsSinksGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Sinks.Get.BillingAccountsSinksGet
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Sinks.Get.BillingAccountsSinksGet
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Sinks.Get.BillingAccountsSinksGet
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Sinks.Get.BillingAccountsSinksGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Sinks.Get.BillingAccountsSinksGet


-- | Lists sinks.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.sinks.list</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Sinks.List

-- | A resource alias for <tt>logging.billingAccounts.sinks.list</tt>
--   method which the <a>BillingAccountsSinksList</a> request conforms to.
type BillingAccountsSinksListResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListSinksResponse))))))))))))

-- | Creates a value of <a>BillingAccountsSinksList</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>baslParent</a></li>
--   <li><a>baslXgafv</a></li>
--   <li><a>baslUploadProtocol</a></li>
--   <li><a>baslPp</a></li>
--   <li><a>baslAccessToken</a></li>
--   <li><a>baslUploadType</a></li>
--   <li><a>baslBearerToken</a></li>
--   <li><a>baslPageToken</a></li>
--   <li><a>baslPageSize</a></li>
--   <li><a>baslCallback</a></li>
--   </ul>
billingAccountsSinksList :: Text -> BillingAccountsSinksList

-- | Lists sinks.
--   
--   <i>See:</i> <a>billingAccountsSinksList</a> smart constructor.
data BillingAccountsSinksList

-- | Required. The parent resource whose sinks are to be listed. Examples:
--   "projects/my-logging-project", "organizations/123456789".
baslParent :: Lens' BillingAccountsSinksList Text

-- | V1 error format.
baslXgafv :: Lens' BillingAccountsSinksList (Maybe Xgafv)

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

-- | Pretty-print response.
baslPp :: Lens' BillingAccountsSinksList Bool

-- | OAuth access token.
baslAccessToken :: Lens' BillingAccountsSinksList (Maybe Text)

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

-- | OAuth bearer token.
baslBearerToken :: Lens' BillingAccountsSinksList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
baslPageToken :: Lens' BillingAccountsSinksList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
baslPageSize :: Lens' BillingAccountsSinksList (Maybe Int32)

-- | JSONP
baslCallback :: Lens' BillingAccountsSinksList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Sinks.List.BillingAccountsSinksList
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Sinks.List.BillingAccountsSinksList
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Sinks.List.BillingAccountsSinksList
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Sinks.List.BillingAccountsSinksList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Sinks.List.BillingAccountsSinksList


-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.billingAccounts.sinks.update</tt>.
module Network.Google.Resource.Logging.BillingAccounts.Sinks.Update

-- | A resource alias for <tt>logging.billingAccounts.sinks.update</tt>
--   method which the <a>BillingAccountsSinksUpdate</a> request conforms
--   to.
type BillingAccountsSinksUpdateResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Put '[JSON] LogSink)))))))))))

-- | Creates a value of <a>BillingAccountsSinksUpdate</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>basuXgafv</a></li>
--   <li><a>basuUniqueWriterIdentity</a></li>
--   <li><a>basuUploadProtocol</a></li>
--   <li><a>basuPp</a></li>
--   <li><a>basuAccessToken</a></li>
--   <li><a>basuUploadType</a></li>
--   <li><a>basuPayload</a></li>
--   <li><a>basuBearerToken</a></li>
--   <li><a>basuSinkName</a></li>
--   <li><a>basuCallback</a></li>
--   </ul>
billingAccountsSinksUpdate :: LogSink -> Text -> BillingAccountsSinksUpdate

-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>billingAccountsSinksUpdate</a> smart constructor.
data BillingAccountsSinksUpdate

-- | V1 error format.
basuXgafv :: Lens' BillingAccountsSinksUpdate (Maybe Xgafv)

-- | Optional. See sinks.create for a description of this field. When
--   updating a sink, the effect of this field on the value of
--   writer_identity in the updated sink depends on both the old and new
--   values of this field: If the old and new values of this field are both
--   false or both true, then there is no change to the sink's
--   writer_identity. If the old value was false and the new value is true,
--   then writer_identity is changed to a unique service account. It is an
--   error if the old value was true and the new value is false.
basuUniqueWriterIdentity :: Lens' BillingAccountsSinksUpdate (Maybe Bool)

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

-- | Pretty-print response.
basuPp :: Lens' BillingAccountsSinksUpdate Bool

-- | OAuth access token.
basuAccessToken :: Lens' BillingAccountsSinksUpdate (Maybe Text)

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

-- | Multipart request metadata.
basuPayload :: Lens' BillingAccountsSinksUpdate LogSink

-- | OAuth bearer token.
basuBearerToken :: Lens' BillingAccountsSinksUpdate (Maybe Text)

-- | Required. The full resource name of the sink to update, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
basuSinkName :: Lens' BillingAccountsSinksUpdate Text

-- | JSONP
basuCallback :: Lens' BillingAccountsSinksUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.BillingAccounts.Sinks.Update.BillingAccountsSinksUpdate
instance Data.Data.Data Network.Google.Resource.Logging.BillingAccounts.Sinks.Update.BillingAccountsSinksUpdate
instance GHC.Show.Show Network.Google.Resource.Logging.BillingAccounts.Sinks.Update.BillingAccountsSinksUpdate
instance GHC.Classes.Eq Network.Google.Resource.Logging.BillingAccounts.Sinks.Update.BillingAccountsSinksUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.BillingAccounts.Sinks.Update.BillingAccountsSinksUpdate


-- | Lists log entries. Use this method to retrieve log entries from
--   Stackdriver Logging. For ways to export log entries, see Exporting
--   Logs.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.entries.list</tt>.
module Network.Google.Resource.Logging.Entries.List

-- | A resource alias for <tt>logging.entries.list</tt> method which the
--   <a>EntriesList</a> request conforms to.
type EntriesListResource = "v2" :> ("entries:list" :> (QueryParam "$.xgafv" Xgafv :> (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] ListLogEntriesRequest :> Post '[JSON] ListLogEntriesResponse))))))))))

-- | Creates a value of <a>EntriesList</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>elXgafv</a></li>
--   <li><a>elUploadProtocol</a></li>
--   <li><a>elPp</a></li>
--   <li><a>elAccessToken</a></li>
--   <li><a>elUploadType</a></li>
--   <li><a>elPayload</a></li>
--   <li><a>elBearerToken</a></li>
--   <li><a>elCallback</a></li>
--   </ul>
entriesList :: ListLogEntriesRequest -> EntriesList

-- | Lists log entries. Use this method to retrieve log entries from
--   Stackdriver Logging. For ways to export log entries, see Exporting
--   Logs.
--   
--   <i>See:</i> <a>entriesList</a> smart constructor.
data EntriesList

-- | V1 error format.
elXgafv :: Lens' EntriesList (Maybe Xgafv)

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

-- | Pretty-print response.
elPp :: Lens' EntriesList Bool

-- | OAuth access token.
elAccessToken :: Lens' EntriesList (Maybe Text)

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

-- | Multipart request metadata.
elPayload :: Lens' EntriesList ListLogEntriesRequest

-- | OAuth bearer token.
elBearerToken :: Lens' EntriesList (Maybe Text)

-- | JSONP
elCallback :: Lens' EntriesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Entries.List.EntriesList
instance Data.Data.Data Network.Google.Resource.Logging.Entries.List.EntriesList
instance GHC.Show.Show Network.Google.Resource.Logging.Entries.List.EntriesList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Entries.List.EntriesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Entries.List.EntriesList


-- | Writes log entries to Stackdriver Logging. All log entries are written
--   by this method.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.entries.write</tt>.
module Network.Google.Resource.Logging.Entries.Write

-- | A resource alias for <tt>logging.entries.write</tt> method which the
--   <a>EntriesWrite</a> request conforms to.
type EntriesWriteResource = "v2" :> ("entries:write" :> (QueryParam "$.xgafv" Xgafv :> (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] WriteLogEntriesRequest :> Post '[JSON] WriteLogEntriesResponse))))))))))

-- | Creates a value of <a>EntriesWrite</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>ewXgafv</a></li>
--   <li><a>ewUploadProtocol</a></li>
--   <li><a>ewPp</a></li>
--   <li><a>ewAccessToken</a></li>
--   <li><a>ewUploadType</a></li>
--   <li><a>ewPayload</a></li>
--   <li><a>ewBearerToken</a></li>
--   <li><a>ewCallback</a></li>
--   </ul>
entriesWrite :: WriteLogEntriesRequest -> EntriesWrite

-- | Writes log entries to Stackdriver Logging. All log entries are written
--   by this method.
--   
--   <i>See:</i> <a>entriesWrite</a> smart constructor.
data EntriesWrite

-- | V1 error format.
ewXgafv :: Lens' EntriesWrite (Maybe Xgafv)

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

-- | Pretty-print response.
ewPp :: Lens' EntriesWrite Bool

-- | OAuth access token.
ewAccessToken :: Lens' EntriesWrite (Maybe Text)

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

-- | Multipart request metadata.
ewPayload :: Lens' EntriesWrite WriteLogEntriesRequest

-- | OAuth bearer token.
ewBearerToken :: Lens' EntriesWrite (Maybe Text)

-- | JSONP
ewCallback :: Lens' EntriesWrite (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Entries.Write.EntriesWrite
instance Data.Data.Data Network.Google.Resource.Logging.Entries.Write.EntriesWrite
instance GHC.Show.Show Network.Google.Resource.Logging.Entries.Write.EntriesWrite
instance GHC.Classes.Eq Network.Google.Resource.Logging.Entries.Write.EntriesWrite
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Entries.Write.EntriesWrite


-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.logs.delete</tt>.
module Network.Google.Resource.Logging.Folders.Logs.Delete

-- | A resource alias for <tt>logging.folders.logs.delete</tt> method which
--   the <a>FoldersLogsDelete</a> request conforms to.
type FoldersLogsDeleteResource = "v2" :> (Capture "logName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>FoldersLogsDelete</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>fldXgafv</a></li>
--   <li><a>fldUploadProtocol</a></li>
--   <li><a>fldPp</a></li>
--   <li><a>fldAccessToken</a></li>
--   <li><a>fldUploadType</a></li>
--   <li><a>fldBearerToken</a></li>
--   <li><a>fldLogName</a></li>
--   <li><a>fldCallback</a></li>
--   </ul>
foldersLogsDelete :: Text -> FoldersLogsDelete

-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>foldersLogsDelete</a> smart constructor.
data FoldersLogsDelete

-- | V1 error format.
fldXgafv :: Lens' FoldersLogsDelete (Maybe Xgafv)

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

-- | Pretty-print response.
fldPp :: Lens' FoldersLogsDelete Bool

-- | OAuth access token.
fldAccessToken :: Lens' FoldersLogsDelete (Maybe Text)

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

-- | OAuth bearer token.
fldBearerToken :: Lens' FoldersLogsDelete (Maybe Text)

-- | Required. The resource name of the log to delete:
--   "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded. For example, "projects/my-project-id/logs/syslog",
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   For more information about log names, see LogEntry.
fldLogName :: Lens' FoldersLogsDelete Text

-- | JSONP
fldCallback :: Lens' FoldersLogsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Logs.Delete.FoldersLogsDelete
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Logs.Delete.FoldersLogsDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Logs.Delete.FoldersLogsDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Logs.Delete.FoldersLogsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Logs.Delete.FoldersLogsDelete


-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.logs.list</tt>.
module Network.Google.Resource.Logging.Folders.Logs.List

-- | A resource alias for <tt>logging.folders.logs.list</tt> method which
--   the <a>FoldersLogsList</a> request conforms to.
type FoldersLogsListResource = "v2" :> (Capture "parent" Text :> ("logs" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListLogsResponse))))))))))))

-- | Creates a value of <a>FoldersLogsList</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>fllParent</a></li>
--   <li><a>fllXgafv</a></li>
--   <li><a>fllUploadProtocol</a></li>
--   <li><a>fllPp</a></li>
--   <li><a>fllAccessToken</a></li>
--   <li><a>fllUploadType</a></li>
--   <li><a>fllBearerToken</a></li>
--   <li><a>fllPageToken</a></li>
--   <li><a>fllPageSize</a></li>
--   <li><a>fllCallback</a></li>
--   </ul>
foldersLogsList :: Text -> FoldersLogsList

-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>foldersLogsList</a> smart constructor.
data FoldersLogsList

-- | Required. The resource name that owns the logs:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]"
fllParent :: Lens' FoldersLogsList Text

-- | V1 error format.
fllXgafv :: Lens' FoldersLogsList (Maybe Xgafv)

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

-- | Pretty-print response.
fllPp :: Lens' FoldersLogsList Bool

-- | OAuth access token.
fllAccessToken :: Lens' FoldersLogsList (Maybe Text)

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

-- | OAuth bearer token.
fllBearerToken :: Lens' FoldersLogsList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
fllPageToken :: Lens' FoldersLogsList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
fllPageSize :: Lens' FoldersLogsList (Maybe Int32)

-- | JSONP
fllCallback :: Lens' FoldersLogsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Logs.List.FoldersLogsList
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Logs.List.FoldersLogsList
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Logs.List.FoldersLogsList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Logs.List.FoldersLogsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Logs.List.FoldersLogsList


-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.sinks.create</tt>.
module Network.Google.Resource.Logging.Folders.Sinks.Create

-- | A resource alias for <tt>logging.folders.sinks.create</tt> method
--   which the <a>FoldersSinksCreate</a> request conforms to.
type FoldersSinksCreateResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Post '[JSON] LogSink))))))))))))

-- | Creates a value of <a>FoldersSinksCreate</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>fscParent</a></li>
--   <li><a>fscXgafv</a></li>
--   <li><a>fscUniqueWriterIdentity</a></li>
--   <li><a>fscUploadProtocol</a></li>
--   <li><a>fscPp</a></li>
--   <li><a>fscAccessToken</a></li>
--   <li><a>fscUploadType</a></li>
--   <li><a>fscPayload</a></li>
--   <li><a>fscBearerToken</a></li>
--   <li><a>fscCallback</a></li>
--   </ul>
foldersSinksCreate :: Text -> LogSink -> FoldersSinksCreate

-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>foldersSinksCreate</a> smart constructor.
data FoldersSinksCreate

-- | Required. The resource in which to create the sink:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" Examples:
--   "projects/my-logging-project", "organizations/123456789".
fscParent :: Lens' FoldersSinksCreate Text

-- | V1 error format.
fscXgafv :: Lens' FoldersSinksCreate (Maybe Xgafv)

-- | Optional. Determines the kind of IAM identity returned as
--   writer_identity in the new sink. If this value is omitted or set to
--   false, and if the sink's parent is a project, then the value returned
--   as writer_identity is cloud-logs'google.com, the same identity used
--   before the addition of writer identities to this API. The sink's
--   destination must be in the same project as the sink itself.If this
--   field is set to true, or if the sink is owned by a non-project
--   resource such as an organization, then the value of writer_identity
--   will be a unique service account used only for exports from the new
--   sink. For more information, see writer_identity in LogSink.
fscUniqueWriterIdentity :: Lens' FoldersSinksCreate (Maybe Bool)

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

-- | Pretty-print response.
fscPp :: Lens' FoldersSinksCreate Bool

-- | OAuth access token.
fscAccessToken :: Lens' FoldersSinksCreate (Maybe Text)

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

-- | Multipart request metadata.
fscPayload :: Lens' FoldersSinksCreate LogSink

-- | OAuth bearer token.
fscBearerToken :: Lens' FoldersSinksCreate (Maybe Text)

-- | JSONP
fscCallback :: Lens' FoldersSinksCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Sinks.Create.FoldersSinksCreate
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Sinks.Create.FoldersSinksCreate
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Sinks.Create.FoldersSinksCreate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Sinks.Create.FoldersSinksCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Sinks.Create.FoldersSinksCreate


-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.sinks.delete</tt>.
module Network.Google.Resource.Logging.Folders.Sinks.Delete

-- | A resource alias for <tt>logging.folders.sinks.delete</tt> method
--   which the <a>FoldersSinksDelete</a> request conforms to.
type FoldersSinksDeleteResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>FoldersSinksDelete</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>fsdXgafv</a></li>
--   <li><a>fsdUploadProtocol</a></li>
--   <li><a>fsdPp</a></li>
--   <li><a>fsdAccessToken</a></li>
--   <li><a>fsdUploadType</a></li>
--   <li><a>fsdBearerToken</a></li>
--   <li><a>fsdSinkName</a></li>
--   <li><a>fsdCallback</a></li>
--   </ul>
foldersSinksDelete :: Text -> FoldersSinksDelete

-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>foldersSinksDelete</a> smart constructor.
data FoldersSinksDelete

-- | V1 error format.
fsdXgafv :: Lens' FoldersSinksDelete (Maybe Xgafv)

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

-- | Pretty-print response.
fsdPp :: Lens' FoldersSinksDelete Bool

-- | OAuth access token.
fsdAccessToken :: Lens' FoldersSinksDelete (Maybe Text)

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

-- | OAuth bearer token.
fsdBearerToken :: Lens' FoldersSinksDelete (Maybe Text)

-- | Required. The full resource name of the sink to delete, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" It is an error if
--   the sink does not exist. Example:
--   "projects/my-project-id/sinks/my-sink-id". It is an error if the sink
--   does not exist.
fsdSinkName :: Lens' FoldersSinksDelete Text

-- | JSONP
fsdCallback :: Lens' FoldersSinksDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Sinks.Delete.FoldersSinksDelete
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Sinks.Delete.FoldersSinksDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Sinks.Delete.FoldersSinksDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Sinks.Delete.FoldersSinksDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Sinks.Delete.FoldersSinksDelete


-- | Gets a sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.sinks.get</tt>.
module Network.Google.Resource.Logging.Folders.Sinks.Get

-- | A resource alias for <tt>logging.folders.sinks.get</tt> method which
--   the <a>FoldersSinksGet</a> request conforms to.
type FoldersSinksGetResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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] LogSink)))))))))

-- | Creates a value of <a>FoldersSinksGet</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>fsgXgafv</a></li>
--   <li><a>fsgUploadProtocol</a></li>
--   <li><a>fsgPp</a></li>
--   <li><a>fsgAccessToken</a></li>
--   <li><a>fsgUploadType</a></li>
--   <li><a>fsgBearerToken</a></li>
--   <li><a>fsgSinkName</a></li>
--   <li><a>fsgCallback</a></li>
--   </ul>
foldersSinksGet :: Text -> FoldersSinksGet

-- | Gets a sink.
--   
--   <i>See:</i> <a>foldersSinksGet</a> smart constructor.
data FoldersSinksGet

-- | V1 error format.
fsgXgafv :: Lens' FoldersSinksGet (Maybe Xgafv)

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

-- | Pretty-print response.
fsgPp :: Lens' FoldersSinksGet Bool

-- | OAuth access token.
fsgAccessToken :: Lens' FoldersSinksGet (Maybe Text)

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

-- | OAuth bearer token.
fsgBearerToken :: Lens' FoldersSinksGet (Maybe Text)

-- | Required. The parent resource name of the sink:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
fsgSinkName :: Lens' FoldersSinksGet Text

-- | JSONP
fsgCallback :: Lens' FoldersSinksGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Sinks.Get.FoldersSinksGet
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Sinks.Get.FoldersSinksGet
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Sinks.Get.FoldersSinksGet
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Sinks.Get.FoldersSinksGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Sinks.Get.FoldersSinksGet


-- | Lists sinks.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.sinks.list</tt>.
module Network.Google.Resource.Logging.Folders.Sinks.List

-- | A resource alias for <tt>logging.folders.sinks.list</tt> method which
--   the <a>FoldersSinksList</a> request conforms to.
type FoldersSinksListResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListSinksResponse))))))))))))

-- | Creates a value of <a>FoldersSinksList</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>fslParent</a></li>
--   <li><a>fslXgafv</a></li>
--   <li><a>fslUploadProtocol</a></li>
--   <li><a>fslPp</a></li>
--   <li><a>fslAccessToken</a></li>
--   <li><a>fslUploadType</a></li>
--   <li><a>fslBearerToken</a></li>
--   <li><a>fslPageToken</a></li>
--   <li><a>fslPageSize</a></li>
--   <li><a>fslCallback</a></li>
--   </ul>
foldersSinksList :: Text -> FoldersSinksList

-- | Lists sinks.
--   
--   <i>See:</i> <a>foldersSinksList</a> smart constructor.
data FoldersSinksList

-- | Required. The parent resource whose sinks are to be listed. Examples:
--   "projects/my-logging-project", "organizations/123456789".
fslParent :: Lens' FoldersSinksList Text

-- | V1 error format.
fslXgafv :: Lens' FoldersSinksList (Maybe Xgafv)

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

-- | Pretty-print response.
fslPp :: Lens' FoldersSinksList Bool

-- | OAuth access token.
fslAccessToken :: Lens' FoldersSinksList (Maybe Text)

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

-- | OAuth bearer token.
fslBearerToken :: Lens' FoldersSinksList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
fslPageToken :: Lens' FoldersSinksList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
fslPageSize :: Lens' FoldersSinksList (Maybe Int32)

-- | JSONP
fslCallback :: Lens' FoldersSinksList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Sinks.List.FoldersSinksList
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Sinks.List.FoldersSinksList
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Sinks.List.FoldersSinksList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Sinks.List.FoldersSinksList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Sinks.List.FoldersSinksList


-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.folders.sinks.update</tt>.
module Network.Google.Resource.Logging.Folders.Sinks.Update

-- | A resource alias for <tt>logging.folders.sinks.update</tt> method
--   which the <a>FoldersSinksUpdate</a> request conforms to.
type FoldersSinksUpdateResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Put '[JSON] LogSink)))))))))))

-- | Creates a value of <a>FoldersSinksUpdate</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>fsuXgafv</a></li>
--   <li><a>fsuUniqueWriterIdentity</a></li>
--   <li><a>fsuUploadProtocol</a></li>
--   <li><a>fsuPp</a></li>
--   <li><a>fsuAccessToken</a></li>
--   <li><a>fsuUploadType</a></li>
--   <li><a>fsuPayload</a></li>
--   <li><a>fsuBearerToken</a></li>
--   <li><a>fsuSinkName</a></li>
--   <li><a>fsuCallback</a></li>
--   </ul>
foldersSinksUpdate :: LogSink -> Text -> FoldersSinksUpdate

-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>foldersSinksUpdate</a> smart constructor.
data FoldersSinksUpdate

-- | V1 error format.
fsuXgafv :: Lens' FoldersSinksUpdate (Maybe Xgafv)

-- | Optional. See sinks.create for a description of this field. When
--   updating a sink, the effect of this field on the value of
--   writer_identity in the updated sink depends on both the old and new
--   values of this field: If the old and new values of this field are both
--   false or both true, then there is no change to the sink's
--   writer_identity. If the old value was false and the new value is true,
--   then writer_identity is changed to a unique service account. It is an
--   error if the old value was true and the new value is false.
fsuUniqueWriterIdentity :: Lens' FoldersSinksUpdate (Maybe Bool)

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

-- | Pretty-print response.
fsuPp :: Lens' FoldersSinksUpdate Bool

-- | OAuth access token.
fsuAccessToken :: Lens' FoldersSinksUpdate (Maybe Text)

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

-- | Multipart request metadata.
fsuPayload :: Lens' FoldersSinksUpdate LogSink

-- | OAuth bearer token.
fsuBearerToken :: Lens' FoldersSinksUpdate (Maybe Text)

-- | Required. The full resource name of the sink to update, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
fsuSinkName :: Lens' FoldersSinksUpdate Text

-- | JSONP
fsuCallback :: Lens' FoldersSinksUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Folders.Sinks.Update.FoldersSinksUpdate
instance Data.Data.Data Network.Google.Resource.Logging.Folders.Sinks.Update.FoldersSinksUpdate
instance GHC.Show.Show Network.Google.Resource.Logging.Folders.Sinks.Update.FoldersSinksUpdate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Folders.Sinks.Update.FoldersSinksUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Folders.Sinks.Update.FoldersSinksUpdate


-- | Lists the descriptors for monitored resource types used by Stackdriver
--   Logging.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.monitoredResourceDescriptors.list</tt>.
module Network.Google.Resource.Logging.MonitoredResourceDescriptors.List

-- | A resource alias for
--   <tt>logging.monitoredResourceDescriptors.list</tt> method which the
--   <a>MonitoredResourceDescriptorsList</a> request conforms to.
type MonitoredResourceDescriptorsListResource = "v2" :> ("monitoredResourceDescriptors" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListMonitoredResourceDescriptorsResponse)))))))))))

-- | Creates a value of <a>MonitoredResourceDescriptorsList</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>mrdlXgafv</a></li>
--   <li><a>mrdlUploadProtocol</a></li>
--   <li><a>mrdlPp</a></li>
--   <li><a>mrdlAccessToken</a></li>
--   <li><a>mrdlUploadType</a></li>
--   <li><a>mrdlBearerToken</a></li>
--   <li><a>mrdlPageToken</a></li>
--   <li><a>mrdlPageSize</a></li>
--   <li><a>mrdlCallback</a></li>
--   </ul>
monitoredResourceDescriptorsList :: MonitoredResourceDescriptorsList

-- | Lists the descriptors for monitored resource types used by Stackdriver
--   Logging.
--   
--   <i>See:</i> <a>monitoredResourceDescriptorsList</a> smart constructor.
data MonitoredResourceDescriptorsList

-- | V1 error format.
mrdlXgafv :: Lens' MonitoredResourceDescriptorsList (Maybe Xgafv)

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

-- | Pretty-print response.
mrdlPp :: Lens' MonitoredResourceDescriptorsList Bool

-- | OAuth access token.
mrdlAccessToken :: Lens' MonitoredResourceDescriptorsList (Maybe Text)

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

-- | OAuth bearer token.
mrdlBearerToken :: Lens' MonitoredResourceDescriptorsList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
mrdlPageToken :: Lens' MonitoredResourceDescriptorsList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
mrdlPageSize :: Lens' MonitoredResourceDescriptorsList (Maybe Int32)

-- | JSONP
mrdlCallback :: Lens' MonitoredResourceDescriptorsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.MonitoredResourceDescriptors.List.MonitoredResourceDescriptorsList
instance Data.Data.Data Network.Google.Resource.Logging.MonitoredResourceDescriptors.List.MonitoredResourceDescriptorsList
instance GHC.Show.Show Network.Google.Resource.Logging.MonitoredResourceDescriptors.List.MonitoredResourceDescriptorsList
instance GHC.Classes.Eq Network.Google.Resource.Logging.MonitoredResourceDescriptors.List.MonitoredResourceDescriptorsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.MonitoredResourceDescriptors.List.MonitoredResourceDescriptorsList


-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.logs.delete</tt>.
module Network.Google.Resource.Logging.Organizations.Logs.Delete

-- | A resource alias for <tt>logging.organizations.logs.delete</tt> method
--   which the <a>OrganizationsLogsDelete</a> request conforms to.
type OrganizationsLogsDeleteResource = "v2" :> (Capture "logName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>OrganizationsLogsDelete</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>oldXgafv</a></li>
--   <li><a>oldUploadProtocol</a></li>
--   <li><a>oldPp</a></li>
--   <li><a>oldAccessToken</a></li>
--   <li><a>oldUploadType</a></li>
--   <li><a>oldBearerToken</a></li>
--   <li><a>oldLogName</a></li>
--   <li><a>oldCallback</a></li>
--   </ul>
organizationsLogsDelete :: Text -> OrganizationsLogsDelete

-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>organizationsLogsDelete</a> smart constructor.
data OrganizationsLogsDelete

-- | V1 error format.
oldXgafv :: Lens' OrganizationsLogsDelete (Maybe Xgafv)

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

-- | Pretty-print response.
oldPp :: Lens' OrganizationsLogsDelete Bool

-- | OAuth access token.
oldAccessToken :: Lens' OrganizationsLogsDelete (Maybe Text)

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

-- | OAuth bearer token.
oldBearerToken :: Lens' OrganizationsLogsDelete (Maybe Text)

-- | Required. The resource name of the log to delete:
--   "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded. For example, "projects/my-project-id/logs/syslog",
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   For more information about log names, see LogEntry.
oldLogName :: Lens' OrganizationsLogsDelete Text

-- | JSONP
oldCallback :: Lens' OrganizationsLogsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Logs.Delete.OrganizationsLogsDelete
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Logs.Delete.OrganizationsLogsDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Logs.Delete.OrganizationsLogsDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Logs.Delete.OrganizationsLogsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Logs.Delete.OrganizationsLogsDelete


-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.logs.list</tt>.
module Network.Google.Resource.Logging.Organizations.Logs.List

-- | A resource alias for <tt>logging.organizations.logs.list</tt> method
--   which the <a>OrganizationsLogsList</a> request conforms to.
type OrganizationsLogsListResource = "v2" :> (Capture "parent" Text :> ("logs" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListLogsResponse))))))))))))

-- | Creates a value of <a>OrganizationsLogsList</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>ollParent</a></li>
--   <li><a>ollXgafv</a></li>
--   <li><a>ollUploadProtocol</a></li>
--   <li><a>ollPp</a></li>
--   <li><a>ollAccessToken</a></li>
--   <li><a>ollUploadType</a></li>
--   <li><a>ollBearerToken</a></li>
--   <li><a>ollPageToken</a></li>
--   <li><a>ollPageSize</a></li>
--   <li><a>ollCallback</a></li>
--   </ul>
organizationsLogsList :: Text -> OrganizationsLogsList

-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>organizationsLogsList</a> smart constructor.
data OrganizationsLogsList

-- | Required. The resource name that owns the logs:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]"
ollParent :: Lens' OrganizationsLogsList Text

-- | V1 error format.
ollXgafv :: Lens' OrganizationsLogsList (Maybe Xgafv)

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

-- | Pretty-print response.
ollPp :: Lens' OrganizationsLogsList Bool

-- | OAuth access token.
ollAccessToken :: Lens' OrganizationsLogsList (Maybe Text)

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

-- | OAuth bearer token.
ollBearerToken :: Lens' OrganizationsLogsList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
ollPageToken :: Lens' OrganizationsLogsList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
ollPageSize :: Lens' OrganizationsLogsList (Maybe Int32)

-- | JSONP
ollCallback :: Lens' OrganizationsLogsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Logs.List.OrganizationsLogsList
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Logs.List.OrganizationsLogsList
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Logs.List.OrganizationsLogsList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Logs.List.OrganizationsLogsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Logs.List.OrganizationsLogsList


-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.sinks.create</tt>.
module Network.Google.Resource.Logging.Organizations.Sinks.Create

-- | A resource alias for <tt>logging.organizations.sinks.create</tt>
--   method which the <a>OrganizationsSinksCreate</a> request conforms to.
type OrganizationsSinksCreateResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Post '[JSON] LogSink))))))))))))

-- | Creates a value of <a>OrganizationsSinksCreate</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>oscParent</a></li>
--   <li><a>oscXgafv</a></li>
--   <li><a>oscUniqueWriterIdentity</a></li>
--   <li><a>oscUploadProtocol</a></li>
--   <li><a>oscPp</a></li>
--   <li><a>oscAccessToken</a></li>
--   <li><a>oscUploadType</a></li>
--   <li><a>oscPayload</a></li>
--   <li><a>oscBearerToken</a></li>
--   <li><a>oscCallback</a></li>
--   </ul>
organizationsSinksCreate :: Text -> LogSink -> OrganizationsSinksCreate

-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>organizationsSinksCreate</a> smart constructor.
data OrganizationsSinksCreate

-- | Required. The resource in which to create the sink:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" Examples:
--   "projects/my-logging-project", "organizations/123456789".
oscParent :: Lens' OrganizationsSinksCreate Text

-- | V1 error format.
oscXgafv :: Lens' OrganizationsSinksCreate (Maybe Xgafv)

-- | Optional. Determines the kind of IAM identity returned as
--   writer_identity in the new sink. If this value is omitted or set to
--   false, and if the sink's parent is a project, then the value returned
--   as writer_identity is cloud-logs'google.com, the same identity used
--   before the addition of writer identities to this API. The sink's
--   destination must be in the same project as the sink itself.If this
--   field is set to true, or if the sink is owned by a non-project
--   resource such as an organization, then the value of writer_identity
--   will be a unique service account used only for exports from the new
--   sink. For more information, see writer_identity in LogSink.
oscUniqueWriterIdentity :: Lens' OrganizationsSinksCreate (Maybe Bool)

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

-- | Pretty-print response.
oscPp :: Lens' OrganizationsSinksCreate Bool

-- | OAuth access token.
oscAccessToken :: Lens' OrganizationsSinksCreate (Maybe Text)

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

-- | Multipart request metadata.
oscPayload :: Lens' OrganizationsSinksCreate LogSink

-- | OAuth bearer token.
oscBearerToken :: Lens' OrganizationsSinksCreate (Maybe Text)

-- | JSONP
oscCallback :: Lens' OrganizationsSinksCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Sinks.Create.OrganizationsSinksCreate
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Sinks.Create.OrganizationsSinksCreate
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Sinks.Create.OrganizationsSinksCreate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Sinks.Create.OrganizationsSinksCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Sinks.Create.OrganizationsSinksCreate


-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.sinks.delete</tt>.
module Network.Google.Resource.Logging.Organizations.Sinks.Delete

-- | A resource alias for <tt>logging.organizations.sinks.delete</tt>
--   method which the <a>OrganizationsSinksDelete</a> request conforms to.
type OrganizationsSinksDeleteResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>OrganizationsSinksDelete</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>osdXgafv</a></li>
--   <li><a>osdUploadProtocol</a></li>
--   <li><a>osdPp</a></li>
--   <li><a>osdAccessToken</a></li>
--   <li><a>osdUploadType</a></li>
--   <li><a>osdBearerToken</a></li>
--   <li><a>osdSinkName</a></li>
--   <li><a>osdCallback</a></li>
--   </ul>
organizationsSinksDelete :: Text -> OrganizationsSinksDelete

-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>organizationsSinksDelete</a> smart constructor.
data OrganizationsSinksDelete

-- | V1 error format.
osdXgafv :: Lens' OrganizationsSinksDelete (Maybe Xgafv)

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

-- | Pretty-print response.
osdPp :: Lens' OrganizationsSinksDelete Bool

-- | OAuth access token.
osdAccessToken :: Lens' OrganizationsSinksDelete (Maybe Text)

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

-- | OAuth bearer token.
osdBearerToken :: Lens' OrganizationsSinksDelete (Maybe Text)

-- | Required. The full resource name of the sink to delete, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" It is an error if
--   the sink does not exist. Example:
--   "projects/my-project-id/sinks/my-sink-id". It is an error if the sink
--   does not exist.
osdSinkName :: Lens' OrganizationsSinksDelete Text

-- | JSONP
osdCallback :: Lens' OrganizationsSinksDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Sinks.Delete.OrganizationsSinksDelete
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Sinks.Delete.OrganizationsSinksDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Sinks.Delete.OrganizationsSinksDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Sinks.Delete.OrganizationsSinksDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Sinks.Delete.OrganizationsSinksDelete


-- | Gets a sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.sinks.get</tt>.
module Network.Google.Resource.Logging.Organizations.Sinks.Get

-- | A resource alias for <tt>logging.organizations.sinks.get</tt> method
--   which the <a>OrganizationsSinksGet</a> request conforms to.
type OrganizationsSinksGetResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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] LogSink)))))))))

-- | Creates a value of <a>OrganizationsSinksGet</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>osgXgafv</a></li>
--   <li><a>osgUploadProtocol</a></li>
--   <li><a>osgPp</a></li>
--   <li><a>osgAccessToken</a></li>
--   <li><a>osgUploadType</a></li>
--   <li><a>osgBearerToken</a></li>
--   <li><a>osgSinkName</a></li>
--   <li><a>osgCallback</a></li>
--   </ul>
organizationsSinksGet :: Text -> OrganizationsSinksGet

-- | Gets a sink.
--   
--   <i>See:</i> <a>organizationsSinksGet</a> smart constructor.
data OrganizationsSinksGet

-- | V1 error format.
osgXgafv :: Lens' OrganizationsSinksGet (Maybe Xgafv)

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

-- | Pretty-print response.
osgPp :: Lens' OrganizationsSinksGet Bool

-- | OAuth access token.
osgAccessToken :: Lens' OrganizationsSinksGet (Maybe Text)

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

-- | OAuth bearer token.
osgBearerToken :: Lens' OrganizationsSinksGet (Maybe Text)

-- | Required. The parent resource name of the sink:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
osgSinkName :: Lens' OrganizationsSinksGet Text

-- | JSONP
osgCallback :: Lens' OrganizationsSinksGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Sinks.Get.OrganizationsSinksGet
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Sinks.Get.OrganizationsSinksGet
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Sinks.Get.OrganizationsSinksGet
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Sinks.Get.OrganizationsSinksGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Sinks.Get.OrganizationsSinksGet


-- | Lists sinks.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.sinks.list</tt>.
module Network.Google.Resource.Logging.Organizations.Sinks.List

-- | A resource alias for <tt>logging.organizations.sinks.list</tt> method
--   which the <a>OrganizationsSinksList</a> request conforms to.
type OrganizationsSinksListResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListSinksResponse))))))))))))

-- | Creates a value of <a>OrganizationsSinksList</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>oslParent</a></li>
--   <li><a>oslXgafv</a></li>
--   <li><a>oslUploadProtocol</a></li>
--   <li><a>oslPp</a></li>
--   <li><a>oslAccessToken</a></li>
--   <li><a>oslUploadType</a></li>
--   <li><a>oslBearerToken</a></li>
--   <li><a>oslPageToken</a></li>
--   <li><a>oslPageSize</a></li>
--   <li><a>oslCallback</a></li>
--   </ul>
organizationsSinksList :: Text -> OrganizationsSinksList

-- | Lists sinks.
--   
--   <i>See:</i> <a>organizationsSinksList</a> smart constructor.
data OrganizationsSinksList

-- | Required. The parent resource whose sinks are to be listed. Examples:
--   "projects/my-logging-project", "organizations/123456789".
oslParent :: Lens' OrganizationsSinksList Text

-- | V1 error format.
oslXgafv :: Lens' OrganizationsSinksList (Maybe Xgafv)

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

-- | Pretty-print response.
oslPp :: Lens' OrganizationsSinksList Bool

-- | OAuth access token.
oslAccessToken :: Lens' OrganizationsSinksList (Maybe Text)

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

-- | OAuth bearer token.
oslBearerToken :: Lens' OrganizationsSinksList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
oslPageToken :: Lens' OrganizationsSinksList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
oslPageSize :: Lens' OrganizationsSinksList (Maybe Int32)

-- | JSONP
oslCallback :: Lens' OrganizationsSinksList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Sinks.List.OrganizationsSinksList
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Sinks.List.OrganizationsSinksList
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Sinks.List.OrganizationsSinksList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Sinks.List.OrganizationsSinksList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Sinks.List.OrganizationsSinksList


-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.organizations.sinks.update</tt>.
module Network.Google.Resource.Logging.Organizations.Sinks.Update

-- | A resource alias for <tt>logging.organizations.sinks.update</tt>
--   method which the <a>OrganizationsSinksUpdate</a> request conforms to.
type OrganizationsSinksUpdateResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Put '[JSON] LogSink)))))))))))

-- | Creates a value of <a>OrganizationsSinksUpdate</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>osuXgafv</a></li>
--   <li><a>osuUniqueWriterIdentity</a></li>
--   <li><a>osuUploadProtocol</a></li>
--   <li><a>osuPp</a></li>
--   <li><a>osuAccessToken</a></li>
--   <li><a>osuUploadType</a></li>
--   <li><a>osuPayload</a></li>
--   <li><a>osuBearerToken</a></li>
--   <li><a>osuSinkName</a></li>
--   <li><a>osuCallback</a></li>
--   </ul>
organizationsSinksUpdate :: LogSink -> Text -> OrganizationsSinksUpdate

-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>organizationsSinksUpdate</a> smart constructor.
data OrganizationsSinksUpdate

-- | V1 error format.
osuXgafv :: Lens' OrganizationsSinksUpdate (Maybe Xgafv)

-- | Optional. See sinks.create for a description of this field. When
--   updating a sink, the effect of this field on the value of
--   writer_identity in the updated sink depends on both the old and new
--   values of this field: If the old and new values of this field are both
--   false or both true, then there is no change to the sink's
--   writer_identity. If the old value was false and the new value is true,
--   then writer_identity is changed to a unique service account. It is an
--   error if the old value was true and the new value is false.
osuUniqueWriterIdentity :: Lens' OrganizationsSinksUpdate (Maybe Bool)

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

-- | Pretty-print response.
osuPp :: Lens' OrganizationsSinksUpdate Bool

-- | OAuth access token.
osuAccessToken :: Lens' OrganizationsSinksUpdate (Maybe Text)

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

-- | Multipart request metadata.
osuPayload :: Lens' OrganizationsSinksUpdate LogSink

-- | OAuth bearer token.
osuBearerToken :: Lens' OrganizationsSinksUpdate (Maybe Text)

-- | Required. The full resource name of the sink to update, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
osuSinkName :: Lens' OrganizationsSinksUpdate Text

-- | JSONP
osuCallback :: Lens' OrganizationsSinksUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Organizations.Sinks.Update.OrganizationsSinksUpdate
instance Data.Data.Data Network.Google.Resource.Logging.Organizations.Sinks.Update.OrganizationsSinksUpdate
instance GHC.Show.Show Network.Google.Resource.Logging.Organizations.Sinks.Update.OrganizationsSinksUpdate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Organizations.Sinks.Update.OrganizationsSinksUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Organizations.Sinks.Update.OrganizationsSinksUpdate


-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.logs.delete</tt>.
module Network.Google.Resource.Logging.Projects.Logs.Delete

-- | A resource alias for <tt>logging.projects.logs.delete</tt> method
--   which the <a>ProjectsLogsDelete</a> request conforms to.
type ProjectsLogsDeleteResource = "v2" :> (Capture "logName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>ProjectsLogsDelete</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>pldXgafv</a></li>
--   <li><a>pldUploadProtocol</a></li>
--   <li><a>pldPp</a></li>
--   <li><a>pldAccessToken</a></li>
--   <li><a>pldUploadType</a></li>
--   <li><a>pldBearerToken</a></li>
--   <li><a>pldLogName</a></li>
--   <li><a>pldCallback</a></li>
--   </ul>
projectsLogsDelete :: Text -> ProjectsLogsDelete

-- | Deletes all the log entries in a log. The log reappears if it receives
--   new entries.
--   
--   <i>See:</i> <a>projectsLogsDelete</a> smart constructor.
data ProjectsLogsDelete

-- | V1 error format.
pldXgafv :: Lens' ProjectsLogsDelete (Maybe Xgafv)

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

-- | Pretty-print response.
pldPp :: Lens' ProjectsLogsDelete Bool

-- | OAuth access token.
pldAccessToken :: Lens' ProjectsLogsDelete (Maybe Text)

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

-- | OAuth bearer token.
pldBearerToken :: Lens' ProjectsLogsDelete (Maybe Text)

-- | Required. The resource name of the log to delete:
--   "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded. For example, "projects/my-project-id/logs/syslog",
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   For more information about log names, see LogEntry.
pldLogName :: Lens' ProjectsLogsDelete Text

-- | JSONP
pldCallback :: Lens' ProjectsLogsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Logs.Delete.ProjectsLogsDelete
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Logs.Delete.ProjectsLogsDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Logs.Delete.ProjectsLogsDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Logs.Delete.ProjectsLogsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Logs.Delete.ProjectsLogsDelete


-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.logs.list</tt>.
module Network.Google.Resource.Logging.Projects.Logs.List

-- | A resource alias for <tt>logging.projects.logs.list</tt> method which
--   the <a>ProjectsLogsList</a> request conforms to.
type ProjectsLogsListResource = "v2" :> (Capture "parent" Text :> ("logs" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListLogsResponse))))))))))))

-- | Creates a value of <a>ProjectsLogsList</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>pllParent</a></li>
--   <li><a>pllXgafv</a></li>
--   <li><a>pllUploadProtocol</a></li>
--   <li><a>pllPp</a></li>
--   <li><a>pllAccessToken</a></li>
--   <li><a>pllUploadType</a></li>
--   <li><a>pllBearerToken</a></li>
--   <li><a>pllPageToken</a></li>
--   <li><a>pllPageSize</a></li>
--   <li><a>pllCallback</a></li>
--   </ul>
projectsLogsList :: Text -> ProjectsLogsList

-- | Lists the logs in projects or organizations. Only logs that have
--   entries are listed.
--   
--   <i>See:</i> <a>projectsLogsList</a> smart constructor.
data ProjectsLogsList

-- | Required. The resource name that owns the logs:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]"
pllParent :: Lens' ProjectsLogsList Text

-- | V1 error format.
pllXgafv :: Lens' ProjectsLogsList (Maybe Xgafv)

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

-- | Pretty-print response.
pllPp :: Lens' ProjectsLogsList Bool

-- | OAuth access token.
pllAccessToken :: Lens' ProjectsLogsList (Maybe Text)

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

-- | OAuth bearer token.
pllBearerToken :: Lens' ProjectsLogsList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
pllPageToken :: Lens' ProjectsLogsList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
pllPageSize :: Lens' ProjectsLogsList (Maybe Int32)

-- | JSONP
pllCallback :: Lens' ProjectsLogsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Logs.List.ProjectsLogsList
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Logs.List.ProjectsLogsList
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Logs.List.ProjectsLogsList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Logs.List.ProjectsLogsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Logs.List.ProjectsLogsList


-- | Creates a logs-based metric.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.metrics.create</tt>.
module Network.Google.Resource.Logging.Projects.Metrics.Create

-- | A resource alias for <tt>logging.projects.metrics.create</tt> method
--   which the <a>ProjectsMetricsCreate</a> request conforms to.
type ProjectsMetricsCreateResource = "v2" :> (Capture "parent" Text :> ("metrics" :> (QueryParam "$.xgafv" Xgafv :> (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] LogMetric :> Post '[JSON] LogMetric)))))))))))

-- | Creates a value of <a>ProjectsMetricsCreate</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>pmcParent</a></li>
--   <li><a>pmcXgafv</a></li>
--   <li><a>pmcUploadProtocol</a></li>
--   <li><a>pmcPp</a></li>
--   <li><a>pmcAccessToken</a></li>
--   <li><a>pmcUploadType</a></li>
--   <li><a>pmcPayload</a></li>
--   <li><a>pmcBearerToken</a></li>
--   <li><a>pmcCallback</a></li>
--   </ul>
projectsMetricsCreate :: Text -> LogMetric -> ProjectsMetricsCreate

-- | Creates a logs-based metric.
--   
--   <i>See:</i> <a>projectsMetricsCreate</a> smart constructor.
data ProjectsMetricsCreate

-- | The resource name of the project in which to create the metric:
--   "projects/[PROJECT_ID]" The new metric must be provided in the
--   request.
pmcParent :: Lens' ProjectsMetricsCreate Text

-- | V1 error format.
pmcXgafv :: Lens' ProjectsMetricsCreate (Maybe Xgafv)

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

-- | Pretty-print response.
pmcPp :: Lens' ProjectsMetricsCreate Bool

-- | OAuth access token.
pmcAccessToken :: Lens' ProjectsMetricsCreate (Maybe Text)

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

-- | Multipart request metadata.
pmcPayload :: Lens' ProjectsMetricsCreate LogMetric

-- | OAuth bearer token.
pmcBearerToken :: Lens' ProjectsMetricsCreate (Maybe Text)

-- | JSONP
pmcCallback :: Lens' ProjectsMetricsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Metrics.Create.ProjectsMetricsCreate
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Metrics.Create.ProjectsMetricsCreate
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Metrics.Create.ProjectsMetricsCreate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Metrics.Create.ProjectsMetricsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Metrics.Create.ProjectsMetricsCreate


-- | Deletes a logs-based metric.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.metrics.delete</tt>.
module Network.Google.Resource.Logging.Projects.Metrics.Delete

-- | A resource alias for <tt>logging.projects.metrics.delete</tt> method
--   which the <a>ProjectsMetricsDelete</a> request conforms to.
type ProjectsMetricsDeleteResource = "v2" :> (Capture "metricName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>ProjectsMetricsDelete</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>pmdXgafv</a></li>
--   <li><a>pmdUploadProtocol</a></li>
--   <li><a>pmdPp</a></li>
--   <li><a>pmdAccessToken</a></li>
--   <li><a>pmdMetricName</a></li>
--   <li><a>pmdUploadType</a></li>
--   <li><a>pmdBearerToken</a></li>
--   <li><a>pmdCallback</a></li>
--   </ul>
projectsMetricsDelete :: Text -> ProjectsMetricsDelete

-- | Deletes a logs-based metric.
--   
--   <i>See:</i> <a>projectsMetricsDelete</a> smart constructor.
data ProjectsMetricsDelete

-- | V1 error format.
pmdXgafv :: Lens' ProjectsMetricsDelete (Maybe Xgafv)

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

-- | Pretty-print response.
pmdPp :: Lens' ProjectsMetricsDelete Bool

-- | OAuth access token.
pmdAccessToken :: Lens' ProjectsMetricsDelete (Maybe Text)

-- | The resource name of the metric to delete:
--   "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
pmdMetricName :: Lens' ProjectsMetricsDelete Text

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

-- | OAuth bearer token.
pmdBearerToken :: Lens' ProjectsMetricsDelete (Maybe Text)

-- | JSONP
pmdCallback :: Lens' ProjectsMetricsDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Metrics.Delete.ProjectsMetricsDelete
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Metrics.Delete.ProjectsMetricsDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Metrics.Delete.ProjectsMetricsDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Metrics.Delete.ProjectsMetricsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Metrics.Delete.ProjectsMetricsDelete


-- | Gets a logs-based metric.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.metrics.get</tt>.
module Network.Google.Resource.Logging.Projects.Metrics.Get

-- | A resource alias for <tt>logging.projects.metrics.get</tt> method
--   which the <a>ProjectsMetricsGet</a> request conforms to.
type ProjectsMetricsGetResource = "v2" :> (Capture "metricName" Text :> (QueryParam "$.xgafv" Xgafv :> (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] LogMetric)))))))))

-- | Creates a value of <a>ProjectsMetricsGet</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>pmgXgafv</a></li>
--   <li><a>pmgUploadProtocol</a></li>
--   <li><a>pmgPp</a></li>
--   <li><a>pmgAccessToken</a></li>
--   <li><a>pmgMetricName</a></li>
--   <li><a>pmgUploadType</a></li>
--   <li><a>pmgBearerToken</a></li>
--   <li><a>pmgCallback</a></li>
--   </ul>
projectsMetricsGet :: Text -> ProjectsMetricsGet

-- | Gets a logs-based metric.
--   
--   <i>See:</i> <a>projectsMetricsGet</a> smart constructor.
data ProjectsMetricsGet

-- | V1 error format.
pmgXgafv :: Lens' ProjectsMetricsGet (Maybe Xgafv)

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

-- | Pretty-print response.
pmgPp :: Lens' ProjectsMetricsGet Bool

-- | OAuth access token.
pmgAccessToken :: Lens' ProjectsMetricsGet (Maybe Text)

-- | The resource name of the desired metric:
--   "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
pmgMetricName :: Lens' ProjectsMetricsGet Text

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

-- | OAuth bearer token.
pmgBearerToken :: Lens' ProjectsMetricsGet (Maybe Text)

-- | JSONP
pmgCallback :: Lens' ProjectsMetricsGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Metrics.Get.ProjectsMetricsGet
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Metrics.Get.ProjectsMetricsGet
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Metrics.Get.ProjectsMetricsGet
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Metrics.Get.ProjectsMetricsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Metrics.Get.ProjectsMetricsGet


-- | Lists logs-based metrics.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.metrics.list</tt>.
module Network.Google.Resource.Logging.Projects.Metrics.List

-- | A resource alias for <tt>logging.projects.metrics.list</tt> method
--   which the <a>ProjectsMetricsList</a> request conforms to.
type ProjectsMetricsListResource = "v2" :> (Capture "parent" Text :> ("metrics" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListLogMetricsResponse))))))))))))

-- | Creates a value of <a>ProjectsMetricsList</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>pmlParent</a></li>
--   <li><a>pmlXgafv</a></li>
--   <li><a>pmlUploadProtocol</a></li>
--   <li><a>pmlPp</a></li>
--   <li><a>pmlAccessToken</a></li>
--   <li><a>pmlUploadType</a></li>
--   <li><a>pmlBearerToken</a></li>
--   <li><a>pmlPageToken</a></li>
--   <li><a>pmlPageSize</a></li>
--   <li><a>pmlCallback</a></li>
--   </ul>
projectsMetricsList :: Text -> ProjectsMetricsList

-- | Lists logs-based metrics.
--   
--   <i>See:</i> <a>projectsMetricsList</a> smart constructor.
data ProjectsMetricsList

-- | Required. The name of the project containing the metrics:
--   "projects/[PROJECT_ID]"
pmlParent :: Lens' ProjectsMetricsList Text

-- | V1 error format.
pmlXgafv :: Lens' ProjectsMetricsList (Maybe Xgafv)

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

-- | Pretty-print response.
pmlPp :: Lens' ProjectsMetricsList Bool

-- | OAuth access token.
pmlAccessToken :: Lens' ProjectsMetricsList (Maybe Text)

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

-- | OAuth bearer token.
pmlBearerToken :: Lens' ProjectsMetricsList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
pmlPageToken :: Lens' ProjectsMetricsList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
pmlPageSize :: Lens' ProjectsMetricsList (Maybe Int32)

-- | JSONP
pmlCallback :: Lens' ProjectsMetricsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Metrics.List.ProjectsMetricsList
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Metrics.List.ProjectsMetricsList
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Metrics.List.ProjectsMetricsList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Metrics.List.ProjectsMetricsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Metrics.List.ProjectsMetricsList


-- | Creates or updates a logs-based metric.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.metrics.update</tt>.
module Network.Google.Resource.Logging.Projects.Metrics.Update

-- | A resource alias for <tt>logging.projects.metrics.update</tt> method
--   which the <a>ProjectsMetricsUpdate</a> request conforms to.
type ProjectsMetricsUpdateResource = "v2" :> (Capture "metricName" Text :> (QueryParam "$.xgafv" Xgafv :> (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] LogMetric :> Put '[JSON] LogMetric))))))))))

-- | Creates a value of <a>ProjectsMetricsUpdate</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>pmuXgafv</a></li>
--   <li><a>pmuUploadProtocol</a></li>
--   <li><a>pmuPp</a></li>
--   <li><a>pmuAccessToken</a></li>
--   <li><a>pmuMetricName</a></li>
--   <li><a>pmuUploadType</a></li>
--   <li><a>pmuPayload</a></li>
--   <li><a>pmuBearerToken</a></li>
--   <li><a>pmuCallback</a></li>
--   </ul>
projectsMetricsUpdate :: Text -> LogMetric -> ProjectsMetricsUpdate

-- | Creates or updates a logs-based metric.
--   
--   <i>See:</i> <a>projectsMetricsUpdate</a> smart constructor.
data ProjectsMetricsUpdate

-- | V1 error format.
pmuXgafv :: Lens' ProjectsMetricsUpdate (Maybe Xgafv)

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

-- | Pretty-print response.
pmuPp :: Lens' ProjectsMetricsUpdate Bool

-- | OAuth access token.
pmuAccessToken :: Lens' ProjectsMetricsUpdate (Maybe Text)

-- | The resource name of the metric to update:
--   "projects/[PROJECT_ID]/metrics/[METRIC_ID]" The updated metric must be
--   provided in the request and it's name field must be the same as
--   [METRIC_ID] If the metric does not exist in [PROJECT_ID], then a new
--   metric is created.
pmuMetricName :: Lens' ProjectsMetricsUpdate Text

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

-- | Multipart request metadata.
pmuPayload :: Lens' ProjectsMetricsUpdate LogMetric

-- | OAuth bearer token.
pmuBearerToken :: Lens' ProjectsMetricsUpdate (Maybe Text)

-- | JSONP
pmuCallback :: Lens' ProjectsMetricsUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Metrics.Update.ProjectsMetricsUpdate
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Metrics.Update.ProjectsMetricsUpdate
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Metrics.Update.ProjectsMetricsUpdate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Metrics.Update.ProjectsMetricsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Metrics.Update.ProjectsMetricsUpdate


-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.sinks.create</tt>.
module Network.Google.Resource.Logging.Projects.Sinks.Create

-- | A resource alias for <tt>logging.projects.sinks.create</tt> method
--   which the <a>ProjectsSinksCreate</a> request conforms to.
type ProjectsSinksCreateResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Post '[JSON] LogSink))))))))))))

-- | Creates a value of <a>ProjectsSinksCreate</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>pscParent</a></li>
--   <li><a>pscXgafv</a></li>
--   <li><a>pscUniqueWriterIdentity</a></li>
--   <li><a>pscUploadProtocol</a></li>
--   <li><a>pscPp</a></li>
--   <li><a>pscAccessToken</a></li>
--   <li><a>pscUploadType</a></li>
--   <li><a>pscPayload</a></li>
--   <li><a>pscBearerToken</a></li>
--   <li><a>pscCallback</a></li>
--   </ul>
projectsSinksCreate :: Text -> LogSink -> ProjectsSinksCreate

-- | Creates a sink that exports specified log entries to a destination.
--   The export of newly-ingested log entries begins immediately, unless
--   the current time is outside the sink's start and end times or the
--   sink's writer_identity is not permitted to write to the destination. A
--   sink can export log entries only from the resource owning the sink.
--   
--   <i>See:</i> <a>projectsSinksCreate</a> smart constructor.
data ProjectsSinksCreate

-- | Required. The resource in which to create the sink:
--   "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" Examples:
--   "projects/my-logging-project", "organizations/123456789".
pscParent :: Lens' ProjectsSinksCreate Text

-- | V1 error format.
pscXgafv :: Lens' ProjectsSinksCreate (Maybe Xgafv)

-- | Optional. Determines the kind of IAM identity returned as
--   writer_identity in the new sink. If this value is omitted or set to
--   false, and if the sink's parent is a project, then the value returned
--   as writer_identity is cloud-logs'google.com, the same identity used
--   before the addition of writer identities to this API. The sink's
--   destination must be in the same project as the sink itself.If this
--   field is set to true, or if the sink is owned by a non-project
--   resource such as an organization, then the value of writer_identity
--   will be a unique service account used only for exports from the new
--   sink. For more information, see writer_identity in LogSink.
pscUniqueWriterIdentity :: Lens' ProjectsSinksCreate (Maybe Bool)

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

-- | Pretty-print response.
pscPp :: Lens' ProjectsSinksCreate Bool

-- | OAuth access token.
pscAccessToken :: Lens' ProjectsSinksCreate (Maybe Text)

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

-- | Multipart request metadata.
pscPayload :: Lens' ProjectsSinksCreate LogSink

-- | OAuth bearer token.
pscBearerToken :: Lens' ProjectsSinksCreate (Maybe Text)

-- | JSONP
pscCallback :: Lens' ProjectsSinksCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Sinks.Create.ProjectsSinksCreate
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Sinks.Create.ProjectsSinksCreate
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Sinks.Create.ProjectsSinksCreate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Sinks.Create.ProjectsSinksCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Sinks.Create.ProjectsSinksCreate


-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.sinks.delete</tt>.
module Network.Google.Resource.Logging.Projects.Sinks.Delete

-- | A resource alias for <tt>logging.projects.sinks.delete</tt> method
--   which the <a>ProjectsSinksDelete</a> request conforms to.
type ProjectsSinksDeleteResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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>ProjectsSinksDelete</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>psdXgafv</a></li>
--   <li><a>psdUploadProtocol</a></li>
--   <li><a>psdPp</a></li>
--   <li><a>psdAccessToken</a></li>
--   <li><a>psdUploadType</a></li>
--   <li><a>psdBearerToken</a></li>
--   <li><a>psdSinkName</a></li>
--   <li><a>psdCallback</a></li>
--   </ul>
projectsSinksDelete :: Text -> ProjectsSinksDelete

-- | Deletes a sink. If the sink has a unique writer_identity, then that
--   service account is also deleted.
--   
--   <i>See:</i> <a>projectsSinksDelete</a> smart constructor.
data ProjectsSinksDelete

-- | V1 error format.
psdXgafv :: Lens' ProjectsSinksDelete (Maybe Xgafv)

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

-- | Pretty-print response.
psdPp :: Lens' ProjectsSinksDelete Bool

-- | OAuth access token.
psdAccessToken :: Lens' ProjectsSinksDelete (Maybe Text)

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

-- | OAuth bearer token.
psdBearerToken :: Lens' ProjectsSinksDelete (Maybe Text)

-- | Required. The full resource name of the sink to delete, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" It is an error if
--   the sink does not exist. Example:
--   "projects/my-project-id/sinks/my-sink-id". It is an error if the sink
--   does not exist.
psdSinkName :: Lens' ProjectsSinksDelete Text

-- | JSONP
psdCallback :: Lens' ProjectsSinksDelete (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Sinks.Delete.ProjectsSinksDelete
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Sinks.Delete.ProjectsSinksDelete
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Sinks.Delete.ProjectsSinksDelete
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Sinks.Delete.ProjectsSinksDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Sinks.Delete.ProjectsSinksDelete


-- | Gets a sink.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.sinks.get</tt>.
module Network.Google.Resource.Logging.Projects.Sinks.Get

-- | A resource alias for <tt>logging.projects.sinks.get</tt> method which
--   the <a>ProjectsSinksGet</a> request conforms to.
type ProjectsSinksGetResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (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] LogSink)))))))))

-- | Creates a value of <a>ProjectsSinksGet</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>psgXgafv</a></li>
--   <li><a>psgUploadProtocol</a></li>
--   <li><a>psgPp</a></li>
--   <li><a>psgAccessToken</a></li>
--   <li><a>psgUploadType</a></li>
--   <li><a>psgBearerToken</a></li>
--   <li><a>psgSinkName</a></li>
--   <li><a>psgCallback</a></li>
--   </ul>
projectsSinksGet :: Text -> ProjectsSinksGet

-- | Gets a sink.
--   
--   <i>See:</i> <a>projectsSinksGet</a> smart constructor.
data ProjectsSinksGet

-- | V1 error format.
psgXgafv :: Lens' ProjectsSinksGet (Maybe Xgafv)

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

-- | Pretty-print response.
psgPp :: Lens' ProjectsSinksGet Bool

-- | OAuth access token.
psgAccessToken :: Lens' ProjectsSinksGet (Maybe Text)

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

-- | OAuth bearer token.
psgBearerToken :: Lens' ProjectsSinksGet (Maybe Text)

-- | Required. The parent resource name of the sink:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
psgSinkName :: Lens' ProjectsSinksGet Text

-- | JSONP
psgCallback :: Lens' ProjectsSinksGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Sinks.Get.ProjectsSinksGet
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Sinks.Get.ProjectsSinksGet
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Sinks.Get.ProjectsSinksGet
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Sinks.Get.ProjectsSinksGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Sinks.Get.ProjectsSinksGet


-- | Lists sinks.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.sinks.list</tt>.
module Network.Google.Resource.Logging.Projects.Sinks.List

-- | A resource alias for <tt>logging.projects.sinks.list</tt> method which
--   the <a>ProjectsSinksList</a> request conforms to.
type ProjectsSinksListResource = "v2" :> (Capture "parent" Text :> ("sinks" :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListSinksResponse))))))))))))

-- | Creates a value of <a>ProjectsSinksList</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>pslParent</a></li>
--   <li><a>pslXgafv</a></li>
--   <li><a>pslUploadProtocol</a></li>
--   <li><a>pslPp</a></li>
--   <li><a>pslAccessToken</a></li>
--   <li><a>pslUploadType</a></li>
--   <li><a>pslBearerToken</a></li>
--   <li><a>pslPageToken</a></li>
--   <li><a>pslPageSize</a></li>
--   <li><a>pslCallback</a></li>
--   </ul>
projectsSinksList :: Text -> ProjectsSinksList

-- | Lists sinks.
--   
--   <i>See:</i> <a>projectsSinksList</a> smart constructor.
data ProjectsSinksList

-- | Required. The parent resource whose sinks are to be listed. Examples:
--   "projects/my-logging-project", "organizations/123456789".
pslParent :: Lens' ProjectsSinksList Text

-- | V1 error format.
pslXgafv :: Lens' ProjectsSinksList (Maybe Xgafv)

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

-- | Pretty-print response.
pslPp :: Lens' ProjectsSinksList Bool

-- | OAuth access token.
pslAccessToken :: Lens' ProjectsSinksList (Maybe Text)

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

-- | OAuth bearer token.
pslBearerToken :: Lens' ProjectsSinksList (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
pslPageToken :: Lens' ProjectsSinksList (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
pslPageSize :: Lens' ProjectsSinksList (Maybe Int32)

-- | JSONP
pslCallback :: Lens' ProjectsSinksList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Sinks.List.ProjectsSinksList
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Sinks.List.ProjectsSinksList
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Sinks.List.ProjectsSinksList
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Sinks.List.ProjectsSinksList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Sinks.List.ProjectsSinksList


-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a> for
--   <tt>logging.projects.sinks.update</tt>.
module Network.Google.Resource.Logging.Projects.Sinks.Update

-- | A resource alias for <tt>logging.projects.sinks.update</tt> method
--   which the <a>ProjectsSinksUpdate</a> request conforms to.
type ProjectsSinksUpdateResource = "v2" :> (Capture "sinkName" Text :> (QueryParam "$.xgafv" Xgafv :> (QueryParam "uniqueWriterIdentity" Bool :> (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] LogSink :> Put '[JSON] LogSink)))))))))))

-- | Creates a value of <a>ProjectsSinksUpdate</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>psuXgafv</a></li>
--   <li><a>psuUniqueWriterIdentity</a></li>
--   <li><a>psuUploadProtocol</a></li>
--   <li><a>psuPp</a></li>
--   <li><a>psuAccessToken</a></li>
--   <li><a>psuUploadType</a></li>
--   <li><a>psuPayload</a></li>
--   <li><a>psuBearerToken</a></li>
--   <li><a>psuSinkName</a></li>
--   <li><a>psuCallback</a></li>
--   </ul>
projectsSinksUpdate :: LogSink -> Text -> ProjectsSinksUpdate

-- | Updates a sink. If the named sink doesn't exist, then this method is
--   identical to sinks.create. If the named sink does exist, then this
--   method replaces the following fields in the existing sink with values
--   from the new sink: destination, filter, output_version_format,
--   start_time, and end_time. The updated filter might also have a new
--   writer_identity; see the unique_writer_identity field.
--   
--   <i>See:</i> <a>projectsSinksUpdate</a> smart constructor.
data ProjectsSinksUpdate

-- | V1 error format.
psuXgafv :: Lens' ProjectsSinksUpdate (Maybe Xgafv)

-- | Optional. See sinks.create for a description of this field. When
--   updating a sink, the effect of this field on the value of
--   writer_identity in the updated sink depends on both the old and new
--   values of this field: If the old and new values of this field are both
--   false or both true, then there is no change to the sink's
--   writer_identity. If the old value was false and the new value is true,
--   then writer_identity is changed to a unique service account. It is an
--   error if the old value was true and the new value is false.
psuUniqueWriterIdentity :: Lens' ProjectsSinksUpdate (Maybe Bool)

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

-- | Pretty-print response.
psuPp :: Lens' ProjectsSinksUpdate Bool

-- | OAuth access token.
psuAccessToken :: Lens' ProjectsSinksUpdate (Maybe Text)

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

-- | Multipart request metadata.
psuPayload :: Lens' ProjectsSinksUpdate LogSink

-- | OAuth bearer token.
psuBearerToken :: Lens' ProjectsSinksUpdate (Maybe Text)

-- | Required. The full resource name of the sink to update, including the
--   parent resource and the sink identifier:
--   "projects/[PROJECT_ID]/sinks/[SINK_ID]"
--   "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" Example:
--   "projects/my-project-id/sinks/my-sink-id".
psuSinkName :: Lens' ProjectsSinksUpdate Text

-- | JSONP
psuCallback :: Lens' ProjectsSinksUpdate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Logging.Projects.Sinks.Update.ProjectsSinksUpdate
instance Data.Data.Data Network.Google.Resource.Logging.Projects.Sinks.Update.ProjectsSinksUpdate
instance GHC.Show.Show Network.Google.Resource.Logging.Projects.Sinks.Update.ProjectsSinksUpdate
instance GHC.Classes.Eq Network.Google.Resource.Logging.Projects.Sinks.Update.ProjectsSinksUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Logging.Projects.Sinks.Update.ProjectsSinksUpdate


-- | Writes log entries and manages your Stackdriver Logging configuration.
--   
--   <i>See:</i> <a>Stackdriver Logging API Reference</a>
module Network.Google.Logging

-- | Default request referring to version <tt>v2</tt> of the Stackdriver
--   Logging API. This contains the host and root path used as a starting
--   point for constructing service requests.
loggingService :: ServiceConfig

-- | Administrate log data for your projects
loggingAdminScope :: Proxy '["https://www.googleapis.com/auth/logging.admin"]

-- | View log data for your projects
loggingReadScope :: Proxy '["https://www.googleapis.com/auth/logging.read"]

-- | Submit log data for your projects
loggingWriteScope :: Proxy '["https://www.googleapis.com/auth/logging.write"]

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

-- | 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
--   Stackdriver Logging API service.
type LoggingAPI = EntriesListResource :<|> (EntriesWriteResource :<|> (FoldersSinksListResource :<|> (FoldersSinksGetResource :<|> (FoldersSinksCreateResource :<|> (FoldersSinksDeleteResource :<|> (FoldersSinksUpdateResource :<|> (FoldersLogsListResource :<|> (FoldersLogsDeleteResource :<|> (MonitoredResourceDescriptorsListResource :<|> (OrganizationsSinksListResource :<|> (OrganizationsSinksGetResource :<|> (OrganizationsSinksCreateResource :<|> (OrganizationsSinksDeleteResource :<|> (OrganizationsSinksUpdateResource :<|> (OrganizationsLogsListResource :<|> (OrganizationsLogsDeleteResource :<|> (ProjectsSinksListResource :<|> (ProjectsSinksGetResource :<|> (ProjectsSinksCreateResource :<|> (ProjectsSinksDeleteResource :<|> (ProjectsSinksUpdateResource :<|> (ProjectsMetricsListResource :<|> (ProjectsMetricsGetResource :<|> (ProjectsMetricsCreateResource :<|> (ProjectsMetricsDeleteResource :<|> (ProjectsMetricsUpdateResource :<|> (ProjectsLogsListResource :<|> (ProjectsLogsDeleteResource :<|> (BillingAccountsSinksListResource :<|> (BillingAccountsSinksGetResource :<|> (BillingAccountsSinksCreateResource :<|> (BillingAccountsSinksDeleteResource :<|> (BillingAccountsSinksUpdateResource :<|> (BillingAccountsLogsListResource :<|> BillingAccountsLogsDeleteResource))))))))))))))))))))))))))))))))))

-- | An object that describes the schema of a MonitoredResource object
--   using a type name and a set of labels. For example, the monitored
--   resource descriptor for Google Compute Engine VM instances has a type
--   of "gce_instance" and specifies the use of the labels "instance_id"
--   and "zone" to identify particular VM instances.Different APIs can
--   support different monitored resource types. APIs generally provide a
--   list method that returns the monitored resource descriptors used by
--   the API.
--   
--   <i>See:</i> <a>monitoredResourceDescriptor</a> smart constructor.
data MonitoredResourceDescriptor

-- | Creates a value of <a>MonitoredResourceDescriptor</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>mrdName</a></li>
--   <li><a>mrdDisplayName</a></li>
--   <li><a>mrdLabels</a></li>
--   <li><a>mrdType</a></li>
--   <li><a>mrdDescription</a></li>
--   </ul>
monitoredResourceDescriptor :: MonitoredResourceDescriptor

-- | Optional. The resource name of the monitored resource descriptor:
--   "projects/{project_id}/monitoredResourceDescriptors/{type}" where
--   {type} is the value of the type field in this object and {project_id}
--   is a project ID that provides API-specific context for accessing the
--   type. APIs that do not use project information can use the resource
--   name format "monitoredResourceDescriptors/{type}".
mrdName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A concise name for the monitored resource type that might be
--   displayed in user interfaces. It should be a Title Cased Noun Phrase,
--   without any article or other determiners. For example, "Google Cloud
--   SQL Database".
mrdDisplayName :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Required. A set of labels used to describe instances of this monitored
--   resource type. For example, an individual Google Cloud SQL database is
--   identified by values for the labels "database_id" and "zone".
mrdLabels :: Lens' MonitoredResourceDescriptor [LabelDescriptor]

-- | Required. The monitored resource type. For example, the type
--   "cloudsql_database" represents databases in Google Cloud SQL. The
--   maximum length of this value is 256 characters.
mrdType :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Optional. A detailed description of the monitored resource type that
--   might be used in documentation.
mrdDescription :: Lens' MonitoredResourceDescriptor (Maybe Text)

-- | Result returned from ListLogEntries.
--   
--   <i>See:</i> <a>listLogEntriesResponse</a> smart constructor.
data ListLogEntriesResponse

-- | Creates a value of <a>ListLogEntriesResponse</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>llerNextPageToken</a></li>
--   <li><a>llerEntries</a></li>
--   </ul>
listLogEntriesResponse :: ListLogEntriesResponse

-- | If there might be more results than those appearing in this response,
--   then nextPageToken is included. To get the next set of results, call
--   this method again using the value of nextPageToken as pageToken.If a
--   value for next_page_token appears and the entries field is empty, it
--   means that the search found no log entries so far but it did not have
--   time to search all the possible log entries. Retry the method with
--   this value for page_token to continue the search. Alternatively,
--   consider speeding up the search by changing your filter to specify a
--   single log name or resource type, or to narrow the time range of the
--   search.
llerNextPageToken :: Lens' ListLogEntriesResponse (Maybe Text)

-- | A list of log entries.
llerEntries :: Lens' ListLogEntriesResponse [LogEntry]

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
--   
--   <i>See:</i> <a>monitoredResourceLabels</a> smart constructor.
data MonitoredResourceLabels

-- | Creates a value of <a>MonitoredResourceLabels</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>mrlAddtional</a></li>
--   </ul>
monitoredResourceLabels :: HashMap Text Text -> MonitoredResourceLabels
mrlAddtional :: Lens' MonitoredResourceLabels (HashMap Text Text)

-- | Output only. The API version that created or updated this metric. The
--   version also dictates the syntax of the filter expression. When a
--   value for this field is missing, the default value of V2 should be
--   assumed.
data LogMetricVersion

-- | <tt>V2</tt> Stackdriver Logging API v2.
V2 :: LogMetricVersion

-- | <tt>V1</tt> Stackdriver Logging API v1.
V1 :: LogMetricVersion

-- | Result returned from ListLogMetrics.
--   
--   <i>See:</i> <a>listLogMetricsResponse</a> smart constructor.
data ListLogMetricsResponse

-- | Creates a value of <a>ListLogMetricsResponse</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>llmrMetrics</a></li>
--   <li><a>llmrNextPageToken</a></li>
--   </ul>
listLogMetricsResponse :: ListLogMetricsResponse

-- | A list of logs-based metrics.
llmrMetrics :: Lens' ListLogMetricsResponse [LogMetric]

-- | If there might be more results than appear in this response, then
--   nextPageToken is included. To get the next set of results, call this
--   method again using the value of nextPageToken as pageToken.
llmrNextPageToken :: Lens' ListLogMetricsResponse (Maybe Text)

-- | The parameters to WriteLogEntries.
--   
--   <i>See:</i> <a>writeLogEntriesRequest</a> smart constructor.
data WriteLogEntriesRequest

-- | Creates a value of <a>WriteLogEntriesRequest</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>wlerEntries</a></li>
--   <li><a>wlerPartialSuccess</a></li>
--   <li><a>wlerResource</a></li>
--   <li><a>wlerLabels</a></li>
--   <li><a>wlerLogName</a></li>
--   </ul>
writeLogEntriesRequest :: WriteLogEntriesRequest

-- | Required. The log entries to write. Values supplied for the fields
--   log_name, resource, and labels in this entries.write request are added
--   to those log entries that do not provide their own values for the
--   fields.To improve throughput and to avoid exceeding the quota limit
--   for calls to entries.write, you should write multiple log entries at
--   once rather than calling this method for each individual log entry.
wlerEntries :: Lens' WriteLogEntriesRequest [LogEntry]

-- | Optional. Whether valid entries should be written even if some other
--   entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If
--   any entry is not written, the response status will be the error
--   associated with one of the failed entries and include error details in
--   the form of WriteLogEntriesPartialErrors.
wlerPartialSuccess :: Lens' WriteLogEntriesRequest (Maybe Bool)

-- | Optional. A default monitored resource object that is assigned to all
--   log entries in entries that do not specify a value for resource.
--   Example: { "type": "gce_instance", "labels": { "zone":
--   "us-central1-a", "instance_id": "00000000000000000000" }} See
--   LogEntry.
wlerResource :: Lens' WriteLogEntriesRequest (Maybe MonitoredResource)

-- | Optional. Default labels that are added to the labels field of all log
--   entries in entries. If a log entry already has a label with the same
--   key as a label in this parameter, then the log entry's label is not
--   changed. See LogEntry.
wlerLabels :: Lens' WriteLogEntriesRequest (Maybe WriteLogEntriesRequestLabels)

-- | Optional. A default log resource name that is assigned to all log
--   entries in entries that do not specify a value for log_name:
--   "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded. For example, "projects/my-project-id/logs/syslog" or
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   For more information about log names, see LogEntry.
wlerLogName :: Lens' WriteLogEntriesRequest (Maybe Text)

-- | Optional. The log entry format to use for this sink's exported log
--   entries. The v2 format is used by default. The v1 format is deprecated
--   and should be used only as part of a migration effort to v2. See
--   Migration to the v2 API.
data LogSinkOutputVersionFormat

-- | <tt>VERSION_FORMAT_UNSPECIFIED</tt> An unspecified format version that
--   will default to V2.
LSOVFVersionFormatUnspecified :: LogSinkOutputVersionFormat

-- | <tt>V2</tt> LogEntry version 2 format.
LSOVFV2 :: LogSinkOutputVersionFormat

-- | <tt>V1</tt> LogEntry version 1 format.
LSOVFV1 :: LogSinkOutputVersionFormat

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

-- | Optional. A set of user-defined (key, value) data that provides
--   additional information about the log entry.
--   
--   <i>See:</i> <a>logEntryLabels</a> smart constructor.
data LogEntryLabels

-- | Creates a value of <a>LogEntryLabels</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>lelAddtional</a></li>
--   </ul>
logEntryLabels :: HashMap Text Text -> LogEntryLabels
lelAddtional :: Lens' LogEntryLabels (HashMap Text Text)

-- | Result returned from ListSinks.
--   
--   <i>See:</i> <a>listSinksResponse</a> smart constructor.
data ListSinksResponse

-- | Creates a value of <a>ListSinksResponse</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>lsrSinks</a></li>
--   <li><a>lsrNextPageToken</a></li>
--   </ul>
listSinksResponse :: ListSinksResponse

-- | A list of sinks.
lsrSinks :: Lens' ListSinksResponse [LogSink]

-- | If there might be more results than appear in this response, then
--   nextPageToken is included. To get the next set of results, call the
--   same method again using the value of nextPageToken as pageToken.
lsrNextPageToken :: Lens' ListSinksResponse (Maybe Text)

-- | Complete log information about a single HTTP request to an App Engine
--   application.
--   
--   <i>See:</i> <a>requestLog</a> smart constructor.
data RequestLog

-- | Creates a value of <a>RequestLog</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>rlTraceId</a></li>
--   <li><a>rlInstanceId</a></li>
--   <li><a>rlStatus</a></li>
--   <li><a>rlRequestId</a></li>
--   <li><a>rlInstanceIndex</a></li>
--   <li><a>rlModuleId</a></li>
--   <li><a>rlVersionId</a></li>
--   <li><a>rlHTTPVersion</a></li>
--   <li><a>rlTaskName</a></li>
--   <li><a>rlPendingTime</a></li>
--   <li><a>rlWasLoadingRequest</a></li>
--   <li><a>rlFirst</a></li>
--   <li><a>rlStartTime</a></li>
--   <li><a>rlLatency</a></li>
--   <li><a>rlURLMapEntry</a></li>
--   <li><a>rlCost</a></li>
--   <li><a>rlReferrer</a></li>
--   <li><a>rlLine</a></li>
--   <li><a>rlIP</a></li>
--   <li><a>rlAppId</a></li>
--   <li><a>rlMethod</a></li>
--   <li><a>rlResource</a></li>
--   <li><a>rlEndTime</a></li>
--   <li><a>rlFinished</a></li>
--   <li><a>rlMegaCycles</a></li>
--   <li><a>rlUserAgent</a></li>
--   <li><a>rlNickname</a></li>
--   <li><a>rlHost</a></li>
--   <li><a>rlTaskQueueName</a></li>
--   <li><a>rlResponseSize</a></li>
--   <li><a>rlSourceReference</a></li>
--   <li><a>rlAppEngineRelease</a></li>
--   </ul>
requestLog :: RequestLog

-- | Stackdriver Trace identifier for this request.
rlTraceId :: Lens' RequestLog (Maybe Text)

-- | An identifier for the instance that handled the request.
rlInstanceId :: Lens' RequestLog (Maybe Text)

-- | HTTP response status code. Example: 200, 404.
rlStatus :: Lens' RequestLog (Maybe Int32)

-- | Globally unique identifier for a request, which is based on the
--   request start time. Request IDs for requests which started later will
--   compare greater as strings than those for requests which started
--   earlier.
rlRequestId :: Lens' RequestLog (Maybe Text)

-- | If the instance processing this request belongs to a manually scaled
--   module, then this is the 0-based index of the instance. Otherwise,
--   this value is -1.
rlInstanceIndex :: Lens' RequestLog (Maybe Int32)

-- | Module of the application that handled this request.
rlModuleId :: Lens' RequestLog (Maybe Text)

-- | Version of the application that handled this request.
rlVersionId :: Lens' RequestLog (Maybe Text)

-- | HTTP version of request. Example: "HTTP/1.1".
rlHTTPVersion :: Lens' RequestLog (Maybe Text)

-- | Task name of the request, in the case of an offline request.
rlTaskName :: Lens' RequestLog (Maybe Text)

-- | Time this request spent in the pending request queue.
rlPendingTime :: Lens' RequestLog (Maybe Scientific)

-- | Whether this was a loading request for the instance.
rlWasLoadingRequest :: Lens' RequestLog (Maybe Bool)

-- | Whether this is the first RequestLog entry for this request. If an
--   active request has several RequestLog entries written to Stackdriver
--   Logging, then this field will be set for one of them.
rlFirst :: Lens' RequestLog (Maybe Bool)

-- | Time when the request started.
rlStartTime :: Lens' RequestLog (Maybe UTCTime)

-- | Latency of the request.
rlLatency :: Lens' RequestLog (Maybe Scientific)

-- | File or class that handled the request.
rlURLMapEntry :: Lens' RequestLog (Maybe Text)

-- | An indication of the relative cost of serving this request.
rlCost :: Lens' RequestLog (Maybe Double)

-- | Referrer URL of request.
rlReferrer :: Lens' RequestLog (Maybe Text)

-- | A list of log lines emitted by the application while serving this
--   request.
rlLine :: Lens' RequestLog [LogLine]

-- | Origin IP address.
rlIP :: Lens' RequestLog (Maybe Text)

-- | Application that handled this request.
rlAppId :: Lens' RequestLog (Maybe Text)

-- | Request method. Example: "GET", "HEAD", "PUT", "POST", "DELETE".
rlMethod :: Lens' RequestLog (Maybe Text)

-- | Contains the path and query portion of the URL that was requested. For
--   example, if the URL was "http://example.com/app?name=val", the
--   resource would be "/app?name=val". The fragment identifier, which is
--   identified by the # character, is not included.
rlResource :: Lens' RequestLog (Maybe Text)

-- | Time when the request finished.
rlEndTime :: Lens' RequestLog (Maybe UTCTime)

-- | Whether this request is finished or active.
rlFinished :: Lens' RequestLog (Maybe Bool)

-- | Number of CPU megacycles used to process request.
rlMegaCycles :: Lens' RequestLog (Maybe Int64)

-- | User agent that made the request.
rlUserAgent :: Lens' RequestLog (Maybe Text)

-- | The logged-in user who made the request.Most likely, this is the part
--   of the user's email before the ' sign. The field value is the same for
--   different requests from the same user, but different users can have
--   similar names. This information is also available to the application
--   via the App Engine Users API.This field will be populated starting
--   with App Engine 1.9.21.
rlNickname :: Lens' RequestLog (Maybe Text)

-- | Internet host and port number of the resource being requested.
rlHost :: Lens' RequestLog (Maybe Text)

-- | Queue name of the request, in the case of an offline request.
rlTaskQueueName :: Lens' RequestLog (Maybe Text)

-- | Size in bytes sent back to client by request.
rlResponseSize :: Lens' RequestLog (Maybe Int64)

-- | Source code for the application that handled this request. There can
--   be more than one source reference per deployed application if source
--   code is distributed among multiple repositories.
rlSourceReference :: Lens' RequestLog [SourceReference]

-- | App Engine release version.
rlAppEngineRelease :: Lens' RequestLog (Maybe Text)

-- | The log entry payload, represented as a protocol buffer. Some Google
--   Cloud Platform services use this field for their log entry payloads.
--   
--   <i>See:</i> <a>logEntryProtoPayload</a> smart constructor.
data LogEntryProtoPayload

-- | Creates a value of <a>LogEntryProtoPayload</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>leppAddtional</a></li>
--   </ul>
logEntryProtoPayload :: HashMap Text JSONValue -> LogEntryProtoPayload

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

-- | Additional information about the source code location that produced
--   the log entry.
--   
--   <i>See:</i> <a>logEntrySourceLocation</a> smart constructor.
data LogEntrySourceLocation

-- | Creates a value of <a>LogEntrySourceLocation</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>leslFunction</a></li>
--   <li><a>leslLine</a></li>
--   <li><a>leslFile</a></li>
--   </ul>
logEntrySourceLocation :: LogEntrySourceLocation

-- | Optional. Human-readable name of the function or method being invoked,
--   with optional context such as the class or package name. This
--   information may be used in contexts such as the logs viewer, where a
--   file and line number are less meaningful. The format can vary by
--   language. For example: qual.if.ied.Class.method (Java),
--   dir/package.func (Go), function (Python).
leslFunction :: Lens' LogEntrySourceLocation (Maybe Text)

-- | Optional. Line within the source file. 1-based; 0 indicates no line
--   number available.
leslLine :: Lens' LogEntrySourceLocation (Maybe Int64)

-- | Optional. Source file name. Depending on the runtime environment, this
--   might be a simple name or a fully-qualified name.
leslFile :: Lens' LogEntrySourceLocation (Maybe Text)

-- | Result returned from WriteLogEntries. empty
--   
--   <i>See:</i> <a>writeLogEntriesResponse</a> smart constructor.
data WriteLogEntriesResponse

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

-- | Describes a sink used to export log entries to one of the following
--   destinations in any project: a Cloud Storage bucket, a BigQuery
--   dataset, or a Cloud Pub/Sub topic. A logs filter controls which log
--   entries are exported. The sink must be created within a project or
--   organization.
--   
--   <i>See:</i> <a>logSink</a> smart constructor.
data LogSink

-- | Creates a value of <a>LogSink</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>lsDestination</a></li>
--   <li><a>lsStartTime</a></li>
--   <li><a>lsOutputVersionFormat</a></li>
--   <li><a>lsWriterIdentity</a></li>
--   <li><a>lsName</a></li>
--   <li><a>lsEndTime</a></li>
--   <li><a>lsFilter</a></li>
--   </ul>
logSink :: LogSink

-- | Required. The export destination:
--   "storage.googleapis.com/[GCS_BUCKET]"
--   "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]"
--   "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]" The
--   sink's writer_identity, set when the sink is created, must have
--   permission to write to the destination or else the log entries are not
--   exported. For more information, see Exporting Logs With Sinks.
lsDestination :: Lens' LogSink (Maybe Text)

-- | Optional. The time at which this sink will begin exporting log
--   entries. Log entries are exported only if their timestamp is not
--   earlier than the start time. The default value of this field is the
--   time the sink is created or updated.
lsStartTime :: Lens' LogSink (Maybe UTCTime)

-- | Optional. The log entry format to use for this sink's exported log
--   entries. The v2 format is used by default. The v1 format is deprecated
--   and should be used only as part of a migration effort to v2. See
--   Migration to the v2 API.
lsOutputVersionFormat :: Lens' LogSink (Maybe LogSinkOutputVersionFormat)

-- | Output only. An IAM identity—a service account or group—under which
--   Stackdriver Logging writes the exported log entries to the sink's
--   destination. This field is set by sinks.create and sinks.update, based
--   on the setting of unique_writer_identity in those methods.Until you
--   grant this identity write-access to the destination, log entry exports
--   from this sink will fail. For more information, see Granting access
--   for a resource. Consult the destination service's documentation to
--   determine the appropriate IAM roles to assign to the identity.
lsWriterIdentity :: Lens' LogSink (Maybe Text)

-- | Required. The client-assigned sink identifier, unique within the
--   project. Example: "my-syslog-errors-to-pubsub". Sink identifiers are
--   limited to 100 characters and can include only the following
--   characters: upper and lower-case alphanumeric characters, underscores,
--   hyphens, and periods.
lsName :: Lens' LogSink (Maybe Text)

-- | Optional. The time at which this sink will stop exporting log entries.
--   Log entries are exported only if their timestamp is earlier than the
--   end time. If this field is not supplied, there is no end time. If both
--   a start time and an end time are provided, then the end time must be
--   later than the start time.
lsEndTime :: Lens' LogSink (Maybe UTCTime)

-- | Optional. An advanced logs filter. The only exported log entries are
--   those that are in the resource owning the sink and that match the
--   filter. The filter must use the log entry format specified by the
--   output_version_format parameter. For example, in the v2 format:
--   logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND severity&gt;=ERROR
lsFilter :: Lens' LogSink (Maybe Text)

-- | Result returned from ListLogs.
--   
--   <i>See:</i> <a>listLogsResponse</a> smart constructor.
data ListLogsResponse

-- | Creates a value of <a>ListLogsResponse</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>llrNextPageToken</a></li>
--   <li><a>llrLogNames</a></li>
--   </ul>
listLogsResponse :: ListLogsResponse

-- | If there might be more results than those appearing in this response,
--   then nextPageToken is included. To get the next set of results, call
--   this method again using the value of nextPageToken as pageToken.
llrNextPageToken :: Lens' ListLogsResponse (Maybe Text)

-- | A list of log names. For example, "projects/my-project/syslog" or
--   "organizations/123/cloudresourcemanager.googleapis.com%2Factivity".
llrLogNames :: Lens' ListLogsResponse [Text]

-- | Result returned from ListMonitoredResourceDescriptors.
--   
--   <i>See:</i> <a>listMonitoredResourceDescriptorsResponse</a> smart
--   constructor.
data ListMonitoredResourceDescriptorsResponse

-- | Creates a value of <a>ListMonitoredResourceDescriptorsResponse</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>lmrdrNextPageToken</a></li>
--   <li><a>lmrdrResourceDescriptors</a></li>
--   </ul>
listMonitoredResourceDescriptorsResponse :: ListMonitoredResourceDescriptorsResponse

-- | If there might be more results than those appearing in this response,
--   then nextPageToken is included. To get the next set of results, call
--   this method again using the value of nextPageToken as pageToken.
lmrdrNextPageToken :: Lens' ListMonitoredResourceDescriptorsResponse (Maybe Text)

-- | A list of resource descriptors.
lmrdrResourceDescriptors :: Lens' ListMonitoredResourceDescriptorsResponse [MonitoredResourceDescriptor]

-- | The type of data that can be assigned to the label.
data LabelDescriptorValueType

-- | <tt>STRING</tt> A variable-length string. This is the default.
String :: LabelDescriptorValueType

-- | <tt>BOOL</tt> Boolean; true or false.
Bool :: LabelDescriptorValueType

-- | <tt>INT64</tt> A 64-bit signed integer.
INT64 :: LabelDescriptorValueType

-- | A common proto for logging HTTP requests. Only contains semantics
--   defined by the HTTP specification. Product-specific logging
--   information MUST be defined in a separate message.
--   
--   <i>See:</i> <a>hTTPRequest</a> smart constructor.
data HTTPRequest

-- | Creates a value of <a>HTTPRequest</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>httprStatus</a></li>
--   <li><a>httprRequestURL</a></li>
--   <li><a>httprCacheFillBytes</a></li>
--   <li><a>httprRemoteIP</a></li>
--   <li><a>httprLatency</a></li>
--   <li><a>httprServerIP</a></li>
--   <li><a>httprRequestSize</a></li>
--   <li><a>httprCacheValidatedWithOriginServer</a></li>
--   <li><a>httprUserAgent</a></li>
--   <li><a>httprCacheLookup</a></li>
--   <li><a>httprResponseSize</a></li>
--   <li><a>httprRequestMethod</a></li>
--   <li><a>httprCacheHit</a></li>
--   <li><a>httprReferer</a></li>
--   </ul>
hTTPRequest :: HTTPRequest

-- | The response code indicating the status of response. Examples: 200,
--   404.
httprStatus :: Lens' HTTPRequest (Maybe Int32)

-- | The scheme (http, https), the host name, the path and the query
--   portion of the URL that was requested. Example:
--   "http://example.com/some/info?color=red".
httprRequestURL :: Lens' HTTPRequest (Maybe Text)

-- | The number of HTTP response bytes inserted into cache. Set only when a
--   cache fill was attempted.
httprCacheFillBytes :: Lens' HTTPRequest (Maybe Int64)

-- | The IP address (IPv4 or IPv6) of the client that issued the HTTP
--   request. Examples: "192.168.1.1", "FE80::0202:B3FF:FE1E:8329".
httprRemoteIP :: Lens' HTTPRequest (Maybe Text)

-- | The request processing latency on the server, from the time the
--   request was received until the response was sent.
httprLatency :: Lens' HTTPRequest (Maybe Scientific)

-- | The IP address (IPv4 or IPv6) of the origin server that the request
--   was sent to.
httprServerIP :: Lens' HTTPRequest (Maybe Text)

-- | The size of the HTTP request message in bytes, including the request
--   headers and the request body.
httprRequestSize :: Lens' HTTPRequest (Maybe Int64)

-- | Whether or not the response was validated with the origin server
--   before being served from cache. This field is only meaningful if
--   cache_hit is True.
httprCacheValidatedWithOriginServer :: Lens' HTTPRequest (Maybe Bool)

-- | The user agent sent by the client. Example: "Mozilla/4.0 (compatible;
--   MSIE 6.0; Windows 98; Q312461; .NET CLR 1.0.3705)".
httprUserAgent :: Lens' HTTPRequest (Maybe Text)

-- | Whether or not a cache lookup was attempted.
httprCacheLookup :: Lens' HTTPRequest (Maybe Bool)

-- | The size of the HTTP response message sent back to the client, in
--   bytes, including the response headers and the response body.
httprResponseSize :: Lens' HTTPRequest (Maybe Int64)

-- | The request method. Examples: "GET", "HEAD", "PUT", "POST".
httprRequestMethod :: Lens' HTTPRequest (Maybe Text)

-- | Whether or not an entity was served from cache (with or without
--   validation).
httprCacheHit :: Lens' HTTPRequest (Maybe Bool)

-- | The referer URL of the request, as defined in HTTP/1.1 Header Field
--   Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
httprReferer :: Lens' HTTPRequest (Maybe Text)

-- | Optional. Default labels that are added to the labels field of all log
--   entries in entries. If a log entry already has a label with the same
--   key as a label in this parameter, then the log entry's label is not
--   changed. See LogEntry.
--   
--   <i>See:</i> <a>writeLogEntriesRequestLabels</a> smart constructor.
data WriteLogEntriesRequestLabels

-- | Creates a value of <a>WriteLogEntriesRequestLabels</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>wlerlAddtional</a></li>
--   </ul>
writeLogEntriesRequestLabels :: HashMap Text Text -> WriteLogEntriesRequestLabels
wlerlAddtional :: Lens' WriteLogEntriesRequestLabels (HashMap Text Text)

-- | An object representing a resource that can be used for monitoring,
--   logging, billing, or other purposes. Examples include virtual machine
--   instances, databases, and storage devices such as disks. The type
--   field identifies a MonitoredResourceDescriptor object that describes
--   the resource's schema. Information in the labels field identifies the
--   actual resource and its attributes according to the schema. For
--   example, a particular Compute Engine VM instance could be represented
--   by the following object, because the MonitoredResourceDescriptor for
--   "gce_instance" has labels "instance_id" and "zone": { "type":
--   "gce_instance", "labels": { "instance_id": "12345678901234", "zone":
--   "us-central1-a" }}
--   
--   <i>See:</i> <a>monitoredResource</a> smart constructor.
data MonitoredResource

-- | Creates a value of <a>MonitoredResource</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>mrLabels</a></li>
--   <li><a>mrType</a></li>
--   </ul>
monitoredResource :: MonitoredResource

-- | Required. Values for all of the labels listed in the associated
--   monitored resource descriptor. For example, Cloud SQL databases use
--   the labels "database_id" and "zone".
mrLabels :: Lens' MonitoredResource (Maybe MonitoredResourceLabels)

-- | Required. The monitored resource type. This field must match the type
--   field of a MonitoredResourceDescriptor object. For example, the type
--   of a Cloud SQL database is "cloudsql_database".
mrType :: Lens' MonitoredResource (Maybe Text)

-- | V1 error format.
data Xgafv

-- | <tt>1</tt> v1 error format
X1 :: Xgafv

-- | <tt>2</tt> v2 error format
X2 :: Xgafv

-- | Application log line emitted while processing a request.
--   
--   <i>See:</i> <a>logLine</a> smart constructor.
data LogLine

-- | Creates a value of <a>LogLine</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>llTime</a></li>
--   <li><a>llSeverity</a></li>
--   <li><a>llLogMessage</a></li>
--   <li><a>llSourceLocation</a></li>
--   </ul>
logLine :: LogLine

-- | Approximate time when this log entry was made.
llTime :: Lens' LogLine (Maybe UTCTime)

-- | Severity of this log entry.
llSeverity :: Lens' LogLine (Maybe LogLineSeverity)

-- | App-provided log message.
llLogMessage :: Lens' LogLine (Maybe Text)

-- | Where in the source code this log message was written.
llSourceLocation :: Lens' LogLine (Maybe SourceLocation)

-- | A description of a label.
--   
--   <i>See:</i> <a>labelDescriptor</a> smart constructor.
data LabelDescriptor

-- | Creates a value of <a>LabelDescriptor</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>ldKey</a></li>
--   <li><a>ldValueType</a></li>
--   <li><a>ldDescription</a></li>
--   </ul>
labelDescriptor :: LabelDescriptor

-- | The label key.
ldKey :: Lens' LabelDescriptor (Maybe Text)

-- | The type of data that can be assigned to the label.
ldValueType :: Lens' LabelDescriptor (Maybe LabelDescriptorValueType)

-- | A human-readable description for the label.
ldDescription :: Lens' LabelDescriptor (Maybe Text)

-- | The parameters to ListLogEntries.
--   
--   <i>See:</i> <a>listLogEntriesRequest</a> smart constructor.
data ListLogEntriesRequest

-- | Creates a value of <a>ListLogEntriesRequest</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>llerOrderBy</a></li>
--   <li><a>llerProjectIds</a></li>
--   <li><a>llerFilter</a></li>
--   <li><a>llerPageToken</a></li>
--   <li><a>llerPageSize</a></li>
--   <li><a>llerResourceNames</a></li>
--   </ul>
listLogEntriesRequest :: ListLogEntriesRequest

-- | Optional. How the results should be sorted. Presently, the only
--   permitted values are "timestamp asc" (default) and "timestamp desc".
--   The first option returns entries in order of increasing values of
--   LogEntry.timestamp (oldest first), and the second option returns
--   entries in order of decreasing timestamps (newest first). Entries with
--   equal timestamps are returned in order of LogEntry.insertId.
llerOrderBy :: Lens' ListLogEntriesRequest (Maybe Text)

-- | Deprecated. Use resource_names instead. One or more project
--   identifiers or project numbers from which to retrieve log entries.
--   Example: "my-project-1A". If present, these project identifiers are
--   converted to resource name format and added to the list of resources
--   in resource_names.
llerProjectIds :: Lens' ListLogEntriesRequest [Text]

-- | Optional. A filter that chooses which log entries to return. See
--   Advanced Logs Filters. Only log entries that match the filter are
--   returned. An empty filter matches all log entries in the resources
--   listed in resource_names. Referencing a parent resource that is not
--   listed in resource_names will cause the filter to return no results.
--   The maximum length of the filter is 20000 characters.
llerFilter :: Lens' ListLogEntriesRequest (Maybe Text)

-- | Optional. If present, then retrieve the next batch of results from the
--   preceding call to this method. pageToken must be the value of
--   nextPageToken from the previous response. The values of other method
--   parameters should be identical to those in the previous call.
llerPageToken :: Lens' ListLogEntriesRequest (Maybe Text)

-- | Optional. The maximum number of results to return from this request.
--   Non-positive values are ignored. The presence of nextPageToken in the
--   response indicates that more results might be available.
llerPageSize :: Lens' ListLogEntriesRequest (Maybe Int32)

-- | Required. Names of one or more resources from which to retrieve log
--   entries: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]"
--   Projects listed in the project_ids field are added to this list.
llerResourceNames :: Lens' ListLogEntriesRequest [Text]

-- | Additional information about a potentially long-running operation with
--   which a log entry is associated.
--   
--   <i>See:</i> <a>logEntryOperation</a> smart constructor.
data LogEntryOperation

-- | Creates a value of <a>LogEntryOperation</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>leoFirst</a></li>
--   <li><a>leoProducer</a></li>
--   <li><a>leoLast</a></li>
--   <li><a>leoId</a></li>
--   </ul>
logEntryOperation :: LogEntryOperation

-- | Optional. Set this to True if this is the first log entry in the
--   operation.
leoFirst :: Lens' LogEntryOperation (Maybe Bool)

-- | Optional. An arbitrary producer identifier. The combination of id and
--   producer must be globally unique. Examples for producer:
--   "MyDivision.MyBigCompany.com", "github.com/MyProject/MyApplication".
leoProducer :: Lens' LogEntryOperation (Maybe Text)

-- | Optional. Set this to True if this is the last log entry in the
--   operation.
leoLast :: Lens' LogEntryOperation (Maybe Bool)

-- | Optional. An arbitrary operation identifier. Log entries with the same
--   identifier are assumed to be part of the same operation.
leoId :: Lens' LogEntryOperation (Maybe Text)

-- | Describes a logs-based metric. The value of the metric is the number
--   of log entries that match a logs filter in a given time interval.
--   
--   <i>See:</i> <a>logMetric</a> smart constructor.
data LogMetric

-- | Creates a value of <a>LogMetric</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>lmName</a></li>
--   <li><a>lmVersion</a></li>
--   <li><a>lmFilter</a></li>
--   <li><a>lmDescription</a></li>
--   </ul>
logMetric :: LogMetric

-- | Required. The client-assigned metric identifier. Examples:
--   "error_count", "nginx/requests".Metric identifiers are limited to 100
--   characters and can include only the following characters: A-Z, a-z,
--   0-9, and the special characters _-.,+!*',()%/. The forward-slash
--   character (/) denotes a hierarchy of name pieces, and it cannot be the
--   first character of the name.The metric identifier in this field must
--   not be URL-encoded (https://en.wikipedia.org/wiki/Percent-encoding).
--   However, when the metric identifier appears as the [METRIC_ID] part of
--   a metric_name API parameter, then the metric identifier must be
--   URL-encoded. Example: "projects/my-project/metrics/nginx%2Frequests".
lmName :: Lens' LogMetric (Maybe Text)

-- | Output only. The API version that created or updated this metric. The
--   version also dictates the syntax of the filter expression. When a
--   value for this field is missing, the default value of V2 should be
--   assumed.
lmVersion :: Lens' LogMetric (Maybe LogMetricVersion)

-- | Required. An advanced logs filter which is used to match log entries.
--   Example: "resource.type=gae_app AND severity&gt;=ERROR" The maximum
--   length of the filter is 20000 characters.
lmFilter :: Lens' LogMetric (Maybe Text)

-- | Optional. A description of this metric, which is used in
--   documentation.
lmDescription :: Lens' LogMetric (Maybe Text)

-- | An individual entry in a log.
--   
--   <i>See:</i> <a>logEntry</a> smart constructor.
data LogEntry

-- | Creates a value of <a>LogEntry</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>leOperation</a></li>
--   <li><a>leSeverity</a></li>
--   <li><a>leTextPayload</a></li>
--   <li><a>leJSONPayload</a></li>
--   <li><a>leHTTPRequest</a></li>
--   <li><a>leResource</a></li>
--   <li><a>leInsertId</a></li>
--   <li><a>leLabels</a></li>
--   <li><a>leProtoPayload</a></li>
--   <li><a>leSourceLocation</a></li>
--   <li><a>leLogName</a></li>
--   <li><a>leTimestamp</a></li>
--   <li><a>leTrace</a></li>
--   </ul>
logEntry :: LogEntry

-- | Optional. Information about an operation associated with the log
--   entry, if applicable.
leOperation :: Lens' LogEntry (Maybe LogEntryOperation)

-- | Optional. The severity of the log entry. The default value is
--   LogSeverity.DEFAULT.
leSeverity :: Lens' LogEntry (Maybe LogEntrySeverity)

-- | The log entry payload, represented as a Unicode string (UTF-8).
leTextPayload :: Lens' LogEntry (Maybe Text)

-- | The log entry payload, represented as a structure that is expressed as
--   a JSON object.
leJSONPayload :: Lens' LogEntry (Maybe LogEntryJSONPayload)

-- | Optional. Information about the HTTP request associated with this log
--   entry, if applicable.
leHTTPRequest :: Lens' LogEntry (Maybe HTTPRequest)

-- | Required. The monitored resource associated with this log entry.
--   Example: a log entry that reports a database error would be associated
--   with the monitored resource designating the particular database that
--   reported the error.
leResource :: Lens' LogEntry (Maybe MonitoredResource)

-- | Optional. A unique ID for the log entry. If you provide this field,
--   the logging service considers other log entries in the same project
--   with the same ID as duplicates which can be removed. If omitted,
--   Stackdriver Logging will generate a unique ID for this log entry.
leInsertId :: Lens' LogEntry (Maybe Text)

-- | Optional. A set of user-defined (key, value) data that provides
--   additional information about the log entry.
leLabels :: Lens' LogEntry (Maybe LogEntryLabels)

-- | The log entry payload, represented as a protocol buffer. Some Google
--   Cloud Platform services use this field for their log entry payloads.
leProtoPayload :: Lens' LogEntry (Maybe LogEntryProtoPayload)

-- | Optional. Source code location information associated with the log
--   entry, if any.
leSourceLocation :: Lens' LogEntry (Maybe LogEntrySourceLocation)

-- | Required. The resource name of the log to which this log entry
--   belongs: "projects/[PROJECT_ID]/logs/[LOG_ID]"
--   "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" [LOG_ID] must be
--   URL-encoded within log_name. Example:
--   "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity".
--   [LOG_ID] must be less than 512 characters long and can only include
--   the following characters: upper and lower case alphanumeric
--   characters, forward-slash, underscore, hyphen, and period.For backward
--   compatibility, if log_name begins with a forward-slash, such as
--   /projects/..., then the log entry is ingested as usual but the
--   forward-slash is removed. Listing the log entry will not show the
--   leading slash and filtering for a log name with a leading slash will
--   never return any results.
leLogName :: Lens' LogEntry (Maybe Text)

-- | Optional. The time the event described by the log entry occurred. If
--   omitted, Stackdriver Logging will use the time the log entry is
--   received.
leTimestamp :: Lens' LogEntry (Maybe UTCTime)

-- | Optional. Resource name of the trace associated with the log entry, if
--   any. If it contains a relative resource name, the name is assumed to
--   be relative to //tracing.googleapis.com. Example:
--   projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824
leTrace :: Lens' LogEntry (Maybe Text)

-- | Specifies a location in a source code file.
--   
--   <i>See:</i> <a>sourceLocation</a> smart constructor.
data SourceLocation

-- | Creates a value of <a>SourceLocation</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>slLine</a></li>
--   <li><a>slFunctionName</a></li>
--   <li><a>slFile</a></li>
--   </ul>
sourceLocation :: SourceLocation

-- | Line within the source file.
slLine :: Lens' SourceLocation (Maybe Int64)

-- | Human-readable name of the function or method being invoked, with
--   optional context such as the class or package name. This information
--   is used in contexts such as the logs viewer, where a file and line
--   number are less meaningful. The format can vary by language. For
--   example: qual.if.ied.Class.method (Java), dir/package.func (Go),
--   function (Python).
slFunctionName :: Lens' SourceLocation (Maybe Text)

-- | Source file name. Depending on the runtime environment, this might be
--   a simple name or a fully-qualified name.
slFile :: Lens' SourceLocation (Maybe Text)

-- | Optional. The severity of the log entry. The default value is
--   LogSeverity.DEFAULT.
data LogEntrySeverity

-- | <tt>DEFAULT</tt> (0) The log entry has no assigned severity level.
Default :: LogEntrySeverity

-- | <tt>DEBUG</tt> (100) Debug or trace information.
Debug :: LogEntrySeverity

-- | <tt>INFO</tt> (200) Routine information, such as ongoing status or
--   performance.
Info :: LogEntrySeverity

-- | <tt>NOTICE</tt> (300) Normal but significant events, such as start up,
--   shut down, or a configuration change.
Notice :: LogEntrySeverity

-- | <tt>WARNING</tt> (400) Warning events might cause problems.
Warning :: LogEntrySeverity

-- | <tt>ERROR</tt> (500) Error events are likely to cause problems.
Error' :: LogEntrySeverity

-- | <tt>CRITICAL</tt> (600) Critical events cause more severe problems or
--   outages.
Critical :: LogEntrySeverity

-- | <tt>ALERT</tt> (700) A person must take an action immediately.
Alert :: LogEntrySeverity

-- | <tt>EMERGENCY</tt> (800) One or more systems are unusable.
Emergency :: LogEntrySeverity

-- | A reference to a particular snapshot of the source tree used to build
--   and deploy an application.
--   
--   <i>See:</i> <a>sourceReference</a> smart constructor.
data SourceReference

-- | Creates a value of <a>SourceReference</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>srRepository</a></li>
--   <li><a>srRevisionId</a></li>
--   </ul>
sourceReference :: SourceReference

-- | Optional. A URI string identifying the repository. Example:
--   "https://github.com/GoogleCloudPlatform/kubernetes.git"
srRepository :: Lens' SourceReference (Maybe Text)

-- | The canonical and persistent identifier of the deployed revision.
--   Example (git): "0035781c50ec7aa23385dc841529ce8a4b70db1b"
srRevisionId :: Lens' SourceReference (Maybe Text)

-- | The log entry payload, represented as a structure that is expressed as
--   a JSON object.
--   
--   <i>See:</i> <a>logEntryJSONPayload</a> smart constructor.
data LogEntryJSONPayload

-- | Creates a value of <a>LogEntryJSONPayload</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>lejpAddtional</a></li>
--   </ul>
logEntryJSONPayload :: HashMap Text JSONValue -> LogEntryJSONPayload

-- | Properties of the object.
lejpAddtional :: Lens' LogEntryJSONPayload (HashMap Text JSONValue)

-- | Severity of this log entry.
data LogLineSeverity

-- | <tt>DEFAULT</tt> (0) The log entry has no assigned severity level.
LLSDefault :: LogLineSeverity

-- | <tt>DEBUG</tt> (100) Debug or trace information.
LLSDebug :: LogLineSeverity

-- | <tt>INFO</tt> (200) Routine information, such as ongoing status or
--   performance.
LLSInfo :: LogLineSeverity

-- | <tt>NOTICE</tt> (300) Normal but significant events, such as start up,
--   shut down, or a configuration change.
LLSNotice :: LogLineSeverity

-- | <tt>WARNING</tt> (400) Warning events might cause problems.
LLSWarning :: LogLineSeverity

-- | <tt>ERROR</tt> (500) Error events are likely to cause problems.
LLSError' :: LogLineSeverity

-- | <tt>CRITICAL</tt> (600) Critical events cause more severe problems or
--   outages.
LLSCritical :: LogLineSeverity

-- | <tt>ALERT</tt> (700) A person must take an action immediately.
LLSAlert :: LogLineSeverity

-- | <tt>EMERGENCY</tt> (800) One or more systems are unusable.
LLSEmergency :: LogLineSeverity
