/**
         * logging.projects.locations.buckets.patch
         * @desc Updates a bucket. This method replaces the following fields in the existing bucket with values from the new bucket: retention_periodIf the retention period is decreased and the bucket is locked, FAILED_PRECONDITION will be returned.If the bucket has a LifecycleState of DELETE_REQUESTED, FAILED_PRECONDITION will be returned.A buckets region may not be modified after it is created. This method is in Beta.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.locations.buckets.patch({
         *     // Required. The full resource name of the bucket to update.
         *     // "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
         *     // "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
         *     // "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]"
         *     // Example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id". Also requires permission "resourcemanager.projects.updateLiens" to set the locked property
         *     name: 'projects/my-project/locations/my-location/buckets/my-bucket',
         *     // Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=retention_days.
         *     updateMask: 'placeholder-value',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "lifecycleState": "my_lifecycleState",
         *       //   "name": "my_name",
         *       //   "retentionDays": 0,
         *       //   "updateTime": "my_updateTime"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "lifecycleState": "my_lifecycleState",
         *   //   "name": "my_name",
         *   //   "retentionDays": 0,
         *   //   "updateTime": "my_updateTime"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.locations.buckets.patch
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.name Required. The full resource name of the bucket to update. "projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" "organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" "folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]" Example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id". Also requires permission "resourcemanager.projects.updateLiens" to set the locked property
         * @param {string=} params.updateMask Required. Field mask that specifies the fields in bucket that need an update. A bucket field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=retention_days.
         * @param {().LogBucket} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
patch(params: Params$Resource$Projects$Locations$Buckets$Patch, options: StreamMethodOptions): GaxiosPromise<Readable>;


patch(params?: Params$Resource$Projects$Locations$Buckets$Patch, options?: MethodOptions): GaxiosPromise<Schema$LogBucket>;


patch(params: Params$Resource$Projects$Locations$Buckets$Patch, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


patch(params: Params$Resource$Projects$Locations$Buckets$Patch, options: MethodOptions | BodyResponseCallback<Schema$LogBucket>, callback: BodyResponseCallback<Schema$LogBucket>): void;


patch(params: Params$Resource$Projects$Locations$Buckets$Patch, callback: BodyResponseCallback<Schema$LogBucket>): void;


/**
         * logging.projects.logs.delete
         * @desc Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted. Entries received after the delete operation with a timestamp before the operation will be deleted.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.logs.delete({
         *     // Required. The resource name of the log to delete:
         *     // "projects/[PROJECT_ID]/logs/[LOG_ID]"
         *     // "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
         *     // "folders/[FOLDER_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.
         *     logName: 'projects/my-project/logs/my-log',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {}
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.logs.delete
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.logName Required. The resource name of the log to delete: "projects/[PROJECT_ID]/logs/[LOG_ID]" "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]" "folders/[FOLDER_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.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
delete(params: Params$Resource$Projects$Logs$Delete, options: StreamMethodOptions): GaxiosPromise<Readable>;


delete(params?: Params$Resource$Projects$Logs$Delete, options?: MethodOptions): GaxiosPromise<Schema$Empty>;


delete(params: Params$Resource$Projects$Logs$Delete, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


delete(params: Params$Resource$Projects$Logs$Delete, options: MethodOptions | BodyResponseCallback<Schema$Empty>, callback: BodyResponseCallback<Schema$Empty>): void;


delete(params: Params$Resource$Projects$Logs$Delete, callback: BodyResponseCallback<Schema$Empty>): void;


/**
         * logging.projects.logs.list
         * @desc Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.logs.list({
         *     // 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.
         *     pageSize: 'placeholder-value',
         *     // 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.
         *     pageToken: 'placeholder-value',
         *     // Required. The resource name that owns the logs:
         *     // "projects/[PROJECT_ID]"
         *     // "organizations/[ORGANIZATION_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]"
         *     // "folders/[FOLDER_ID]"
         *     //
         *     parent: 'projects/my-project',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "logNames": [],
         *   //   "nextPageToken": "my_nextPageToken"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.logs.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {integer=} params.pageSize 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.
         * @param {string=} params.pageToken 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.
         * @param {string} params.parent Required. The resource name that owns the logs: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]" "folders/[FOLDER_ID]"
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
list(params: Params$Resource$Projects$Logs$List, options: StreamMethodOptions): GaxiosPromise<Readable>;


list(params?: Params$Resource$Projects$Logs$List, options?: MethodOptions): GaxiosPromise<Schema$ListLogsResponse>;


list(params: Params$Resource$Projects$Logs$List, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


list(params: Params$Resource$Projects$Logs$List, options: MethodOptions | BodyResponseCallback<Schema$ListLogsResponse>, callback: BodyResponseCallback<Schema$ListLogsResponse>): void;


list(params: Params$Resource$Projects$Logs$List, callback: BodyResponseCallback<Schema$ListLogsResponse>): void;


/**
         * logging.projects.metrics.create
         * @desc Creates a logs-based metric.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.write',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.metrics.create({
         *     // Required. The resource name of the project in which to create the metric:
         *     // "projects/[PROJECT_ID]"
         *     // The new metric must be provided in the request.
         *     parent: 'projects/my-project',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bucketOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "filter": "my_filter",
         *       //   "labelExtractors": {},
         *       //   "metricDescriptor": {},
         *       //   "name": "my_name",
         *       //   "updateTime": "my_updateTime",
         *       //   "valueExtractor": "my_valueExtractor",
         *       //   "version": "my_version"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bucketOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "filter": "my_filter",
         *   //   "labelExtractors": {},
         *   //   "metricDescriptor": {},
         *   //   "name": "my_name",
         *   //   "updateTime": "my_updateTime",
         *   //   "valueExtractor": "my_valueExtractor",
         *   //   "version": "my_version"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.metrics.create
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.parent Required. The resource name of the project in which to create the metric: "projects/[PROJECT_ID]" The new metric must be provided in the request.
         * @param {().LogMetric} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
create(params: Params$Resource$Projects$Metrics$Create, options: StreamMethodOptions): GaxiosPromise<Readable>;


create(params?: Params$Resource$Projects$Metrics$Create, options?: MethodOptions): GaxiosPromise<Schema$LogMetric>;


create(params: Params$Resource$Projects$Metrics$Create, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


create(params: Params$Resource$Projects$Metrics$Create, options: MethodOptions | BodyResponseCallback<Schema$LogMetric>, callback: BodyResponseCallback<Schema$LogMetric>): void;


create(params: Params$Resource$Projects$Metrics$Create, callback: BodyResponseCallback<Schema$LogMetric>): void;


create(callback: BodyResponseCallback<Schema$LogMetric>): void;


/**
         * logging.projects.metrics.delete
         * @desc Deletes a logs-based metric.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.write',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.metrics.delete({
         *     // Required. The resource name of the metric to delete:
         *     // "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
         *     //
         *     metricName: 'projects/my-project/metrics/my-metric',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {}
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.metrics.delete
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.metricName Required. The resource name of the metric to delete: "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
delete(params: Params$Resource$Projects$Metrics$Delete, options: StreamMethodOptions): GaxiosPromise<Readable>;


delete(params?: Params$Resource$Projects$Metrics$Delete, options?: MethodOptions): GaxiosPromise<Schema$Empty>;


delete(params: Params$Resource$Projects$Metrics$Delete, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


delete(params: Params$Resource$Projects$Metrics$Delete, options: MethodOptions | BodyResponseCallback<Schema$Empty>, callback: BodyResponseCallback<Schema$Empty>): void;


delete(params: Params$Resource$Projects$Metrics$Delete, callback: BodyResponseCallback<Schema$Empty>): void;


/**
         * logging.projects.metrics.get
         * @desc Gets a logs-based metric.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.metrics.get({
         *     // Required. The resource name of the desired metric:
         *     // "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
         *     //
         *     metricName: 'projects/my-project/metrics/my-metric',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bucketOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "filter": "my_filter",
         *   //   "labelExtractors": {},
         *   //   "metricDescriptor": {},
         *   //   "name": "my_name",
         *   //   "updateTime": "my_updateTime",
         *   //   "valueExtractor": "my_valueExtractor",
         *   //   "version": "my_version"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.metrics.get
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.metricName Required. The resource name of the desired metric: "projects/[PROJECT_ID]/metrics/[METRIC_ID]"
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
get(params: Params$Resource$Projects$Metrics$Get, options: StreamMethodOptions): GaxiosPromise<Readable>;


get(params?: Params$Resource$Projects$Metrics$Get, options?: MethodOptions): GaxiosPromise<Schema$LogMetric>;


get(params: Params$Resource$Projects$Metrics$Get, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


get(params: Params$Resource$Projects$Metrics$Get, options: MethodOptions | BodyResponseCallback<Schema$LogMetric>, callback: BodyResponseCallback<Schema$LogMetric>): void;


get(params: Params$Resource$Projects$Metrics$Get, callback: BodyResponseCallback<Schema$LogMetric>): void;


get(callback: BodyResponseCallback<Schema$LogMetric>): void;


/**
         * logging.projects.metrics.list
         * @desc Lists logs-based metrics.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.metrics.list({
         *     // 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.
         *     pageSize: 'placeholder-value',
         *     // 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.
         *     pageToken: 'placeholder-value',
         *     // Required. The name of the project containing the metrics:
         *     // "projects/[PROJECT_ID]"
         *     //
         *     parent: 'projects/my-project',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "metrics": [],
         *   //   "nextPageToken": "my_nextPageToken"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.metrics.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {integer=} params.pageSize 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.
         * @param {string=} params.pageToken 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.
         * @param {string} params.parent Required. The name of the project containing the metrics: "projects/[PROJECT_ID]"
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
list(params: Params$Resource$Projects$Metrics$List, options: StreamMethodOptions): GaxiosPromise<Readable>;


list(params?: Params$Resource$Projects$Metrics$List, options?: MethodOptions): GaxiosPromise<Schema$ListLogMetricsResponse>;


list(params: Params$Resource$Projects$Metrics$List, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


list(params: Params$Resource$Projects$Metrics$List, options: MethodOptions | BodyResponseCallback<Schema$ListLogMetricsResponse>, callback: BodyResponseCallback<Schema$ListLogMetricsResponse>): void;


list(params: Params$Resource$Projects$Metrics$List, callback: BodyResponseCallback<Schema$ListLogMetricsResponse>): void;


list(callback: BodyResponseCallback<Schema$ListLogMetricsResponse>): void;


/**
         * logging.projects.metrics.update
         * @desc Creates or updates a logs-based metric.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.write',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.metrics.update({
         *     // Required. 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.
         *     metricName: 'projects/my-project/metrics/my-metric',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bucketOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "filter": "my_filter",
         *       //   "labelExtractors": {},
         *       //   "metricDescriptor": {},
         *       //   "name": "my_name",
         *       //   "updateTime": "my_updateTime",
         *       //   "valueExtractor": "my_valueExtractor",
         *       //   "version": "my_version"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bucketOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "filter": "my_filter",
         *   //   "labelExtractors": {},
         *   //   "metricDescriptor": {},
         *   //   "name": "my_name",
         *   //   "updateTime": "my_updateTime",
         *   //   "valueExtractor": "my_valueExtractor",
         *   //   "version": "my_version"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.metrics.update
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.metricName Required. 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.
         * @param {().LogMetric} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
update(params: Params$Resource$Projects$Metrics$Update, options: StreamMethodOptions): GaxiosPromise<Readable>;


update(params?: Params$Resource$Projects$Metrics$Update, options?: MethodOptions): GaxiosPromise<Schema$LogMetric>;


update(params: Params$Resource$Projects$Metrics$Update, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


update(params: Params$Resource$Projects$Metrics$Update, options: MethodOptions | BodyResponseCallback<Schema$LogMetric>, callback: BodyResponseCallback<Schema$LogMetric>): void;


update(params: Params$Resource$Projects$Metrics$Update, callback: BodyResponseCallback<Schema$LogMetric>): void;


update(callback: BodyResponseCallback<Schema$LogMetric>): void;


/**
         * logging.projects.sinks.create
         * @desc Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless 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.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.sinks.create({
         *     // Required. The resource in which to create the sink:
         *     // "projects/[PROJECT_ID]"
         *     // "organizations/[ORGANIZATION_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]"
         *     // "folders/[FOLDER_ID]"
         *     // Examples: "projects/my-logging-project", "organizations/123456789".
         *     parent: 'projects/my-project',
         *     // 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 the same group or service account used by Logging 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.
         *     uniqueWriterIdentity: 'placeholder-value',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bigqueryOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "destination": "my_destination",
         *       //   "disabled": false,
         *       //   "filter": "my_filter",
         *       //   "includeChildren": false,
         *       //   "name": "my_name",
         *       //   "outputVersionFormat": "my_outputVersionFormat",
         *       //   "updateTime": "my_updateTime",
         *       //   "writerIdentity": "my_writerIdentity"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.sinks.create
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.parent Required. The resource in which to create the sink: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]" "folders/[FOLDER_ID]" Examples: "projects/my-logging-project", "organizations/123456789".
         * @param {boolean=} params.uniqueWriterIdentity 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 the same group or service account used by Logging 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.
         * @param {().LogSink} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
create(params: Params$Resource$Projects$Sinks$Create, options: StreamMethodOptions): GaxiosPromise<Readable>;


create(params?: Params$Resource$Projects$Sinks$Create, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


create(params: Params$Resource$Projects$Sinks$Create, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


create(params: Params$Resource$Projects$Sinks$Create, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


create(params: Params$Resource$Projects$Sinks$Create, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.projects.sinks.delete
         * @desc Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.sinks.delete({
         *     // 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]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: 'projects/my-project/sinks/my-sink',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {}
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.sinks.delete
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName 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]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
delete(params: Params$Resource$Projects$Sinks$Delete, options: StreamMethodOptions): GaxiosPromise<Readable>;


delete(params?: Params$Resource$Projects$Sinks$Delete, options?: MethodOptions): GaxiosPromise<Schema$Empty>;


delete(params: Params$Resource$Projects$Sinks$Delete, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


delete(params: Params$Resource$Projects$Sinks$Delete, options: MethodOptions | BodyResponseCallback<Schema$Empty>, callback: BodyResponseCallback<Schema$Empty>): void;


delete(params: Params$Resource$Projects$Sinks$Delete, callback: BodyResponseCallback<Schema$Empty>): void;


/**
         * logging.projects.sinks.get
         * @desc Gets a sink.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.sinks.get({
         *     // Required. The resource name of the sink:
         *     // "projects/[PROJECT_ID]/sinks/[SINK_ID]"
         *     // "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: 'projects/my-project/sinks/my-sink',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.sinks.get
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName Required. The resource name of the sink: "projects/[PROJECT_ID]/sinks/[SINK_ID]" "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
get(params: Params$Resource$Projects$Sinks$Get, options: StreamMethodOptions): GaxiosPromise<Readable>;


get(params?: Params$Resource$Projects$Sinks$Get, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


get(params: Params$Resource$Projects$Sinks$Get, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


get(params: Params$Resource$Projects$Sinks$Get, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


get(params: Params$Resource$Projects$Sinks$Get, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.projects.sinks.list
         * @desc Lists sinks.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.sinks.list({
         *     // 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.
         *     pageSize: 'placeholder-value',
         *     // 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.
         *     pageToken: 'placeholder-value',
         *     // Required. The parent resource whose sinks are to be listed:
         *     // "projects/[PROJECT_ID]"
         *     // "organizations/[ORGANIZATION_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]"
         *     // "folders/[FOLDER_ID]"
         *     //
         *     parent: 'projects/my-project',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "nextPageToken": "my_nextPageToken",
         *   //   "sinks": []
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.sinks.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {integer=} params.pageSize 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.
         * @param {string=} params.pageToken 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.
         * @param {string} params.parent Required. The parent resource whose sinks are to be listed: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]" "folders/[FOLDER_ID]"
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
list(params: Params$Resource$Projects$Sinks$List, options: StreamMethodOptions): GaxiosPromise<Readable>;


list(params?: Params$Resource$Projects$Sinks$List, options?: MethodOptions): GaxiosPromise<Schema$ListSinksResponse>;


list(params: Params$Resource$Projects$Sinks$List, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


list(params: Params$Resource$Projects$Sinks$List, options: MethodOptions | BodyResponseCallback<Schema$ListSinksResponse>, callback: BodyResponseCallback<Schema$ListSinksResponse>): void;


list(params: Params$Resource$Projects$Sinks$List, callback: BodyResponseCallback<Schema$ListSinksResponse>): void;


/**
         * logging.projects.sinks.patch
         * @desc Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.sinks.patch({
         *     // 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]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: 'projects/my-project/sinks/my-sink',
         *     // 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 is 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 is true and the new value is set to false or defaulted to false.
         *     uniqueWriterIdentity: 'placeholder-value',
         *     // Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes:  destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=filter.
         *     updateMask: 'placeholder-value',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bigqueryOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "destination": "my_destination",
         *       //   "disabled": false,
         *       //   "filter": "my_filter",
         *       //   "includeChildren": false,
         *       //   "name": "my_name",
         *       //   "outputVersionFormat": "my_outputVersionFormat",
         *       //   "updateTime": "my_updateTime",
         *       //   "writerIdentity": "my_writerIdentity"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.sinks.patch
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName 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]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {boolean=} params.uniqueWriterIdentity 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 is 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 is true and the new value is set to false or defaulted to false.
         * @param {string=} params.updateMask Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes:  destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=filter.
         * @param {().LogSink} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
patch(params: Params$Resource$Projects$Sinks$Patch, options: StreamMethodOptions): GaxiosPromise<Readable>;


patch(params?: Params$Resource$Projects$Sinks$Patch, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


patch(params: Params$Resource$Projects$Sinks$Patch, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


patch(params: Params$Resource$Projects$Sinks$Patch, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


patch(params: Params$Resource$Projects$Sinks$Patch, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.projects.sinks.update
         * @desc Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.projects.sinks.update({
         *     // 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]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: 'projects/my-project/sinks/my-sink',
         *     // 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 is 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 is true and the new value is set to false or defaulted to false.
         *     uniqueWriterIdentity: 'placeholder-value',
         *     // Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes:  destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=filter.
         *     updateMask: 'placeholder-value',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bigqueryOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "destination": "my_destination",
         *       //   "disabled": false,
         *       //   "filter": "my_filter",
         *       //   "includeChildren": false,
         *       //   "name": "my_name",
         *       //   "outputVersionFormat": "my_outputVersionFormat",
         *       //   "updateTime": "my_updateTime",
         *       //   "writerIdentity": "my_writerIdentity"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.projects.sinks.update
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName 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]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {boolean=} params.uniqueWriterIdentity 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 is 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 is true and the new value is set to false or defaulted to false.
         * @param {string=} params.updateMask Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes:  destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=filter.
         * @param {().LogSink} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
update(params: Params$Resource$Projects$Sinks$Update, options: StreamMethodOptions): GaxiosPromise<Readable>;


update(params?: Params$Resource$Projects$Sinks$Update, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


update(params: Params$Resource$Projects$Sinks$Update, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


update(params: Params$Resource$Projects$Sinks$Update, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


update(params: Params$Resource$Projects$Sinks$Update, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.sinks.create
         * @desc Creates a sink that exports specified log entries to a destination. The export of newly-ingested log entries begins immediately, unless 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.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.sinks.create({
         *     // Required. The resource in which to create the sink:
         *     // "projects/[PROJECT_ID]"
         *     // "organizations/[ORGANIZATION_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]"
         *     // "folders/[FOLDER_ID]"
         *     // Examples: "projects/my-logging-project", "organizations/123456789".
         *     parent: '[^/]+/[^/]+',
         *     // 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 the same group or service account used by Logging 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.
         *     uniqueWriterIdentity: 'placeholder-value',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bigqueryOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "destination": "my_destination",
         *       //   "disabled": false,
         *       //   "filter": "my_filter",
         *       //   "includeChildren": false,
         *       //   "name": "my_name",
         *       //   "outputVersionFormat": "my_outputVersionFormat",
         *       //   "updateTime": "my_updateTime",
         *       //   "writerIdentity": "my_writerIdentity"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.sinks.create
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.parent Required. The resource in which to create the sink: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]" "folders/[FOLDER_ID]" Examples: "projects/my-logging-project", "organizations/123456789".
         * @param {boolean=} params.uniqueWriterIdentity 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 the same group or service account used by Logging 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.
         * @param {().LogSink} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
create(params: Params$Resource$Sinks$Create, options: StreamMethodOptions): GaxiosPromise<Readable>;


create(params?: Params$Resource$Sinks$Create, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


create(params: Params$Resource$Sinks$Create, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


create(params: Params$Resource$Sinks$Create, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


create(params: Params$Resource$Sinks$Create, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.sinks.delete
         * @desc Deletes a sink. If the sink has a unique writer_identity, then that service account is also deleted.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.sinks.delete({
         *     // 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]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: '[^/]+/[^/]+/sinks/my-sink',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {}
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.sinks.delete
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName 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]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
delete(params: Params$Resource$Sinks$Delete, options: StreamMethodOptions): GaxiosPromise<Readable>;


delete(params?: Params$Resource$Sinks$Delete, options?: MethodOptions): GaxiosPromise<Schema$Empty>;


delete(params: Params$Resource$Sinks$Delete, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


delete(params: Params$Resource$Sinks$Delete, options: MethodOptions | BodyResponseCallback<Schema$Empty>, callback: BodyResponseCallback<Schema$Empty>): void;


delete(params: Params$Resource$Sinks$Delete, callback: BodyResponseCallback<Schema$Empty>): void;


/**
         * logging.sinks.get
         * @desc Gets a sink.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.sinks.get({
         *     // Required. The resource name of the sink:
         *     // "projects/[PROJECT_ID]/sinks/[SINK_ID]"
         *     // "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: '[^/]+/[^/]+/sinks/my-sink',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.sinks.get
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName Required. The resource name of the sink: "projects/[PROJECT_ID]/sinks/[SINK_ID]" "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
get(params: Params$Resource$Sinks$Get, options: StreamMethodOptions): GaxiosPromise<Readable>;


get(params?: Params$Resource$Sinks$Get, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


get(params: Params$Resource$Sinks$Get, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


get(params: Params$Resource$Sinks$Get, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


get(params: Params$Resource$Sinks$Get, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.sinks.list
         * @desc Lists sinks.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.sinks.list({
         *     // 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.
         *     pageSize: 'placeholder-value',
         *     // 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.
         *     pageToken: 'placeholder-value',
         *     // Required. The parent resource whose sinks are to be listed:
         *     // "projects/[PROJECT_ID]"
         *     // "organizations/[ORGANIZATION_ID]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]"
         *     // "folders/[FOLDER_ID]"
         *     //
         *     parent: '[^/]+/[^/]+',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "nextPageToken": "my_nextPageToken",
         *   //   "sinks": []
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.sinks.list
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {integer=} params.pageSize 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.
         * @param {string=} params.pageToken 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.
         * @param {string} params.parent Required. The parent resource whose sinks are to be listed: "projects/[PROJECT_ID]" "organizations/[ORGANIZATION_ID]" "billingAccounts/[BILLING_ACCOUNT_ID]" "folders/[FOLDER_ID]"
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
list(params: Params$Resource$Sinks$List, options: StreamMethodOptions): GaxiosPromise<Readable>;


list(params?: Params$Resource$Sinks$List, options?: MethodOptions): GaxiosPromise<Schema$ListSinksResponse>;


list(params: Params$Resource$Sinks$List, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


list(params: Params$Resource$Sinks$List, options: MethodOptions | BodyResponseCallback<Schema$ListSinksResponse>, callback: BodyResponseCallback<Schema$ListSinksResponse>): void;


list(params: Params$Resource$Sinks$List, callback: BodyResponseCallback<Schema$ListSinksResponse>): void;


/**
         * logging.sinks.update
         * @desc Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/logging.admin',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.sinks.update({
         *     // 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]"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
         *     // "folders/[FOLDER_ID]/sinks/[SINK_ID]"
         *     // Example: "projects/my-project-id/sinks/my-sink-id".
         *     sinkName: '[^/]+/[^/]+/sinks/my-sink',
         *     // 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 is 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 is true and the new value is set to false or defaulted to false.
         *     uniqueWriterIdentity: 'placeholder-value',
         *     // Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes:  destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=filter.
         *     updateMask: 'placeholder-value',
         *
         *     // Request body metadata
         *     requestBody: {
         *       // request body parameters
         *       // {
         *       //   "bigqueryOptions": {},
         *       //   "createTime": "my_createTime",
         *       //   "description": "my_description",
         *       //   "destination": "my_destination",
         *       //   "disabled": false,
         *       //   "filter": "my_filter",
         *       //   "includeChildren": false,
         *       //   "name": "my_name",
         *       //   "outputVersionFormat": "my_outputVersionFormat",
         *       //   "updateTime": "my_updateTime",
         *       //   "writerIdentity": "my_writerIdentity"
         *       // }
         *     },
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "bigqueryOptions": {},
         *   //   "createTime": "my_createTime",
         *   //   "description": "my_description",
         *   //   "destination": "my_destination",
         *   //   "disabled": false,
         *   //   "filter": "my_filter",
         *   //   "includeChildren": false,
         *   //   "name": "my_name",
         *   //   "outputVersionFormat": "my_outputVersionFormat",
         *   //   "updateTime": "my_updateTime",
         *   //   "writerIdentity": "my_writerIdentity"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.sinks.update
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.sinkName 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]" "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]" "folders/[FOLDER_ID]/sinks/[SINK_ID]" Example: "projects/my-project-id/sinks/my-sink-id".
         * @param {boolean=} params.uniqueWriterIdentity 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 is 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 is true and the new value is set to false or defaulted to false.
         * @param {string=} params.updateMask Optional. Field mask that specifies the fields in sink that need an update. A sink field will be overwritten if, and only if, it is in the update mask. name and output only fields cannot be updated.An empty updateMask is temporarily treated as using the following mask for backwards compatibility purposes:  destination,filter,includeChildren At some point in the future, behavior will be removed and specifying an empty updateMask will be an error.For a detailed FieldMask definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.FieldMaskExample: updateMask=filter.
         * @param {().LogSink} params.requestBody Request body data
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
update(params: Params$Resource$Sinks$Update, options: StreamMethodOptions): GaxiosPromise<Readable>;


update(params?: Params$Resource$Sinks$Update, options?: MethodOptions): GaxiosPromise<Schema$LogSink>;


update(params: Params$Resource$Sinks$Update, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


update(params: Params$Resource$Sinks$Update, options: MethodOptions | BodyResponseCallback<Schema$LogSink>, callback: BodyResponseCallback<Schema$LogSink>): void;


update(params: Params$Resource$Sinks$Update, callback: BodyResponseCallback<Schema$LogSink>): void;


/**
         * logging.getCmekSettings
         * @desc Gets the Logs Router CMEK settings for the given resource.Note: CMEK for the Logs Router can currently only be configured for GCP organizations. Once configured, it applies to all projects and folders in the GCP organization.See Enabling CMEK for Logs Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.
         * @example
         * // Before running the sample:
         * // - Enable the API at:
         * //   https://console.developers.google.com/apis/api/logging.googleapis.com
         * // - Login into gcloud by running:
         * //   `$ gcloud auth application-default login`
         * // - Install the npm module by running:
         * //   `$ npm install googleapis`
         *
         * const {google} = require('googleapis');
         * const logging = google.logging('v2');
         *
         * async function main() {
         *   const auth = new google.auth.GoogleAuth({
         *     // Scopes can be specified either as an array or as a single, space-delimited string.
         *     scopes: [
         *       'https://www.googleapis.com/auth/cloud-platform',
         *       'https://www.googleapis.com/auth/cloud-platform.read-only',
         *       'https://www.googleapis.com/auth/logging.admin',
         *       'https://www.googleapis.com/auth/logging.read',
         *     ],
         *   });
         *
         *   // Acquire an auth client, and bind it to all future calls
         *   const authClient = await auth.getClient();
         *   google.options('auth', authClient);
         *
         *   // Do the magic
         *   const res = await logging.getCmekSettings({
         *     // Required. The resource for which to retrieve CMEK settings.
         *     // "projects/[PROJECT_ID]/cmekSettings"
         *     // "organizations/[ORGANIZATION_ID]/cmekSettings"
         *     // "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings"
         *     // "folders/[FOLDER_ID]/cmekSettings"
         *     // Example: "organizations/12345/cmekSettings".Note: CMEK for the Logs Router can currently only be configured for GCP organizations. Once configured, it applies to all projects and folders in the GCP organization.
         *     name: '[^/]+/[^/]+',
         *   });
         *   console.log(res.data);
         *
         *   // Example response
         *   // {
         *   //   "kmsKeyName": "my_kmsKeyName",
         *   //   "name": "my_name",
         *   //   "serviceAccountId": "my_serviceAccountId"
         *   // }
         * }
         *
         * main().catch(e => {
         *   console.error(e);
         *   throw e;
         * });
         *
         * @alias logging.getCmekSettings
         * @memberOf! ()
         *
         * @param {object} params Parameters for request
         * @param {string} params.name Required. The resource for which to retrieve CMEK settings. "projects/[PROJECT_ID]/cmekSettings" "organizations/[ORGANIZATION_ID]/cmekSettings" "billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings" "folders/[FOLDER_ID]/cmekSettings" Example: "organizations/12345/cmekSettings".Note: CMEK for the Logs Router can currently only be configured for GCP organizations. Once configured, it applies to all projects and folders in the GCP organization.
         * @param {object} [options] Optionally override request options, such as `url`, `method`, and `encoding`.
         * @param {callback} callback The callback that handles the response.
         * @return {object} Request object
         */
getCmekSettings(params: Params$Resource$V2$Getcmeksettings, options: StreamMethodOptions): GaxiosPromise<Readable>;


getCmekSettings(params?: Params$Resource$V2$Getcmeksettings, options?: MethodOptions): GaxiosPromise<Schema$CmekSettings>;


getCmekSettings(params: Params$Resource$V2$Getcmeksettings, options: StreamMethodOptions | BodyResponseCallback<Readable>, callback: BodyResponseCallback<Readable>): void;


getCmekSettings(params: Params$Resource$V2$Getcmeksettings, options: MethodOptions | BodyResponseCallback<Schema$CmekSettings>, callback: BodyResponseCallback<Schema$CmekSettings>): void;


getCmekSettings(params: Params$Resource$V2$Getcmeksettings, callback: BodyResponseCallback<Schema$CmekSettings>): void;