Integrate a sample integration with Google SecOps
This document is a comprehensive guide to a sample integration that demonstrates common design patterns for building actions, connectors, and jobs for Google Security Operations (Google SecOps).
Integration version: 1.0
Integration parameters
The Sample Integration requires the following parameters:
Parameter | Description |
---|---|
API Root |
Required. The API root for the integration instance. In this example case, the VAT Comply
service is being used to integrate, with the API root
The default value is |
Password Field |
Optional. An example API password field. This parameter is included for demonstration purposes only and is not required by the API for authentication. The default value is |
Verify SSL |
Required. If selected, the action validates the SSL certificate of the API server. Selected by default. |
For instructions about how to configure an integration in Google SecOps, see Configure integrations.
You can make changes at a later stage, if needed. After you configure an integration instance, you can use it in playbooks. For more information about how to configure and support multiple instances, see Supporting multiple instances.
Actions
For more information about actions, see Respond to pending actions from Your Workdesk and Perform a manual action.
Ping
Use the Ping action to test the connectivity to the integration.
This action doesn't run on Google SecOps entities.
Action inputs
None.
Action outputs
The Ping action provides the following outputs:
Action output type | Availability |
---|---|
Case wall attachment | Not available |
Case wall link | Not available |
Case wall table | Not available |
Enrichment table | Not available |
JSON result | Not available |
Output messages | Available |
Script result. | Available |
Output messages
The Ping action can return the following output messages:
Output message | Message description |
---|---|
|
The action succeeded. |
Failed to connect to the
API Service server!
Error is ERROR_REASON |
The action failed. Check the connection to the server, input parameters, or credentials. |
Script result
The following table lists the value for the script result output when using the Ping action:
Script result name | Value |
---|---|
is_success |
True or False |
Simple action example
This is an example of a basic action in Google SecOps.
This action fetches data from the api.vatcomply.com
service based on the
provided parameters.
This action doesn't run on Google SecOps entities.
Action inputs
Parameter | Description |
---|---|
Currencies String |
This is an example of a parameter that accepts a comma-separated list of values. Optional. A comma-separated list of currencies to process. The default value is |
Currencies DDL |
This is an example of a parameter that accepts a drop-down list of values. Optional. A drop-down list of currencies to process. The default value is The possible values are:
|
Time Frame |
Optional. The timeframe for the results. The default value is The possible values are:
If you select |
Start Time |
Optional. The start time for the results in ISO 8601 format. This parameter is required if you select The time span between The action only uses the date portion of the timestamp. |
End Time |
Optional. The end time for the results in ISO 8601 format. If you select The time span between The action only uses the date portion of the timestamp. |
Return JSON Result |
This is an example of a boolean input. Optional. If enabled, the action returns a JSON result. Selected by default. |
Action outputs
The Search Graphs action provides the following outputs:
Action output type | Availability |
---|---|
Case wall attachment | Available |
Case wall link | Available |
Case wall table | Available |
Enrichment table | Not available |
JSON result | Available |
Output messages | Available |
Script result | Available |
Case wall link
The action returns the following link:
- Currency:
https://www.vatcomply.com/currencies/BASE_CURRENCY/date/DATE
Case wall table
The action provides the following table for every API response:
Table name: Currency: {base} - {date}
Table columns:
- Currency (rate.keyname)
- Value (rate.keyname.value)
JSON result
The following example shows the JSON result output received when using the action:
[
{
"date": "2000-03-03",
"exchange_rates": [
{
"base": "USD",
"rates": {
"EUR": 1.035303861683404,
"USD": 1.0,
"JPY": 107.8476032715602,
"CYP": 0.5955481933947614,
"CZK": 36.87752355316285,
"DKK": 7.711357283362667,
"EEK": 16.19898540221555,
"GBP": 0.6332953721917383,
"HUF": 265.60720571487735,
"LTL": 4.001035303861683,
"LVL": 0.5954032508541256,
"MTL": 0.4235428098146806,
"PLN": 4.125168236877524,
"ROL": 18961.590226731547,
"SEK": 8.769023708458434,
"SIT": 209.5625841184388,
"SKK": 43.26845429133451,
"CHF": 1.6630085930220522,
"ISK": 73.39269075473652,
"NOK": 8.369396417848638,
"TRL": 574745.8329019567,
"AUD": 1.647479035096801,
"CAD": 1.454705456051351,
"HKD": 7.782379128274149,
"KRW": 1119.9503054146392,
"NZD": 2.0485557511129517,
"SGD": 1.7232632777720263,
"ZAR": 6.4730303344031475
}
},
{
"base": "EUR",
"rates": {
"EUR": 1.0,
"USD": 0.9659,
"JPY": 104.17,
"CYP": 0.57524,
"CZK": 35.62,
"DKK": 7.4484,
"EEK": 15.6466,
"GBP": 0.6117,
"HUF": 256.55,
"LTL": 3.8646,
"LVL": 0.5751,
"MTL": 0.4091,
"PLN": 3.9845,
"ROL": 18315.0,
"SEK": 8.47,
"SIT": 202.4165,
"SKK": 41.793,
"CHF": 1.6063,
"ISK": 70.89,
"NOK": 8.084,
"TRL": 555147.0,
"AUD": 1.5913,
"CAD": 1.4051,
"HKD": 7.517,
"KRW": 1081.76,
"NZD": 1.9787,
"SGD": 1.6645,
"ZAR": 6.2523
}
}
]
}
]
Output messages
The action can return the following output messages:
Output message | Message description |
---|---|
|
The action succeeded. |
Error executing action
"ACTION_NAME". Reason:
ERROR_REASON |
The action failed. Check the connection to the server, input parameters, or credentials. |
Script result
The following table lists the value for the script result output when using the action:
Script result name | Value |
---|---|
is_success |
True or False |
Enrich Entity action example
This is an example of an action that works with and enriches entities in Google SecOps.
This action runs on all Google SecOps entities provided in the
parameter Entity Type
.
Action inputs
The Enrich Entity action requires the following parameters:
Parameter | Description |
---|---|
Entity Type |
Required. The entities from the alert's scope to process. The default value is The possible values are:
|
Action outputs
The Enrich Entity action provides the following outputs:
Action output type | Availability |
---|---|
Case wall attachment | Not available |
Case wall link | Not available |
Case wall table | Not available |
Entity enrichment table | Available |
JSON result | Available |
Output messages | Available |
Script result | Available |
Entity enrichment table
The Enrich Entity action supports the following enrichment for entities:
Enrichment field | Source (JSON key) | Applicability |
---|---|---|
SampleIntegration_enriched |
true |
When available in the JSON result. |
SampleIntegration_timestamp |
timestamp |
When available in the JSON result. |
JSON result
The following example shows the JSON result output received when using the Enrich Entity action:
{
"Entity": "Entity",
"EntityResult": [
{
"enriched": "true",
"timestamp": "12123213123"
}
]
}
Output messages
The Enrich Entity action can return the following output messages:
Output message | Message description |
---|---|
|
The action succeeded. |
No eligible entities were found in the scope of the alert. |
The action failed. Check the connection to the server, input parameters, or credentials. |
Script result
The following table lists the value for the script result output when using the Enrich Entity action:
Script result name | Value |
---|---|
is_success |
True or False |
Async action example
This is an example of an asynchronous action in Google SecOps.
The action won't finish execution until the timeout is reached or the cases have
a tag specified in the Case Tag To Wait For
parameter.
This action doesn't run on Google SecOps entities.
Action inputs
The Async action requires the following parameters:
Parameter | Description |
---|---|
Case IDs |
Optional. A comma-separated list of cases to handle. If nothing is provided, the action uses the case ID from which the action was executed. |
Case Tag To Wait For |
Required. The action waits for cases to be tagged with this value before it finishes execution. |
Action outputs
The Async action provides the following outputs:
Action output type | Availability |
---|---|
Case wall attachment | Not available |
Case wall link | Not available |
Case wall table | Not available |
Entity enrichment table | Not available |
JSON result | Available |
Output messages | Available |
Script result | Available |
JSON result
The following example shows the JSON result output received when using the Async action:
[{
"case_id": "123",
"tags": ["Async"]
}, {
"case_id": "123",
"tags": ["Async"]
},]
Output messages
The Async action can return the following output messages:
Output message | Message description |
---|---|
|
The action succeeded. |
Error executing action
"Async Action Example". Reason:
ERROR_REASON |
The action failed. Check the connection to the server, input parameters, or credentials. |
Script result
The following table lists the value for the script result output when using the Async action:
Script result name | Value |
---|---|
is_success |
True or False |
Connectors
For more detail about how to configure connectors in Google SecOps, see Ingest your data (connectors).
Sample Integration - Simple Connector Example
Use the Sample Integration - Simple Connector Example to retrieve currency rates and other data
from the api.vatcomply.com
service.
To work with a dynamic list, use the alert_type
parameter.
Connector inputs
The Google Threat Intelligence - DTM Alerts Connector requires the following parameters:
Parameter | Description |
---|---|
Product Field Name |
Required. The name of the field where the product name is stored. The product name primarily impacts mapping. To streamline and improve the mapping process for the connector, the default value resolves to a fallback value that is referenced from the code. Any invalid input for this parameter resolves to a fallback value by default. The default value is |
Event Field Name |
Required. The name of the field that determines the event name (subtype). The default value is |
Environment Field Name |
Optional. The name of the field where the environment name is stored. If the environment field is missing, the connector uses the default value. The default value is |
Environment Regex Pattern |
Optional. A regular expression pattern to run on the value found in the
Use the default value If the regular expression pattern is null or empty, or the environment value is null, the final environment result is the default environment. |
Script Timeout (Seconds) |
Required. The timeout limit, in seconds, for the Python process that runs the current script. The default value is |
API Root |
Required. The API root for the integration instance. In this example case, [VAT Comply](https://www.vatcomply.com/) service is being used to integrate, with the API root `api.vatcomply.com`. The default value is |
Password Field |
Optional. An example API password field. This parameter is included for demonstration purposes only and is not required by the API for authentication. The default value is |
Currencies To Fetch |
Optional. The currency exchange rates to retrieve. The default value is |
Create Alert Per Exchange Rate |
Optional. If enabled, the connector creates a separate alert for each exchange rate. |
Alert Severity |
Optional. The severity level of the alert. The possible values are:
The default value is |
Add Attachment |
Optional. If enabled, the connector adds a JSON object to the alert. The default value is |
Max Days Backwards |
Required. The number of days back from which to retrieve alerts. The maximum value is The default value is |
Max Alerts To Fetch |
Required. The number of alerts to process in every connector iteration. The default value is |
Use dynamic list as a blocklist |
Required. If selected, the connector uses the dynamic list as a blocklist. Not selected by default. |
Disable Overflow |
Optional. If selected, the connector ignores the Google SecOps overflow mechanism. Selected by default. |
Verify SSL |
Required. If selected, the action validates the SSL certificate of the API server. Selected by default. |
Proxy Server Address |
Optional. The address of the proxy server to use. |
Proxy Username |
Optional. The proxy username to authenticate with. |
Proxy Password |
Optional. The proxy password to authenticate with. |
Jobs
The sample integration allows the use of the following job:
Simple Job Example
Use the Simple Job Example job to automatically manage cases.
This job has two primary functions:
Close a case if it has a
Closed
tag.Add a comment to a case if it has a
Currency
tag.
Job inputs
To configure this job, use the following parameters:
Parameters | |
---|---|
API Root |
Required. The API root for the integration instance. In this example case, [VAT Comply](https://www.vatcomply.com/) service is being used to integrate, with the API root `api.vatcomply.com`. The default value is |
Password Field |
Optional. An example API password field. This parameter is included for demonstration purposes only and is not required by the API for authentication. The default value is |
Verify SSL |
Required. If selected, the action validates the SSL certificate of the API server. Selected by default. |
Need more help? Get answers from Community members and Google SecOps professionals.