diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index c15232d04299..770fa9de0a8d 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -110991,6 +110991,714 @@ components: type: string x-enum-varnames: - SNAPSHOTS + SnowflakeAccountUsageMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest" + type: object + SnowflakeAccountUsageMetricsIntegrationDataflowResponse: + description: >- + Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse" + type: object + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the account usage metrics dataflow. Only the fields provided are changed. + properties: + account_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. + example: false + type: boolean + type: object + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse: + description: Settings of the account usage metrics dataflow. + properties: + account_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. + example: false + type: boolean + type: object + SnowflakeCloudCostMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) must be enabled for your organization while this dataflow is enabled. Any request that enables this dataflow without Cloud Cost Management is rejected with a `422` response. The Snowflake role also needs the ORGANIZATION_BILLING_VIEWER database role to read the underlying cost views; without that role this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest" + type: object + SnowflakeCloudCostMetricsIntegrationDataflowResponse: + description: >- + Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. Requires [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) to be set up for your organization, and the ORGANIZATION_BILLING_VIEWER database role on the Snowflake role; without both this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse" + type: object + SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the Cloud Cost Management dataflow. Only the fields provided are changed. + properties: + query_tags: + description: >- + Snowflake query tags to ingest, so that cost data can be broken down by them in Cloud Cost Management. Provide the tag names as a comma-separated list without spaces, using only letters, digits, underscores, dots, and hyphens. Datadog does not collect query tags by default. + example: env,team,cost_center + pattern: "^([a-zA-Z0-9_.-]+(,[a-zA-Z0-9_.-]+)*)?$" + type: string + type: object + SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse: + description: Settings of the Cloud Cost Management dataflow. + properties: + query_tags: + description: >- + Snowflake query tags ingested as a comma-separated list of tag names, so that cost data can be broken down by them in Cloud Cost Management. + example: env,team,cost_center + type: string + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest: + additionalProperties: false + description: >- + Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest" + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse: + description: >- + Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse" + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the Data Observability dataflow. Only the fields provided are changed. + properties: + do_table_crawler_cron: + description: >- + Cron expression setting how often Datadog crawls your Snowflake table metadata. It takes the five standard fields, with the restriction that the month must be `*` and that the day of the month and the day of the week cannot both be constrained. Common values are hourly (`0 * * * *`) and daily (`0 0 * * *`). Defaults to hourly (`0 * * * *`). + example: "0 */6 * * *" + type: string + sync_snowflake_system_database: + description: >- + Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. Defaults to `true`. + example: true + type: boolean + type: object + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse: + description: Settings of the Data Observability dataflow. + properties: + do_table_crawler_cron: + description: Cron expression setting how often Datadog crawls your Snowflake table metadata. + example: "0 */6 * * *" + type: string + sync_snowflake_system_database: + description: >- + Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. + example: true + type: boolean + type: object + SnowflakeEventTableLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest" + type: object + SnowflakeEventTableLogsIntegrationDataflowResponse: + description: >- + Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse" + type: object + SnowflakeEventTableLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: >- + Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. Only the fields provided are changed. + properties: + event_table_events_enabled: + description: >- + Whether records with a `record_type` of `event` are collected. Defaults to `false`. + example: true + type: boolean + event_table_logs_enabled: + description: >- + Whether records with a `record_type` of `log` are collected. Defaults to `false`. + example: true + type: boolean + event_table_logs_interval_min: + description: >- + How often event table records are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. + example: 15 + format: int64 + type: integer + event_table_span_events_enabled: + description: >- + Whether records with a `record_type` of `span_event` are collected. Defaults to `false`. + example: false + type: boolean + event_table_spans_enabled: + description: >- + Whether records with a `record_type` of `span` are collected. Defaults to `false`. + example: false + type: boolean + type: object + SnowflakeEventTableLogsIntegrationDataflowSettingsResponse: + description: >- + Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. + properties: + event_table_events_enabled: + description: Whether records with a `record_type` of `event` are collected. + example: true + type: boolean + event_table_logs_enabled: + description: Whether records with a `record_type` of `log` are collected. + example: true + type: boolean + event_table_logs_interval_min: + description: How often event table records are collected, in minutes. + example: 15 + format: int64 + type: integer + event_table_span_events_enabled: + description: Whether records with a `record_type` of `span_event` are collected. + example: false + type: boolean + event_table_spans_enabled: + description: Whether records with a `record_type` of `span` are collected. + example: false + type: boolean + type: object + SnowflakeIntegrationAccountAuthenticationRequest: + description: Authentication for creating the Snowflake integration account. Exactly one method is set. + oneOf: + - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthRequest" + SnowflakeIntegrationAccountAuthenticationResponse: + description: Authentication configured on the Snowflake integration account. + oneOf: + - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthResponse" + SnowflakeIntegrationAccountAuthenticationUpdate: + description: Authentication for updating the Snowflake integration account. Exactly one method is set. + oneOf: + - $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthUpdate" + SnowflakeIntegrationAccountCreateAttributes: + description: Writable attributes used to create a Snowflake integration account. + properties: + authentication: + $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationRequest" + dataflows: + $ref: "#/components/schemas/SnowflakeIntegrationDataflowsRequest" + name: + description: |- + Human-readable name of the Snowflake integration account. Must be + unique within your Datadog organization. + example: prod-snowflake + type: string + settings: + $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsRequest" + required: + - name + - authentication + - settings + type: object + SnowflakeIntegrationAccountCreateData: + description: Data envelope for creating a Snowflake integration account. + properties: + attributes: + $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateAttributes" + type: + $ref: "#/components/schemas/IntegrationAccountType" + required: + - type + - attributes + type: object + SnowflakeIntegrationAccountCreateRequest: + description: Request payload to create a Snowflake integration account. + properties: + data: + $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateData" + required: + - data + type: object + SnowflakeIntegrationAccountPrivateKeyAuthRequest: + additionalProperties: false + description: >- + RSA key pair authentication, the only method Snowflake integration accounts support. Generate an RSA key pair and assign the public key to the Snowflake user named in `settings.username`. + properties: + auth_type: + $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" + private_key: + description: The private key, in PEM format. + example: "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----" + type: string + writeOnly: true + private_key_name: + description: Name that distinguishes this private key from other keys in Datadog. + example: my-rsa-key + type: string + private_key_passphrase: + description: >- + Passphrase that decrypts the private key. Provide it only when the key is encrypted. + example: your-private-key-passphrase + type: string + writeOnly: true + required: + - auth_type + - private_key_name + - private_key + type: object + SnowflakeIntegrationAccountPrivateKeyAuthResponse: + description: The RSA key pair authentication method configured on the account. + properties: + auth_type: + $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" + private_key_name: + description: Name that distinguishes this private key from other keys in Datadog. + example: my-rsa-key + type: string + required: + - auth_type + - private_key_name + type: object + SnowflakeIntegrationAccountPrivateKeyAuthType: + default: snowflake_private_key + description: The authentication method type. + enum: + - snowflake_private_key + example: snowflake_private_key + type: string + x-enum-varnames: + - SNOWFLAKE_PRIVATE_KEY + SnowflakeIntegrationAccountPrivateKeyAuthUpdate: + additionalProperties: false + description: >- + RSA key pair authentication, the only method Snowflake integration accounts support. Only the fields provided are changed; omit `private_key` to keep the stored one. + properties: + auth_type: + $ref: "#/components/schemas/SnowflakeIntegrationAccountPrivateKeyAuthType" + private_key: + description: The private key, in PEM format. + example: "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----" + type: string + writeOnly: true + private_key_name: + description: Name that distinguishes this private key from other keys in Datadog. + example: my-rsa-key + type: string + private_key_passphrase: + description: >- + Passphrase that decrypts the private key. Provide it only when the key is encrypted. Omit it to keep the stored passphrase, send `null` or an empty string to remove it, or send a value to replace it. + example: your-private-key-passphrase + nullable: true + type: string + writeOnly: true + required: + - auth_type + type: object + SnowflakeIntegrationAccountResponse: + description: Response payload for a single Snowflake integration account. + properties: + data: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseData" + required: + - data + type: object + SnowflakeIntegrationAccountResponseAttributes: + description: Attributes of a Snowflake integration account returned in responses. + properties: + authentication: + $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationResponse" + dataflows: + $ref: "#/components/schemas/SnowflakeIntegrationDataflowsResponse" + name: + description: Human-readable name of the Snowflake integration account. + example: prod-snowflake + type: string + settings: + $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsResponse" + required: + - name + - settings + type: object + SnowflakeIntegrationAccountResponseData: + description: Data envelope of a Snowflake integration account, including server-assigned identity. + properties: + attributes: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseAttributes" + id: + description: Server-generated unique identifier of the Snowflake integration account. + example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + readOnly: true + type: string + type: + $ref: "#/components/schemas/IntegrationAccountType" + required: + - id + - attributes + - type + type: object + SnowflakeIntegrationAccountSettingsRequest: + additionalProperties: false + description: Settings for creating the Snowflake integration account. + properties: + snowflake_account_identifier: + description: >- + Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. + example: myorg-myaccount + type: string + username: + description: >- + Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. + example: datadog_user + type: string + required: + - snowflake_account_identifier + - username + type: object + SnowflakeIntegrationAccountSettingsResponse: + description: Settings configured on the Snowflake integration account. + properties: + snowflake_account_identifier: + description: Identifier of the Snowflake account being monitored. + example: myorg-myaccount + type: string + username: + description: Snowflake user Datadog authenticates as. + example: datadog_user + type: string + required: + - snowflake_account_identifier + - username + type: object + SnowflakeIntegrationAccountSettingsUpdate: + additionalProperties: false + description: Settings for updating the Snowflake integration account. Only the fields provided are changed. + properties: + snowflake_account_identifier: + description: >- + Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. + example: myorg-myaccount + type: string + username: + description: >- + Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. + example: datadog_user + type: string + type: object + SnowflakeIntegrationAccountUpdateAttributes: + description: >- + Writable attributes used to update a Snowflake integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration, as do the settings of an included dataflow that provides only `enabled`. + properties: + authentication: + $ref: "#/components/schemas/SnowflakeIntegrationAccountAuthenticationUpdate" + dataflows: + $ref: "#/components/schemas/SnowflakeIntegrationDataflowsRequest" + name: + description: |- + Human-readable name of the Snowflake integration account. Must be + unique within your Datadog organization. + example: prod-snowflake + type: string + settings: + $ref: "#/components/schemas/SnowflakeIntegrationAccountSettingsUpdate" + type: object + SnowflakeIntegrationAccountUpdateData: + description: Data envelope for updating a Snowflake integration account. + properties: + attributes: + $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateAttributes" + id: + description: Unique identifier of the Snowflake integration account to update. + example: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: string + type: + $ref: "#/components/schemas/IntegrationAccountType" + required: + - id + - type + - attributes + type: object + SnowflakeIntegrationAccountUpdateRequest: + description: Request payload to update a Snowflake integration account. + properties: + data: + $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateData" + required: + - data + type: object + SnowflakeIntegrationAccountsResponse: + description: Response payload for a list of Snowflake integration accounts. + properties: + data: + description: List of Snowflake integration accounts. + items: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponseData" + type: array + required: + - data + type: object + SnowflakeIntegrationDataflowsRequest: + additionalProperties: false + description: >- + Data Datadog collects from Snowflake, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Every dataflow reads from Snowflake as the user in `settings.username`, so that user's role must be granted access to the underlying views; a dataflow enabled without those grants is stored but collects no data. + properties: + snowflake-account-usage-metrics: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowRequest" + snowflake-cloud-cost-metrics: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowRequest" + snowflake-data-observability-quality-monitoring: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest" + snowflake-event-table-logs: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowRequest" + snowflake-organization-usage-metrics: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest" + snowflake-query-history-logs: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowRequest" + snowflake-security-logs: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowRequest" + snowflake-task-history-logs: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowRequest" + type: object + SnowflakeIntegrationDataflowsResponse: + description: Data Datadog collects from Snowflake, keyed by dataflow id. + properties: + snowflake-account-usage-metrics: + $ref: "#/components/schemas/SnowflakeAccountUsageMetricsIntegrationDataflowResponse" + snowflake-cloud-cost-metrics: + $ref: "#/components/schemas/SnowflakeCloudCostMetricsIntegrationDataflowResponse" + snowflake-data-observability-quality-monitoring: + $ref: "#/components/schemas/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse" + snowflake-event-table-logs: + $ref: "#/components/schemas/SnowflakeEventTableLogsIntegrationDataflowResponse" + snowflake-organization-usage-metrics: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse" + snowflake-query-history-logs: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowResponse" + snowflake-security-logs: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowResponse" + snowflake-task-history-logs: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowResponse" + type: object + SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest" + type: object + SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse: + description: >- + Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse" + type: object + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the organization usage metrics dataflow. Only the fields provided are changed. + properties: + organization_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. + example: false + type: boolean + type: object + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse: + description: Settings of the organization usage metrics dataflow. + properties: + organization_usage_metrics_aggregate_last_24h: + description: >- + The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. + example: false + type: boolean + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Per-query logs that let you identify long-running, poorly performing, and expensive queries. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest" + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowResponse: + description: >- + Per-query logs that let you identify long-running, poorly performing, and expensive queries. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse" + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the query history logs dataflow. Only the fields provided are changed. + properties: + join_query_history_with_access_history_enabled: + description: >- + Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. Defaults to `false`. + example: true + type: boolean + query_history_logs_interval_min: + description: >- + How often query history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `720`, or `1440`. Defaults to `5`. + example: 15 + format: int64 + type: integer + type: object + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse: + description: Settings of the query history logs dataflow. + properties: + join_query_history_with_access_history_enabled: + description: >- + Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. + example: true + type: boolean + query_history_logs_interval_min: + description: How often query history logs are collected, in minutes. + example: 15 + format: int64 + type: integer + type: object + SnowflakeSecurityLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest" + type: object + SnowflakeSecurityLogsIntegrationDataflowResponse: + description: >- + Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse" + type: object + SnowflakeSecurityLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the security logs dataflow. Only the fields provided are changed. + properties: + security_logs_interval_min: + description: >- + How often security logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `360`, `720`, or `1440`. Defaults to `5`. + example: 60 + format: int64 + type: integer + type: object + SnowflakeSecurityLogsIntegrationDataflowSettingsResponse: + description: Settings of the security logs dataflow. + properties: + security_logs_interval_min: + description: How often security logs are collected, in minutes. + example: 60 + format: int64 + type: integer + type: object + SnowflakeTaskHistoryLogsIntegrationDataflowRequest: + additionalProperties: false + description: >- + Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. + properties: + enabled: + description: Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest" + type: object + SnowflakeTaskHistoryLogsIntegrationDataflowResponse: + description: >- + Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. + properties: + enabled: + description: Whether Datadog collects this data. + example: true + type: boolean + settings: + $ref: "#/components/schemas/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse" + type: object + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest: + additionalProperties: false + description: Settings of the task history logs dataflow. Only the fields provided are changed. + properties: + task_history_logs_interval_min: + description: >- + How often task history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. + example: 30 + format: int64 + type: integer + type: object + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse: + description: Settings of the task history logs dataflow. + properties: + task_history_logs_interval_min: + description: How often task history logs are collected, in minutes. + example: 30 + format: int64 + type: integer + type: object SoftwareCatalogTriggerWrapper: description: "Schema for a Software Catalog-based trigger." properties: @@ -165171,6 +165879,380 @@ paths: x-unstable: |- **Note**: This endpoint is in preview and is subject to change. If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/integration-interfaces/snowflake/accounts: + get: + description: List Snowflake integration accounts. + operationId: ListSnowflakeIntegrationAccounts + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + - attributes: + authentication: + auth_type: snowflake_private_key + private_key_name: my-rsa-key + dataflows: + snowflake-account-usage-metrics: + enabled: true + settings: + account_usage_metrics_aggregate_last_24h: false + snowflake-cloud-cost-metrics: + enabled: true + settings: + query_tags: env,team,cost_center + snowflake-data-observability-quality-monitoring: + enabled: true + settings: + do_table_crawler_cron: "0 */6 * * *" + sync_snowflake_system_database: true + snowflake-event-table-logs: + enabled: true + settings: + event_table_events_enabled: true + event_table_logs_enabled: true + event_table_logs_interval_min: 15 + event_table_span_events_enabled: false + event_table_spans_enabled: false + snowflake-organization-usage-metrics: + enabled: true + settings: + organization_usage_metrics_aggregate_last_24h: false + snowflake-query-history-logs: + enabled: true + settings: + join_query_history_with_access_history_enabled: true + query_history_logs_interval_min: 15 + snowflake-security-logs: + enabled: true + settings: + security_logs_interval_min: 60 + snowflake-task-history-logs: + enabled: true + settings: + task_history_logs_interval_min: 30 + name: prod-snowflake + settings: + snowflake_account_identifier: myorg-myaccount + username: datadog_user + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: integration-account + schema: + $ref: "#/components/schemas/SnowflakeIntegrationAccountsResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: List Snowflake integration accounts + tags: + - Snowflake Integration + "x-permission": + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + post: + description: Create a Snowflake integration account. + operationId: CreateSnowflakeIntegrationAccount + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SnowflakeIntegrationAccountCreateRequest" + required: true + responses: + "201": + content: + application/json: + examples: + default: + value: + data: + attributes: + authentication: + auth_type: snowflake_private_key + private_key_name: my-rsa-key + dataflows: + snowflake-account-usage-metrics: + enabled: true + settings: + account_usage_metrics_aggregate_last_24h: false + snowflake-cloud-cost-metrics: + enabled: true + settings: + query_tags: env,team,cost_center + snowflake-data-observability-quality-monitoring: + enabled: true + settings: + do_table_crawler_cron: "0 */6 * * *" + sync_snowflake_system_database: true + snowflake-event-table-logs: + enabled: true + settings: + event_table_events_enabled: true + event_table_logs_enabled: true + event_table_logs_interval_min: 15 + event_table_span_events_enabled: false + event_table_spans_enabled: false + snowflake-organization-usage-metrics: + enabled: true + settings: + organization_usage_metrics_aggregate_last_24h: false + snowflake-query-history-logs: + enabled: true + settings: + join_query_history_with_access_history_enabled: true + query_history_logs_interval_min: 15 + snowflake-security-logs: + enabled: true + settings: + security_logs_interval_min: 60 + snowflake-task-history-logs: + enabled: true + settings: + task_history_logs_interval_min: 30 + name: prod-snowflake + settings: + snowflake_account_identifier: myorg-myaccount + username: datadog_user + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: integration-account + schema: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponse" + description: Created + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "422": + $ref: "#/components/responses/UnprocessableEntityResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Create a Snowflake integration account + tags: + - Snowflake Integration + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + /api/v2/integration-interfaces/snowflake/accounts/{account_id}: + delete: + description: Delete a Snowflake integration account. + operationId: DeleteSnowflakeIntegrationAccount + parameters: + - $ref: "#/components/parameters/IntegrationAccountIdParameter" + responses: + "200": + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Delete a Snowflake integration account + tags: + - Snowflake Integration + "x-permission": + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + get: + description: Get a Snowflake integration account. + operationId: GetSnowflakeIntegrationAccount + parameters: + - $ref: "#/components/parameters/IntegrationAccountIdParameter" + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + authentication: + auth_type: snowflake_private_key + private_key_name: my-rsa-key + dataflows: + snowflake-account-usage-metrics: + enabled: true + settings: + account_usage_metrics_aggregate_last_24h: false + snowflake-cloud-cost-metrics: + enabled: true + settings: + query_tags: env,team,cost_center + snowflake-data-observability-quality-monitoring: + enabled: true + settings: + do_table_crawler_cron: "0 */6 * * *" + sync_snowflake_system_database: true + snowflake-event-table-logs: + enabled: true + settings: + event_table_events_enabled: true + event_table_logs_enabled: true + event_table_logs_interval_min: 15 + event_table_span_events_enabled: false + event_table_spans_enabled: false + snowflake-organization-usage-metrics: + enabled: true + settings: + organization_usage_metrics_aggregate_last_24h: false + snowflake-query-history-logs: + enabled: true + settings: + join_query_history_with_access_history_enabled: true + query_history_logs_interval_min: 15 + snowflake-security-logs: + enabled: true + settings: + security_logs_interval_min: 60 + snowflake-task-history-logs: + enabled: true + settings: + task_history_logs_interval_min: 30 + name: prod-snowflake + settings: + snowflake_account_identifier: myorg-myaccount + username: datadog_user + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: integration-account + schema: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Get a Snowflake integration account + tags: + - Snowflake Integration + "x-permission": + operator: OR + permissions: + - integrations_read + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). + patch: + description: Update a Snowflake integration account. Only the fields provided are changed. + operationId: UpdateSnowflakeIntegrationAccount + parameters: + - $ref: "#/components/parameters/IntegrationAccountIdParameter" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/SnowflakeIntegrationAccountUpdateRequest" + required: true + responses: + "200": + content: + application/json: + examples: + default: + value: + data: + attributes: + authentication: + auth_type: snowflake_private_key + private_key_name: my-rsa-key + dataflows: + snowflake-account-usage-metrics: + enabled: true + settings: + account_usage_metrics_aggregate_last_24h: false + snowflake-cloud-cost-metrics: + enabled: true + settings: + query_tags: env,team,cost_center + snowflake-data-observability-quality-monitoring: + enabled: true + settings: + do_table_crawler_cron: "0 */6 * * *" + sync_snowflake_system_database: true + snowflake-event-table-logs: + enabled: true + settings: + event_table_events_enabled: true + event_table_logs_enabled: true + event_table_logs_interval_min: 15 + event_table_span_events_enabled: false + event_table_spans_enabled: false + snowflake-organization-usage-metrics: + enabled: true + settings: + organization_usage_metrics_aggregate_last_24h: false + snowflake-query-history-logs: + enabled: true + settings: + join_query_history_with_access_history_enabled: true + query_history_logs_interval_min: 15 + snowflake-security-logs: + enabled: true + settings: + security_logs_interval_min: 60 + snowflake-task-history-logs: + enabled: true + settings: + task_history_logs_interval_min: 30 + name: prod-snowflake + settings: + snowflake_account_identifier: myorg-myaccount + username: datadog_user + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + type: integration-account + schema: + $ref: "#/components/schemas/SnowflakeIntegrationAccountResponse" + description: OK + "400": + $ref: "#/components/responses/BadRequestResponse" + "403": + $ref: "#/components/responses/ForbiddenResponse" + "404": + $ref: "#/components/responses/NotFoundResponse" + "422": + $ref: "#/components/responses/UnprocessableEntityResponse" + "429": + $ref: "#/components/responses/TooManyRequestsResponse" + summary: Update a Snowflake integration account + tags: + - Snowflake Integration + x-codegen-request-body-name: body + "x-permission": + operator: OR + permissions: + - manage_integrations + x-unstable: |- + **Note**: This endpoint is in preview and is subject to change. + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/). /api/v2/integration-interfaces/twilio/accounts: get: description: List Twilio integration accounts. @@ -229946,6 +231028,15 @@ tags: description: For more information about the Datadog Slack integration, see the integration page. url: https://docs.datadoghq.com/integrations/slack/ name: Slack Integration + - description: |- + Manage your Datadog Snowflake integration accounts + directly through the Datadog API. See the + [Snowflake integration page](https://docs.datadoghq.com/integrations/snowflake_web/) for + more information. + externalDocs: + description: Snowflake integration. + url: https://docs.datadoghq.com/integrations/snowflake_web/ + name: Snowflake Integration - description: |- API to create, update, retrieve, and delete Software Catalog entities. externalDocs: diff --git a/examples/v2/snowflake-integration/CreateSnowflakeIntegrationAccount.ts b/examples/v2/snowflake-integration/CreateSnowflakeIntegrationAccount.ts new file mode 100644 index 000000000000..0a9102da2514 --- /dev/null +++ b/examples/v2/snowflake-integration/CreateSnowflakeIntegrationAccount.ts @@ -0,0 +1,97 @@ +/** + * Create a Snowflake integration account returns "Created" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration(); +configuration.unstableOperations["v2.createSnowflakeIntegrationAccount"] = true; +const apiInstance = new v2.SnowflakeIntegrationApi(configuration); + +const params: v2.SnowflakeIntegrationApiCreateSnowflakeIntegrationAccountRequest = + { + body: { + data: { + attributes: { + authentication: { + authType: "snowflake_private_key", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", + privateKeyName: "my-rsa-key", + privateKeyPassphrase: "your-private-key-passphrase", + }, + dataflows: { + snowflakeAccountUsageMetrics: { + enabled: true, + settings: { + accountUsageMetricsAggregateLast24h: false, + }, + }, + snowflakeCloudCostMetrics: { + enabled: true, + settings: { + queryTags: "env,team,cost_center", + }, + }, + snowflakeDataObservabilityQualityMonitoring: { + enabled: true, + settings: { + doTableCrawlerCron: "0 */6 * * *", + syncSnowflakeSystemDatabase: true, + }, + }, + snowflakeEventTableLogs: { + enabled: true, + settings: { + eventTableEventsEnabled: true, + eventTableLogsEnabled: true, + eventTableLogsIntervalMin: 15, + eventTableSpanEventsEnabled: false, + eventTableSpansEnabled: false, + }, + }, + snowflakeOrganizationUsageMetrics: { + enabled: true, + settings: { + organizationUsageMetricsAggregateLast24h: false, + }, + }, + snowflakeQueryHistoryLogs: { + enabled: true, + settings: { + joinQueryHistoryWithAccessHistoryEnabled: true, + queryHistoryLogsIntervalMin: 15, + }, + }, + snowflakeSecurityLogs: { + enabled: true, + settings: { + securityLogsIntervalMin: 60, + }, + }, + snowflakeTaskHistoryLogs: { + enabled: true, + settings: { + taskHistoryLogsIntervalMin: 30, + }, + }, + }, + name: "prod-snowflake", + settings: { + snowflakeAccountIdentifier: "myorg-myaccount", + username: "datadog_user", + }, + }, + type: "integration-account", + }, + }, + }; + +apiInstance + .createSnowflakeIntegrationAccount(params) + .then((data: v2.SnowflakeIntegrationAccountResponse) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/snowflake-integration/DeleteSnowflakeIntegrationAccount.ts b/examples/v2/snowflake-integration/DeleteSnowflakeIntegrationAccount.ts new file mode 100644 index 000000000000..aaec0548d200 --- /dev/null +++ b/examples/v2/snowflake-integration/DeleteSnowflakeIntegrationAccount.ts @@ -0,0 +1,23 @@ +/** + * Delete a Snowflake integration account returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration(); +configuration.unstableOperations["v2.deleteSnowflakeIntegrationAccount"] = true; +const apiInstance = new v2.SnowflakeIntegrationApi(configuration); + +const params: v2.SnowflakeIntegrationApiDeleteSnowflakeIntegrationAccountRequest = + { + accountId: "account_id", + }; + +apiInstance + .deleteSnowflakeIntegrationAccount(params) + .then((data: any) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/snowflake-integration/GetSnowflakeIntegrationAccount.ts b/examples/v2/snowflake-integration/GetSnowflakeIntegrationAccount.ts new file mode 100644 index 000000000000..60992cb0805e --- /dev/null +++ b/examples/v2/snowflake-integration/GetSnowflakeIntegrationAccount.ts @@ -0,0 +1,23 @@ +/** + * Get a Snowflake integration account returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration(); +configuration.unstableOperations["v2.getSnowflakeIntegrationAccount"] = true; +const apiInstance = new v2.SnowflakeIntegrationApi(configuration); + +const params: v2.SnowflakeIntegrationApiGetSnowflakeIntegrationAccountRequest = + { + accountId: "account_id", + }; + +apiInstance + .getSnowflakeIntegrationAccount(params) + .then((data: v2.SnowflakeIntegrationAccountResponse) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/snowflake-integration/ListSnowflakeIntegrationAccounts.ts b/examples/v2/snowflake-integration/ListSnowflakeIntegrationAccounts.ts new file mode 100644 index 000000000000..6b8fc52e4efa --- /dev/null +++ b/examples/v2/snowflake-integration/ListSnowflakeIntegrationAccounts.ts @@ -0,0 +1,18 @@ +/** + * List Snowflake integration accounts returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration(); +configuration.unstableOperations["v2.listSnowflakeIntegrationAccounts"] = true; +const apiInstance = new v2.SnowflakeIntegrationApi(configuration); + +apiInstance + .listSnowflakeIntegrationAccounts() + .then((data: v2.SnowflakeIntegrationAccountsResponse) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/examples/v2/snowflake-integration/UpdateSnowflakeIntegrationAccount.ts b/examples/v2/snowflake-integration/UpdateSnowflakeIntegrationAccount.ts new file mode 100644 index 000000000000..5438b219e1f4 --- /dev/null +++ b/examples/v2/snowflake-integration/UpdateSnowflakeIntegrationAccount.ts @@ -0,0 +1,99 @@ +/** + * Update a Snowflake integration account returns "OK" response + */ + +import { client, v2 } from "@datadog/datadog-api-client"; + +const configuration = client.createConfiguration(); +configuration.unstableOperations["v2.updateSnowflakeIntegrationAccount"] = true; +const apiInstance = new v2.SnowflakeIntegrationApi(configuration); + +const params: v2.SnowflakeIntegrationApiUpdateSnowflakeIntegrationAccountRequest = + { + body: { + data: { + attributes: { + authentication: { + authType: "snowflake_private_key", + privateKey: + "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", + privateKeyName: "my-rsa-key", + privateKeyPassphrase: "your-private-key-passphrase", + }, + dataflows: { + snowflakeAccountUsageMetrics: { + enabled: true, + settings: { + accountUsageMetricsAggregateLast24h: false, + }, + }, + snowflakeCloudCostMetrics: { + enabled: true, + settings: { + queryTags: "env,team,cost_center", + }, + }, + snowflakeDataObservabilityQualityMonitoring: { + enabled: true, + settings: { + doTableCrawlerCron: "0 */6 * * *", + syncSnowflakeSystemDatabase: true, + }, + }, + snowflakeEventTableLogs: { + enabled: true, + settings: { + eventTableEventsEnabled: true, + eventTableLogsEnabled: true, + eventTableLogsIntervalMin: 15, + eventTableSpanEventsEnabled: false, + eventTableSpansEnabled: false, + }, + }, + snowflakeOrganizationUsageMetrics: { + enabled: true, + settings: { + organizationUsageMetricsAggregateLast24h: false, + }, + }, + snowflakeQueryHistoryLogs: { + enabled: true, + settings: { + joinQueryHistoryWithAccessHistoryEnabled: true, + queryHistoryLogsIntervalMin: 15, + }, + }, + snowflakeSecurityLogs: { + enabled: true, + settings: { + securityLogsIntervalMin: 60, + }, + }, + snowflakeTaskHistoryLogs: { + enabled: true, + settings: { + taskHistoryLogsIntervalMin: 30, + }, + }, + }, + name: "prod-snowflake", + settings: { + snowflakeAccountIdentifier: "myorg-myaccount", + username: "datadog_user", + }, + }, + id: "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + type: "integration-account", + }, + }, + accountId: "account_id", + }; + +apiInstance + .updateSnowflakeIntegrationAccount(params) + .then((data: v2.SnowflakeIntegrationAccountResponse) => { + console.log( + "API called successfully. Returned data: " + JSON.stringify(data) + ); + }) + .catch((error: any) => console.error(error)); diff --git a/features/support/scenarios_model_mapping.ts b/features/support/scenarios_model_mapping.ts index 04231d98d638..0e2e788530f6 100644 --- a/features/support/scenarios_model_mapping.ts +++ b/features/support/scenarios_model_mapping.ts @@ -11561,6 +11561,41 @@ export const ScenariosModelMappings: {[key: string]: {[key: string]: any}} = { }, "operationResponseType": "ElasticCloudIntegrationAccountResponse", }, + "v2.ListSnowflakeIntegrationAccounts": { + "operationResponseType": "SnowflakeIntegrationAccountsResponse", + }, + "v2.CreateSnowflakeIntegrationAccount": { + "body": { + "type": "SnowflakeIntegrationAccountCreateRequest", + "format": "", + }, + "operationResponseType": "SnowflakeIntegrationAccountResponse", + }, + "v2.GetSnowflakeIntegrationAccount": { + "accountId": { + "type": "string", + "format": "", + }, + "operationResponseType": "SnowflakeIntegrationAccountResponse", + }, + "v2.DeleteSnowflakeIntegrationAccount": { + "accountId": { + "type": "string", + "format": "", + }, + "operationResponseType": "{}", + }, + "v2.UpdateSnowflakeIntegrationAccount": { + "accountId": { + "type": "string", + "format": "", + }, + "body": { + "type": "SnowflakeIntegrationAccountUpdateRequest", + "format": "", + }, + "operationResponseType": "SnowflakeIntegrationAccountResponse", + }, "v2.ListTwilioIntegrationAccounts": { "operationResponseType": "TwilioIntegrationAccountsResponse", }, diff --git a/features/v2/snowflake_integration.feature b/features/v2/snowflake_integration.feature new file mode 100644 index 000000000000..f6f4056e4e52 --- /dev/null +++ b/features/v2/snowflake_integration.feature @@ -0,0 +1,148 @@ +@endpoint(snowflake-integration) @endpoint(snowflake-integration-v2) +Feature: Snowflake Integration + Manage your Datadog Snowflake integration accounts directly through the + Datadog API. See the [Snowflake integration + page](https://docs.datadoghq.com/integrations/snowflake_web/) for more + information. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "SnowflakeIntegration" API + + @generated @skip @team:DataDog/saas-integrations + Scenario: Create a Snowflake integration account returns "Bad Request" response + Given operation "CreateSnowflakeIntegrationAccount" enabled + And new "CreateSnowflakeIntegrationAccount" request + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "type": "integration-account"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/saas-integrations + Scenario: Create a Snowflake integration account returns "Created" response + Given operation "CreateSnowflakeIntegrationAccount" enabled + And new "CreateSnowflakeIntegrationAccount" request + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "type": "integration-account"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/saas-integrations + Scenario: Create a Snowflake integration account returns "Not Found" response + Given operation "CreateSnowflakeIntegrationAccount" enabled + And new "CreateSnowflakeIntegrationAccount" request + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "type": "integration-account"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/saas-integrations + Scenario: Create a Snowflake integration account returns "The server cannot process the request because it contains invalid data." response + Given operation "CreateSnowflakeIntegrationAccount" enabled + And new "CreateSnowflakeIntegrationAccount" request + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "type": "integration-account"}} + When the request is sent + Then the response status is 422 The server cannot process the request because it contains invalid data. + + @generated @skip @team:DataDog/saas-integrations + Scenario: Delete a Snowflake integration account returns "Bad Request" response + Given operation "DeleteSnowflakeIntegrationAccount" enabled + And new "DeleteSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/saas-integrations + Scenario: Delete a Snowflake integration account returns "Not Found" response + Given operation "DeleteSnowflakeIntegrationAccount" enabled + And new "DeleteSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/saas-integrations + Scenario: Delete a Snowflake integration account returns "OK" response + Given operation "DeleteSnowflakeIntegrationAccount" enabled + And new "DeleteSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/saas-integrations + Scenario: Get a Snowflake integration account returns "Bad Request" response + Given operation "GetSnowflakeIntegrationAccount" enabled + And new "GetSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/saas-integrations + Scenario: Get a Snowflake integration account returns "Not Found" response + Given operation "GetSnowflakeIntegrationAccount" enabled + And new "GetSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/saas-integrations + Scenario: Get a Snowflake integration account returns "OK" response + Given operation "GetSnowflakeIntegrationAccount" enabled + And new "GetSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/saas-integrations + Scenario: List Snowflake integration accounts returns "Bad Request" response + Given operation "ListSnowflakeIntegrationAccounts" enabled + And new "ListSnowflakeIntegrationAccounts" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/saas-integrations + Scenario: List Snowflake integration accounts returns "Not Found" response + Given operation "ListSnowflakeIntegrationAccounts" enabled + And new "ListSnowflakeIntegrationAccounts" request + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/saas-integrations + Scenario: List Snowflake integration accounts returns "OK" response + Given operation "ListSnowflakeIntegrationAccounts" enabled + And new "ListSnowflakeIntegrationAccounts" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/saas-integrations + Scenario: Update a Snowflake integration account returns "Bad Request" response + Given operation "UpdateSnowflakeIntegrationAccount" enabled + And new "UpdateSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "type": "integration-account"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/saas-integrations + Scenario: Update a Snowflake integration account returns "Not Found" response + Given operation "UpdateSnowflakeIntegrationAccount" enabled + And new "UpdateSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "type": "integration-account"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/saas-integrations + Scenario: Update a Snowflake integration account returns "OK" response + Given operation "UpdateSnowflakeIntegrationAccount" enabled + And new "UpdateSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "type": "integration-account"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/saas-integrations + Scenario: Update a Snowflake integration account returns "The server cannot process the request because it contains invalid data." response + Given operation "UpdateSnowflakeIntegrationAccount" enabled + And new "UpdateSnowflakeIntegrationAccount" request + And request contains "account_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"authentication": {"auth_type": "snowflake_private_key", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...\n-----END PRIVATE KEY-----", "private_key_name": "my-rsa-key", "private_key_passphrase": "your-private-key-passphrase"}, "dataflows": {"snowflake-account-usage-metrics": {"enabled": true, "settings": {"account_usage_metrics_aggregate_last_24h": false}}, "snowflake-cloud-cost-metrics": {"enabled": true, "settings": {"query_tags": "env,team,cost_center"}}, "snowflake-data-observability-quality-monitoring": {"enabled": true, "settings": {"do_table_crawler_cron": "0 */6 * * *", "sync_snowflake_system_database": true}}, "snowflake-event-table-logs": {"enabled": true, "settings": {"event_table_events_enabled": true, "event_table_logs_enabled": true, "event_table_logs_interval_min": 15, "event_table_span_events_enabled": false, "event_table_spans_enabled": false}}, "snowflake-organization-usage-metrics": {"enabled": true, "settings": {"organization_usage_metrics_aggregate_last_24h": false}}, "snowflake-query-history-logs": {"enabled": true, "settings": {"join_query_history_with_access_history_enabled": true, "query_history_logs_interval_min": 15}}, "snowflake-security-logs": {"enabled": true, "settings": {"security_logs_interval_min": 60}}, "snowflake-task-history-logs": {"enabled": true, "settings": {"task_history_logs_interval_min": 30}}}, "name": "prod-snowflake", "settings": {"snowflake_account_identifier": "myorg-myaccount", "username": "datadog_user"}}, "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "type": "integration-account"}} + When the request is sent + Then the response status is 422 The server cannot process the request because it contains invalid data. diff --git a/features/v2/undo.json b/features/v2/undo.json index cbfa79c39e14..1abefe2e9ed3 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -3729,6 +3729,43 @@ "type": "idempotent" } }, + "ListSnowflakeIntegrationAccounts": { + "tag": "Snowflake Integration", + "undo": { + "type": "safe" + } + }, + "CreateSnowflakeIntegrationAccount": { + "tag": "Snowflake Integration", + "undo": { + "operationId": "DeleteSnowflakeIntegrationAccount", + "parameters": [ + { + "name": "account_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteSnowflakeIntegrationAccount": { + "tag": "Snowflake Integration", + "undo": { + "type": "idempotent" + } + }, + "GetSnowflakeIntegrationAccount": { + "tag": "Snowflake Integration", + "undo": { + "type": "safe" + } + }, + "UpdateSnowflakeIntegrationAccount": { + "tag": "Snowflake Integration", + "undo": { + "type": "idempotent" + } + }, "ListTwilioIntegrationAccounts": { "tag": "Twilio Integration", "undo": { diff --git a/packages/datadog-api-client-common/configuration.ts b/packages/datadog-api-client-common/configuration.ts index f0302f06a9bd..1b32eb217b52 100644 --- a/packages/datadog-api-client-common/configuration.ts +++ b/packages/datadog-api-client-common/configuration.ts @@ -633,6 +633,11 @@ export function createConfiguration( "v2.getElasticCloudIntegrationAccount": false, "v2.listElasticCloudIntegrationAccounts": false, "v2.updateElasticCloudIntegrationAccount": false, + "v2.createSnowflakeIntegrationAccount": false, + "v2.deleteSnowflakeIntegrationAccount": false, + "v2.getSnowflakeIntegrationAccount": false, + "v2.listSnowflakeIntegrationAccounts": false, + "v2.updateSnowflakeIntegrationAccount": false, "v2.createTwilioIntegrationAccount": false, "v2.deleteTwilioIntegrationAccount": false, "v2.getTwilioIntegrationAccount": false, diff --git a/packages/datadog-api-client-v2/apis/SnowflakeIntegrationApi.ts b/packages/datadog-api-client-v2/apis/SnowflakeIntegrationApi.ts new file mode 100644 index 000000000000..700c170d6422 --- /dev/null +++ b/packages/datadog-api-client-v2/apis/SnowflakeIntegrationApi.ts @@ -0,0 +1,811 @@ +import { + BaseAPIRequestFactory, + RequiredError, +} from "../../datadog-api-client-common/baseapi"; +import { + Configuration, + applySecurityAuthentication, +} from "../../datadog-api-client-common/configuration"; +import { + RequestContext, + HttpMethod, + ResponseContext, +} from "../../datadog-api-client-common/http/http"; + +import { logger } from "../../../logger"; +import { ObjectSerializer } from "../models/ObjectSerializer"; +import { ApiException } from "../../datadog-api-client-common/exception"; + +import { APIErrorResponse } from "../models/APIErrorResponse"; +import { JSONAPIErrorResponse } from "../models/JSONAPIErrorResponse"; +import { SnowflakeIntegrationAccountCreateRequest } from "../models/SnowflakeIntegrationAccountCreateRequest"; +import { SnowflakeIntegrationAccountResponse } from "../models/SnowflakeIntegrationAccountResponse"; +import { SnowflakeIntegrationAccountsResponse } from "../models/SnowflakeIntegrationAccountsResponse"; +import { SnowflakeIntegrationAccountUpdateRequest } from "../models/SnowflakeIntegrationAccountUpdateRequest"; + +export class SnowflakeIntegrationApiRequestFactory extends BaseAPIRequestFactory { + public async createSnowflakeIntegrationAccount( + body: SnowflakeIntegrationAccountCreateRequest, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'createSnowflakeIntegrationAccount'"); + if (!_config.unstableOperations["v2.createSnowflakeIntegrationAccount"]) { + throw new Error( + "Unstable operation 'createSnowflakeIntegrationAccount' is disabled" + ); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "createSnowflakeIntegrationAccount"); + } + + // Path Params + const localVarPath = "/api/v2/integration-interfaces/snowflake/accounts"; + + // Make Request Context + const requestContext = _config + .getServer("v2.SnowflakeIntegrationApi.createSnowflakeIntegrationAccount") + .makeRequestContext(localVarPath, HttpMethod.POST); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "SnowflakeIntegrationAccountCreateRequest", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } + + public async deleteSnowflakeIntegrationAccount( + accountId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'deleteSnowflakeIntegrationAccount'"); + if (!_config.unstableOperations["v2.deleteSnowflakeIntegrationAccount"]) { + throw new Error( + "Unstable operation 'deleteSnowflakeIntegrationAccount' is disabled" + ); + } + + // verify required parameter 'accountId' is not null or undefined + if (accountId === null || accountId === undefined) { + throw new RequiredError("accountId", "deleteSnowflakeIntegrationAccount"); + } + + // Path Params + const localVarPath = + "/api/v2/integration-interfaces/snowflake/accounts/{account_id}".replace( + "{account_id}", + encodeURIComponent(String(accountId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.SnowflakeIntegrationApi.deleteSnowflakeIntegrationAccount") + .makeRequestContext(localVarPath, HttpMethod.DELETE); + requestContext.setHeaderParam("Accept", "*/*"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } + + public async getSnowflakeIntegrationAccount( + accountId: string, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'getSnowflakeIntegrationAccount'"); + if (!_config.unstableOperations["v2.getSnowflakeIntegrationAccount"]) { + throw new Error( + "Unstable operation 'getSnowflakeIntegrationAccount' is disabled" + ); + } + + // verify required parameter 'accountId' is not null or undefined + if (accountId === null || accountId === undefined) { + throw new RequiredError("accountId", "getSnowflakeIntegrationAccount"); + } + + // Path Params + const localVarPath = + "/api/v2/integration-interfaces/snowflake/accounts/{account_id}".replace( + "{account_id}", + encodeURIComponent(String(accountId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.SnowflakeIntegrationApi.getSnowflakeIntegrationAccount") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } + + public async listSnowflakeIntegrationAccounts( + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'listSnowflakeIntegrationAccounts'"); + if (!_config.unstableOperations["v2.listSnowflakeIntegrationAccounts"]) { + throw new Error( + "Unstable operation 'listSnowflakeIntegrationAccounts' is disabled" + ); + } + + // Path Params + const localVarPath = "/api/v2/integration-interfaces/snowflake/accounts"; + + // Make Request Context + const requestContext = _config + .getServer("v2.SnowflakeIntegrationApi.listSnowflakeIntegrationAccounts") + .makeRequestContext(localVarPath, HttpMethod.GET); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } + + public async updateSnowflakeIntegrationAccount( + accountId: string, + body: SnowflakeIntegrationAccountUpdateRequest, + _options?: Configuration + ): Promise { + const _config = _options || this.configuration; + + logger.warn("Using unstable operation 'updateSnowflakeIntegrationAccount'"); + if (!_config.unstableOperations["v2.updateSnowflakeIntegrationAccount"]) { + throw new Error( + "Unstable operation 'updateSnowflakeIntegrationAccount' is disabled" + ); + } + + // verify required parameter 'accountId' is not null or undefined + if (accountId === null || accountId === undefined) { + throw new RequiredError("accountId", "updateSnowflakeIntegrationAccount"); + } + + // verify required parameter 'body' is not null or undefined + if (body === null || body === undefined) { + throw new RequiredError("body", "updateSnowflakeIntegrationAccount"); + } + + // Path Params + const localVarPath = + "/api/v2/integration-interfaces/snowflake/accounts/{account_id}".replace( + "{account_id}", + encodeURIComponent(String(accountId)) + ); + + // Make Request Context + const requestContext = _config + .getServer("v2.SnowflakeIntegrationApi.updateSnowflakeIntegrationAccount") + .makeRequestContext(localVarPath, HttpMethod.PATCH); + requestContext.setHeaderParam("Accept", "application/json"); + requestContext.setHttpConfig(_config.httpConfig); + + // Set IaC header + if (_config.isIaC) { + requestContext.setHeaderParam("X-Datadog-Managed-By", "iac"); + } + + // Body Params + const contentType = ObjectSerializer.getPreferredMediaType([ + "application/json", + ]); + requestContext.setHeaderParam("Content-Type", contentType); + const serializedBody = ObjectSerializer.stringify( + ObjectSerializer.serialize( + body, + "SnowflakeIntegrationAccountUpdateRequest", + "" + ), + contentType + ); + requestContext.setBody(serializedBody); + + // Apply auth methods + applySecurityAuthentication(_config, requestContext, [ + "apiKeyAuth", + "appKeyAuth", + ]); + + return requestContext; + } +} + +export class SnowflakeIntegrationApiResponseProcessor { + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to createSnowflakeIntegrationAccount + * @throws ApiException if the response code was not in [200, 299] + */ + public async createSnowflakeIntegrationAccount( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 201) { + const body: SnowflakeIntegrationAccountResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountResponse" + ) as SnowflakeIntegrationAccountResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + if (response.httpStatusCode === 422) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: SnowflakeIntegrationAccountResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountResponse", + "" + ) as SnowflakeIntegrationAccountResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to deleteSnowflakeIntegrationAccount + * @throws ApiException if the response code was not in [200, 299] + */ + public async deleteSnowflakeIntegrationAccount( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + return; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + return; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to getSnowflakeIntegrationAccount + * @throws ApiException if the response code was not in [200, 299] + */ + public async getSnowflakeIntegrationAccount( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: SnowflakeIntegrationAccountResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountResponse" + ) as SnowflakeIntegrationAccountResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: SnowflakeIntegrationAccountResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountResponse", + "" + ) as SnowflakeIntegrationAccountResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to listSnowflakeIntegrationAccounts + * @throws ApiException if the response code was not in [200, 299] + */ + public async listSnowflakeIntegrationAccounts( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: SnowflakeIntegrationAccountsResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountsResponse" + ) as SnowflakeIntegrationAccountsResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: SnowflakeIntegrationAccountsResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountsResponse", + "" + ) as SnowflakeIntegrationAccountsResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } + + /** + * Unwraps the actual response sent by the server from the response context and deserializes the response content + * to the expected objects + * + * @params response Response returned by the server for a request to updateSnowflakeIntegrationAccount + * @throws ApiException if the response code was not in [200, 299] + */ + public async updateSnowflakeIntegrationAccount( + response: ResponseContext + ): Promise { + const contentType = ObjectSerializer.normalizeMediaType( + response.headers["content-type"] + ); + if (response.httpStatusCode === 200) { + const body: SnowflakeIntegrationAccountResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountResponse" + ) as SnowflakeIntegrationAccountResponse; + return body; + } + if ( + response.httpStatusCode === 400 || + response.httpStatusCode === 403 || + response.httpStatusCode === 404 || + response.httpStatusCode === 429 + ) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: APIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "APIErrorResponse" + ) as APIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException(response.httpStatusCode, body); + } + if (response.httpStatusCode === 422) { + const bodyText = ObjectSerializer.parse( + await response.body.text(), + contentType + ); + let body: JSONAPIErrorResponse; + try { + body = ObjectSerializer.deserialize( + bodyText, + "JSONAPIErrorResponse" + ) as JSONAPIErrorResponse; + } catch (error) { + logger.debug(`Got error deserializing error: ${error}`); + throw new ApiException( + response.httpStatusCode, + bodyText + ); + } + throw new ApiException( + response.httpStatusCode, + body + ); + } + + // Work around for missing responses in specification, e.g. for petstore.yaml + if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { + const body: SnowflakeIntegrationAccountResponse = + ObjectSerializer.deserialize( + ObjectSerializer.parse(await response.body.text(), contentType), + "SnowflakeIntegrationAccountResponse", + "" + ) as SnowflakeIntegrationAccountResponse; + return body; + } + + const body = (await response.body.text()) || ""; + throw new ApiException( + response.httpStatusCode, + 'Unknown API Status Code!\nBody: "' + body + '"' + ); + } +} + +export interface SnowflakeIntegrationApiCreateSnowflakeIntegrationAccountRequest { + /** + * @type SnowflakeIntegrationAccountCreateRequest + */ + body: SnowflakeIntegrationAccountCreateRequest; +} + +export interface SnowflakeIntegrationApiDeleteSnowflakeIntegrationAccountRequest { + /** + * Unique identifier of the integration account. + * @type string + */ + accountId: string; +} + +export interface SnowflakeIntegrationApiGetSnowflakeIntegrationAccountRequest { + /** + * Unique identifier of the integration account. + * @type string + */ + accountId: string; +} + +export interface SnowflakeIntegrationApiUpdateSnowflakeIntegrationAccountRequest { + /** + * Unique identifier of the integration account. + * @type string + */ + accountId: string; + /** + * @type SnowflakeIntegrationAccountUpdateRequest + */ + body: SnowflakeIntegrationAccountUpdateRequest; +} + +export class SnowflakeIntegrationApi { + private requestFactory: SnowflakeIntegrationApiRequestFactory; + private responseProcessor: SnowflakeIntegrationApiResponseProcessor; + private configuration: Configuration; + + public constructor( + configuration: Configuration, + requestFactory?: SnowflakeIntegrationApiRequestFactory, + responseProcessor?: SnowflakeIntegrationApiResponseProcessor + ) { + this.configuration = configuration; + this.requestFactory = + requestFactory || + new SnowflakeIntegrationApiRequestFactory(configuration); + this.responseProcessor = + responseProcessor || new SnowflakeIntegrationApiResponseProcessor(); + } + + /** + * Create a Snowflake integration account. + * @param param The request object + */ + public createSnowflakeIntegrationAccount( + param: SnowflakeIntegrationApiCreateSnowflakeIntegrationAccountRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.createSnowflakeIntegrationAccount( + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.createSnowflakeIntegrationAccount( + responseContext + ); + }); + }); + } + + /** + * Delete a Snowflake integration account. + * @param param The request object + */ + public deleteSnowflakeIntegrationAccount( + param: SnowflakeIntegrationApiDeleteSnowflakeIntegrationAccountRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.deleteSnowflakeIntegrationAccount( + param.accountId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.deleteSnowflakeIntegrationAccount( + responseContext + ); + }); + }); + } + + /** + * Get a Snowflake integration account. + * @param param The request object + */ + public getSnowflakeIntegrationAccount( + param: SnowflakeIntegrationApiGetSnowflakeIntegrationAccountRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.getSnowflakeIntegrationAccount( + param.accountId, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.getSnowflakeIntegrationAccount( + responseContext + ); + }); + }); + } + + /** + * List Snowflake integration accounts. + * @param param The request object + */ + public listSnowflakeIntegrationAccounts( + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.listSnowflakeIntegrationAccounts(options); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.listSnowflakeIntegrationAccounts( + responseContext + ); + }); + }); + } + + /** + * Update a Snowflake integration account. Only the fields provided are changed. + * @param param The request object + */ + public updateSnowflakeIntegrationAccount( + param: SnowflakeIntegrationApiUpdateSnowflakeIntegrationAccountRequest, + options?: Configuration + ): Promise { + const requestContextPromise = + this.requestFactory.updateSnowflakeIntegrationAccount( + param.accountId, + param.body, + options + ); + return requestContextPromise.then((requestContext) => { + return this.configuration.httpApi + .send(requestContext) + .then((responseContext) => { + return this.responseProcessor.updateSnowflakeIntegrationAccount( + responseContext + ); + }); + }); + } +} diff --git a/packages/datadog-api-client-v2/index.ts b/packages/datadog-api-client-v2/index.ts index 67d82c3bc91d..d208335cb5a9 100644 --- a/packages/datadog-api-client-v2/index.ts +++ b/packages/datadog-api-client-v2/index.ts @@ -1721,6 +1721,14 @@ export { SlackIntegrationApi, } from "./apis/SlackIntegrationApi"; +export { + SnowflakeIntegrationApiCreateSnowflakeIntegrationAccountRequest, + SnowflakeIntegrationApiDeleteSnowflakeIntegrationAccountRequest, + SnowflakeIntegrationApiGetSnowflakeIntegrationAccountRequest, + SnowflakeIntegrationApiUpdateSnowflakeIntegrationAccountRequest, + SnowflakeIntegrationApi, +} from "./apis/SnowflakeIntegrationApi"; + export { SoftwareCatalogApiDeleteCatalogEntityRequest, SoftwareCatalogApiDeleteCatalogKindRequest, @@ -8762,6 +8770,60 @@ export { SnapshotUpdateRequest } from "./models/SnapshotUpdateRequest"; export { SnapshotUpdateRequestData } from "./models/SnapshotUpdateRequestData"; export { SnapshotUpdateRequestDataAttributes } from "./models/SnapshotUpdateRequestDataAttributes"; export { SnapshotUpdateRequestDataType } from "./models/SnapshotUpdateRequestDataType"; +export { SnowflakeAccountUsageMetricsIntegrationDataflowRequest } from "./models/SnowflakeAccountUsageMetricsIntegrationDataflowRequest"; +export { SnowflakeAccountUsageMetricsIntegrationDataflowResponse } from "./models/SnowflakeAccountUsageMetricsIntegrationDataflowResponse"; +export { SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest } from "./models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest"; +export { SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse } from "./models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse"; +export { SnowflakeCloudCostMetricsIntegrationDataflowRequest } from "./models/SnowflakeCloudCostMetricsIntegrationDataflowRequest"; +export { SnowflakeCloudCostMetricsIntegrationDataflowResponse } from "./models/SnowflakeCloudCostMetricsIntegrationDataflowResponse"; +export { SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest } from "./models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest"; +export { SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse } from "./models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse"; +export { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest } from "./models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest"; +export { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse } from "./models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse"; +export { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest } from "./models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest"; +export { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse } from "./models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse"; +export { SnowflakeEventTableLogsIntegrationDataflowRequest } from "./models/SnowflakeEventTableLogsIntegrationDataflowRequest"; +export { SnowflakeEventTableLogsIntegrationDataflowResponse } from "./models/SnowflakeEventTableLogsIntegrationDataflowResponse"; +export { SnowflakeEventTableLogsIntegrationDataflowSettingsRequest } from "./models/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest"; +export { SnowflakeEventTableLogsIntegrationDataflowSettingsResponse } from "./models/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse"; +export { SnowflakeIntegrationAccountAuthenticationRequest } from "./models/SnowflakeIntegrationAccountAuthenticationRequest"; +export { SnowflakeIntegrationAccountAuthenticationResponse } from "./models/SnowflakeIntegrationAccountAuthenticationResponse"; +export { SnowflakeIntegrationAccountAuthenticationUpdate } from "./models/SnowflakeIntegrationAccountAuthenticationUpdate"; +export { SnowflakeIntegrationAccountCreateAttributes } from "./models/SnowflakeIntegrationAccountCreateAttributes"; +export { SnowflakeIntegrationAccountCreateData } from "./models/SnowflakeIntegrationAccountCreateData"; +export { SnowflakeIntegrationAccountCreateRequest } from "./models/SnowflakeIntegrationAccountCreateRequest"; +export { SnowflakeIntegrationAccountPrivateKeyAuthRequest } from "./models/SnowflakeIntegrationAccountPrivateKeyAuthRequest"; +export { SnowflakeIntegrationAccountPrivateKeyAuthResponse } from "./models/SnowflakeIntegrationAccountPrivateKeyAuthResponse"; +export { SnowflakeIntegrationAccountPrivateKeyAuthType } from "./models/SnowflakeIntegrationAccountPrivateKeyAuthType"; +export { SnowflakeIntegrationAccountPrivateKeyAuthUpdate } from "./models/SnowflakeIntegrationAccountPrivateKeyAuthUpdate"; +export { SnowflakeIntegrationAccountResponse } from "./models/SnowflakeIntegrationAccountResponse"; +export { SnowflakeIntegrationAccountResponseAttributes } from "./models/SnowflakeIntegrationAccountResponseAttributes"; +export { SnowflakeIntegrationAccountResponseData } from "./models/SnowflakeIntegrationAccountResponseData"; +export { SnowflakeIntegrationAccountSettingsRequest } from "./models/SnowflakeIntegrationAccountSettingsRequest"; +export { SnowflakeIntegrationAccountSettingsResponse } from "./models/SnowflakeIntegrationAccountSettingsResponse"; +export { SnowflakeIntegrationAccountSettingsUpdate } from "./models/SnowflakeIntegrationAccountSettingsUpdate"; +export { SnowflakeIntegrationAccountsResponse } from "./models/SnowflakeIntegrationAccountsResponse"; +export { SnowflakeIntegrationAccountUpdateAttributes } from "./models/SnowflakeIntegrationAccountUpdateAttributes"; +export { SnowflakeIntegrationAccountUpdateData } from "./models/SnowflakeIntegrationAccountUpdateData"; +export { SnowflakeIntegrationAccountUpdateRequest } from "./models/SnowflakeIntegrationAccountUpdateRequest"; +export { SnowflakeIntegrationDataflowsRequest } from "./models/SnowflakeIntegrationDataflowsRequest"; +export { SnowflakeIntegrationDataflowsResponse } from "./models/SnowflakeIntegrationDataflowsResponse"; +export { SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest } from "./models/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest"; +export { SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse } from "./models/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse"; +export { SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest } from "./models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest"; +export { SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse } from "./models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse"; +export { SnowflakeQueryHistoryLogsIntegrationDataflowRequest } from "./models/SnowflakeQueryHistoryLogsIntegrationDataflowRequest"; +export { SnowflakeQueryHistoryLogsIntegrationDataflowResponse } from "./models/SnowflakeQueryHistoryLogsIntegrationDataflowResponse"; +export { SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest } from "./models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest"; +export { SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse } from "./models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse"; +export { SnowflakeSecurityLogsIntegrationDataflowRequest } from "./models/SnowflakeSecurityLogsIntegrationDataflowRequest"; +export { SnowflakeSecurityLogsIntegrationDataflowResponse } from "./models/SnowflakeSecurityLogsIntegrationDataflowResponse"; +export { SnowflakeSecurityLogsIntegrationDataflowSettingsRequest } from "./models/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest"; +export { SnowflakeSecurityLogsIntegrationDataflowSettingsResponse } from "./models/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse"; +export { SnowflakeTaskHistoryLogsIntegrationDataflowRequest } from "./models/SnowflakeTaskHistoryLogsIntegrationDataflowRequest"; +export { SnowflakeTaskHistoryLogsIntegrationDataflowResponse } from "./models/SnowflakeTaskHistoryLogsIntegrationDataflowResponse"; +export { SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest } from "./models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest"; +export { SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse } from "./models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse"; export { SoftwareCatalogTriggerWrapper } from "./models/SoftwareCatalogTriggerWrapper"; export { SortDirection } from "./models/SortDirection"; export { SourcemapDataType } from "./models/SourcemapDataType"; diff --git a/packages/datadog-api-client-v2/models/ObjectSerializer.ts b/packages/datadog-api-client-v2/models/ObjectSerializer.ts index 0351408ab788..d1ea28c8af37 100644 --- a/packages/datadog-api-client-v2/models/ObjectSerializer.ts +++ b/packages/datadog-api-client-v2/models/ObjectSerializer.ts @@ -5188,6 +5188,56 @@ import { SnapshotDataAttributes } from "./SnapshotDataAttributes"; import { SnapshotUpdateRequest } from "./SnapshotUpdateRequest"; import { SnapshotUpdateRequestData } from "./SnapshotUpdateRequestData"; import { SnapshotUpdateRequestDataAttributes } from "./SnapshotUpdateRequestDataAttributes"; +import { SnowflakeAccountUsageMetricsIntegrationDataflowRequest } from "./SnowflakeAccountUsageMetricsIntegrationDataflowRequest"; +import { SnowflakeAccountUsageMetricsIntegrationDataflowResponse } from "./SnowflakeAccountUsageMetricsIntegrationDataflowResponse"; +import { SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest } from "./SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest"; +import { SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse } from "./SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse"; +import { SnowflakeCloudCostMetricsIntegrationDataflowRequest } from "./SnowflakeCloudCostMetricsIntegrationDataflowRequest"; +import { SnowflakeCloudCostMetricsIntegrationDataflowResponse } from "./SnowflakeCloudCostMetricsIntegrationDataflowResponse"; +import { SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest } from "./SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest"; +import { SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse } from "./SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse"; +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest"; +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse"; +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest"; +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse"; +import { SnowflakeEventTableLogsIntegrationDataflowRequest } from "./SnowflakeEventTableLogsIntegrationDataflowRequest"; +import { SnowflakeEventTableLogsIntegrationDataflowResponse } from "./SnowflakeEventTableLogsIntegrationDataflowResponse"; +import { SnowflakeEventTableLogsIntegrationDataflowSettingsRequest } from "./SnowflakeEventTableLogsIntegrationDataflowSettingsRequest"; +import { SnowflakeEventTableLogsIntegrationDataflowSettingsResponse } from "./SnowflakeEventTableLogsIntegrationDataflowSettingsResponse"; +import { SnowflakeIntegrationAccountCreateAttributes } from "./SnowflakeIntegrationAccountCreateAttributes"; +import { SnowflakeIntegrationAccountCreateData } from "./SnowflakeIntegrationAccountCreateData"; +import { SnowflakeIntegrationAccountCreateRequest } from "./SnowflakeIntegrationAccountCreateRequest"; +import { SnowflakeIntegrationAccountPrivateKeyAuthRequest } from "./SnowflakeIntegrationAccountPrivateKeyAuthRequest"; +import { SnowflakeIntegrationAccountPrivateKeyAuthResponse } from "./SnowflakeIntegrationAccountPrivateKeyAuthResponse"; +import { SnowflakeIntegrationAccountPrivateKeyAuthUpdate } from "./SnowflakeIntegrationAccountPrivateKeyAuthUpdate"; +import { SnowflakeIntegrationAccountResponse } from "./SnowflakeIntegrationAccountResponse"; +import { SnowflakeIntegrationAccountResponseAttributes } from "./SnowflakeIntegrationAccountResponseAttributes"; +import { SnowflakeIntegrationAccountResponseData } from "./SnowflakeIntegrationAccountResponseData"; +import { SnowflakeIntegrationAccountSettingsRequest } from "./SnowflakeIntegrationAccountSettingsRequest"; +import { SnowflakeIntegrationAccountSettingsResponse } from "./SnowflakeIntegrationAccountSettingsResponse"; +import { SnowflakeIntegrationAccountSettingsUpdate } from "./SnowflakeIntegrationAccountSettingsUpdate"; +import { SnowflakeIntegrationAccountUpdateAttributes } from "./SnowflakeIntegrationAccountUpdateAttributes"; +import { SnowflakeIntegrationAccountUpdateData } from "./SnowflakeIntegrationAccountUpdateData"; +import { SnowflakeIntegrationAccountUpdateRequest } from "./SnowflakeIntegrationAccountUpdateRequest"; +import { SnowflakeIntegrationAccountsResponse } from "./SnowflakeIntegrationAccountsResponse"; +import { SnowflakeIntegrationDataflowsRequest } from "./SnowflakeIntegrationDataflowsRequest"; +import { SnowflakeIntegrationDataflowsResponse } from "./SnowflakeIntegrationDataflowsResponse"; +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest"; +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse"; +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest"; +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse"; +import { SnowflakeQueryHistoryLogsIntegrationDataflowRequest } from "./SnowflakeQueryHistoryLogsIntegrationDataflowRequest"; +import { SnowflakeQueryHistoryLogsIntegrationDataflowResponse } from "./SnowflakeQueryHistoryLogsIntegrationDataflowResponse"; +import { SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest } from "./SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest"; +import { SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse } from "./SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse"; +import { SnowflakeSecurityLogsIntegrationDataflowRequest } from "./SnowflakeSecurityLogsIntegrationDataflowRequest"; +import { SnowflakeSecurityLogsIntegrationDataflowResponse } from "./SnowflakeSecurityLogsIntegrationDataflowResponse"; +import { SnowflakeSecurityLogsIntegrationDataflowSettingsRequest } from "./SnowflakeSecurityLogsIntegrationDataflowSettingsRequest"; +import { SnowflakeSecurityLogsIntegrationDataflowSettingsResponse } from "./SnowflakeSecurityLogsIntegrationDataflowSettingsResponse"; +import { SnowflakeTaskHistoryLogsIntegrationDataflowRequest } from "./SnowflakeTaskHistoryLogsIntegrationDataflowRequest"; +import { SnowflakeTaskHistoryLogsIntegrationDataflowResponse } from "./SnowflakeTaskHistoryLogsIntegrationDataflowResponse"; +import { SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest } from "./SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest"; +import { SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse } from "./SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse"; import { SoftwareCatalogTriggerWrapper } from "./SoftwareCatalogTriggerWrapper"; import { SourcemapFileAttributes } from "./SourcemapFileAttributes"; import { SourcemapFileData } from "./SourcemapFileData"; @@ -8963,6 +9013,7 @@ const enumsMap: { [key: string]: any[] } = { ], SlosQueryType: ["metric", "time_slice", "monitor"], SnapshotUpdateRequestDataType: ["snapshots"], + SnowflakeIntegrationAccountPrivateKeyAuthType: ["snowflake_private_key"], SortDirection: ["desc", "asc"], SourcemapDataType: ["sourcemaps"], SourcemapFileDataType: ["sourcemap_files"], @@ -15802,6 +15853,100 @@ const typeMap: { [index: string]: any } = { SnapshotUpdateRequest: SnapshotUpdateRequest, SnapshotUpdateRequestData: SnapshotUpdateRequestData, SnapshotUpdateRequestDataAttributes: SnapshotUpdateRequestDataAttributes, + SnowflakeAccountUsageMetricsIntegrationDataflowRequest: + SnowflakeAccountUsageMetricsIntegrationDataflowRequest, + SnowflakeAccountUsageMetricsIntegrationDataflowResponse: + SnowflakeAccountUsageMetricsIntegrationDataflowResponse, + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest: + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest, + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse: + SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse, + SnowflakeCloudCostMetricsIntegrationDataflowRequest: + SnowflakeCloudCostMetricsIntegrationDataflowRequest, + SnowflakeCloudCostMetricsIntegrationDataflowResponse: + SnowflakeCloudCostMetricsIntegrationDataflowResponse, + SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest: + SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest, + SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse: + SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse, + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest: + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest, + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse: + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse, + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest: + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest, + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse: + SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse, + SnowflakeEventTableLogsIntegrationDataflowRequest: + SnowflakeEventTableLogsIntegrationDataflowRequest, + SnowflakeEventTableLogsIntegrationDataflowResponse: + SnowflakeEventTableLogsIntegrationDataflowResponse, + SnowflakeEventTableLogsIntegrationDataflowSettingsRequest: + SnowflakeEventTableLogsIntegrationDataflowSettingsRequest, + SnowflakeEventTableLogsIntegrationDataflowSettingsResponse: + SnowflakeEventTableLogsIntegrationDataflowSettingsResponse, + SnowflakeIntegrationAccountCreateAttributes: + SnowflakeIntegrationAccountCreateAttributes, + SnowflakeIntegrationAccountCreateData: SnowflakeIntegrationAccountCreateData, + SnowflakeIntegrationAccountCreateRequest: + SnowflakeIntegrationAccountCreateRequest, + SnowflakeIntegrationAccountPrivateKeyAuthRequest: + SnowflakeIntegrationAccountPrivateKeyAuthRequest, + SnowflakeIntegrationAccountPrivateKeyAuthResponse: + SnowflakeIntegrationAccountPrivateKeyAuthResponse, + SnowflakeIntegrationAccountPrivateKeyAuthUpdate: + SnowflakeIntegrationAccountPrivateKeyAuthUpdate, + SnowflakeIntegrationAccountResponse: SnowflakeIntegrationAccountResponse, + SnowflakeIntegrationAccountResponseAttributes: + SnowflakeIntegrationAccountResponseAttributes, + SnowflakeIntegrationAccountResponseData: + SnowflakeIntegrationAccountResponseData, + SnowflakeIntegrationAccountSettingsRequest: + SnowflakeIntegrationAccountSettingsRequest, + SnowflakeIntegrationAccountSettingsResponse: + SnowflakeIntegrationAccountSettingsResponse, + SnowflakeIntegrationAccountSettingsUpdate: + SnowflakeIntegrationAccountSettingsUpdate, + SnowflakeIntegrationAccountUpdateAttributes: + SnowflakeIntegrationAccountUpdateAttributes, + SnowflakeIntegrationAccountUpdateData: SnowflakeIntegrationAccountUpdateData, + SnowflakeIntegrationAccountUpdateRequest: + SnowflakeIntegrationAccountUpdateRequest, + SnowflakeIntegrationAccountsResponse: SnowflakeIntegrationAccountsResponse, + SnowflakeIntegrationDataflowsRequest: SnowflakeIntegrationDataflowsRequest, + SnowflakeIntegrationDataflowsResponse: SnowflakeIntegrationDataflowsResponse, + SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest: + SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest, + SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse: + SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse, + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest: + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest, + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse: + SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse, + SnowflakeQueryHistoryLogsIntegrationDataflowRequest: + SnowflakeQueryHistoryLogsIntegrationDataflowRequest, + SnowflakeQueryHistoryLogsIntegrationDataflowResponse: + SnowflakeQueryHistoryLogsIntegrationDataflowResponse, + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest: + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest, + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse: + SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse, + SnowflakeSecurityLogsIntegrationDataflowRequest: + SnowflakeSecurityLogsIntegrationDataflowRequest, + SnowflakeSecurityLogsIntegrationDataflowResponse: + SnowflakeSecurityLogsIntegrationDataflowResponse, + SnowflakeSecurityLogsIntegrationDataflowSettingsRequest: + SnowflakeSecurityLogsIntegrationDataflowSettingsRequest, + SnowflakeSecurityLogsIntegrationDataflowSettingsResponse: + SnowflakeSecurityLogsIntegrationDataflowSettingsResponse, + SnowflakeTaskHistoryLogsIntegrationDataflowRequest: + SnowflakeTaskHistoryLogsIntegrationDataflowRequest, + SnowflakeTaskHistoryLogsIntegrationDataflowResponse: + SnowflakeTaskHistoryLogsIntegrationDataflowResponse, + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest: + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest, + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse: + SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse, SoftwareCatalogTriggerWrapper: SoftwareCatalogTriggerWrapper, SourcemapFileAttributes: SourcemapFileAttributes, SourcemapFileData: SourcemapFileData, @@ -17654,6 +17799,15 @@ const oneOfMap: { [index: string]: string[] } = { "SharedDashboardIncludedUser", ], ShiftIncluded: ["ScheduleUser"], + SnowflakeIntegrationAccountAuthenticationRequest: [ + "SnowflakeIntegrationAccountPrivateKeyAuthRequest", + ], + SnowflakeIntegrationAccountAuthenticationResponse: [ + "SnowflakeIntegrationAccountPrivateKeyAuthResponse", + ], + SnowflakeIntegrationAccountAuthenticationUpdate: [ + "SnowflakeIntegrationAccountPrivateKeyAuthUpdate", + ], SourcemapItem: [ "JSSourcemapData", "ReactNativeSourcemapData", diff --git a/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..9de069058a5f --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest } from "./SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + */ +export class SnowflakeAccountUsageMetricsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the account usage metrics dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeAccountUsageMetricsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..5b02467e56b9 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse } from "./SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + */ +export class SnowflakeAccountUsageMetricsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the account usage metrics dataflow. + */ + "settings"?: SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeAccountUsageMetricsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..ccc56c118979 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,41 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the account usage metrics dataflow. Only the fields provided are changed. + */ +export class SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest { + /** + * The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. + */ + "accountUsageMetricsAggregateLast24h"?: boolean; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + accountUsageMetricsAggregateLast24h: { + baseName: "account_usage_metrics_aggregate_last_24h", + type: "boolean", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeAccountUsageMetricsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..c23bca989e52 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,52 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the account usage metrics dataflow. + */ +export class SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse { + /** + * The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. + */ + "accountUsageMetricsAggregateLast24h"?: boolean; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + accountUsageMetricsAggregateLast24h: { + baseName: "account_usage_metrics_aggregate_last_24h", + type: "boolean", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeAccountUsageMetricsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..bf1a404e3a85 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest } from "./SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) must be enabled for your organization while this dataflow is enabled. Any request that enables this dataflow without Cloud Cost Management is rejected with a `422` response. The Snowflake role also needs the ORGANIZATION_BILLING_VIEWER database role to read the underlying cost views; without that role this dataflow collects no data. + */ +export class SnowflakeCloudCostMetricsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the Cloud Cost Management dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeCloudCostMetricsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..312eba1f45f7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse } from "./SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. Requires [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) to be set up for your organization, and the ORGANIZATION_BILLING_VIEWER database role on the Snowflake role; without both this dataflow collects no data. + */ +export class SnowflakeCloudCostMetricsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the Cloud Cost Management dataflow. + */ + "settings"?: SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeCloudCostMetricsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..544c488c77d7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,41 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the Cloud Cost Management dataflow. Only the fields provided are changed. + */ +export class SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest { + /** + * Snowflake query tags to ingest, so that cost data can be broken down by them in Cloud Cost Management. Provide the tag names as a comma-separated list without spaces, using only letters, digits, underscores, dots, and hyphens. Datadog does not collect query tags by default. + */ + "queryTags"?: string; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + queryTags: { + baseName: "query_tags", + type: "string", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeCloudCostMetricsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..7c4109a9f58a --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,52 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the Cloud Cost Management dataflow. + */ +export class SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse { + /** + * Snowflake query tags ingested as a comma-separated list of tag names, so that cost data can be broken down by them in Cloud Cost Management. + */ + "queryTags"?: string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + queryTags: { + baseName: "query_tags", + type: "string", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeCloudCostMetricsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..a5945cb515b2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + */ +export class SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the Data Observability dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..a84c53c9bf5d --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + */ +export class SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the Data Observability dataflow. + */ + "settings"?: SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..55df033ce091 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,49 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the Data Observability dataflow. Only the fields provided are changed. + */ +export class SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest { + /** + * Cron expression setting how often Datadog crawls your Snowflake table metadata. It takes the five standard fields, with the restriction that the month must be `*` and that the day of the month and the day of the week cannot both be constrained. Common values are hourly (`0 * * * *`) and daily (`0 0 * * *`). Defaults to hourly (`0 * * * *`). + */ + "doTableCrawlerCron"?: string; + /** + * Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. Defaults to `true`. + */ + "syncSnowflakeSystemDatabase"?: boolean; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + doTableCrawlerCron: { + baseName: "do_table_crawler_cron", + type: "string", + }, + syncSnowflakeSystemDatabase: { + baseName: "sync_snowflake_system_database", + type: "boolean", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..cbc7c7684514 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,60 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the Data Observability dataflow. + */ +export class SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse { + /** + * Cron expression setting how often Datadog crawls your Snowflake table metadata. + */ + "doTableCrawlerCron"?: string; + /** + * Whether metadata from the Snowflake `SNOWFLAKE` system database is included in Data Observability alongside your own databases. + */ + "syncSnowflakeSystemDatabase"?: boolean; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + doTableCrawlerCron: { + baseName: "do_table_crawler_cron", + type: "string", + }, + syncSnowflakeSystemDatabase: { + baseName: "sync_snowflake_system_database", + type: "boolean", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..35e3b248b449 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeEventTableLogsIntegrationDataflowSettingsRequest } from "./SnowflakeEventTableLogsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + */ +export class SnowflakeEventTableLogsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. Only the fields provided are changed. + */ + "settings"?: SnowflakeEventTableLogsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeEventTableLogsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeEventTableLogsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..3b7d96b0759b --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeEventTableLogsIntegrationDataflowSettingsResponse } from "./SnowflakeEventTableLogsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + */ +export class SnowflakeEventTableLogsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. + */ + "settings"?: SnowflakeEventTableLogsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeEventTableLogsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeEventTableLogsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..68e4595b52e0 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,74 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. Only the fields provided are changed. + */ +export class SnowflakeEventTableLogsIntegrationDataflowSettingsRequest { + /** + * Whether records with a `record_type` of `event` are collected. Defaults to `false`. + */ + "eventTableEventsEnabled"?: boolean; + /** + * Whether records with a `record_type` of `log` are collected. Defaults to `false`. + */ + "eventTableLogsEnabled"?: boolean; + /** + * How often event table records are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. + */ + "eventTableLogsIntervalMin"?: number; + /** + * Whether records with a `record_type` of `span_event` are collected. Defaults to `false`. + */ + "eventTableSpanEventsEnabled"?: boolean; + /** + * Whether records with a `record_type` of `span` are collected. Defaults to `false`. + */ + "eventTableSpansEnabled"?: boolean; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + eventTableEventsEnabled: { + baseName: "event_table_events_enabled", + type: "boolean", + }, + eventTableLogsEnabled: { + baseName: "event_table_logs_enabled", + type: "boolean", + }, + eventTableLogsIntervalMin: { + baseName: "event_table_logs_interval_min", + type: "number", + format: "int64", + }, + eventTableSpanEventsEnabled: { + baseName: "event_table_span_events_enabled", + type: "boolean", + }, + eventTableSpansEnabled: { + baseName: "event_table_spans_enabled", + type: "boolean", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeEventTableLogsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..abcd3b6b2ae4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeEventTableLogsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,85 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the event table dataflow. Each record type is collected independently so that you can control ingestion costs, and every record type is ingested into Datadog as logs tagged with its `record_type`. + */ +export class SnowflakeEventTableLogsIntegrationDataflowSettingsResponse { + /** + * Whether records with a `record_type` of `event` are collected. + */ + "eventTableEventsEnabled"?: boolean; + /** + * Whether records with a `record_type` of `log` are collected. + */ + "eventTableLogsEnabled"?: boolean; + /** + * How often event table records are collected, in minutes. + */ + "eventTableLogsIntervalMin"?: number; + /** + * Whether records with a `record_type` of `span_event` are collected. + */ + "eventTableSpanEventsEnabled"?: boolean; + /** + * Whether records with a `record_type` of `span` are collected. + */ + "eventTableSpansEnabled"?: boolean; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + eventTableEventsEnabled: { + baseName: "event_table_events_enabled", + type: "boolean", + }, + eventTableLogsEnabled: { + baseName: "event_table_logs_enabled", + type: "boolean", + }, + eventTableLogsIntervalMin: { + baseName: "event_table_logs_interval_min", + type: "number", + format: "int64", + }, + eventTableSpanEventsEnabled: { + baseName: "event_table_span_events_enabled", + type: "boolean", + }, + eventTableSpansEnabled: { + baseName: "event_table_spans_enabled", + type: "boolean", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeEventTableLogsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationRequest.ts new file mode 100644 index 000000000000..86b3f4ff8bb2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationRequest.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountPrivateKeyAuthRequest } from "./SnowflakeIntegrationAccountPrivateKeyAuthRequest"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Authentication for creating the Snowflake integration account. Exactly one method is set. + */ + +export type SnowflakeIntegrationAccountAuthenticationRequest = + | SnowflakeIntegrationAccountPrivateKeyAuthRequest + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationResponse.ts new file mode 100644 index 000000000000..18d255205162 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationResponse.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountPrivateKeyAuthResponse } from "./SnowflakeIntegrationAccountPrivateKeyAuthResponse"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Authentication configured on the Snowflake integration account. + */ + +export type SnowflakeIntegrationAccountAuthenticationResponse = + | SnowflakeIntegrationAccountPrivateKeyAuthResponse + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationUpdate.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationUpdate.ts new file mode 100644 index 000000000000..04d3578b3c4b --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountAuthenticationUpdate.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountPrivateKeyAuthUpdate } from "./SnowflakeIntegrationAccountPrivateKeyAuthUpdate"; + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * Authentication for updating the Snowflake integration account. Exactly one method is set. + */ + +export type SnowflakeIntegrationAccountAuthenticationUpdate = + | SnowflakeIntegrationAccountPrivateKeyAuthUpdate + | UnparsedObject; diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateAttributes.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateAttributes.ts new file mode 100644 index 000000000000..675d5437a4d1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateAttributes.ts @@ -0,0 +1,83 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountAuthenticationRequest } from "./SnowflakeIntegrationAccountAuthenticationRequest"; +import { SnowflakeIntegrationAccountSettingsRequest } from "./SnowflakeIntegrationAccountSettingsRequest"; +import { SnowflakeIntegrationDataflowsRequest } from "./SnowflakeIntegrationDataflowsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Writable attributes used to create a Snowflake integration account. + */ +export class SnowflakeIntegrationAccountCreateAttributes { + /** + * Authentication for creating the Snowflake integration account. Exactly one method is set. + */ + "authentication": SnowflakeIntegrationAccountAuthenticationRequest; + /** + * Data Datadog collects from Snowflake, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Every dataflow reads from Snowflake as the user in `settings.username`, so that user's role must be granted access to the underlying views; a dataflow enabled without those grants is stored but collects no data. + */ + "dataflows"?: SnowflakeIntegrationDataflowsRequest; + /** + * Human-readable name of the Snowflake integration account. Must be + * unique within your Datadog organization. + */ + "name": string; + /** + * Settings for creating the Snowflake integration account. + */ + "settings": SnowflakeIntegrationAccountSettingsRequest; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + authentication: { + baseName: "authentication", + type: "SnowflakeIntegrationAccountAuthenticationRequest", + required: true, + }, + dataflows: { + baseName: "dataflows", + type: "SnowflakeIntegrationDataflowsRequest", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + settings: { + baseName: "settings", + type: "SnowflakeIntegrationAccountSettingsRequest", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountCreateAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateData.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateData.ts new file mode 100644 index 000000000000..8a34174d8f7a --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateData.ts @@ -0,0 +1,64 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { IntegrationAccountType } from "./IntegrationAccountType"; +import { SnowflakeIntegrationAccountCreateAttributes } from "./SnowflakeIntegrationAccountCreateAttributes"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data envelope for creating a Snowflake integration account. + */ +export class SnowflakeIntegrationAccountCreateData { + /** + * Writable attributes used to create a Snowflake integration account. + */ + "attributes": SnowflakeIntegrationAccountCreateAttributes; + /** + * The type of the integration account resource. Always `integration-account`. + */ + "type": IntegrationAccountType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "SnowflakeIntegrationAccountCreateAttributes", + required: true, + }, + type: { + baseName: "type", + type: "IntegrationAccountType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountCreateData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateRequest.ts new file mode 100644 index 000000000000..464d490ffde4 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountCreateRequest.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountCreateData } from "./SnowflakeIntegrationAccountCreateData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request payload to create a Snowflake integration account. + */ +export class SnowflakeIntegrationAccountCreateRequest { + /** + * Data envelope for creating a Snowflake integration account. + */ + "data": SnowflakeIntegrationAccountCreateData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "SnowflakeIntegrationAccountCreateData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountCreateRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthRequest.ts new file mode 100644 index 000000000000..e851451fbb0f --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthRequest.ts @@ -0,0 +1,69 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountPrivateKeyAuthType } from "./SnowflakeIntegrationAccountPrivateKeyAuthType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * RSA key pair authentication, the only method Snowflake integration accounts support. Generate an RSA key pair and assign the public key to the Snowflake user named in `settings.username`. + */ +export class SnowflakeIntegrationAccountPrivateKeyAuthRequest { + /** + * The authentication method type. + */ + "authType": SnowflakeIntegrationAccountPrivateKeyAuthType; + /** + * The private key, in PEM format. + */ + "privateKey": string; + /** + * Name that distinguishes this private key from other keys in Datadog. + */ + "privateKeyName": string; + /** + * Passphrase that decrypts the private key. Provide it only when the key is encrypted. + */ + "privateKeyPassphrase"?: string; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + authType: { + baseName: "auth_type", + type: "SnowflakeIntegrationAccountPrivateKeyAuthType", + required: true, + }, + privateKey: { + baseName: "private_key", + type: "string", + required: true, + }, + privateKeyName: { + baseName: "private_key_name", + type: "string", + required: true, + }, + privateKeyPassphrase: { + baseName: "private_key_passphrase", + type: "string", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountPrivateKeyAuthRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthResponse.ts new file mode 100644 index 000000000000..990d5eaf8a80 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthResponse.ts @@ -0,0 +1,63 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountPrivateKeyAuthType } from "./SnowflakeIntegrationAccountPrivateKeyAuthType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * The RSA key pair authentication method configured on the account. + */ +export class SnowflakeIntegrationAccountPrivateKeyAuthResponse { + /** + * The authentication method type. + */ + "authType": SnowflakeIntegrationAccountPrivateKeyAuthType; + /** + * Name that distinguishes this private key from other keys in Datadog. + */ + "privateKeyName": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + authType: { + baseName: "auth_type", + type: "SnowflakeIntegrationAccountPrivateKeyAuthType", + required: true, + }, + privateKeyName: { + baseName: "private_key_name", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountPrivateKeyAuthResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthType.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthType.ts new file mode 100644 index 000000000000..fbb4ef301092 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthType.ts @@ -0,0 +1,16 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { UnparsedObject } from "../../datadog-api-client-common/util"; + +/** + * The authentication method type. + */ + +export type SnowflakeIntegrationAccountPrivateKeyAuthType = + | typeof SNOWFLAKE_PRIVATE_KEY + | UnparsedObject; +export const SNOWFLAKE_PRIVATE_KEY = "snowflake_private_key"; diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthUpdate.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthUpdate.ts new file mode 100644 index 000000000000..3acc59235e09 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountPrivateKeyAuthUpdate.ts @@ -0,0 +1,67 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountPrivateKeyAuthType } from "./SnowflakeIntegrationAccountPrivateKeyAuthType"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * RSA key pair authentication, the only method Snowflake integration accounts support. Only the fields provided are changed; omit `private_key` to keep the stored one. + */ +export class SnowflakeIntegrationAccountPrivateKeyAuthUpdate { + /** + * The authentication method type. + */ + "authType": SnowflakeIntegrationAccountPrivateKeyAuthType; + /** + * The private key, in PEM format. + */ + "privateKey"?: string; + /** + * Name that distinguishes this private key from other keys in Datadog. + */ + "privateKeyName"?: string; + /** + * Passphrase that decrypts the private key. Provide it only when the key is encrypted. Omit it to keep the stored passphrase, send `null` or an empty string to remove it, or send a value to replace it. + */ + "privateKeyPassphrase"?: string; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + authType: { + baseName: "auth_type", + type: "SnowflakeIntegrationAccountPrivateKeyAuthType", + required: true, + }, + privateKey: { + baseName: "private_key", + type: "string", + }, + privateKeyName: { + baseName: "private_key_name", + type: "string", + }, + privateKeyPassphrase: { + baseName: "private_key_passphrase", + type: "string", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountPrivateKeyAuthUpdate.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponse.ts new file mode 100644 index 000000000000..875afeb1c9b1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponse.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountResponseData } from "./SnowflakeIntegrationAccountResponseData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response payload for a single Snowflake integration account. + */ +export class SnowflakeIntegrationAccountResponse { + /** + * Data envelope of a Snowflake integration account, including server-assigned identity. + */ + "data": SnowflakeIntegrationAccountResponseData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "SnowflakeIntegrationAccountResponseData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponseAttributes.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponseAttributes.ts new file mode 100644 index 000000000000..bdefd3041fe1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponseAttributes.ts @@ -0,0 +1,81 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountAuthenticationResponse } from "./SnowflakeIntegrationAccountAuthenticationResponse"; +import { SnowflakeIntegrationAccountSettingsResponse } from "./SnowflakeIntegrationAccountSettingsResponse"; +import { SnowflakeIntegrationDataflowsResponse } from "./SnowflakeIntegrationDataflowsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Attributes of a Snowflake integration account returned in responses. + */ +export class SnowflakeIntegrationAccountResponseAttributes { + /** + * Authentication configured on the Snowflake integration account. + */ + "authentication"?: SnowflakeIntegrationAccountAuthenticationResponse; + /** + * Data Datadog collects from Snowflake, keyed by dataflow id. + */ + "dataflows"?: SnowflakeIntegrationDataflowsResponse; + /** + * Human-readable name of the Snowflake integration account. + */ + "name": string; + /** + * Settings configured on the Snowflake integration account. + */ + "settings": SnowflakeIntegrationAccountSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + authentication: { + baseName: "authentication", + type: "SnowflakeIntegrationAccountAuthenticationResponse", + }, + dataflows: { + baseName: "dataflows", + type: "SnowflakeIntegrationDataflowsResponse", + }, + name: { + baseName: "name", + type: "string", + required: true, + }, + settings: { + baseName: "settings", + type: "SnowflakeIntegrationAccountSettingsResponse", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountResponseAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponseData.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponseData.ts new file mode 100644 index 000000000000..4d04c3b31d6c --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountResponseData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { IntegrationAccountType } from "./IntegrationAccountType"; +import { SnowflakeIntegrationAccountResponseAttributes } from "./SnowflakeIntegrationAccountResponseAttributes"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data envelope of a Snowflake integration account, including server-assigned identity. + */ +export class SnowflakeIntegrationAccountResponseData { + /** + * Attributes of a Snowflake integration account returned in responses. + */ + "attributes": SnowflakeIntegrationAccountResponseAttributes; + /** + * Server-generated unique identifier of the Snowflake integration account. + */ + "id": string; + /** + * The type of the integration account resource. Always `integration-account`. + */ + "type": IntegrationAccountType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "SnowflakeIntegrationAccountResponseAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "IntegrationAccountType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountResponseData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsRequest.ts new file mode 100644 index 000000000000..173eb6370838 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsRequest.ts @@ -0,0 +1,51 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings for creating the Snowflake integration account. + */ +export class SnowflakeIntegrationAccountSettingsRequest { + /** + * Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. + */ + "snowflakeAccountIdentifier": string; + /** + * Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. + */ + "username": string; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + snowflakeAccountIdentifier: { + baseName: "snowflake_account_identifier", + type: "string", + required: true, + }, + username: { + baseName: "username", + type: "string", + required: true, + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsResponse.ts new file mode 100644 index 000000000000..d8067cc291ad --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsResponse.ts @@ -0,0 +1,62 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings configured on the Snowflake integration account. + */ +export class SnowflakeIntegrationAccountSettingsResponse { + /** + * Identifier of the Snowflake account being monitored. + */ + "snowflakeAccountIdentifier": string; + /** + * Snowflake user Datadog authenticates as. + */ + "username": string; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + snowflakeAccountIdentifier: { + baseName: "snowflake_account_identifier", + type: "string", + required: true, + }, + username: { + baseName: "username", + type: "string", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsUpdate.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsUpdate.ts new file mode 100644 index 000000000000..6ef9d5c0c582 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountSettingsUpdate.ts @@ -0,0 +1,49 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings for updating the Snowflake integration account. Only the fields provided are changed. + */ +export class SnowflakeIntegrationAccountSettingsUpdate { + /** + * Identifier of the Snowflake account to monitor, either as `organization-account` or as the legacy `account_name.region_id.cloud_provider` account locator. An account identifier can be configured once per Datadog organization; reusing one is rejected with a `422` response. Accounts reached through AWS PrivateLink are not supported. + */ + "snowflakeAccountIdentifier"?: string; + /** + * Snowflake user Datadog authenticates as. Create a dedicated user for Datadog and grant it a role with access to the data you want to collect. + */ + "username"?: string; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + snowflakeAccountIdentifier: { + baseName: "snowflake_account_identifier", + type: "string", + }, + username: { + baseName: "username", + type: "string", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountSettingsUpdate.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateAttributes.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateAttributes.ts new file mode 100644 index 000000000000..d5082b0f4197 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateAttributes.ts @@ -0,0 +1,80 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountAuthenticationUpdate } from "./SnowflakeIntegrationAccountAuthenticationUpdate"; +import { SnowflakeIntegrationAccountSettingsUpdate } from "./SnowflakeIntegrationAccountSettingsUpdate"; +import { SnowflakeIntegrationDataflowsRequest } from "./SnowflakeIntegrationDataflowsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Writable attributes used to update a Snowflake integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration, as do the settings of an included dataflow that provides only `enabled`. + */ +export class SnowflakeIntegrationAccountUpdateAttributes { + /** + * Authentication for updating the Snowflake integration account. Exactly one method is set. + */ + "authentication"?: SnowflakeIntegrationAccountAuthenticationUpdate; + /** + * Data Datadog collects from Snowflake, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Every dataflow reads from Snowflake as the user in `settings.username`, so that user's role must be granted access to the underlying views; a dataflow enabled without those grants is stored but collects no data. + */ + "dataflows"?: SnowflakeIntegrationDataflowsRequest; + /** + * Human-readable name of the Snowflake integration account. Must be + * unique within your Datadog organization. + */ + "name"?: string; + /** + * Settings for updating the Snowflake integration account. Only the fields provided are changed. + */ + "settings"?: SnowflakeIntegrationAccountSettingsUpdate; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + authentication: { + baseName: "authentication", + type: "SnowflakeIntegrationAccountAuthenticationUpdate", + }, + dataflows: { + baseName: "dataflows", + type: "SnowflakeIntegrationDataflowsRequest", + }, + name: { + baseName: "name", + type: "string", + }, + settings: { + baseName: "settings", + type: "SnowflakeIntegrationAccountSettingsUpdate", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountUpdateAttributes.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateData.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateData.ts new file mode 100644 index 000000000000..ee74094bd3b8 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateData.ts @@ -0,0 +1,73 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { IntegrationAccountType } from "./IntegrationAccountType"; +import { SnowflakeIntegrationAccountUpdateAttributes } from "./SnowflakeIntegrationAccountUpdateAttributes"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data envelope for updating a Snowflake integration account. + */ +export class SnowflakeIntegrationAccountUpdateData { + /** + * Writable attributes used to update a Snowflake integration account. Every field is optional; only the fields provided are changed. When `dataflows` is provided, only the dataflow ids included in the request are modified; dataflows omitted from the map keep their current configuration, as do the settings of an included dataflow that provides only `enabled`. + */ + "attributes": SnowflakeIntegrationAccountUpdateAttributes; + /** + * Unique identifier of the Snowflake integration account to update. + */ + "id": string; + /** + * The type of the integration account resource. Always `integration-account`. + */ + "type": IntegrationAccountType; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + attributes: { + baseName: "attributes", + type: "SnowflakeIntegrationAccountUpdateAttributes", + required: true, + }, + id: { + baseName: "id", + type: "string", + required: true, + }, + type: { + baseName: "type", + type: "IntegrationAccountType", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountUpdateData.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateRequest.ts new file mode 100644 index 000000000000..0ff346b6a8d7 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountUpdateRequest.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountUpdateData } from "./SnowflakeIntegrationAccountUpdateData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Request payload to update a Snowflake integration account. + */ +export class SnowflakeIntegrationAccountUpdateRequest { + /** + * Data envelope for updating a Snowflake integration account. + */ + "data": SnowflakeIntegrationAccountUpdateData; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "SnowflakeIntegrationAccountUpdateData", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountUpdateRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountsResponse.ts new file mode 100644 index 000000000000..dece41f12dee --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationAccountsResponse.ts @@ -0,0 +1,54 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeIntegrationAccountResponseData } from "./SnowflakeIntegrationAccountResponseData"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Response payload for a list of Snowflake integration accounts. + */ +export class SnowflakeIntegrationAccountsResponse { + /** + * List of Snowflake integration accounts. + */ + "data": Array; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + data: { + baseName: "data", + type: "Array", + required: true, + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationAccountsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationDataflowsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationDataflowsRequest.ts new file mode 100644 index 000000000000..1b5fedbc07e2 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationDataflowsRequest.ts @@ -0,0 +1,105 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeAccountUsageMetricsIntegrationDataflowRequest } from "./SnowflakeAccountUsageMetricsIntegrationDataflowRequest"; +import { SnowflakeCloudCostMetricsIntegrationDataflowRequest } from "./SnowflakeCloudCostMetricsIntegrationDataflowRequest"; +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest"; +import { SnowflakeEventTableLogsIntegrationDataflowRequest } from "./SnowflakeEventTableLogsIntegrationDataflowRequest"; +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest"; +import { SnowflakeQueryHistoryLogsIntegrationDataflowRequest } from "./SnowflakeQueryHistoryLogsIntegrationDataflowRequest"; +import { SnowflakeSecurityLogsIntegrationDataflowRequest } from "./SnowflakeSecurityLogsIntegrationDataflowRequest"; +import { SnowflakeTaskHistoryLogsIntegrationDataflowRequest } from "./SnowflakeTaskHistoryLogsIntegrationDataflowRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data Datadog collects from Snowflake, keyed by dataflow id. Each dataflow turns on a distinct kind of collection: set `enabled` to start or stop it, and use `settings` to configure what it collects. Defaults listed on each dataflow apply when the account is created; on update, omitted fields keep their current values. Every dataflow reads from Snowflake as the user in `settings.username`, so that user's role must be granted access to the underlying views; a dataflow enabled without those grants is stored but collects no data. + */ +export class SnowflakeIntegrationDataflowsRequest { + /** + * Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + */ + "snowflakeAccountUsageMetrics"?: SnowflakeAccountUsageMetricsIntegrationDataflowRequest; + /** + * Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) must be enabled for your organization while this dataflow is enabled. Any request that enables this dataflow without Cloud Cost Management is rejected with a `422` response. The Snowflake role also needs the ORGANIZATION_BILLING_VIEWER database role to read the underlying cost views; without that role this dataflow collects no data. + */ + "snowflakeCloudCostMetrics"?: SnowflakeCloudCostMetricsIntegrationDataflowRequest; + /** + * Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + */ + "snowflakeDataObservabilityQualityMonitoring"?: SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest; + /** + * Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + */ + "snowflakeEventTableLogs"?: SnowflakeEventTableLogsIntegrationDataflowRequest; + /** + * Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + */ + "snowflakeOrganizationUsageMetrics"?: SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest; + /** + * Per-query logs that let you identify long-running, poorly performing, and expensive queries. + */ + "snowflakeQueryHistoryLogs"?: SnowflakeQueryHistoryLogsIntegrationDataflowRequest; + /** + * Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). + */ + "snowflakeSecurityLogs"?: SnowflakeSecurityLogsIntegrationDataflowRequest; + /** + * Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. + */ + "snowflakeTaskHistoryLogs"?: SnowflakeTaskHistoryLogsIntegrationDataflowRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + snowflakeAccountUsageMetrics: { + baseName: "snowflake-account-usage-metrics", + type: "SnowflakeAccountUsageMetricsIntegrationDataflowRequest", + }, + snowflakeCloudCostMetrics: { + baseName: "snowflake-cloud-cost-metrics", + type: "SnowflakeCloudCostMetricsIntegrationDataflowRequest", + }, + snowflakeDataObservabilityQualityMonitoring: { + baseName: "snowflake-data-observability-quality-monitoring", + type: "SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowRequest", + }, + snowflakeEventTableLogs: { + baseName: "snowflake-event-table-logs", + type: "SnowflakeEventTableLogsIntegrationDataflowRequest", + }, + snowflakeOrganizationUsageMetrics: { + baseName: "snowflake-organization-usage-metrics", + type: "SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest", + }, + snowflakeQueryHistoryLogs: { + baseName: "snowflake-query-history-logs", + type: "SnowflakeQueryHistoryLogsIntegrationDataflowRequest", + }, + snowflakeSecurityLogs: { + baseName: "snowflake-security-logs", + type: "SnowflakeSecurityLogsIntegrationDataflowRequest", + }, + snowflakeTaskHistoryLogs: { + baseName: "snowflake-task-history-logs", + type: "SnowflakeTaskHistoryLogsIntegrationDataflowRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationDataflowsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeIntegrationDataflowsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeIntegrationDataflowsResponse.ts new file mode 100644 index 000000000000..3b119b237a64 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeIntegrationDataflowsResponse.ts @@ -0,0 +1,116 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeAccountUsageMetricsIntegrationDataflowResponse } from "./SnowflakeAccountUsageMetricsIntegrationDataflowResponse"; +import { SnowflakeCloudCostMetricsIntegrationDataflowResponse } from "./SnowflakeCloudCostMetricsIntegrationDataflowResponse"; +import { SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse } from "./SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse"; +import { SnowflakeEventTableLogsIntegrationDataflowResponse } from "./SnowflakeEventTableLogsIntegrationDataflowResponse"; +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse"; +import { SnowflakeQueryHistoryLogsIntegrationDataflowResponse } from "./SnowflakeQueryHistoryLogsIntegrationDataflowResponse"; +import { SnowflakeSecurityLogsIntegrationDataflowResponse } from "./SnowflakeSecurityLogsIntegrationDataflowResponse"; +import { SnowflakeTaskHistoryLogsIntegrationDataflowResponse } from "./SnowflakeTaskHistoryLogsIntegrationDataflowResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Data Datadog collects from Snowflake, keyed by dataflow id. + */ +export class SnowflakeIntegrationDataflowsResponse { + /** + * Account-level usage metrics read from the Snowflake `ACCOUNT_USAGE` schema, covering storage usage, credit consumption, and query activity. + */ + "snowflakeAccountUsageMetrics"?: SnowflakeAccountUsageMetricsIntegrationDataflowResponse; + /** + * Cost data aggregated from the Snowflake `ORGANIZATION_USAGE` schema. Requires [Cloud Cost Management](https://docs.datadoghq.com/cloud_cost_management/) to be set up for your organization, and the ORGANIZATION_BILLING_VIEWER database role on the Snowflake role; without both this dataflow collects no data. + */ + "snowflakeCloudCostMetrics"?: SnowflakeCloudCostMetricsIntegrationDataflowResponse; + /** + * Data Observability, which collects lineage and data quality information from your Snowflake databases so you can explore how data flows and detect and resolve quality issues. + */ + "snowflakeDataObservabilityQualityMonitoring"?: SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse; + /** + * Records from your Snowflake event tables, used to monitor application behavior and identify issues. `enabled` turns the dataflow on and off as a whole, and the per-record-type toggles in `settings` select which kinds of record it collects while it is on. The Snowflake role needs usage granted on the database, the schema, and the event table itself; without those grants this dataflow collects no data. + */ + "snowflakeEventTableLogs"?: SnowflakeEventTableLogsIntegrationDataflowResponse; + /** + * Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + */ + "snowflakeOrganizationUsageMetrics"?: SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse; + /** + * Per-query logs that let you identify long-running, poorly performing, and expensive queries. + */ + "snowflakeQueryHistoryLogs"?: SnowflakeQueryHistoryLogsIntegrationDataflowResponse; + /** + * Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). + */ + "snowflakeSecurityLogs"?: SnowflakeSecurityLogsIntegrationDataflowResponse; + /** + * Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. + */ + "snowflakeTaskHistoryLogs"?: SnowflakeTaskHistoryLogsIntegrationDataflowResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + snowflakeAccountUsageMetrics: { + baseName: "snowflake-account-usage-metrics", + type: "SnowflakeAccountUsageMetricsIntegrationDataflowResponse", + }, + snowflakeCloudCostMetrics: { + baseName: "snowflake-cloud-cost-metrics", + type: "SnowflakeCloudCostMetricsIntegrationDataflowResponse", + }, + snowflakeDataObservabilityQualityMonitoring: { + baseName: "snowflake-data-observability-quality-monitoring", + type: "SnowflakeDataObservabilityQualityMonitoringIntegrationDataflowResponse", + }, + snowflakeEventTableLogs: { + baseName: "snowflake-event-table-logs", + type: "SnowflakeEventTableLogsIntegrationDataflowResponse", + }, + snowflakeOrganizationUsageMetrics: { + baseName: "snowflake-organization-usage-metrics", + type: "SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse", + }, + snowflakeQueryHistoryLogs: { + baseName: "snowflake-query-history-logs", + type: "SnowflakeQueryHistoryLogsIntegrationDataflowResponse", + }, + snowflakeSecurityLogs: { + baseName: "snowflake-security-logs", + type: "SnowflakeSecurityLogsIntegrationDataflowResponse", + }, + snowflakeTaskHistoryLogs: { + baseName: "snowflake-task-history-logs", + type: "SnowflakeTaskHistoryLogsIntegrationDataflowResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeIntegrationDataflowsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..ff953e7ca50d --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + */ +export class SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the organization usage metrics dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeOrganizationUsageMetricsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..61e6b678dd83 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse } from "./SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Organization-level usage metrics read from the Snowflake `ORGANIZATION_USAGE` schema, covering the credit consumption of every account in the organization and the history of data transferred out of Snowflake. Reading that schema requires the ORGADMIN role; without it this dataflow collects no data. + */ +export class SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the organization usage metrics dataflow. + */ + "settings"?: SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeOrganizationUsageMetricsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..23d78852433a --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,41 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the organization usage metrics dataflow. Only the fields provided are changed. + */ +export class SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest { + /** + * The period each metric aggregates over. Set to `true` to aggregate the past 24 hours on a rolling basis, or `false` to aggregate the current day so far. Defaults to `false`. + */ + "organizationUsageMetricsAggregateLast24h"?: boolean; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + organizationUsageMetricsAggregateLast24h: { + baseName: "organization_usage_metrics_aggregate_last_24h", + type: "boolean", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..d4affa878725 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,52 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the organization usage metrics dataflow. + */ +export class SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse { + /** + * The period each metric aggregates over. When `true`, metrics aggregate the past 24 hours on a rolling basis; when `false`, they aggregate the current day so far. + */ + "organizationUsageMetricsAggregateLast24h"?: boolean; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + organizationUsageMetricsAggregateLast24h: { + baseName: "organization_usage_metrics_aggregate_last_24h", + type: "boolean", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeOrganizationUsageMetricsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..81961d64fa3f --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest } from "./SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Per-query logs that let you identify long-running, poorly performing, and expensive queries. + */ +export class SnowflakeQueryHistoryLogsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the query history logs dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeQueryHistoryLogsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..b85402075edf --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse } from "./SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Per-query logs that let you identify long-running, poorly performing, and expensive queries. + */ +export class SnowflakeQueryHistoryLogsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the query history logs dataflow. + */ + "settings"?: SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeQueryHistoryLogsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..d51af82fa17a --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the query history logs dataflow. Only the fields provided are changed. + */ +export class SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest { + /** + * Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. Defaults to `false`. + */ + "joinQueryHistoryWithAccessHistoryEnabled"?: boolean; + /** + * How often query history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `720`, or `1440`. Defaults to `5`. + */ + "queryHistoryLogsIntervalMin"?: number; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + joinQueryHistoryWithAccessHistoryEnabled: { + baseName: "join_query_history_with_access_history_enabled", + type: "boolean", + }, + queryHistoryLogsIntervalMin: { + baseName: "query_history_logs_interval_min", + type: "number", + format: "int64", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeQueryHistoryLogsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..5ff306fd8402 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the query history logs dataflow. + */ +export class SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse { + /** + * Whether query logs are joined with Snowflake access history, which adds the objects each query read and wrote so you can follow how data is used and where it came from. + */ + "joinQueryHistoryWithAccessHistoryEnabled"?: boolean; + /** + * How often query history logs are collected, in minutes. + */ + "queryHistoryLogsIntervalMin"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + joinQueryHistoryWithAccessHistoryEnabled: { + baseName: "join_query_history_with_access_history_enabled", + type: "boolean", + }, + queryHistoryLogsIntervalMin: { + baseName: "query_history_logs_interval_min", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeQueryHistoryLogsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..5d25ebd972e1 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeSecurityLogsIntegrationDataflowSettingsRequest } from "./SnowflakeSecurityLogsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). + */ +export class SnowflakeSecurityLogsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the security logs dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeSecurityLogsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeSecurityLogsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeSecurityLogsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..be11de5a3ce3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeSecurityLogsIntegrationDataflowSettingsResponse } from "./SnowflakeSecurityLogsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Security logs from the Snowflake `ACCOUNT_USAGE` schema, for analyzing the security of your Snowflake account and running threat detection with [Cloud SIEM](https://docs.datadoghq.com/security/cloud_siem/). + */ +export class SnowflakeSecurityLogsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the security logs dataflow. + */ + "settings"?: SnowflakeSecurityLogsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeSecurityLogsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeSecurityLogsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..b35141d4f966 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,42 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the security logs dataflow. Only the fields provided are changed. + */ +export class SnowflakeSecurityLogsIntegrationDataflowSettingsRequest { + /** + * How often security logs are collected, in minutes. One of `5`, `15`, `30`, `60`, `360`, `720`, or `1440`. Defaults to `5`. + */ + "securityLogsIntervalMin"?: number; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + securityLogsIntervalMin: { + baseName: "security_logs_interval_min", + type: "number", + format: "int64", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeSecurityLogsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..33d374088ff3 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeSecurityLogsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,53 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the security logs dataflow. + */ +export class SnowflakeSecurityLogsIntegrationDataflowSettingsResponse { + /** + * How often security logs are collected, in minutes. + */ + "securityLogsIntervalMin"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + securityLogsIntervalMin: { + baseName: "security_logs_interval_min", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeSecurityLogsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowRequest.ts new file mode 100644 index 000000000000..180682ec5a32 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowRequest.ts @@ -0,0 +1,50 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest } from "./SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. + */ +export class SnowflakeTaskHistoryLogsIntegrationDataflowRequest { + /** + * Whether Datadog collects this data. Defaults to `false`; set to `true` to start collection. + */ + "enabled"?: boolean; + /** + * Settings of the task history logs dataflow. Only the fields provided are changed. + */ + "settings"?: SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeTaskHistoryLogsIntegrationDataflowRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowResponse.ts new file mode 100644 index 000000000000..e6683ec17014 --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowResponse.ts @@ -0,0 +1,61 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ +import { SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse } from "./SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse"; + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Execution logs for your scheduled Snowflake tasks, covering start time, end time, status, and any error message. + */ +export class SnowflakeTaskHistoryLogsIntegrationDataflowResponse { + /** + * Whether Datadog collects this data. + */ + "enabled"?: boolean; + /** + * Settings of the task history logs dataflow. + */ + "settings"?: SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + enabled: { + baseName: "enabled", + type: "boolean", + }, + settings: { + baseName: "settings", + type: "SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeTaskHistoryLogsIntegrationDataflowResponse.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest.ts b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest.ts new file mode 100644 index 000000000000..e61fa587d05e --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest.ts @@ -0,0 +1,42 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the task history logs dataflow. Only the fields provided are changed. + */ +export class SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest { + /** + * How often task history logs are collected, in minutes. One of `5`, `15`, `30`, `60`, or `1440`. Defaults to `5`. + */ + "taskHistoryLogsIntervalMin"?: number; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + taskHistoryLogsIntervalMin: { + baseName: "task_history_logs_interval_min", + type: "number", + format: "int64", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeTaskHistoryLogsIntegrationDataflowSettingsRequest.attributeTypeMap; + } + + public constructor() {} +} diff --git a/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse.ts b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse.ts new file mode 100644 index 000000000000..d156030dd50a --- /dev/null +++ b/packages/datadog-api-client-v2/models/SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse.ts @@ -0,0 +1,53 @@ +/** + * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + * This product includes software developed at Datadog (https://www.datadoghq.com/). + * Copyright 2020-Present Datadog, Inc. + */ + +import { AttributeTypeMap } from "../../datadog-api-client-common/util"; + +/** + * Settings of the task history logs dataflow. + */ +export class SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse { + /** + * How often task history logs are collected, in minutes. + */ + "taskHistoryLogsIntervalMin"?: number; + + /** + * A container for additional, undeclared properties. + * This is a holder for any undeclared properties as specified with + * the 'additionalProperties' keyword in the OAS document. + */ + "additionalProperties"?: { [key: string]: any }; + + /** + * @ignore + */ + "_unparsed"?: boolean; + + /** + * @ignore + */ + static readonly attributeTypeMap: AttributeTypeMap = { + taskHistoryLogsIntervalMin: { + baseName: "task_history_logs_interval_min", + type: "number", + format: "int64", + }, + additionalProperties: { + baseName: "additionalProperties", + type: "{ [key: string]: any; }", + }, + }; + + /** + * @ignore + */ + static getAttributeTypeMap(): AttributeTypeMap { + return SnowflakeTaskHistoryLogsIntegrationDataflowSettingsResponse.attributeTypeMap; + } + + public constructor() {} +}