diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 147e01bf6b..827803dc9f 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -51812,6 +51812,375 @@ components: $ref: '#/components/schemas/SecurityMonitoringCriticalAsset' type: array type: object + SecurityMonitoringDatasetAttributesResponse: + description: Attributes of a security monitoring dataset. + properties: + createdAt: + description: The creation timestamp of the dataset. + example: 2025-03-20 10:00:00+00:00 + format: date-time + type: string + createdByHandle: + description: The handle of the user who created the dataset. + example: bruce.lee + type: string + createdByName: + description: The name of the user who created the dataset. + example: Bruce Lee + type: string + definition: + $ref: '#/components/schemas/SecurityMonitoringDatasetDefinition' + description: + description: A description of the dataset. + example: A dataset for monitoring authentication events + type: string + modifiedAt: + description: The last modification timestamp of the dataset. + example: 2025-03-20 12:00:00+00:00 + format: date-time + type: string + name: + description: The name of the dataset. + example: authentication_dataset + type: string + orgId: + description: The organization ID. + example: 123456 + format: int64 + type: integer + updatedByHandle: + description: The handle of the user who last updated the dataset. + example: chuck.norris + type: string + updatedByName: + description: The name of the user who last updated the dataset. + example: Chuck Norris + type: string + version: + description: The version of the dataset. + example: 1 + format: int64 + type: integer + required: + - description + - name + - version + - orgId + - definition + - createdAt + type: object + SecurityMonitoringDatasetCreateAttributesRequest: + description: Attributes for creating a security monitoring dataset. + properties: + definition: + $ref: '#/components/schemas/SecurityMonitoringDatasetDefinition' + description: + description: A description of the dataset (maximum 255 characters). + example: A dataset for monitoring authentication events + type: string + required: + - description + - definition + type: object + SecurityMonitoringDatasetCreateDataRequest: + description: Data for creating a security monitoring dataset. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringDatasetCreateAttributesRequest' + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetType' + required: + - type + - attributes + type: object + SecurityMonitoringDatasetCreateDataResponse: + description: Data returned after creating a security monitoring dataset. + properties: + id: + description: The unique identifier of the created dataset. + example: 123e4567-e89b-12d3-a456-426614174000 + type: string + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetType' + required: + - id + - type + type: object + SecurityMonitoringDatasetCreateRequest: + description: Request to create a security monitoring dataset. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringDatasetCreateDataRequest' + required: + - data + type: object + SecurityMonitoringDatasetCreateResponse: + description: Response after creating a security monitoring dataset. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringDatasetCreateDataResponse' + required: + - data + type: object + SecurityMonitoringDatasetDataResponse: + description: A security monitoring dataset. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringDatasetAttributesResponse' + id: + description: The unique identifier of the dataset. + example: 123e4567-e89b-12d3-a456-426614174000 + type: string + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetType' + required: + - id + - type + - attributes + type: object + SecurityMonitoringDatasetDefinition: + description: The definition of a dataset, including its data source, name, indexes, + and columns. + properties: + columns: + description: The columns in the dataset. + items: + $ref: '#/components/schemas/SecurityMonitoringDatasetDefinitionColumn' + type: array + data_source: + description: The data source for the dataset. + example: logs + type: string + indexes: + description: The indexes to use for the dataset. + items: + example: k9 + type: string + type: array + name: + description: The name of the dataset. Must start with a letter, contain + only lowercase letters, numbers, and underscores, and be at most 255 characters + long. + example: my_dataset + type: string + required: + - data_source + - name + - columns + type: object + SecurityMonitoringDatasetDefinitionColumn: + description: A column in a dataset definition. + properties: + column: + description: The name of the column. + example: message + type: string + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetDefinitionColumnType' + required: + - column + - type + type: object + SecurityMonitoringDatasetDefinitionColumnType: + description: The type of the column in a dataset definition. + enum: + - string + - integer + - double + - boolean + example: string + type: string + x-enum-varnames: + - STRING + - INTEGER + - DOUBLE + - BOOLEAN + SecurityMonitoringDatasetDependenciesAttributesRequest: + description: Attributes for dataset dependencies request. + properties: + datasetIds: + description: Array of dataset IDs to check dependencies for (minimum 1, + maximum 100). + example: + - dataset-1 + items: + example: dataset-1 + type: string + maxItems: 100 + minItems: 1 + type: array + required: + - datasetIds + type: object + SecurityMonitoringDatasetDependenciesDataRequest: + description: Data for dataset dependencies request. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependenciesAttributesRequest' + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependenciesType' + required: + - type + - attributes + type: object + SecurityMonitoringDatasetDependenciesRequest: + description: Request to get dataset dependencies. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependenciesDataRequest' + required: + - data + type: object + SecurityMonitoringDatasetDependenciesResponse: + description: Response containing dataset dependencies. + properties: + data: + description: Array of dataset dependencies. + items: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependencyDataResponse' + type: array + required: + - data + type: object + SecurityMonitoringDatasetDependenciesType: + description: The type of the response. + enum: + - security_monitoring_dataset_dependencies + example: security_monitoring_dataset_dependencies + type: string + x-enum-varnames: + - SECURITY_MONITORING_DATASET_DEPENDENCIES + SecurityMonitoringDatasetDependencyAttributesResponse: + description: Attributes for dataset dependency. + properties: + count: + description: The count of resources that depend on the dataset. + example: 2 + format: int64 + type: integer + ids: + description: Array of IDs of resources that depend on the dataset. + example: + - rule-1 + items: + example: rule-1 + type: string + type: array + resource_type: + description: The type of resource that depends on the dataset. + example: security_detection_rule + type: string + required: + - resource_type + - ids + - count + type: object + SecurityMonitoringDatasetDependencyDataResponse: + description: Dependencies for a dataset. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependencyAttributesResponse' + id: + description: The dataset ID. + example: dataset-1 + type: string + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependenciesType' + required: + - id + - type + - attributes + type: object + SecurityMonitoringDatasetListMeta: + description: Metadata for dataset list responses. + properties: + totalCount: + description: The total count of datasets. + example: 42 + format: int64 + type: integer + required: + - totalCount + type: object + SecurityMonitoringDatasetResponse: + description: Response containing a security monitoring dataset. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringDatasetDataResponse' + required: + - data + type: object + SecurityMonitoringDatasetType: + description: Type for security monitoring dataset objects. + enum: + - security_monitoring_dataset + example: security_monitoring_dataset + type: string + x-enum-varnames: + - SECURITY_MONITORING_DATASET + SecurityMonitoringDatasetUpdateAttributesRequest: + description: Attributes for updating a security monitoring dataset. + properties: + definition: + $ref: '#/components/schemas/SecurityMonitoringDatasetDefinition' + description: + description: A description of the dataset (maximum 255 characters). + example: Updated dataset description + type: string + version: + description: The expected version of the dataset for concurrent modification + detection. + example: 1 + format: int64 + type: integer + required: + - description + - definition + type: object + SecurityMonitoringDatasetUpdateDataRequest: + description: Data for updating a security monitoring dataset. + properties: + attributes: + $ref: '#/components/schemas/SecurityMonitoringDatasetUpdateAttributesRequest' + type: + $ref: '#/components/schemas/SecurityMonitoringDatasetType' + required: + - type + - attributes + type: object + SecurityMonitoringDatasetUpdateRequest: + description: Request to update a security monitoring dataset. + properties: + data: + $ref: '#/components/schemas/SecurityMonitoringDatasetUpdateDataRequest' + required: + - data + type: object + SecurityMonitoringDatasetsHistoryResponse: + description: Response containing the history of a security monitoring dataset. + properties: + data: + description: Array of dataset versions ordered by version descending. + items: + $ref: '#/components/schemas/SecurityMonitoringDatasetDataResponse' + type: array + required: + - data + type: object + SecurityMonitoringDatasetsListResponse: + description: Response containing a list of security monitoring datasets. + properties: + data: + description: Array of datasets. + items: + $ref: '#/components/schemas/SecurityMonitoringDatasetDataResponse' + type: array + meta: + $ref: '#/components/schemas/SecurityMonitoringDatasetListMeta' + required: + - data + - meta + type: object SecurityMonitoringFilter: description: The rule's suppression filter. properties: @@ -91214,6 +91583,390 @@ paths: summary: Get a suppression's version history tags: - Security Monitoring + /api/v2/security_monitoring/datasets: + get: + description: List all datasets for the organization with optional pagination, + filtering, and sorting. + operationId: ListSecurityMonitoringDatasets + parameters: + - description: Size for a given page. The maximum allowed value is 100. + in: query + name: page[size] + required: false + schema: + default: 10 + example: 10 + format: int64 + type: integer + - description: Specific page number to return. + in: query + name: page[number] + required: false + schema: + default: 0 + example: 0 + format: int64 + type: integer + - description: Sort datasets by name, created at, or modified at. Prefix with + '-' for descending order. + in: query + name: sort + required: false + schema: + example: -createdAt + type: string + - description: Filter datasets by name or description. + in: query + name: filter[query] + required: false + schema: + example: my_dataset + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetsListResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: List all datasets + tags: + - Security Monitoring + 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 new dataset for security monitoring. + operationId: CreateSecurityMonitoringDataset + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetCreateRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetCreateResponse' + description: Created + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create a dataset + tags: + - Security Monitoring + 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/security_monitoring/datasets/dependencies: + post: + description: Batch retrieves which security rules depend on specified datasets. + operationId: BatchGetSecurityMonitoringDatasetDependencies + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependenciesRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetDependenciesResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get dataset dependencies + tags: + - Security Monitoring + 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/security_monitoring/datasets/{dataset_id}: + delete: + description: Delete a dataset by its ID. + operationId: DeleteSecurityMonitoringDataset + parameters: + - description: The ID of the dataset. + in: path + name: dataset_id + required: true + schema: + example: 123e4567-e89b-12d3-a456-426614174000 + format: uuid + type: string + responses: + '204': + description: No Content + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete a dataset + tags: + - Security Monitoring + 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 specific dataset by its ID. + operationId: GetSecurityMonitoringDataset + parameters: + - description: The ID of the dataset. + in: path + name: dataset_id + required: true + schema: + example: 123e4567-e89b-12d3-a456-426614174000 + format: uuid + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get a dataset + tags: + - Security Monitoring + 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 an existing dataset. + operationId: UpdateSecurityMonitoringDataset + parameters: + - description: The ID of the dataset. + in: path + name: dataset_id + required: true + schema: + example: 123e4567-e89b-12d3-a456-426614174000 + format: uuid + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetUpdateRequest' + required: true + responses: + '204': + description: No Content + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '409': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Conflict + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update a dataset + tags: + - Security Monitoring + 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/security_monitoring/datasets/{dataset_id}/history: + get: + description: Get all historical versions of a dataset. + operationId: GetSecurityMonitoringDatasetHistory + parameters: + - description: The ID of the dataset. + in: path + name: dataset_id + required: true + schema: + example: 123e4567-e89b-12d3-a456-426614174000 + format: uuid + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetsHistoryResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get dataset history + tags: + - Security Monitoring + 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/security_monitoring/datasets/{dataset_id}/version/{version}: + get: + description: Get a specific version of a dataset. + operationId: GetSecurityMonitoringDatasetByVersion + parameters: + - description: The ID of the dataset. + in: path + name: dataset_id + required: true + schema: + example: 123e4567-e89b-12d3-a456-426614174000 + format: uuid + type: string + - description: The version of the dataset. + in: path + name: version + required: true + schema: + example: 1 + type: integer + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SecurityMonitoringDatasetResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get a dataset by version + tags: + - Security Monitoring + 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/security_monitoring/rules: get: description: List rules. diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index 41d22bb2b4..49fbafdbec 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -22789,6 +22789,181 @@ datadog\_api\_client.v2.model.security\_monitoring\_critical\_assets\_response m :members: :show-inheritance: +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_attributes\_response module +---------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_attributes_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_create\_attributes\_request module +----------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_create_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_create\_data\_request module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_create_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_create\_data\_response module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_create_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_create\_request module +----------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_create_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_create\_response module +------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_create_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_data\_response module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_definition module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_definition + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_definition\_column module +-------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_definition_column + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_definition\_column\_type module +-------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_definition_column_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependencies\_attributes\_request module +----------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependencies_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependencies\_data\_request module +----------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependencies_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependencies\_request module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependencies_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependencies\_response module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependencies_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependencies\_type module +-------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependency\_attributes\_response module +---------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependency_attributes_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_dependency\_data\_response module +---------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_dependency_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_list\_meta module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_list_meta + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_response module +---------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_type module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_update\_attributes\_request module +----------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_update_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_update\_data\_request module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_update_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_dataset\_update\_request module +----------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_dataset_update_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_datasets\_history\_response module +-------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_datasets_history_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.security\_monitoring\_datasets\_list\_response module +----------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.security_monitoring_datasets_list_response + :members: + :show-inheritance: + datadog\_api\_client.v2.model.security\_monitoring\_filter module ----------------------------------------------------------------- diff --git a/examples/v2/security-monitoring/BatchGetSecurityMonitoringDatasetDependencies.py b/examples/v2/security-monitoring/BatchGetSecurityMonitoringDatasetDependencies.py new file mode 100644 index 0000000000..d1f7c7a72d --- /dev/null +++ b/examples/v2/security-monitoring/BatchGetSecurityMonitoringDatasetDependencies.py @@ -0,0 +1,37 @@ +""" +Get dataset dependencies returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_attributes_request import ( + SecurityMonitoringDatasetDependenciesAttributesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_data_request import ( + SecurityMonitoringDatasetDependenciesDataRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_request import ( + SecurityMonitoringDatasetDependenciesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type import ( + SecurityMonitoringDatasetDependenciesType, +) + +body = SecurityMonitoringDatasetDependenciesRequest( + data=SecurityMonitoringDatasetDependenciesDataRequest( + attributes=SecurityMonitoringDatasetDependenciesAttributesRequest( + dataset_ids=[ + "dataset-1", + ], + ), + type=SecurityMonitoringDatasetDependenciesType.SECURITY_MONITORING_DATASET_DEPENDENCIES, + ), +) + +configuration = Configuration() +configuration.unstable_operations["batch_get_security_monitoring_dataset_dependencies"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + response = api_instance.batch_get_security_monitoring_dataset_dependencies(body=body) + + print(response) diff --git a/examples/v2/security-monitoring/CreateSecurityMonitoringDataset.py b/examples/v2/security-monitoring/CreateSecurityMonitoringDataset.py new file mode 100644 index 0000000000..047b34bfe4 --- /dev/null +++ b/examples/v2/security-monitoring/CreateSecurityMonitoringDataset.py @@ -0,0 +1,53 @@ +""" +Create a dataset returns "Created" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from datadog_api_client.v2.model.security_monitoring_dataset_create_attributes_request import ( + SecurityMonitoringDatasetCreateAttributesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_data_request import ( + SecurityMonitoringDatasetCreateDataRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_request import ( + SecurityMonitoringDatasetCreateRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_definition import SecurityMonitoringDatasetDefinition +from datadog_api_client.v2.model.security_monitoring_dataset_definition_column import ( + SecurityMonitoringDatasetDefinitionColumn, +) +from datadog_api_client.v2.model.security_monitoring_dataset_definition_column_type import ( + SecurityMonitoringDatasetDefinitionColumnType, +) +from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + +body = SecurityMonitoringDatasetCreateRequest( + data=SecurityMonitoringDatasetCreateDataRequest( + attributes=SecurityMonitoringDatasetCreateAttributesRequest( + definition=SecurityMonitoringDatasetDefinition( + columns=[ + SecurityMonitoringDatasetDefinitionColumn( + column="message", + type=SecurityMonitoringDatasetDefinitionColumnType.STRING, + ), + ], + data_source="logs", + indexes=[ + "k9", + ], + name="my_dataset", + ), + description="A dataset for monitoring authentication events", + ), + type=SecurityMonitoringDatasetType.SECURITY_MONITORING_DATASET, + ), +) + +configuration = Configuration() +configuration.unstable_operations["create_security_monitoring_dataset"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + response = api_instance.create_security_monitoring_dataset(body=body) + + print(response) diff --git a/examples/v2/security-monitoring/DeleteSecurityMonitoringDataset.py b/examples/v2/security-monitoring/DeleteSecurityMonitoringDataset.py new file mode 100644 index 0000000000..5ee1a1e617 --- /dev/null +++ b/examples/v2/security-monitoring/DeleteSecurityMonitoringDataset.py @@ -0,0 +1,15 @@ +""" +Delete a dataset returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from uuid import UUID + +configuration = Configuration() +configuration.unstable_operations["delete_security_monitoring_dataset"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + api_instance.delete_security_monitoring_dataset( + dataset_id=UUID("123e4567-e89b-12d3-a456-426614174000"), + ) diff --git a/examples/v2/security-monitoring/GetSecurityMonitoringDataset.py b/examples/v2/security-monitoring/GetSecurityMonitoringDataset.py new file mode 100644 index 0000000000..8275ee25c8 --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityMonitoringDataset.py @@ -0,0 +1,17 @@ +""" +Get a dataset returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from uuid import UUID + +configuration = Configuration() +configuration.unstable_operations["get_security_monitoring_dataset"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + response = api_instance.get_security_monitoring_dataset( + dataset_id=UUID("123e4567-e89b-12d3-a456-426614174000"), + ) + + print(response) diff --git a/examples/v2/security-monitoring/GetSecurityMonitoringDatasetByVersion.py b/examples/v2/security-monitoring/GetSecurityMonitoringDatasetByVersion.py new file mode 100644 index 0000000000..66d862a85a --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityMonitoringDatasetByVersion.py @@ -0,0 +1,18 @@ +""" +Get a dataset by version returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from uuid import UUID + +configuration = Configuration() +configuration.unstable_operations["get_security_monitoring_dataset_by_version"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + response = api_instance.get_security_monitoring_dataset_by_version( + dataset_id=UUID("123e4567-e89b-12d3-a456-426614174000"), + version=1, + ) + + print(response) diff --git a/examples/v2/security-monitoring/GetSecurityMonitoringDatasetHistory.py b/examples/v2/security-monitoring/GetSecurityMonitoringDatasetHistory.py new file mode 100644 index 0000000000..fdbd50ec02 --- /dev/null +++ b/examples/v2/security-monitoring/GetSecurityMonitoringDatasetHistory.py @@ -0,0 +1,17 @@ +""" +Get dataset history returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from uuid import UUID + +configuration = Configuration() +configuration.unstable_operations["get_security_monitoring_dataset_history"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + response = api_instance.get_security_monitoring_dataset_history( + dataset_id=UUID("123e4567-e89b-12d3-a456-426614174000"), + ) + + print(response) diff --git a/examples/v2/security-monitoring/ListSecurityMonitoringDatasets.py b/examples/v2/security-monitoring/ListSecurityMonitoringDatasets.py new file mode 100644 index 0000000000..a5cacf679d --- /dev/null +++ b/examples/v2/security-monitoring/ListSecurityMonitoringDatasets.py @@ -0,0 +1,14 @@ +""" +List all datasets returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi + +configuration = Configuration() +configuration.unstable_operations["list_security_monitoring_datasets"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + response = api_instance.list_security_monitoring_datasets() + + print(response) diff --git a/examples/v2/security-monitoring/UpdateSecurityMonitoringDataset.py b/examples/v2/security-monitoring/UpdateSecurityMonitoringDataset.py new file mode 100644 index 0000000000..e8843d1a38 --- /dev/null +++ b/examples/v2/security-monitoring/UpdateSecurityMonitoringDataset.py @@ -0,0 +1,53 @@ +""" +Update a dataset returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.security_monitoring_api import SecurityMonitoringApi +from datadog_api_client.v2.model.security_monitoring_dataset_definition import SecurityMonitoringDatasetDefinition +from datadog_api_client.v2.model.security_monitoring_dataset_definition_column import ( + SecurityMonitoringDatasetDefinitionColumn, +) +from datadog_api_client.v2.model.security_monitoring_dataset_definition_column_type import ( + SecurityMonitoringDatasetDefinitionColumnType, +) +from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType +from datadog_api_client.v2.model.security_monitoring_dataset_update_attributes_request import ( + SecurityMonitoringDatasetUpdateAttributesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_update_data_request import ( + SecurityMonitoringDatasetUpdateDataRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_update_request import ( + SecurityMonitoringDatasetUpdateRequest, +) +from uuid import UUID + +body = SecurityMonitoringDatasetUpdateRequest( + data=SecurityMonitoringDatasetUpdateDataRequest( + attributes=SecurityMonitoringDatasetUpdateAttributesRequest( + definition=SecurityMonitoringDatasetDefinition( + columns=[ + SecurityMonitoringDatasetDefinitionColumn( + column="message", + type=SecurityMonitoringDatasetDefinitionColumnType.STRING, + ), + ], + data_source="logs", + indexes=[ + "k9", + ], + name="my_dataset", + ), + description="Updated dataset description", + version=1, + ), + type=SecurityMonitoringDatasetType.SECURITY_MONITORING_DATASET, + ), +) + +configuration = Configuration() +configuration.unstable_operations["update_security_monitoring_dataset"] = True +with ApiClient(configuration) as api_client: + api_instance = SecurityMonitoringApi(api_client) + api_instance.update_security_monitoring_dataset(dataset_id=UUID("123e4567-e89b-12d3-a456-426614174000"), body=body) diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index cf63f54a1c..b91b0d3297 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -266,18 +266,25 @@ def __init__( "v2.get_open_api": False, "v2.list_apis": False, "v2.update_open_api": False, + "v2.batch_get_security_monitoring_dataset_dependencies": False, "v2.cancel_threat_hunting_job": False, "v2.convert_job_result_to_signal": False, + "v2.create_security_monitoring_dataset": False, + "v2.delete_security_monitoring_dataset": False, "v2.delete_threat_hunting_job": False, "v2.get_finding": False, "v2.get_rule_version_history": False, "v2.get_secrets_rules": False, + "v2.get_security_monitoring_dataset": False, + "v2.get_security_monitoring_dataset_by_version": False, + "v2.get_security_monitoring_dataset_history": False, "v2.get_security_monitoring_histsignal": False, "v2.get_security_monitoring_histsignals_by_job_id": False, "v2.get_threat_hunting_job": False, "v2.list_findings": False, "v2.list_multiple_rulesets": False, "v2.list_scanned_assets_metadata": False, + "v2.list_security_monitoring_datasets": False, "v2.list_security_monitoring_histsignals": False, "v2.list_threat_hunting_jobs": False, "v2.list_vulnerabilities": False, @@ -285,6 +292,7 @@ def __init__( "v2.mute_findings": False, "v2.run_threat_hunting_job": False, "v2.search_security_monitoring_histsignals": False, + "v2.update_security_monitoring_dataset": False, "v2.create_dataset": False, "v2.delete_dataset": False, "v2.get_all_datasets": False, diff --git a/src/datadog_api_client/v2/api/security_monitoring_api.py b/src/datadog_api_client/v2/api/security_monitoring_api.py index 5602b278a5..086f1342be 100644 --- a/src/datadog_api_client/v2/api/security_monitoring_api.py +++ b/src/datadog_api_client/v2/api/security_monitoring_api.py @@ -15,6 +15,7 @@ file_type, UnsetType, unset, + UUID, ) from datadog_api_client.v2.model.create_custom_framework_response import CreateCustomFrameworkResponse from datadog_api_client.v2.model.create_custom_framework_request import CreateCustomFrameworkRequest @@ -102,6 +103,28 @@ SecurityMonitoringSuppressionUpdateRequest, ) from datadog_api_client.v2.model.get_suppression_version_history_response import GetSuppressionVersionHistoryResponse +from datadog_api_client.v2.model.security_monitoring_datasets_list_response import ( + SecurityMonitoringDatasetsListResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_response import ( + SecurityMonitoringDatasetCreateResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_request import ( + SecurityMonitoringDatasetCreateRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_response import ( + SecurityMonitoringDatasetDependenciesResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_request import ( + SecurityMonitoringDatasetDependenciesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_response import SecurityMonitoringDatasetResponse +from datadog_api_client.v2.model.security_monitoring_dataset_update_request import ( + SecurityMonitoringDatasetUpdateRequest, +) +from datadog_api_client.v2.model.security_monitoring_datasets_history_response import ( + SecurityMonitoringDatasetsHistoryResponse, +) from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse from datadog_api_client.v2.model.security_monitoring_rule_response import SecurityMonitoringRuleResponse from datadog_api_client.v2.model.security_monitoring_rule_bulk_export_payload import ( @@ -200,6 +223,26 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._batch_get_security_monitoring_dataset_dependencies_endpoint = _Endpoint( + settings={ + "response_type": (SecurityMonitoringDatasetDependenciesResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets/dependencies", + "operation_id": "batch_get_security_monitoring_dataset_dependencies", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (SecurityMonitoringDatasetDependenciesRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + self._bulk_export_security_monitoring_rules_endpoint = _Endpoint( settings={ "response_type": (file_type,), @@ -406,6 +449,26 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._create_security_monitoring_dataset_endpoint = _Endpoint( + settings={ + "response_type": (SecurityMonitoringDatasetCreateResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets", + "operation_id": "create_security_monitoring_dataset", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (SecurityMonitoringDatasetCreateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + self._create_security_monitoring_rule_endpoint = _Endpoint( settings={ "response_type": (SecurityMonitoringRuleResponse,), @@ -561,6 +624,29 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._delete_security_monitoring_dataset_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets/{dataset_id}", + "operation_id": "delete_security_monitoring_dataset", + "http_method": "DELETE", + "version": "v2", + }, + params_map={ + "dataset_id": { + "required": True, + "openapi_types": (UUID,), + "attribute": "dataset_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["*/*"], + }, + api_client=api_client, + ) + self._delete_security_monitoring_rule_endpoint = _Endpoint( settings={ "response_type": None, @@ -1023,6 +1109,81 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._get_security_monitoring_dataset_endpoint = _Endpoint( + settings={ + "response_type": (SecurityMonitoringDatasetResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets/{dataset_id}", + "operation_id": "get_security_monitoring_dataset", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "dataset_id": { + "required": True, + "openapi_types": (UUID,), + "attribute": "dataset_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._get_security_monitoring_dataset_by_version_endpoint = _Endpoint( + settings={ + "response_type": (SecurityMonitoringDatasetResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets/{dataset_id}/version/{version}", + "operation_id": "get_security_monitoring_dataset_by_version", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "dataset_id": { + "required": True, + "openapi_types": (UUID,), + "attribute": "dataset_id", + "location": "path", + }, + "version": { + "required": True, + "openapi_types": (int,), + "attribute": "version", + "location": "path", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._get_security_monitoring_dataset_history_endpoint = _Endpoint( + settings={ + "response_type": (SecurityMonitoringDatasetsHistoryResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets/{dataset_id}/history", + "operation_id": "get_security_monitoring_dataset_history", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "dataset_id": { + "required": True, + "openapi_types": (UUID,), + "attribute": "dataset_id", + "location": "path", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._get_security_monitoring_histsignal_endpoint = _Endpoint( settings={ "response_type": (SecurityMonitoringSignalResponse,), @@ -1657,6 +1818,43 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._list_security_monitoring_datasets_endpoint = _Endpoint( + settings={ + "response_type": (SecurityMonitoringDatasetsListResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets", + "operation_id": "list_security_monitoring_datasets", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "page_size": { + "openapi_types": (int,), + "attribute": "page[size]", + "location": "query", + }, + "page_number": { + "openapi_types": (int,), + "attribute": "page[number]", + "location": "query", + }, + "sort": { + "openapi_types": (str,), + "attribute": "sort", + "location": "query", + }, + "filter_query": { + "openapi_types": (str,), + "attribute": "filter[query]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + self._list_security_monitoring_histsignals_endpoint = _Endpoint( settings={ "response_type": (SecurityMonitoringSignalsListResponse,), @@ -2515,6 +2713,32 @@ def __init__(self, api_client=None): api_client=api_client, ) + self._update_security_monitoring_dataset_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/security_monitoring/datasets/{dataset_id}", + "operation_id": "update_security_monitoring_dataset", + "http_method": "PATCH", + "version": "v2", + }, + params_map={ + "dataset_id": { + "required": True, + "openapi_types": (UUID,), + "attribute": "dataset_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (SecurityMonitoringDatasetUpdateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["*/*"], "content_type": ["application/json"]}, + api_client=api_client, + ) + self._update_security_monitoring_rule_endpoint = _Endpoint( settings={ "response_type": (SecurityMonitoringRuleResponse,), @@ -2646,6 +2870,22 @@ def attach_jira_issue( return self._attach_jira_issue_endpoint.call_with_http_info(**kwargs) + def batch_get_security_monitoring_dataset_dependencies( + self, + body: SecurityMonitoringDatasetDependenciesRequest, + ) -> SecurityMonitoringDatasetDependenciesResponse: + """Get dataset dependencies. + + Batch retrieves which security rules depend on specified datasets. + + :type body: SecurityMonitoringDatasetDependenciesRequest + :rtype: SecurityMonitoringDatasetDependenciesResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._batch_get_security_monitoring_dataset_dependencies_endpoint.call_with_http_info(**kwargs) + def bulk_export_security_monitoring_rules( self, body: SecurityMonitoringRuleBulkExportPayload, @@ -2835,6 +3075,22 @@ def create_security_monitoring_critical_asset( return self._create_security_monitoring_critical_asset_endpoint.call_with_http_info(**kwargs) + def create_security_monitoring_dataset( + self, + body: SecurityMonitoringDatasetCreateRequest, + ) -> SecurityMonitoringDatasetCreateResponse: + """Create a dataset. + + Create a new dataset for security monitoring. + + :type body: SecurityMonitoringDatasetCreateRequest + :rtype: SecurityMonitoringDatasetCreateResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._create_security_monitoring_dataset_endpoint.call_with_http_info(**kwargs) + def create_security_monitoring_rule( self, body: Union[ @@ -2965,6 +3221,23 @@ def delete_security_monitoring_critical_asset( return self._delete_security_monitoring_critical_asset_endpoint.call_with_http_info(**kwargs) + def delete_security_monitoring_dataset( + self, + dataset_id: UUID, + ) -> None: + """Delete a dataset. + + Delete a dataset by its ID. + + :param dataset_id: The ID of the dataset. + :type dataset_id: UUID + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["dataset_id"] = dataset_id + + return self._delete_security_monitoring_dataset_endpoint.call_with_http_info(**kwargs) + def delete_security_monitoring_rule( self, rule_id: str, @@ -3341,6 +3614,62 @@ def get_security_monitoring_critical_asset( return self._get_security_monitoring_critical_asset_endpoint.call_with_http_info(**kwargs) + def get_security_monitoring_dataset( + self, + dataset_id: UUID, + ) -> SecurityMonitoringDatasetResponse: + """Get a dataset. + + Get a specific dataset by its ID. + + :param dataset_id: The ID of the dataset. + :type dataset_id: UUID + :rtype: SecurityMonitoringDatasetResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["dataset_id"] = dataset_id + + return self._get_security_monitoring_dataset_endpoint.call_with_http_info(**kwargs) + + def get_security_monitoring_dataset_by_version( + self, + dataset_id: UUID, + version: int, + ) -> SecurityMonitoringDatasetResponse: + """Get a dataset by version. + + Get a specific version of a dataset. + + :param dataset_id: The ID of the dataset. + :type dataset_id: UUID + :param version: The version of the dataset. + :type version: int + :rtype: SecurityMonitoringDatasetResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["dataset_id"] = dataset_id + + kwargs["version"] = version + + return self._get_security_monitoring_dataset_by_version_endpoint.call_with_http_info(**kwargs) + + def get_security_monitoring_dataset_history( + self, + dataset_id: UUID, + ) -> SecurityMonitoringDatasetsHistoryResponse: + """Get dataset history. + + Get all historical versions of a dataset. + + :param dataset_id: The ID of the dataset. + :type dataset_id: UUID + :rtype: SecurityMonitoringDatasetsHistoryResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["dataset_id"] = dataset_id + + return self._get_security_monitoring_dataset_history_endpoint.call_with_http_info(**kwargs) + def get_security_monitoring_histsignal( self, histsignal_id: str, @@ -4199,6 +4528,43 @@ def list_security_monitoring_critical_assets( return self._list_security_monitoring_critical_assets_endpoint.call_with_http_info(**kwargs) + def list_security_monitoring_datasets( + self, + *, + page_size: Union[int, UnsetType] = unset, + page_number: Union[int, UnsetType] = unset, + sort: Union[str, UnsetType] = unset, + filter_query: Union[str, UnsetType] = unset, + ) -> SecurityMonitoringDatasetsListResponse: + """List all datasets. + + List all datasets for the organization with optional pagination, filtering, and sorting. + + :param page_size: Size for a given page. The maximum allowed value is 100. + :type page_size: int, optional + :param page_number: Specific page number to return. + :type page_number: int, optional + :param sort: Sort datasets by name, created at, or modified at. Prefix with '-' for descending order. + :type sort: str, optional + :param filter_query: Filter datasets by name or description. + :type filter_query: str, optional + :rtype: SecurityMonitoringDatasetsListResponse + """ + kwargs: Dict[str, Any] = {} + if page_size is not unset: + kwargs["page_size"] = page_size + + if page_number is not unset: + kwargs["page_number"] = page_number + + if sort is not unset: + kwargs["sort"] = sort + + if filter_query is not unset: + kwargs["filter_query"] = filter_query + + return self._list_security_monitoring_datasets_endpoint.call_with_http_info(**kwargs) + def list_security_monitoring_histsignals( self, *, @@ -5281,6 +5647,27 @@ def update_security_monitoring_critical_asset( return self._update_security_monitoring_critical_asset_endpoint.call_with_http_info(**kwargs) + def update_security_monitoring_dataset( + self, + dataset_id: UUID, + body: SecurityMonitoringDatasetUpdateRequest, + ) -> None: + """Update a dataset. + + Update an existing dataset. + + :param dataset_id: The ID of the dataset. + :type dataset_id: UUID + :type body: SecurityMonitoringDatasetUpdateRequest + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["dataset_id"] = dataset_id + + kwargs["body"] = body + + return self._update_security_monitoring_dataset_endpoint.call_with_http_info(**kwargs) + def update_security_monitoring_rule( self, rule_id: str, diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_attributes_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_attributes_response.py new file mode 100644 index 0000000000..4b9a5b408e --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_attributes_response.py @@ -0,0 +1,124 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + datetime, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_definition import SecurityMonitoringDatasetDefinition + + +class SecurityMonitoringDatasetAttributesResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_definition import ( + SecurityMonitoringDatasetDefinition, + ) + + return { + "created_at": (datetime,), + "created_by_handle": (str,), + "created_by_name": (str,), + "definition": (SecurityMonitoringDatasetDefinition,), + "description": (str,), + "modified_at": (datetime,), + "name": (str,), + "org_id": (int,), + "updated_by_handle": (str,), + "updated_by_name": (str,), + "version": (int,), + } + + attribute_map = { + "created_at": "createdAt", + "created_by_handle": "createdByHandle", + "created_by_name": "createdByName", + "definition": "definition", + "description": "description", + "modified_at": "modifiedAt", + "name": "name", + "org_id": "orgId", + "updated_by_handle": "updatedByHandle", + "updated_by_name": "updatedByName", + "version": "version", + } + + def __init__( + self_, + created_at: datetime, + definition: SecurityMonitoringDatasetDefinition, + description: str, + name: str, + org_id: int, + version: int, + created_by_handle: Union[str, UnsetType] = unset, + created_by_name: Union[str, UnsetType] = unset, + modified_at: Union[datetime, UnsetType] = unset, + updated_by_handle: Union[str, UnsetType] = unset, + updated_by_name: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Attributes of a security monitoring dataset. + + :param created_at: The creation timestamp of the dataset. + :type created_at: datetime + + :param created_by_handle: The handle of the user who created the dataset. + :type created_by_handle: str, optional + + :param created_by_name: The name of the user who created the dataset. + :type created_by_name: str, optional + + :param definition: The definition of a dataset, including its data source, name, indexes, and columns. + :type definition: SecurityMonitoringDatasetDefinition + + :param description: A description of the dataset. + :type description: str + + :param modified_at: The last modification timestamp of the dataset. + :type modified_at: datetime, optional + + :param name: The name of the dataset. + :type name: str + + :param org_id: The organization ID. + :type org_id: int + + :param updated_by_handle: The handle of the user who last updated the dataset. + :type updated_by_handle: str, optional + + :param updated_by_name: The name of the user who last updated the dataset. + :type updated_by_name: str, optional + + :param version: The version of the dataset. + :type version: int + """ + if created_by_handle is not unset: + kwargs["created_by_handle"] = created_by_handle + if created_by_name is not unset: + kwargs["created_by_name"] = created_by_name + if modified_at is not unset: + kwargs["modified_at"] = modified_at + if updated_by_handle is not unset: + kwargs["updated_by_handle"] = updated_by_handle + if updated_by_name is not unset: + kwargs["updated_by_name"] = updated_by_name + super().__init__(kwargs) + + self_.created_at = created_at + self_.definition = definition + self_.description = description + self_.name = name + self_.org_id = org_id + self_.version = version diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_create_attributes_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_attributes_request.py new file mode 100644 index 0000000000..3b51bd9bb8 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_attributes_request.py @@ -0,0 +1,48 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_definition import SecurityMonitoringDatasetDefinition + + +class SecurityMonitoringDatasetCreateAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_definition import ( + SecurityMonitoringDatasetDefinition, + ) + + return { + "definition": (SecurityMonitoringDatasetDefinition,), + "description": (str,), + } + + attribute_map = { + "definition": "definition", + "description": "description", + } + + def __init__(self_, definition: SecurityMonitoringDatasetDefinition, description: str, **kwargs): + """ + Attributes for creating a security monitoring dataset. + + :param definition: The definition of a dataset, including its data source, name, indexes, and columns. + :type definition: SecurityMonitoringDatasetDefinition + + :param description: A description of the dataset (maximum 255 characters). + :type description: str + """ + super().__init__(kwargs) + + self_.definition = definition + self_.description = description diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_create_data_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_data_request.py new file mode 100644 index 0000000000..30ed4f6c90 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_data_request.py @@ -0,0 +1,57 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_create_attributes_request import ( + SecurityMonitoringDatasetCreateAttributesRequest, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + +class SecurityMonitoringDatasetCreateDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_create_attributes_request import ( + SecurityMonitoringDatasetCreateAttributesRequest, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + return { + "attributes": (SecurityMonitoringDatasetCreateAttributesRequest,), + "type": (SecurityMonitoringDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__( + self_, + attributes: SecurityMonitoringDatasetCreateAttributesRequest, + type: SecurityMonitoringDatasetType, + **kwargs, + ): + """ + Data for creating a security monitoring dataset. + + :param attributes: Attributes for creating a security monitoring dataset. + :type attributes: SecurityMonitoringDatasetCreateAttributesRequest + + :param type: Type for security monitoring dataset objects. + :type type: SecurityMonitoringDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_create_data_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_data_response.py new file mode 100644 index 0000000000..66d3fe8d0e --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_data_response.py @@ -0,0 +1,46 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + +class SecurityMonitoringDatasetCreateDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + return { + "id": (str,), + "type": (SecurityMonitoringDatasetType,), + } + + attribute_map = { + "id": "id", + "type": "type", + } + + def __init__(self_, id: str, type: SecurityMonitoringDatasetType, **kwargs): + """ + Data returned after creating a security monitoring dataset. + + :param id: The unique identifier of the created dataset. + :type id: str + + :param type: Type for security monitoring dataset objects. + :type type: SecurityMonitoringDatasetType + """ + super().__init__(kwargs) + + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_create_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_request.py new file mode 100644 index 0000000000..ca9bed9f90 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_request.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_create_data_request import ( + SecurityMonitoringDatasetCreateDataRequest, + ) + + +class SecurityMonitoringDatasetCreateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_create_data_request import ( + SecurityMonitoringDatasetCreateDataRequest, + ) + + return { + "data": (SecurityMonitoringDatasetCreateDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: SecurityMonitoringDatasetCreateDataRequest, **kwargs): + """ + Request to create a security monitoring dataset. + + :param data: Data for creating a security monitoring dataset. + :type data: SecurityMonitoringDatasetCreateDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_create_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_response.py new file mode 100644 index 0000000000..579e722a1b --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_create_response.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_create_data_response import ( + SecurityMonitoringDatasetCreateDataResponse, + ) + + +class SecurityMonitoringDatasetCreateResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_create_data_response import ( + SecurityMonitoringDatasetCreateDataResponse, + ) + + return { + "data": (SecurityMonitoringDatasetCreateDataResponse,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: SecurityMonitoringDatasetCreateDataResponse, **kwargs): + """ + Response after creating a security monitoring dataset. + + :param data: Data returned after creating a security monitoring dataset. + :type data: SecurityMonitoringDatasetCreateDataResponse + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_data_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_data_response.py new file mode 100644 index 0000000000..94c6f39bd0 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_data_response.py @@ -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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_attributes_response import ( + SecurityMonitoringDatasetAttributesResponse, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + +class SecurityMonitoringDatasetDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_attributes_response import ( + SecurityMonitoringDatasetAttributesResponse, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + return { + "attributes": (SecurityMonitoringDatasetAttributesResponse,), + "id": (str,), + "type": (SecurityMonitoringDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: SecurityMonitoringDatasetAttributesResponse, + id: str, + type: SecurityMonitoringDatasetType, + **kwargs, + ): + """ + A security monitoring dataset. + + :param attributes: Attributes of a security monitoring dataset. + :type attributes: SecurityMonitoringDatasetAttributesResponse + + :param id: The unique identifier of the dataset. + :type id: str + + :param type: Type for security monitoring dataset objects. + :type type: SecurityMonitoringDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_definition.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_definition.py new file mode 100644 index 0000000000..95d544d647 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_definition.py @@ -0,0 +1,72 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_definition_column import ( + SecurityMonitoringDatasetDefinitionColumn, + ) + + +class SecurityMonitoringDatasetDefinition(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_definition_column import ( + SecurityMonitoringDatasetDefinitionColumn, + ) + + return { + "columns": ([SecurityMonitoringDatasetDefinitionColumn],), + "data_source": (str,), + "indexes": ([str],), + "name": (str,), + } + + attribute_map = { + "columns": "columns", + "data_source": "data_source", + "indexes": "indexes", + "name": "name", + } + + def __init__( + self_, + columns: List[SecurityMonitoringDatasetDefinitionColumn], + data_source: str, + name: str, + indexes: Union[List[str], UnsetType] = unset, + **kwargs, + ): + """ + The definition of a dataset, including its data source, name, indexes, and columns. + + :param columns: The columns in the dataset. + :type columns: [SecurityMonitoringDatasetDefinitionColumn] + + :param data_source: The data source for the dataset. + :type data_source: str + + :param indexes: The indexes to use for the dataset. + :type indexes: [str], optional + + :param name: The name of the dataset. Must start with a letter, contain only lowercase letters, numbers, and underscores, and be at most 255 characters long. + :type name: str + """ + if indexes is not unset: + kwargs["indexes"] = indexes + super().__init__(kwargs) + + self_.columns = columns + self_.data_source = data_source + self_.name = name diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_definition_column.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_definition_column.py new file mode 100644 index 0000000000..2dffbb68c7 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_definition_column.py @@ -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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_definition_column_type import ( + SecurityMonitoringDatasetDefinitionColumnType, + ) + + +class SecurityMonitoringDatasetDefinitionColumn(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_definition_column_type import ( + SecurityMonitoringDatasetDefinitionColumnType, + ) + + return { + "column": (str,), + "type": (SecurityMonitoringDatasetDefinitionColumnType,), + } + + attribute_map = { + "column": "column", + "type": "type", + } + + def __init__(self_, column: str, type: SecurityMonitoringDatasetDefinitionColumnType, **kwargs): + """ + A column in a dataset definition. + + :param column: The name of the column. + :type column: str + + :param type: The type of the column in a dataset definition. + :type type: SecurityMonitoringDatasetDefinitionColumnType + """ + super().__init__(kwargs) + + self_.column = column + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_definition_column_type.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_definition_column_type.py new file mode 100644 index 0000000000..9a40f94d25 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_definition_column_type.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringDatasetDefinitionColumnType(ModelSimple): + """ + The type of the column in a dataset definition. + + :param value: Must be one of ["string", "integer", "double", "boolean"]. + :type value: str + """ + + allowed_values = { + "string", + "integer", + "double", + "boolean", + } + STRING: ClassVar["SecurityMonitoringDatasetDefinitionColumnType"] + INTEGER: ClassVar["SecurityMonitoringDatasetDefinitionColumnType"] + DOUBLE: ClassVar["SecurityMonitoringDatasetDefinitionColumnType"] + BOOLEAN: ClassVar["SecurityMonitoringDatasetDefinitionColumnType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringDatasetDefinitionColumnType.STRING = SecurityMonitoringDatasetDefinitionColumnType("string") +SecurityMonitoringDatasetDefinitionColumnType.INTEGER = SecurityMonitoringDatasetDefinitionColumnType("integer") +SecurityMonitoringDatasetDefinitionColumnType.DOUBLE = SecurityMonitoringDatasetDefinitionColumnType("double") +SecurityMonitoringDatasetDefinitionColumnType.BOOLEAN = SecurityMonitoringDatasetDefinitionColumnType("boolean") diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_attributes_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_attributes_request.py new file mode 100644 index 0000000000..62f5bd07f2 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_attributes_request.py @@ -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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringDatasetDependenciesAttributesRequest(ModelNormal): + validations = { + "dataset_ids": { + "max_items": 100, + "min_items": 1, + }, + } + + @cached_property + def openapi_types(_): + return { + "dataset_ids": ([str],), + } + + attribute_map = { + "dataset_ids": "datasetIds", + } + + def __init__(self_, dataset_ids: List[str], **kwargs): + """ + Attributes for dataset dependencies request. + + :param dataset_ids: Array of dataset IDs to check dependencies for (minimum 1, maximum 100). + :type dataset_ids: [str] + """ + super().__init__(kwargs) + + self_.dataset_ids = dataset_ids diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_data_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_data_request.py new file mode 100644 index 0000000000..0235f004c7 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_data_request.py @@ -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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_attributes_request import ( + SecurityMonitoringDatasetDependenciesAttributesRequest, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type import ( + SecurityMonitoringDatasetDependenciesType, + ) + + +class SecurityMonitoringDatasetDependenciesDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_attributes_request import ( + SecurityMonitoringDatasetDependenciesAttributesRequest, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type import ( + SecurityMonitoringDatasetDependenciesType, + ) + + return { + "attributes": (SecurityMonitoringDatasetDependenciesAttributesRequest,), + "type": (SecurityMonitoringDatasetDependenciesType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__( + self_, + attributes: SecurityMonitoringDatasetDependenciesAttributesRequest, + type: SecurityMonitoringDatasetDependenciesType, + **kwargs, + ): + """ + Data for dataset dependencies request. + + :param attributes: Attributes for dataset dependencies request. + :type attributes: SecurityMonitoringDatasetDependenciesAttributesRequest + + :param type: The type of the response. + :type type: SecurityMonitoringDatasetDependenciesType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_request.py new file mode 100644 index 0000000000..801ac900d4 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_request.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_data_request import ( + SecurityMonitoringDatasetDependenciesDataRequest, + ) + + +class SecurityMonitoringDatasetDependenciesRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_data_request import ( + SecurityMonitoringDatasetDependenciesDataRequest, + ) + + return { + "data": (SecurityMonitoringDatasetDependenciesDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: SecurityMonitoringDatasetDependenciesDataRequest, **kwargs): + """ + Request to get dataset dependencies. + + :param data: Data for dataset dependencies request. + :type data: SecurityMonitoringDatasetDependenciesDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_response.py new file mode 100644 index 0000000000..5f9978063a --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_response.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_dependency_data_response import ( + SecurityMonitoringDatasetDependencyDataResponse, + ) + + +class SecurityMonitoringDatasetDependenciesResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_dependency_data_response import ( + SecurityMonitoringDatasetDependencyDataResponse, + ) + + return { + "data": ([SecurityMonitoringDatasetDependencyDataResponse],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[SecurityMonitoringDatasetDependencyDataResponse], **kwargs): + """ + Response containing dataset dependencies. + + :param data: Array of dataset dependencies. + :type data: [SecurityMonitoringDatasetDependencyDataResponse] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_type.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_type.py new file mode 100644 index 0000000000..e4044bec90 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependencies_type.py @@ -0,0 +1,37 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringDatasetDependenciesType(ModelSimple): + """ + The type of the response. + + :param value: If omitted defaults to "security_monitoring_dataset_dependencies". Must be one of ["security_monitoring_dataset_dependencies"]. + :type value: str + """ + + allowed_values = { + "security_monitoring_dataset_dependencies", + } + SECURITY_MONITORING_DATASET_DEPENDENCIES: ClassVar["SecurityMonitoringDatasetDependenciesType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringDatasetDependenciesType.SECURITY_MONITORING_DATASET_DEPENDENCIES = ( + SecurityMonitoringDatasetDependenciesType("security_monitoring_dataset_dependencies") +) diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependency_attributes_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependency_attributes_response.py new file mode 100644 index 0000000000..139873319d --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependency_attributes_response.py @@ -0,0 +1,46 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringDatasetDependencyAttributesResponse(ModelNormal): + @cached_property + def openapi_types(_): + return { + "count": (int,), + "ids": ([str],), + "resource_type": (str,), + } + + attribute_map = { + "count": "count", + "ids": "ids", + "resource_type": "resource_type", + } + + def __init__(self_, count: int, ids: List[str], resource_type: str, **kwargs): + """ + Attributes for dataset dependency. + + :param count: The count of resources that depend on the dataset. + :type count: int + + :param ids: Array of IDs of resources that depend on the dataset. + :type ids: [str] + + :param resource_type: The type of resource that depends on the dataset. + :type resource_type: str + """ + super().__init__(kwargs) + + self_.count = count + self_.ids = ids + self_.resource_type = resource_type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_dependency_data_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependency_data_response.py new file mode 100644 index 0000000000..833221b10c --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_dependency_data_response.py @@ -0,0 +1,68 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_dependency_attributes_response import ( + SecurityMonitoringDatasetDependencyAttributesResponse, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type import ( + SecurityMonitoringDatasetDependenciesType, + ) + + +class SecurityMonitoringDatasetDependencyDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_dependency_attributes_response import ( + SecurityMonitoringDatasetDependencyAttributesResponse, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type import ( + SecurityMonitoringDatasetDependenciesType, + ) + + return { + "attributes": (SecurityMonitoringDatasetDependencyAttributesResponse,), + "id": (str,), + "type": (SecurityMonitoringDatasetDependenciesType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, + attributes: SecurityMonitoringDatasetDependencyAttributesResponse, + id: str, + type: SecurityMonitoringDatasetDependenciesType, + **kwargs, + ): + """ + Dependencies for a dataset. + + :param attributes: Attributes for dataset dependency. + :type attributes: SecurityMonitoringDatasetDependencyAttributesResponse + + :param id: The dataset ID. + :type id: str + + :param type: The type of the response. + :type type: SecurityMonitoringDatasetDependenciesType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_list_meta.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_list_meta.py new file mode 100644 index 0000000000..8d680e9469 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_list_meta.py @@ -0,0 +1,33 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class SecurityMonitoringDatasetListMeta(ModelNormal): + @cached_property + def openapi_types(_): + return { + "total_count": (int,), + } + + attribute_map = { + "total_count": "totalCount", + } + + def __init__(self_, total_count: int, **kwargs): + """ + Metadata for dataset list responses. + + :param total_count: The total count of datasets. + :type total_count: int + """ + super().__init__(kwargs) + + self_.total_count = total_count diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_response.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_response.py new file mode 100644 index 0000000000..6486ca78ee --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_response.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_data_response import ( + SecurityMonitoringDatasetDataResponse, + ) + + +class SecurityMonitoringDatasetResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_data_response import ( + SecurityMonitoringDatasetDataResponse, + ) + + return { + "data": (SecurityMonitoringDatasetDataResponse,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: SecurityMonitoringDatasetDataResponse, **kwargs): + """ + Response containing a security monitoring dataset. + + :param data: A security monitoring dataset. + :type data: SecurityMonitoringDatasetDataResponse + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_type.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_type.py new file mode 100644 index 0000000000..8c63341f26 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_type.py @@ -0,0 +1,35 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class SecurityMonitoringDatasetType(ModelSimple): + """ + Type for security monitoring dataset objects. + + :param value: If omitted defaults to "security_monitoring_dataset". Must be one of ["security_monitoring_dataset"]. + :type value: str + """ + + allowed_values = { + "security_monitoring_dataset", + } + SECURITY_MONITORING_DATASET: ClassVar["SecurityMonitoringDatasetType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +SecurityMonitoringDatasetType.SECURITY_MONITORING_DATASET = SecurityMonitoringDatasetType("security_monitoring_dataset") diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_update_attributes_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_update_attributes_request.py new file mode 100644 index 0000000000..fe34612cd0 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_update_attributes_request.py @@ -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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_definition import SecurityMonitoringDatasetDefinition + + +class SecurityMonitoringDatasetUpdateAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_definition import ( + SecurityMonitoringDatasetDefinition, + ) + + return { + "definition": (SecurityMonitoringDatasetDefinition,), + "description": (str,), + "version": (int,), + } + + attribute_map = { + "definition": "definition", + "description": "description", + "version": "version", + } + + def __init__( + self_, + definition: SecurityMonitoringDatasetDefinition, + description: str, + version: Union[int, UnsetType] = unset, + **kwargs, + ): + """ + Attributes for updating a security monitoring dataset. + + :param definition: The definition of a dataset, including its data source, name, indexes, and columns. + :type definition: SecurityMonitoringDatasetDefinition + + :param description: A description of the dataset (maximum 255 characters). + :type description: str + + :param version: The expected version of the dataset for concurrent modification detection. + :type version: int, optional + """ + if version is not unset: + kwargs["version"] = version + super().__init__(kwargs) + + self_.definition = definition + self_.description = description diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_update_data_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_update_data_request.py new file mode 100644 index 0000000000..4c17377028 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_update_data_request.py @@ -0,0 +1,57 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_update_attributes_request import ( + SecurityMonitoringDatasetUpdateAttributesRequest, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + +class SecurityMonitoringDatasetUpdateDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_update_attributes_request import ( + SecurityMonitoringDatasetUpdateAttributesRequest, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType + + return { + "attributes": (SecurityMonitoringDatasetUpdateAttributesRequest,), + "type": (SecurityMonitoringDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__( + self_, + attributes: SecurityMonitoringDatasetUpdateAttributesRequest, + type: SecurityMonitoringDatasetType, + **kwargs, + ): + """ + Data for updating a security monitoring dataset. + + :param attributes: Attributes for updating a security monitoring dataset. + :type attributes: SecurityMonitoringDatasetUpdateAttributesRequest + + :param type: Type for security monitoring dataset objects. + :type type: SecurityMonitoringDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/security_monitoring_dataset_update_request.py b/src/datadog_api_client/v2/model/security_monitoring_dataset_update_request.py new file mode 100644 index 0000000000..b9e2d2fc04 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_dataset_update_request.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_update_data_request import ( + SecurityMonitoringDatasetUpdateDataRequest, + ) + + +class SecurityMonitoringDatasetUpdateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_update_data_request import ( + SecurityMonitoringDatasetUpdateDataRequest, + ) + + return { + "data": (SecurityMonitoringDatasetUpdateDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: SecurityMonitoringDatasetUpdateDataRequest, **kwargs): + """ + Request to update a security monitoring dataset. + + :param data: Data for updating a security monitoring dataset. + :type data: SecurityMonitoringDatasetUpdateDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_datasets_history_response.py b/src/datadog_api_client/v2/model/security_monitoring_datasets_history_response.py new file mode 100644 index 0000000000..2bf3e0d2d5 --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_datasets_history_response.py @@ -0,0 +1,44 @@ +# 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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_data_response import ( + SecurityMonitoringDatasetDataResponse, + ) + + +class SecurityMonitoringDatasetsHistoryResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_data_response import ( + SecurityMonitoringDatasetDataResponse, + ) + + return { + "data": ([SecurityMonitoringDatasetDataResponse],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[SecurityMonitoringDatasetDataResponse], **kwargs): + """ + Response containing the history of a security monitoring dataset. + + :param data: Array of dataset versions ordered by version descending. + :type data: [SecurityMonitoringDatasetDataResponse] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/security_monitoring_datasets_list_response.py b/src/datadog_api_client/v2/model/security_monitoring_datasets_list_response.py new file mode 100644 index 0000000000..842b8f589b --- /dev/null +++ b/src/datadog_api_client/v2/model/security_monitoring_datasets_list_response.py @@ -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 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.security_monitoring_dataset_data_response import ( + SecurityMonitoringDatasetDataResponse, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_list_meta import SecurityMonitoringDatasetListMeta + + +class SecurityMonitoringDatasetsListResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.security_monitoring_dataset_data_response import ( + SecurityMonitoringDatasetDataResponse, + ) + from datadog_api_client.v2.model.security_monitoring_dataset_list_meta import SecurityMonitoringDatasetListMeta + + return { + "data": ([SecurityMonitoringDatasetDataResponse],), + "meta": (SecurityMonitoringDatasetListMeta,), + } + + attribute_map = { + "data": "data", + "meta": "meta", + } + + def __init__( + self_, data: List[SecurityMonitoringDatasetDataResponse], meta: SecurityMonitoringDatasetListMeta, **kwargs + ): + """ + Response containing a list of security monitoring datasets. + + :param data: Array of datasets. + :type data: [SecurityMonitoringDatasetDataResponse] + + :param meta: Metadata for dataset list responses. + :type meta: SecurityMonitoringDatasetListMeta + """ + super().__init__(kwargs) + + self_.data = data + self_.meta = meta diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index 010c5fb61c..5e49898717 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -4594,6 +4594,71 @@ from datadog_api_client.v2.model.security_monitoring_critical_assets_response import ( SecurityMonitoringCriticalAssetsResponse, ) +from datadog_api_client.v2.model.security_monitoring_dataset_attributes_response import ( + SecurityMonitoringDatasetAttributesResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_attributes_request import ( + SecurityMonitoringDatasetCreateAttributesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_data_request import ( + SecurityMonitoringDatasetCreateDataRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_data_response import ( + SecurityMonitoringDatasetCreateDataResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_request import ( + SecurityMonitoringDatasetCreateRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_create_response import ( + SecurityMonitoringDatasetCreateResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_data_response import SecurityMonitoringDatasetDataResponse +from datadog_api_client.v2.model.security_monitoring_dataset_definition import SecurityMonitoringDatasetDefinition +from datadog_api_client.v2.model.security_monitoring_dataset_definition_column import ( + SecurityMonitoringDatasetDefinitionColumn, +) +from datadog_api_client.v2.model.security_monitoring_dataset_definition_column_type import ( + SecurityMonitoringDatasetDefinitionColumnType, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_attributes_request import ( + SecurityMonitoringDatasetDependenciesAttributesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_data_request import ( + SecurityMonitoringDatasetDependenciesDataRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_request import ( + SecurityMonitoringDatasetDependenciesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_response import ( + SecurityMonitoringDatasetDependenciesResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependencies_type import ( + SecurityMonitoringDatasetDependenciesType, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependency_attributes_response import ( + SecurityMonitoringDatasetDependencyAttributesResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_dependency_data_response import ( + SecurityMonitoringDatasetDependencyDataResponse, +) +from datadog_api_client.v2.model.security_monitoring_dataset_list_meta import SecurityMonitoringDatasetListMeta +from datadog_api_client.v2.model.security_monitoring_dataset_response import SecurityMonitoringDatasetResponse +from datadog_api_client.v2.model.security_monitoring_dataset_type import SecurityMonitoringDatasetType +from datadog_api_client.v2.model.security_monitoring_dataset_update_attributes_request import ( + SecurityMonitoringDatasetUpdateAttributesRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_update_data_request import ( + SecurityMonitoringDatasetUpdateDataRequest, +) +from datadog_api_client.v2.model.security_monitoring_dataset_update_request import ( + SecurityMonitoringDatasetUpdateRequest, +) +from datadog_api_client.v2.model.security_monitoring_datasets_history_response import ( + SecurityMonitoringDatasetsHistoryResponse, +) +from datadog_api_client.v2.model.security_monitoring_datasets_list_response import ( + SecurityMonitoringDatasetsListResponse, +) from datadog_api_client.v2.model.security_monitoring_filter import SecurityMonitoringFilter from datadog_api_client.v2.model.security_monitoring_filter_action import SecurityMonitoringFilterAction from datadog_api_client.v2.model.security_monitoring_list_rules_response import SecurityMonitoringListRulesResponse @@ -9051,6 +9116,31 @@ "SecurityMonitoringCriticalAssetUpdateData", "SecurityMonitoringCriticalAssetUpdateRequest", "SecurityMonitoringCriticalAssetsResponse", + "SecurityMonitoringDatasetAttributesResponse", + "SecurityMonitoringDatasetCreateAttributesRequest", + "SecurityMonitoringDatasetCreateDataRequest", + "SecurityMonitoringDatasetCreateDataResponse", + "SecurityMonitoringDatasetCreateRequest", + "SecurityMonitoringDatasetCreateResponse", + "SecurityMonitoringDatasetDataResponse", + "SecurityMonitoringDatasetDefinition", + "SecurityMonitoringDatasetDefinitionColumn", + "SecurityMonitoringDatasetDefinitionColumnType", + "SecurityMonitoringDatasetDependenciesAttributesRequest", + "SecurityMonitoringDatasetDependenciesDataRequest", + "SecurityMonitoringDatasetDependenciesRequest", + "SecurityMonitoringDatasetDependenciesResponse", + "SecurityMonitoringDatasetDependenciesType", + "SecurityMonitoringDatasetDependencyAttributesResponse", + "SecurityMonitoringDatasetDependencyDataResponse", + "SecurityMonitoringDatasetListMeta", + "SecurityMonitoringDatasetResponse", + "SecurityMonitoringDatasetType", + "SecurityMonitoringDatasetUpdateAttributesRequest", + "SecurityMonitoringDatasetUpdateDataRequest", + "SecurityMonitoringDatasetUpdateRequest", + "SecurityMonitoringDatasetsHistoryResponse", + "SecurityMonitoringDatasetsListResponse", "SecurityMonitoringFilter", "SecurityMonitoringFilterAction", "SecurityMonitoringListRulesResponse", diff --git a/tests/v2/features/security_monitoring.feature b/tests/v2/features/security_monitoring.feature index ccc027734e..95feb5d346 100644 --- a/tests/v2/features/security_monitoring.feature +++ b/tests/v2/features/security_monitoring.feature @@ -408,6 +408,22 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a dataset returns "Bad Request" response + Given operation "CreateSecurityMonitoringDataset" enabled + And new "CreateSecurityMonitoringDataset" request + And body with value {"data": {"attributes": {"definition": {"columns": [{"column": "message", "type": "string"}], "data_source": "logs", "indexes": ["k9"], "name": "my_dataset"}, "description": "A dataset for monitoring authentication events"}, "type": "security_monitoring_dataset"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Create a dataset returns "Created" response + Given operation "CreateSecurityMonitoringDataset" enabled + And new "CreateSecurityMonitoringDataset" request + And body with value {"data": {"attributes": {"definition": {"columns": [{"column": "message", "type": "string"}], "data_source": "logs", "indexes": ["k9"], "name": "my_dataset"}, "description": "A dataset for monitoring authentication events"}, "type": "security_monitoring_dataset"}} + When the request is sent + Then the response status is 201 Created + @skip @team:DataDog/k9-cloud-security-platform Scenario: Create a detection rule returns "Bad Request" response Given new "CreateSecurityMonitoringRule" request @@ -713,6 +729,30 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Delete a dataset returns "Bad Request" response + Given operation "DeleteSecurityMonitoringDataset" enabled + And new "DeleteSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Delete a dataset returns "No Content" response + Given operation "DeleteSecurityMonitoringDataset" enabled + And new "DeleteSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Delete a dataset returns "Not Found" response + Given operation "DeleteSecurityMonitoringDataset" enabled + And new "DeleteSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + @skip @team:DataDog/k9-cloud-security-platform Scenario: Delete a non existing rule returns "Not Found" response Given new "DeleteSecurityMonitoringRule" request @@ -923,6 +963,57 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a dataset by version returns "Bad Request" response + Given operation "GetSecurityMonitoringDatasetByVersion" enabled + And new "GetSecurityMonitoringDatasetByVersion" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And request contains "version" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a dataset by version returns "Not Found" response + Given operation "GetSecurityMonitoringDatasetByVersion" enabled + And new "GetSecurityMonitoringDatasetByVersion" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And request contains "version" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a dataset by version returns "OK" response + Given operation "GetSecurityMonitoringDatasetByVersion" enabled + And new "GetSecurityMonitoringDatasetByVersion" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And request contains "version" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a dataset returns "Bad Request" response + Given operation "GetSecurityMonitoringDataset" enabled + And new "GetSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a dataset returns "Not Found" response + Given operation "GetSecurityMonitoringDataset" enabled + And new "GetSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get a dataset returns "OK" response + Given operation "GetSecurityMonitoringDataset" enabled + And new "GetSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-security-posture-management Scenario: Get a finding returns "Bad Request: The server cannot process the request due to invalid syntax in the request." response Given operation "GetFinding" enabled @@ -1240,6 +1331,46 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get dataset dependencies returns "Bad Request" response + Given operation "BatchGetSecurityMonitoringDatasetDependencies" enabled + And new "BatchGetSecurityMonitoringDatasetDependencies" request + And body with value {"data": {"attributes": {"datasetIds": ["dataset-1"]}, "type": "security_monitoring_dataset_dependencies"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get dataset dependencies returns "OK" response + Given operation "BatchGetSecurityMonitoringDatasetDependencies" enabled + And new "BatchGetSecurityMonitoringDatasetDependencies" request + And body with value {"data": {"attributes": {"datasetIds": ["dataset-1"]}, "type": "security_monitoring_dataset_dependencies"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get dataset history returns "Bad Request" response + Given operation "GetSecurityMonitoringDatasetHistory" enabled + And new "GetSecurityMonitoringDatasetHistory" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get dataset history returns "Not Found" response + Given operation "GetSecurityMonitoringDatasetHistory" enabled + And new "GetSecurityMonitoringDatasetHistory" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Get dataset history returns "OK" response + Given operation "GetSecurityMonitoringDatasetHistory" enabled + And new "GetSecurityMonitoringDatasetHistory" request + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/cloud-security-posture-management Scenario: Get details of a signal-based notification rule returns "Bad Request" response Given new "GetSignalNotificationRule" request @@ -1340,6 +1471,27 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 The list of notification rules. + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: List all datasets returns "Bad Request" response + Given operation "ListSecurityMonitoringDatasets" enabled + And new "ListSecurityMonitoringDatasets" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: List all datasets returns "Not Found" response + Given operation "ListSecurityMonitoringDatasets" enabled + And new "ListSecurityMonitoringDatasets" request + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: List all datasets returns "OK" response + Given operation "ListSecurityMonitoringDatasets" enabled + And new "ListSecurityMonitoringDatasets" request + When the request is sent + Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-vm Scenario: List assets SBOMs returns "Bad request: The server cannot process the request due to invalid syntax in the request." response Given new "ListAssetsSBOMs" request @@ -1907,6 +2059,42 @@ Feature: Security Monitoring When the request is sent Then the response status is 200 OK + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a dataset returns "Bad Request" response + Given operation "UpdateSecurityMonitoringDataset" enabled + And new "UpdateSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"definition": {"columns": [{"column": "message", "type": "string"}], "data_source": "logs", "indexes": ["k9"], "name": "my_dataset"}, "description": "Updated dataset description", "version": 1}, "type": "security_monitoring_dataset"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a dataset returns "Conflict" response + Given operation "UpdateSecurityMonitoringDataset" enabled + And new "UpdateSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"definition": {"columns": [{"column": "message", "type": "string"}], "data_source": "logs", "indexes": ["k9"], "name": "my_dataset"}, "description": "Updated dataset description", "version": 1}, "type": "security_monitoring_dataset"}} + When the request is sent + Then the response status is 409 Conflict + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a dataset returns "No Content" response + Given operation "UpdateSecurityMonitoringDataset" enabled + And new "UpdateSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"definition": {"columns": [{"column": "message", "type": "string"}], "data_source": "logs", "indexes": ["k9"], "name": "my_dataset"}, "description": "Updated dataset description", "version": 1}, "type": "security_monitoring_dataset"}} + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/k9-cloud-security-platform + Scenario: Update a dataset returns "Not Found" response + Given operation "UpdateSecurityMonitoringDataset" enabled + And new "UpdateSecurityMonitoringDataset" request + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"definition": {"columns": [{"column": "message", "type": "string"}], "data_source": "logs", "indexes": ["k9"], "name": "my_dataset"}, "description": "Updated dataset description", "version": 1}, "type": "security_monitoring_dataset"}} + When the request is sent + Then the response status is 404 Not Found + @generated @skip @team:DataDog/k9-cloud-security-platform Scenario: Update a security filter returns "Bad Request" response Given new "UpdateSecurityFilter" request diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index 5a347bddf1..4a80121b5d 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -4317,6 +4317,63 @@ "type": "safe" } }, + "ListSecurityMonitoringDatasets": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "CreateSecurityMonitoringDataset": { + "tag": "Security Monitoring", + "undo": { + "operationId": "DeleteSecurityMonitoringDataset", + "parameters": [ + { + "name": "dataset_id", + "source": "" + } + ], + "type": "unsafe" + } + }, + "BatchGetSecurityMonitoringDatasetDependencies": { + "tag": "Security Monitoring", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "DeleteSecurityMonitoringDataset": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "GetSecurityMonitoringDataset": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "UpdateSecurityMonitoringDataset": { + "tag": "Security Monitoring", + "undo": { + "type": "idempotent" + } + }, + "GetSecurityMonitoringDatasetHistory": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, + "GetSecurityMonitoringDatasetByVersion": { + "tag": "Security Monitoring", + "undo": { + "type": "safe" + } + }, "ListSecurityMonitoringRules": { "tag": "Security Monitoring", "undo": {