Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 17 additions & 21 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12687,15 +12687,15 @@ components:
- GCP
- AZURE
CloudInventoryCloudProviderRequestType:
description: JSON:API type for upsert sync configuration requests.
description: Always `cloud_provider`.
enum:
- cloud_provider
example: cloud_provider
type: string
x-enum-varnames:
- CLOUD_PROVIDER
CloudInventorySyncConfigAWSRequestAttributes:
description: AWS settings for the customer bucket that stores inventory reports.
description: AWS settings for the S3 bucket Storage Management reads inventory reports from.
properties:
aws_account_id:
description: AWS account ID that owns the inventory bucket.
Expand All @@ -12710,7 +12710,7 @@ components:
example: us-east-1
type: string
destination_prefix:
description: Optional object key prefix for inventory files. Use `/` or omit for the entire bucket.
description: Object key prefix where inventory reports are written. Omit or set to `/` when reports are written at the bucket root.
example: logs/
type: string
required:
Expand All @@ -12719,7 +12719,7 @@ components:
- destination_bucket_region
type: object
CloudInventorySyncConfigAttributes:
description: Attributes for a cloud inventory sync configuration. Values beyond `id` may be omitted immediately after upsert.
description: Attributes for a Storage Management configuration. Fields other than `id` may be empty in the response immediately after a create or update; subsequent reads return the full configuration.
properties:
aws_account_id:
description: AWS account ID for the inventory bucket.
Expand Down Expand Up @@ -12774,7 +12774,7 @@ components:
example: reader@my-gcp-project.iam.gserviceaccount.com
type: string
prefix:
description: Object key prefix or `/` when the entire bucket is synced.
description: Object key prefix where inventory reports are written. Returns `/` when reports are written at the bucket root.
example: logs/
readOnly: true
type: string
Expand Down Expand Up @@ -12855,28 +12855,28 @@ components:
- service_account_email
type: object
CloudInventorySyncConfigResourceType:
description: JSON:API type for sync configuration resources.
description: Always `sync_configs`.
enum:
- sync_configs
example: sync_configs
type: string
x-enum-varnames:
- SYNC_CONFIGS
CloudInventorySyncConfigResponse:
description: Response containing the upserted sync configuration. Additional read-only fields appear on list and get.
description: Storage Management configuration returned after a create or update. Additional read-only fields appear on list and get responses.
properties:
data:
$ref: "#/components/schemas/CloudInventorySyncConfigResponseData"
required:
- data
type: object
CloudInventorySyncConfigResponseData:
description: JSON:API data object for a sync configuration.
description: Storage Management configuration data.
properties:
attributes:
$ref: "#/components/schemas/CloudInventorySyncConfigAttributes"
id:
description: Unique identifier for the recurring sync configuration.
description: Unique identifier for this Storage Management configuration.
example: abc123
type: string
type:
Expand Down Expand Up @@ -81161,7 +81161,7 @@ components:
type: object
UpsertCloudInventorySyncConfigRequestAttributes:
description: |-
Provider-specific configuration. Include the object that matches `data.id` (`aws`, `gcp`, or `azure`).
Settings for the cloud provider specified in `data.id`. Include only the matching provider object (`aws`, `gcp`, or `azure`).
properties:
aws:
$ref: "#/components/schemas/CloudInventorySyncConfigAWSRequestAttributes"
Expand All @@ -81171,7 +81171,7 @@ components:
$ref: "#/components/schemas/CloudInventorySyncConfigGCPRequestAttributes"
type: object
UpsertCloudInventorySyncConfigRequestData:
description: JSON:API data envelope for an upsert sync configuration request.
description: Storage Management configuration data for the create or update request.
properties:
attributes:
$ref: "#/components/schemas/UpsertCloudInventorySyncConfigRequestAttributes"
Expand Down Expand Up @@ -93941,8 +93941,7 @@ paths:
/api/v2/cloudinventoryservice/syncconfigs:
put:
description: |-
Create or update a cloud inventory sync configuration. Specify the cloud provider in `data.id`
and provider-specific settings under `data.attributes`. This endpoint uses an upsert model.
Enable Storage Management for an S3 bucket, GCS bucket, or Azure container by registering the destination that holds its inventory reports. Set `data.id` to the cloud provider (`aws`, `gcp`, or `azure`) and provide the matching settings under data.attributes. Calling this endpoint with the same provider replaces the existing configuration.
operationId: UpsertSyncConfig
requestBody:
content:
Expand Down Expand Up @@ -93990,17 +93989,14 @@ paths:
$ref: "#/components/responses/ForbiddenResponse"
"429":
$ref: "#/components/responses/TooManyRequestsResponse"
summary: Create or update a sync configuration
summary: Enable Storage Management for a bucket
tags:
- Cloud Inventory Sync Configs
- Storage Management
x-codegen-request-body-name: body
"x-permission":
operator: OR
permissions:
- aws_configurations_manage
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/code-coverage/branch/summary:
post:
description: |-
Expand Down Expand Up @@ -145604,9 +145600,6 @@ tags:
- description: |-
The Cloud Cost Management API allows you to set up, edit, and delete Cloud Cost Management accounts for AWS, Azure, and Google Cloud. You can query your cost data by using the [Metrics endpoint](https://docs.datadoghq.com/api/latest/metrics/#query-timeseries-data-across-multiple-products) and the `cloud_cost` data source. For more information, see the [Cloud Cost Management documentation](https://docs.datadoghq.com/cloud_cost_management/).
name: Cloud Cost Management
- description: |-
Configure cloud inventory file synchronization from your cloud storage to Datadog.
name: Cloud Inventory Sync Configs
- description: |-
The Cloud Network Monitoring API allows you to fetch aggregated connections and DNS traffic with their attributes. See the [Cloud Network Monitoring page](https://docs.datadoghq.com/network_monitoring/cloud_network_monitoring/) and [DNS Monitoring page](https://docs.datadoghq.com/network_monitoring/dns/) for more information.
name: Cloud Network Monitoring
Expand Down Expand Up @@ -145988,6 +145981,9 @@ tags:
name: Static Analysis
- description: Manage your status pages and communicate service disruptions to stakeholders via Datadog's API. See the [Status Pages documentation](https://docs.datadoghq.com/incident_response/status_pages/) for more information.
name: Status Pages
- description: |-
Enable Storage Management for S3 buckets, GCS buckets, and Azure containers. Each configuration registers the destination that holds inventory reports for the storage being monitored.
name: Storage Management
- description: |-
Synthetic tests use simulated requests and actions so you can monitor the availability and performance of systems and applications. Datadog supports the following types of synthetic tests:
- [API tests](https://docs.datadoghq.com/synthetics/api_tests/)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
/**
* Create or update a sync configuration returns "OK" response
* Enable Storage Management for a bucket returns "OK" response
*/

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
configuration.unstableOperations["v2.upsertSyncConfig"] = true;
const apiInstance = new v2.CloudInventorySyncConfigsApi(configuration);
const apiInstance = new v2.StorageManagementApi(configuration);

const params: v2.CloudInventorySyncConfigsApiUpsertSyncConfigRequest = {
const params: v2.StorageManagementApiUpsertSyncConfigRequest = {
body: {
data: {
attributes: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
@endpoint(cloud-inventory-sync-configs) @endpoint(cloud-inventory-sync-configs-v2)
Feature: Cloud Inventory Sync Configs
Configure cloud inventory file synchronization from your cloud storage to
Datadog.
@endpoint(storage-management) @endpoint(storage-management-v2)
Feature: Storage Management
Enable Storage Management for S3 buckets, GCS buckets, and Azure
containers. Each configuration registers the destination that holds
inventory reports for the storage being monitored.

Background:
Given a valid "apiKeyAuth" key in the system
And a valid "appKeyAuth" key in the system
And an instance of "CloudInventorySyncConfigs" API
And operation "UpsertSyncConfig" enabled
And an instance of "StorageManagement" API
And new "UpsertSyncConfig" request
And body with value {"data": {"attributes": {"aws": {"aws_account_id": "123456789012", "destination_bucket_name": "my-inventory-bucket", "destination_bucket_region": "us-east-1", "destination_prefix": "logs/"}, "azure": {"client_id": "11111111-1111-1111-1111-111111111111", "container": "inventory-container", "resource_group": "my-resource-group", "storage_account": "mystorageaccount", "subscription_id": "33333333-3333-3333-3333-333333333333", "tenant_id": "22222222-2222-2222-2222-222222222222"}, "gcp": {"destination_bucket_name": "my-inventory-reports", "project_id": "my-gcp-project", "service_account_email": "reader@my-gcp-project.iam.gserviceaccount.com", "source_bucket_name": "my-monitored-bucket"}}, "id": "aws", "type": "cloud_provider"}}

@generated @skip @team:DataDog/storage-management
Scenario: Create or update a sync configuration returns "Bad Request" response
Scenario: Enable Storage Management for a bucket returns "Bad Request" response
When the request is sent
Then the response status is 400 Bad Request

@generated @skip @team:DataDog/storage-management
Scenario: Create or update a sync configuration returns "OK" response
Scenario: Enable Storage Management for a bucket returns "OK" response
When the request is sent
Then the response status is 200 OK
2 changes: 1 addition & 1 deletion features/v2/undo.json
Original file line number Diff line number Diff line change
Expand Up @@ -1236,7 +1236,7 @@
}
},
"UpsertSyncConfig": {
"tag": "Cloud Inventory Sync Configs",
"tag": "Storage Management",
"undo": {
"type": "idempotent"
}
Expand Down
1 change: 0 additions & 1 deletion packages/datadog-api-client-common/configuration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,6 @@ export function createConfiguration(
"v2.muteSecurityFindings": false,
"v2.runHistoricalJob": false,
"v2.searchSecurityMonitoringHistsignals": false,
"v2.upsertSyncConfig": false,
"v2.getCodeCoverageBranchSummary": false,
"v2.getCodeCoverageCommitSummary": false,
"v2.createDashboardSecureEmbed": false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,13 @@ import { CloudInventorySyncConfigResponse } from "../models/CloudInventorySyncCo
import { JSONAPIErrorResponse } from "../models/JSONAPIErrorResponse";
import { UpsertCloudInventorySyncConfigRequest } from "../models/UpsertCloudInventorySyncConfigRequest";

export class CloudInventorySyncConfigsApiRequestFactory extends BaseAPIRequestFactory {
export class StorageManagementApiRequestFactory extends BaseAPIRequestFactory {
public async upsertSyncConfig(
body: UpsertCloudInventorySyncConfigRequest,
_options?: Configuration
): Promise<RequestContext> {
const _config = _options || this.configuration;

logger.warn("Using unstable operation 'upsertSyncConfig'");
if (!_config.unstableOperations["v2.upsertSyncConfig"]) {
throw new Error("Unstable operation 'upsertSyncConfig' is disabled");
}

// verify required parameter 'body' is not null or undefined
if (body === null || body === undefined) {
throw new RequiredError("body", "upsertSyncConfig");
Expand All @@ -43,7 +38,7 @@ export class CloudInventorySyncConfigsApiRequestFactory extends BaseAPIRequestFa

// Make Request Context
const requestContext = _config
.getServer("v2.CloudInventorySyncConfigsApi.upsertSyncConfig")
.getServer("v2.StorageManagementApi.upsertSyncConfig")
.makeRequestContext(localVarPath, HttpMethod.PUT);
requestContext.setHeaderParam("Accept", "application/json");
requestContext.setHttpConfig(_config.httpConfig);
Expand Down Expand Up @@ -73,7 +68,7 @@ export class CloudInventorySyncConfigsApiRequestFactory extends BaseAPIRequestFa
}
}

export class CloudInventorySyncConfigsApiResponseProcessor {
export class StorageManagementApiResponseProcessor {
/**
* Unwraps the actual response sent by the server from the response context and deserializes the response content
* to the expected objects
Expand Down Expand Up @@ -158,38 +153,36 @@ export class CloudInventorySyncConfigsApiResponseProcessor {
}
}

export interface CloudInventorySyncConfigsApiUpsertSyncConfigRequest {
export interface StorageManagementApiUpsertSyncConfigRequest {
/**
* @type UpsertCloudInventorySyncConfigRequest
*/
body: UpsertCloudInventorySyncConfigRequest;
}

export class CloudInventorySyncConfigsApi {
private requestFactory: CloudInventorySyncConfigsApiRequestFactory;
private responseProcessor: CloudInventorySyncConfigsApiResponseProcessor;
export class StorageManagementApi {
private requestFactory: StorageManagementApiRequestFactory;
private responseProcessor: StorageManagementApiResponseProcessor;
private configuration: Configuration;

public constructor(
configuration: Configuration,
requestFactory?: CloudInventorySyncConfigsApiRequestFactory,
responseProcessor?: CloudInventorySyncConfigsApiResponseProcessor
requestFactory?: StorageManagementApiRequestFactory,
responseProcessor?: StorageManagementApiResponseProcessor
) {
this.configuration = configuration;
this.requestFactory =
requestFactory ||
new CloudInventorySyncConfigsApiRequestFactory(configuration);
requestFactory || new StorageManagementApiRequestFactory(configuration);
this.responseProcessor =
responseProcessor || new CloudInventorySyncConfigsApiResponseProcessor();
responseProcessor || new StorageManagementApiResponseProcessor();
}

/**
* Create or update a cloud inventory sync configuration. Specify the cloud provider in `data.id`
* and provider-specific settings under `data.attributes`. This endpoint uses an upsert model.
* Enable Storage Management for an S3 bucket, GCS bucket, or Azure container by registering the destination that holds its inventory reports. Set `data.id` to the cloud provider (`aws`, `gcp`, or `azure`) and provide the matching settings under data.attributes. Calling this endpoint with the same provider replaces the existing configuration.
* @param param The request object
*/
public upsertSyncConfig(
param: CloudInventorySyncConfigsApiUpsertSyncConfigRequest,
param: StorageManagementApiUpsertSyncConfigRequest,
options?: Configuration
): Promise<CloudInventorySyncConfigResponse> {
const requestContextPromise = this.requestFactory.upsertSyncConfig(
Expand Down
10 changes: 5 additions & 5 deletions packages/datadog-api-client-v2/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -264,11 +264,6 @@ export {
CloudCostManagementApi,
} from "./apis/CloudCostManagementApi";

export {
CloudInventorySyncConfigsApiUpsertSyncConfigRequest,
CloudInventorySyncConfigsApi,
} from "./apis/CloudInventorySyncConfigsApi";

export {
CloudNetworkMonitoringApiGetAggregatedConnectionsRequest,
CloudNetworkMonitoringApiGetAggregatedDnsRequest,
Expand Down Expand Up @@ -1239,6 +1234,11 @@ export {
StatusPagesApi,
} from "./apis/StatusPagesApi";

export {
StorageManagementApiUpsertSyncConfigRequest,
StorageManagementApi,
} from "./apis/StorageManagementApi";

export {
SyntheticsApiAbortTestFileMultipartUploadRequest,
SyntheticsApiAddTestToSyntheticsDowntimeRequest,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import { UnparsedObject } from "../../datadog-api-client-common/util";

/**
* JSON:API type for upsert sync configuration requests.
* Always `cloud_provider`.
*/

export type CloudInventoryCloudProviderRequestType =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import { AttributeTypeMap } from "../../datadog-api-client-common/util";

/**
* AWS settings for the customer bucket that stores inventory reports.
* AWS settings for the S3 bucket Storage Management reads inventory reports from.
*/
export class CloudInventorySyncConfigAWSRequestAttributes {
/**
Expand All @@ -23,7 +23,7 @@ export class CloudInventorySyncConfigAWSRequestAttributes {
*/
"destinationBucketRegion": string;
/**
* Optional object key prefix for inventory files. Use `/` or omit for the entire bucket.
* Object key prefix where inventory reports are written. Omit or set to `/` when reports are written at the bucket root.
*/
"destinationPrefix"?: string;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { CloudInventoryCloudProviderId } from "./CloudInventoryCloudProviderId";
import { AttributeTypeMap } from "../../datadog-api-client-common/util";

/**
* Attributes for a cloud inventory sync configuration. Values beyond `id` may be omitted immediately after upsert.
* Attributes for a Storage Management configuration. Fields other than `id` may be empty in the response immediately after a create or update; subsequent reads return the full configuration.
*/
export class CloudInventorySyncConfigAttributes {
/**
Expand Down Expand Up @@ -64,7 +64,7 @@ export class CloudInventorySyncConfigAttributes {
*/
"gcpServiceAccountEmail": string;
/**
* Object key prefix or `/` when the entire bucket is synced.
* Object key prefix where inventory reports are written. Returns `/` when reports are written at the bucket root.
*/
"prefix": string;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import { UnparsedObject } from "../../datadog-api-client-common/util";

/**
* JSON:API type for sync configuration resources.
* Always `sync_configs`.
*/

export type CloudInventorySyncConfigResourceType =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import { CloudInventorySyncConfigResponseData } from "./CloudInventorySyncConfig
import { AttributeTypeMap } from "../../datadog-api-client-common/util";

/**
* Response containing the upserted sync configuration. Additional read-only fields appear on list and get.
* Storage Management configuration returned after a create or update. Additional read-only fields appear on list and get responses.
*/
export class CloudInventorySyncConfigResponse {
/**
* JSON:API data object for a sync configuration.
* Storage Management configuration data.
*/
"data": CloudInventorySyncConfigResponseData;

Expand Down
Loading
Loading