SecurityCenterClient

SecurityCenterClient

V1 Beta APIs for Security Center service.

Constructor

new SecurityCenterClient(optionsopt, gaxInstanceopt)

Construct an instance of SecurityCenterClient.

Parameters:
Name Type Attributes Description
options object <optional>

The configuration object. The options accepted by the constructor are described in detail in this document. The common options are:

Properties
Name Type Attributes Description
credentials object <optional>

Credentials object.

Properties
Name Type Attributes Description
client_email string <optional>
private_key string <optional>
email string <optional>

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename string <optional>

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port number <optional>

The port on which to connect to the remote host.

projectId string <optional>

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

apiEndpoint string <optional>

The domain name of the API remote host.

clientConfig gax.ClientConfig <optional>

Client configuration override. Follows the structure of gapicConfig.

fallback boolean <optional>

Use HTTP/1.1 REST mode. For more information, please check the documentation.

gaxInstance gax <optional>

loaded instance of google-gax. Useful if you need to avoid loading the default gRPC version and want to use the fallback HTTP implementation. Load only fallback version and pass it to the constructor: const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC const client = new SecurityCenterClient({fallback: true}, gax);

Members

apiEndpoint

The DNS address for this API service.

apiEndpoint

The DNS address for this API service - same as servicePath.

port

The port for this API service.

scopes

The scopes needed to make gRPC calls for every method defined in this service.

servicePath

The DNS address for this API service.

Methods

assetPath(organization, asset) → {string}

Return a fully-qualified asset resource name string.

Parameters:
Name Type Description
organization string
asset string
Returns:
Type Description
string

Resource name string.

(async) checkRunAssetDiscoveryProgress(name) → {Promise}

Check the status of the long running operation returned by runAssetDiscovery().

Parameters:
Name Type Description
name String

The operation name that will be passed.

Returns:
Type Description
Promise
  • The promise which resolves to an object. The decoded operation object has result and metadata field to get information from. Please see the documentation for more details and examples.
Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Name of the organization to run asset discovery for. Its format is
   *  "organizations/[organization_id]".
   */
  // const parent = 'abc123'

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1beta1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callRunAssetDiscovery() {
    // Construct request
    const request = {
      parent,
    };

    // Run request
    const [operation] = await securitycenterClient.runAssetDiscovery(request);
    const [response] = await operation.promise();
    console.log(response);
  }

  callRunAssetDiscovery();

close() → {Promise}

Terminate the gRPC channel and close the client.

The client will no longer be usable and all future behavior is undefined.

Returns:
Type Description
Promise

A promise that resolves when the client is closed.

findingPath(organization, source, finding) → {string}

Return a fully-qualified finding resource name string.

Parameters:
Name Type Description
organization string
source string
finding string
Returns:
Type Description
string

Resource name string.

getProjectId() → {Promise}

Return the project ID used by this class.

Returns:
Type Description
Promise

A promise that resolves to string containing the project ID.

groupAssetsAsync(request, optionsopt) → {Object}

Equivalent to groupAssets, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. Name of the organization to groupBy. Its format is "organizations/[organization_id]".

filter string

Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include:

  • name
  • security_center_properties.resource_name
  • resource_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, resource_properties.size = 100 is a valid filter string.

groupBy string

Required. Expression that defines what assets fields to use for grouping. The string value should follow SQL syntax: comma separated list of fields. For example: "security_center_properties.resource_project,security_center_properties.project".

The following fields are supported when compare_duration is not set:

  • security_center_properties.resource_project
  • security_center_properties.resource_type
  • security_center_properties.resource_parent

The following fields are supported when compare_duration is set:

  • security_center_properties.resource_type
compareDuration google.protobuf.Duration

When compare_duration is set, the Asset's "state" property is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time.

The state value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again.

Possible "state" values when compare_duration is specified:

  • "ADDED": indicates that the asset was not present before compare_duration, but present at reference_time.
  • "REMOVED": indicates that the asset was present at the start of compare_duration, but not present at reference_time.
  • "ACTIVE": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and reference_time.

This field is ignored if state is not a field in group_by.

readTime google.protobuf.Timestamp

Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

pageToken string

The value returned by the last GroupAssetsResponse; indicates that this is a continuation of a prior GroupAssets call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing GroupResult. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Name of the organization to groupBy. Its format is
   *  "organizations/[organization_id]".
   */
  // const parent = 'abc123'
  /**
   *  Expression that defines the filter to apply across assets.
   *  The expression is a list of zero or more restrictions combined via logical
   *  operators `AND` and `OR`.
   *  Parentheses are not supported, and `OR` has higher precedence than `AND`.
   *  Restrictions have the form `<field> <operator> <value>` and may have a `-`
   *  character in front of them to indicate negation. The fields map to those
   *  defined in the Asset resource. Examples include:
   *  * name
   *  * security_center_properties.resource_name
   *  * resource_properties.a_property
   *  * security_marks.marks.marka
   *  The supported operators are:
   *  * `=` for all value types.
   *  * `>`, `<`, `>=`, `<=` for integer values.
   *  * `:`, meaning substring matching, for strings.
   *  The supported value types are:
   *  * string literals in quotes.
   *  * integer literals without quotes.
   *  * boolean literals `true` and `false` without quotes.
   *  For example, `resource_properties.size = 100` is a valid filter string.
   */
  // const filter = 'abc123'
  /**
   *  Required. Expression that defines what assets fields to use for grouping. The string
   *  value should follow SQL syntax: comma separated list of fields. For
   *  example:
   *  "security_center_properties.resource_project,security_center_properties.project".
   *  The following fields are supported when compare_duration is not set:
   *  * security_center_properties.resource_project
   *  * security_center_properties.resource_type
   *  * security_center_properties.resource_parent
   *  The following fields are supported when compare_duration is set:
   *  * security_center_properties.resource_type
   */
  // const groupBy = 'abc123'
  /**
   *  When compare_duration is set, the Asset's "state" property is updated to
   *  indicate whether the asset was added, removed, or remained present during
   *  the compare_duration period of time that precedes the read_time. This is
   *  the time between (read_time - compare_duration) and read_time.
   *  The state value is derived based on the presence of the asset at the two
   *  points in time. Intermediate state changes between the two times don't
   *  affect the result. For example, the results aren't affected if the asset is
   *  removed and re-created again.
   *  Possible "state" values when compare_duration is specified:
   *  * "ADDED": indicates that the asset was not present before
   *               compare_duration, but present at reference_time.
   *  * "REMOVED": indicates that the asset was present at the start of
   *               compare_duration, but not present at reference_time.
   *  * "ACTIVE": indicates that the asset was present at both the
   *               start and the end of the time period defined by
   *               compare_duration and reference_time.
   *  This field is ignored if `state` is not a field in `group_by`.
   */
  // const compareDuration = {}
  /**
   *  Time used as a reference point when filtering assets. The filter is limited
   *  to assets existing at the supplied time and their values are those at that
   *  specific time. Absence of this field will default to the API's version of
   *  NOW.
   */
  // const readTime = {}
  /**
   *  The value returned by the last `GroupAssetsResponse`; indicates
   *  that this is a continuation of a prior `GroupAssets` call, and that the
   *  system should return the next page of data.
   */
  // const pageToken = 'abc123'
  /**
   *  The maximum number of results to return in a single response. Default is
   *  10, minimum is 1, maximum is 1000.
   */
  // const pageSize = 1234

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1beta1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callGroupAssets() {
    // Construct request
    const request = {
      parent,
      groupBy,
    };

    // Run request
    const iterable = securitycenterClient.groupAssetsAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callGroupAssets();

groupAssetsStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. Name of the organization to groupBy. Its format is "organizations/[organization_id]".

filter string

Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include:

  • name
  • security_center_properties.resource_name
  • resource_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, resource_properties.size = 100 is a valid filter string.

groupBy string

Required. Expression that defines what assets fields to use for grouping. The string value should follow SQL syntax: comma separated list of fields. For example: "security_center_properties.resource_project,security_center_properties.project".

The following fields are supported when compare_duration is not set:

  • security_center_properties.resource_project
  • security_center_properties.resource_type
  • security_center_properties.resource_parent

The following fields are supported when compare_duration is set:

  • security_center_properties.resource_type
compareDuration google.protobuf.Duration

When compare_duration is set, the Asset's "state" property is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time.

The state value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again.

Possible "state" values when compare_duration is specified:

  • "ADDED": indicates that the asset was not present before compare_duration, but present at reference_time.
  • "REMOVED": indicates that the asset was present at the start of compare_duration, but not present at reference_time.
  • "ACTIVE": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and reference_time.

This field is ignored if state is not a field in group_by.

readTime google.protobuf.Timestamp

Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

pageToken string

The value returned by the last GroupAssetsResponse; indicates that this is a continuation of a prior GroupAssets call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing GroupResult on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using groupAssetsAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

groupFindingsAsync(request, optionsopt) → {Object}

Equivalent to groupFindings, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. Name of the source to groupBy. Its format is "organizations/[organization_id]/sources/[source_id]". To groupBy across all sources provide a source_id of -. For example: organizations/{organization_id}/sources/-

filter string

Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. Examples include:

  • name
  • source_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, source_properties.size = 100 is a valid filter string.

groupBy string

Required. Expression that defines what assets fields to use for grouping (including state). The string value should follow SQL syntax: comma separated list of fields. For example: "parent,resource_name".

The following fields are supported:

  • resource_name
  • category
  • state
  • parent
readTime google.protobuf.Timestamp

Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

pageToken string

The value returned by the last GroupFindingsResponse; indicates that this is a continuation of a prior GroupFindings call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing GroupResult. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Name of the source to groupBy. Its format is
   *  "organizations/[organization_id]/sources/[source_id]". To groupBy across
   *  all sources provide a source_id of `-`. For example:
   *  organizations/{organization_id}/sources/-
   */
  // const parent = 'abc123'
  /**
   *  Expression that defines the filter to apply across findings.
   *  The expression is a list of one or more restrictions combined via logical
   *  operators `AND` and `OR`.
   *  Parentheses are not supported, and `OR` has higher precedence than `AND`.
   *  Restrictions have the form `<field> <operator> <value>` and may have a `-`
   *  character in front of them to indicate negation. Examples include:
   *   * name
   *   * source_properties.a_property
   *   * security_marks.marks.marka
   *  The supported operators are:
   *  * `=` for all value types.
   *  * `>`, `<`, `>=`, `<=` for integer values.
   *  * `:`, meaning substring matching, for strings.
   *  The supported value types are:
   *  * string literals in quotes.
   *  * integer literals without quotes.
   *  * boolean literals `true` and `false` without quotes.
   *  For example, `source_properties.size = 100` is a valid filter string.
   */
  // const filter = 'abc123'
  /**
   *  Required. Expression that defines what assets fields to use for grouping (including
   *  `state`). The string value should follow SQL syntax: comma separated list
   *  of fields. For example:
   *  "parent,resource_name".
   *  The following fields are supported:
   *  * resource_name
   *  * category
   *  * state
   *  * parent
   */
  // const groupBy = 'abc123'
  /**
   *  Time used as a reference point when filtering findings. The filter is
   *  limited to findings existing at the supplied time and their values are
   *  those at that specific time. Absence of this field will default to the
   *  API's version of NOW.
   */
  // const readTime = {}
  /**
   *  The value returned by the last `GroupFindingsResponse`; indicates
   *  that this is a continuation of a prior `GroupFindings` call, and
   *  that the system should return the next page of data.
   */
  // const pageToken = 'abc123'
  /**
   *  The maximum number of results to return in a single response. Default is
   *  10, minimum is 1, maximum is 1000.
   */
  // const pageSize = 1234

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1beta1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callGroupFindings() {
    // Construct request
    const request = {
      parent,
      groupBy,
    };

    // Run request
    const iterable = securitycenterClient.groupFindingsAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callGroupFindings();

groupFindingsStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. Name of the source to groupBy. Its format is "organizations/[organization_id]/sources/[source_id]". To groupBy across all sources provide a source_id of -. For example: organizations/{organization_id}/sources/-

filter string

Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. Examples include:

  • name
  • source_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, source_properties.size = 100 is a valid filter string.

groupBy string

Required. Expression that defines what assets fields to use for grouping (including state). The string value should follow SQL syntax: comma separated list of fields. For example: "parent,resource_name".

The following fields are supported:

  • resource_name
  • category
  • state
  • parent
readTime google.protobuf.Timestamp

Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

pageToken string

The value returned by the last GroupFindingsResponse; indicates that this is a continuation of a prior GroupFindings call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing GroupResult on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using groupFindingsAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

initialize() → {Promise}

Initialize the client. Performs asynchronous operations (such as authentication) and prepares the client. This function will be called automatically when any class method is called for the first time, but if you need to initialize it before calling an actual method, feel free to call initialize() directly.

You can await on this method if you want to make sure the client is initialized.

Returns:
Type Description
Promise

A promise that resolves to an authenticated service stub.

listAssetsAsync(request, optionsopt) → {Object}

Equivalent to listAssets, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. Name of the organization assets should belong to. Its format is "organizations/[organization_id]".

filter string

Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include:

  • name
  • security_center_properties.resource_name
  • resource_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, resource_properties.size = 100 is a valid filter string.

orderBy string

Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: "name,resource_properties.a_property". The default sorting order is ascending. To specify descending order for a field, a suffix " desc" should be appended to the field name. For example: "name desc,resource_properties.a_property". Redundant space characters in the syntax are insignificant. "name desc,resource_properties.a_property" and " name desc , resource_properties.a_property " are equivalent.

readTime google.protobuf.Timestamp

Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

compareDuration google.protobuf.Duration

When compare_duration is set, the ListAssetResult's "state" attribute is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time.

The state value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again.

Possible "state" values when compare_duration is specified:

  • "ADDED": indicates that the asset was not present before compare_duration, but present at read_time.
  • "REMOVED": indicates that the asset was present at the start of compare_duration, but not present at read_time.
  • "ACTIVE": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and read_time.

If compare_duration is not specified, then the only possible state is "UNUSED", which indicates that the asset is present at read_time.

fieldMask google.protobuf.FieldMask <optional>

Optional. A field mask to specify the ListAssetsResult fields to be listed in the response. An empty field mask will list all fields.

pageToken string

The value returned by the last ListAssetsResponse; indicates that this is a continuation of a prior ListAssets call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing ListAssetsResult. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Name of the organization assets should belong to. Its format is
   *  "organizations/[organization_id]".
   */
  // const parent = 'abc123'
  /**
   *  Expression that defines the filter to apply across assets.
   *  The expression is a list of zero or more restrictions combined via logical
   *  operators `AND` and `OR`.
   *  Parentheses are not supported, and `OR` has higher precedence than `AND`.
   *  Restrictions have the form `<field> <operator> <value>` and may have a `-`
   *  character in front of them to indicate negation. The fields map to those
   *  defined in the Asset resource. Examples include:
   *  * name
   *  * security_center_properties.resource_name
   *  * resource_properties.a_property
   *  * security_marks.marks.marka
   *  The supported operators are:
   *  * `=` for all value types.
   *  * `>`, `<`, `>=`, `<=` for integer values.
   *  * `:`, meaning substring matching, for strings.
   *  The supported value types are:
   *  * string literals in quotes.
   *  * integer literals without quotes.
   *  * boolean literals `true` and `false` without quotes.
   *  For example, `resource_properties.size = 100` is a valid filter string.
   */
  // const filter = 'abc123'
  /**
   *  Expression that defines what fields and order to use for sorting. The
   *  string value should follow SQL syntax: comma separated list of fields. For
   *  example: "name,resource_properties.a_property". The default sorting order
   *  is ascending. To specify descending order for a field, a suffix " desc"
   *  should be appended to the field name. For example: "name
   *  desc,resource_properties.a_property". Redundant space characters in the
   *  syntax are insignificant. "name desc,resource_properties.a_property" and "
   *  name     desc  ,   resource_properties.a_property  " are equivalent.
   */
  // const orderBy = 'abc123'
  /**
   *  Time used as a reference point when filtering assets. The filter is limited
   *  to assets existing at the supplied time and their values are those at that
   *  specific time. Absence of this field will default to the API's version of
   *  NOW.
   */
  // const readTime = {}
  /**
   *  When compare_duration is set, the ListAssetResult's "state" attribute is
   *  updated to indicate whether the asset was added, removed, or remained
   *  present during the compare_duration period of time that precedes the
   *  read_time. This is the time between (read_time -
   *  compare_duration) and read_time.
   *  The state value is derived based on the presence of the asset at the two
   *  points in time. Intermediate state changes between the two times don't
   *  affect the result. For example, the results aren't affected if the asset is
   *  removed and re-created again.
   *  Possible "state" values when compare_duration is specified:
   *  * "ADDED": indicates that the asset was not present before
   *               compare_duration, but present at read_time.
   *  * "REMOVED": indicates that the asset was present at the start of
   *               compare_duration, but not present at read_time.
   *  * "ACTIVE": indicates that the asset was present at both the
   *               start and the end of the time period defined by
   *               compare_duration and read_time.
   *  If compare_duration is not specified, then the only possible state is
   *  "UNUSED", which indicates that the asset is present at read_time.
   */
  // const compareDuration = {}
  /**
   *  Optional. A field mask to specify the ListAssetsResult fields to be listed in the
   *  response.
   *  An empty field mask will list all fields.
   */
  // const fieldMask = {}
  /**
   *  The value returned by the last `ListAssetsResponse`; indicates
   *  that this is a continuation of a prior `ListAssets` call, and
   *  that the system should return the next page of data.
   */
  // const pageToken = 'abc123'
  /**
   *  The maximum number of results to return in a single response. Default is
   *  10, minimum is 1, maximum is 1000.
   */
  // const pageSize = 1234

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1beta1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callListAssets() {
    // Construct request
    const request = {
      parent,
    };

    // Run request
    const iterable = securitycenterClient.listAssetsAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callListAssets();

listAssetsStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. Name of the organization assets should belong to. Its format is "organizations/[organization_id]".

filter string

Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include:

  • name
  • security_center_properties.resource_name
  • resource_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, resource_properties.size = 100 is a valid filter string.

orderBy string

Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: "name,resource_properties.a_property". The default sorting order is ascending. To specify descending order for a field, a suffix " desc" should be appended to the field name. For example: "name desc,resource_properties.a_property". Redundant space characters in the syntax are insignificant. "name desc,resource_properties.a_property" and " name desc , resource_properties.a_property " are equivalent.

readTime google.protobuf.Timestamp

Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

compareDuration google.protobuf.Duration

When compare_duration is set, the ListAssetResult's "state" attribute is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time.

The state value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again.

Possible "state" values when compare_duration is specified:

  • "ADDED": indicates that the asset was not present before compare_duration, but present at read_time.
  • "REMOVED": indicates that the asset was present at the start of compare_duration, but not present at read_time.
  • "ACTIVE": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and read_time.

If compare_duration is not specified, then the only possible state is "UNUSED", which indicates that the asset is present at read_time.

fieldMask google.protobuf.FieldMask <optional>

Optional. A field mask to specify the ListAssetsResult fields to be listed in the response. An empty field mask will list all fields.

pageToken string

The value returned by the last ListAssetsResponse; indicates that this is a continuation of a prior ListAssets call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing ListAssetsResult on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using listAssetsAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

listFindingsAsync(request, optionsopt) → {Object}

Equivalent to listFindings, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. Name of the source the findings belong to. Its format is "organizations/[organization_id]/sources/[source_id]". To list across all sources provide a source_id of -. For example: organizations/{organization_id}/sources/-

filter string

Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. Examples include:

  • name
  • source_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, source_properties.size = 100 is a valid filter string.

orderBy string

Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: "name,resource_properties.a_property". The default sorting order is ascending. To specify descending order for a field, a suffix " desc" should be appended to the field name. For example: "name desc,source_properties.a_property". Redundant space characters in the syntax are insignificant. "name desc,source_properties.a_property" and " name desc , source_properties.a_property " are equivalent.

readTime google.protobuf.Timestamp

Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

fieldMask google.protobuf.FieldMask <optional>

Optional. A field mask to specify the Finding fields to be listed in the response. An empty field mask will list all fields.

pageToken string

The value returned by the last ListFindingsResponse; indicates that this is a continuation of a prior ListFindings call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing Finding. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Name of the source the findings belong to. Its format is
   *  "organizations/[organization_id]/sources/[source_id]". To list across all
   *  sources provide a source_id of `-`. For example:
   *  organizations/{organization_id}/sources/-
   */
  // const parent = 'abc123'
  /**
   *  Expression that defines the filter to apply across findings.
   *  The expression is a list of one or more restrictions combined via logical
   *  operators `AND` and `OR`.
   *  Parentheses are not supported, and `OR` has higher precedence than `AND`.
   *  Restrictions have the form `<field> <operator> <value>` and may have a `-`
   *  character in front of them to indicate negation. Examples include:
   *   * name
   *   * source_properties.a_property
   *   * security_marks.marks.marka
   *  The supported operators are:
   *  * `=` for all value types.
   *  * `>`, `<`, `>=`, `<=` for integer values.
   *  * `:`, meaning substring matching, for strings.
   *  The supported value types are:
   *  * string literals in quotes.
   *  * integer literals without quotes.
   *  * boolean literals `true` and `false` without quotes.
   *  For example, `source_properties.size = 100` is a valid filter string.
   */
  // const filter = 'abc123'
  /**
   *  Expression that defines what fields and order to use for sorting. The
   *  string value should follow SQL syntax: comma separated list of fields. For
   *  example: "name,resource_properties.a_property". The default sorting order
   *  is ascending. To specify descending order for a field, a suffix " desc"
   *  should be appended to the field name. For example: "name
   *  desc,source_properties.a_property". Redundant space characters in the
   *  syntax are insignificant. "name desc,source_properties.a_property" and "
   *  name     desc  ,   source_properties.a_property  " are equivalent.
   */
  // const orderBy = 'abc123'
  /**
   *  Time used as a reference point when filtering findings. The filter is
   *  limited to findings existing at the supplied time and their values are
   *  those at that specific time. Absence of this field will default to the
   *  API's version of NOW.
   */
  // const readTime = {}
  /**
   *  Optional. A field mask to specify the Finding fields to be listed in the response.
   *  An empty field mask will list all fields.
   */
  // const fieldMask = {}
  /**
   *  The value returned by the last `ListFindingsResponse`; indicates
   *  that this is a continuation of a prior `ListFindings` call, and
   *  that the system should return the next page of data.
   */
  // const pageToken = 'abc123'
  /**
   *  The maximum number of results to return in a single response. Default is
   *  10, minimum is 1, maximum is 1000.
   */
  // const pageSize = 1234

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1beta1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callListFindings() {
    // Construct request
    const request = {
      parent,
    };

    // Run request
    const iterable = securitycenterClient.listFindingsAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callListFindings();

listFindingsStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Attributes Description
parent string

Required. Name of the source the findings belong to. Its format is "organizations/[organization_id]/sources/[source_id]". To list across all sources provide a source_id of -. For example: organizations/{organization_id}/sources/-

filter string

Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators AND and OR. Parentheses are not supported, and OR has higher precedence than AND.

Restrictions have the form <field> <operator> <value> and may have a - character in front of them to indicate negation. Examples include:

  • name
  • source_properties.a_property
  • security_marks.marks.marka

The supported operators are:

  • = for all value types.
  • >, <, >=, <= for integer values.
  • :, meaning substring matching, for strings.

The supported value types are:

  • string literals in quotes.
  • integer literals without quotes.
  • boolean literals true and false without quotes.

For example, source_properties.size = 100 is a valid filter string.

orderBy string

Expression that defines what fields and order to use for sorting. The string value should follow SQL syntax: comma separated list of fields. For example: "name,resource_properties.a_property". The default sorting order is ascending. To specify descending order for a field, a suffix " desc" should be appended to the field name. For example: "name desc,source_properties.a_property". Redundant space characters in the syntax are insignificant. "name desc,source_properties.a_property" and " name desc , source_properties.a_property " are equivalent.

readTime google.protobuf.Timestamp

Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.

fieldMask google.protobuf.FieldMask <optional>

Optional. A field mask to specify the Finding fields to be listed in the response. An empty field mask will list all fields.

pageToken string

The value returned by the last ListFindingsResponse; indicates that this is a continuation of a prior ListFindings call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing Finding on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using listFindingsAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

listSourcesAsync(request, optionsopt) → {Object}

Equivalent to listSources, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. Resource name of the parent of sources to list. Its format should be "organizations/[organization_id]".

pageToken string

The value returned by the last ListSourcesResponse; indicates that this is a continuation of a prior ListSources call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing Source. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Resource name of the parent of sources to list. Its format should be
   *  "organizations/[organization_id]".
   */
  // const parent = 'abc123'
  /**
   *  The value returned by the last `ListSourcesResponse`; indicates
   *  that this is a continuation of a prior `ListSources` call, and
   *  that the system should return the next page of data.
   */
  // const pageToken = 'abc123'
  /**
   *  The maximum number of results to return in a single response. Default is
   *  10, minimum is 1, maximum is 1000.
   */
  // const pageSize = 1234

  // Imports the Securitycenter library
  const {SecurityCenterClient} = require('@google-cloud/security-center').v1beta1;

  // Instantiates a client
  const securitycenterClient = new SecurityCenterClient();

  async function callListSources() {
    // Construct request
    const request = {
      parent,
    };

    // Run request
    const iterable = securitycenterClient.listSourcesAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callListSources();

listSourcesStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. Resource name of the parent of sources to list. Its format should be "organizations/[organization_id]".

pageToken string

The value returned by the last ListSourcesResponse; indicates that this is a continuation of a prior ListSources call, and that the system should return the next page of data.

pageSize number

The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing Source on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using listSourcesAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

matchAssetFromAssetName(assetName) → {string}

Parse the asset from Asset resource.

Parameters:
Name Type Description
assetName string

A fully-qualified path representing Asset resource.

Returns:
Type Description
string

A string representing the asset.

matchAssetFromOrganizationAssetSecurityMarksName(organizationAssetSecurityMarksName) → {string}

Parse the asset from OrganizationAssetSecurityMarks resource.

Parameters:
Name Type Description
organizationAssetSecurityMarksName string

A fully-qualified path representing organization_asset_securityMarks resource.

Returns:
Type Description
string

A string representing the asset.

matchFindingFromFindingName(findingName) → {string}

Parse the finding from Finding resource.

Parameters:
Name Type Description
findingName string

A fully-qualified path representing Finding resource.

Returns:
Type Description
string

A string representing the finding.

matchFindingFromOrganizationSourceFindingSecurityMarksName(organizationSourceFindingSecurityMarksName) → {string}

Parse the finding from OrganizationSourceFindingSecurityMarks resource.

Parameters:
Name Type Description
organizationSourceFindingSecurityMarksName string

A fully-qualified path representing organization_source_finding_securityMarks resource.

Returns:
Type Description
string

A string representing the finding.

matchOrganizationFromAssetName(assetName) → {string}

Parse the organization from Asset resource.

Parameters:
Name Type Description
assetName string

A fully-qualified path representing Asset resource.

Returns:
Type Description
string

A string representing the organization.

matchOrganizationFromFindingName(findingName) → {string}

Parse the organization from Finding resource.

Parameters:
Name Type Description
findingName string

A fully-qualified path representing Finding resource.

Returns:
Type Description
string

A string representing the organization.

matchOrganizationFromOrganizationAssetSecurityMarksName(organizationAssetSecurityMarksName) → {string}

Parse the organization from OrganizationAssetSecurityMarks resource.

Parameters:
Name Type Description
organizationAssetSecurityMarksName string

A fully-qualified path representing organization_asset_securityMarks resource.

Returns:
Type Description
string

A string representing the organization.

matchOrganizationFromOrganizationName(organizationName) → {string}

Parse the organization from Organization resource.

Parameters:
Name Type Description
organizationName string

A fully-qualified path representing Organization resource.

Returns:
Type Description
string

A string representing the organization.

matchOrganizationFromOrganizationSettingsName(organizationSettingsName) → {string}

Parse the organization from OrganizationSettings resource.

Parameters:
Name Type Description
organizationSettingsName string

A fully-qualified path representing OrganizationSettings resource.

Returns:
Type Description
string

A string representing the organization.

matchOrganizationFromOrganizationSourceFindingSecurityMarksName(organizationSourceFindingSecurityMarksName) → {string}

Parse the organization from OrganizationSourceFindingSecurityMarks resource.

Parameters:
Name Type Description
organizationSourceFindingSecurityMarksName string

A fully-qualified path representing organization_source_finding_securityMarks resource.

Returns:
Type Description
string

A string representing the organization.

matchOrganizationFromSourceName(sourceName) → {string}

Parse the organization from Source resource.

Parameters:
Name Type Description
sourceName string

A fully-qualified path representing Source resource.

Returns:
Type Description
string

A string representing the organization.

matchSourceFromFindingName(findingName) → {string}

Parse the source from Finding resource.

Parameters:
Name Type Description
findingName string

A fully-qualified path representing Finding resource.

Returns:
Type Description
string

A string representing the source.

matchSourceFromOrganizationSourceFindingSecurityMarksName(organizationSourceFindingSecurityMarksName) → {string}

Parse the source from OrganizationSourceFindingSecurityMarks resource.

Parameters:
Name Type Description
organizationSourceFindingSecurityMarksName string

A fully-qualified path representing organization_source_finding_securityMarks resource.

Returns:
Type Description
string

A string representing the source.

matchSourceFromSourceName(sourceName) → {string}

Parse the source from Source resource.

Parameters:
Name Type Description
sourceName string

A fully-qualified path representing Source resource.

Returns:
Type Description
string

A string representing the source.

organizationAssetSecurityMarksPath(organization, asset) → {string}

Return a fully-qualified organizationAssetSecurityMarks resource name string.

Parameters:
Name Type Description
organization string
asset string
Returns:
Type Description
string

Resource name string.

organizationPath(organization) → {string}

Return a fully-qualified organization resource name string.

Parameters:
Name Type Description
organization string
Returns:
Type Description
string

Resource name string.

organizationSettingsPath(organization) → {string}

Return a fully-qualified organizationSettings resource name string.

Parameters:
Name Type Description
organization string
Returns:
Type Description
string

Resource name string.

organizationSourceFindingSecurityMarksPath(organization, source, finding) → {string}

Return a fully-qualified organizationSourceFindingSecurityMarks resource name string.

Parameters:
Name Type Description
organization string
source string
finding string
Returns:
Type Description
string

Resource name string.

sourcePath(organization, source) → {string}

Return a fully-qualified source resource name string.

Parameters:
Name Type Description
organization string
source string
Returns:
Type Description
string

Resource name string.