SecurityCenterClient

SecurityCenterClient

V1p1Beta1 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

(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').v1p1beta1;

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

folderAssetPath(folder, asset) → {string}

Return a fully-qualified folderAsset resource name string.

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

Resource name string.

folderAssetSecurityMarksPath(folder, asset) → {string}

Return a fully-qualified folderAssetSecurityMarks resource name string.

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

Resource name string.

folderSourceFindingPath(folder, source, finding) → {string}

Return a fully-qualified folderSourceFinding resource name string.

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

Resource name string.

folderSourceFindingSecurityMarksPath(folder, source, finding) → {string}

Return a fully-qualified folderSourceFindingSecurityMarks resource name string.

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

Resource name string.

folderSourcePath(folder, source) → {string}

Return a fully-qualified folderSource resource name string.

Parameters:
Name Type Description
folder string
source 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], folders/[folder_id], or projects/[project_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 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.

The following field and operator combinations are supported:

  • name: =

  • update_time: =, >, <, >=, <=

    Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: update_time = "2019-06-10T16:07:18-07:00" update_time = 1560208038000

  • create_time: =, >, <, >=, <=

    Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: create_time = "2019-06-10T16:07:18-07:00" create_time = 1560208038000

  • iam_policy.policy_blob: =, :

  • resource_properties: =, :, >, <, >=, <=

  • security_marks.marks: =, :

  • security_center_properties.resource_name: =, :

  • security_center_properties.resource_name_display_name: =, :

  • security_center_properties.resource_type: =, :

  • security_center_properties.resource_parent: =, :

  • security_center_properties.resource_parent_display_name: =, :

  • security_center_properties.resource_project: =, :

  • security_center_properties.resource_project_display_name: =, :

  • security_center_properties.resource_owners: =, :

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

Use a partial match on the empty string to filter based on a property existing: resource_properties.my_property : ""

Use a negated partial match on the empty string to filter based on a property not existing: -resource_properties.my_property : ""

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_project_display_name
  • security_center_properties.resource_type
  • security_center_properties.resource_parent
  • security_center_properties.resource_parent_display_name

The following fields are supported when compare_duration is set:

  • security_center_properties.resource_type
  • security_center_properties.resource_project_display_name
  • security_center_properties.resource_parent_display_name
compareDuration google.protobuf.Duration

When compare_duration is set, the GroupResult's "state_change" 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 change 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_change" values when compare_duration is specified:

  • "ADDED": indicates that the asset was not present at the start of 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.

If compare_duration is not specified, then the only possible state_change is "UNUSED", which will be the state_change set for all assets present at read_time.

If this field is set then state_change must be a specified 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], folders/[folder_id], or
   *  projects/[project_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 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.
   *  The following field and operator combinations are supported:
   *  * name: `=`
   *  * update_time: `=`, `>`, `<`, `>=`, `<=`
   *    Usage: This should be milliseconds since epoch or an RFC3339 string.
   *    Examples:
   *      `update_time = "2019-06-10T16:07:18-07:00"`
   *      `update_time = 1560208038000`
   *  * create_time: `=`, `>`, `<`, `>=`, `<=`
   *    Usage: This should be milliseconds since epoch or an RFC3339 string.
   *    Examples:
   *      `create_time = "2019-06-10T16:07:18-07:00"`
   *      `create_time = 1560208038000`
   *  * iam_policy.policy_blob: `=`, `:`
   *  * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=`
   *  * security_marks.marks: `=`, `:`
   *  * security_center_properties.resource_name: `=`, `:`
   *  * security_center_properties.resource_name_display_name: `=`, `:`
   *  * security_center_properties.resource_type: `=`, `:`
   *  * security_center_properties.resource_parent: `=`, `:`
   *  * security_center_properties.resource_parent_display_name: `=`, `:`
   *  * security_center_properties.resource_project: `=`, `:`
   *  * security_center_properties.resource_project_display_name: `=`, `:`
   *  * security_center_properties.resource_owners: `=`, `:`
   *  For example, `resource_properties.size = 100` is a valid filter string.
   *  Use a partial match on the empty string to filter based on a property
   *  existing: `resource_properties.my_property : ""`
   *  Use a negated partial match on the empty string to filter based on a
   *  property not existing: `-resource_properties.my_property : ""`
   */
  // 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_project_display_name
   *  * security_center_properties.resource_type
   *  * security_center_properties.resource_parent
   *  * security_center_properties.resource_parent_display_name
   *  The following fields are supported when compare_duration is set:
   *  * security_center_properties.resource_type
   *  * security_center_properties.resource_project_display_name
   *  * security_center_properties.resource_parent_display_name
   */
  // const groupBy = 'abc123'
  /**
   *  When compare_duration is set, the GroupResult's "state_change" 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 change 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_change" values when compare_duration is specified:
   *  * "ADDED":   indicates that the asset was not present at the start of
   *                 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.
   *  If compare_duration is not specified, then the only possible state_change
   *  is "UNUSED", which will be the state_change set for all assets present at
   *  read_time.
   *  If this field is set then `state_change` must be a specified 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').v1p1beta1;

  // 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], folders/[folder_id], or projects/[project_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 supported, and OR