diff --git a/.apigentools-info b/.apigentools-info index 726060c0fe64..b07f8dbea33d 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2025-01-24 15:02:22.197138", - "spec_repo_commit": "582cdbd4" + "regenerated": "2025-01-24 20:40:47.836931", + "spec_repo_commit": "c6ec55eb" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2025-01-24 15:02:22.212155", - "spec_repo_commit": "582cdbd4" + "regenerated": "2025-01-24 20:40:47.852439", + "spec_repo_commit": "c6ec55eb" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index c8e2261b218a..98324635ee35 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1824,7 +1824,8 @@ components: - apm_retention_filter AppBuilderEvent: additionalProperties: {} - description: The definition of `AppBuilderEvent` object. + description: An event on a UI component that triggers a response or action in + an app. properties: name: $ref: '#/components/schemas/AppBuilderEventName' @@ -1844,6 +1845,7 @@ components: - close - open - executionFinished + example: click type: string x-enum-varnames: - PAGECHANGE @@ -1867,6 +1869,7 @@ components: - openUrl - downloadFile - setStateVariableValue + example: triggerQuery type: string x-enum-varnames: - CUSTOM @@ -1877,44 +1880,77 @@ components: - OPENURL - DOWNLOADFILE - SETSTATEVARIABLEVALUE + AppDefinitionType: + default: appDefinitions + description: The app definition type. + enum: + - appDefinitions + example: appDefinitions + type: string + x-enum-varnames: + - APPDEFINITIONS + AppDeploymentType: + default: deployment + description: The deployment type. + enum: + - deployment + example: deployment + type: string + x-enum-varnames: + - DEPLOYMENT AppMeta: - description: The definition of `AppMeta` object. + description: Metadata of an app. properties: created_at: - description: The `AppMeta` `created_at`. + description: Timestamp of when the app was created. + format: date-time type: string deleted_at: - description: The `AppMeta` `deleted_at`. + description: Timestamp of when the app was deleted. + format: date-time type: string org_id: - description: The `AppMeta` `org_id`. + description: The Datadog organization ID that owns the app. format: int64 type: integer - run_as_user: - description: The `AppMeta` `run_as_user`. - type: string updated_at: - description: The `AppMeta` `updated_at`. + description: Timestamp of when the app was last updated. + format: date-time type: string updated_since_deployment: - description: The `AppMeta` `updated_since_deployment`. + description: Whether the app was updated since it was last published. Published + apps are pinned to a specific version and do not automatically update + when the app is updated. type: boolean user_id: - description: The `AppMeta` `user_id`. + description: The ID of the user who created the app. format: int64 type: integer user_name: - description: The `AppMeta` `user_name`. + description: The name (or email address) of the user who created the app. type: string user_uuid: - description: The `AppMeta` `user_uuid`. + description: The UUID of the user who created the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 format: uuid type: string version: - description: The `AppMeta` `version`. + description: The version number of the app. This starts at 1 and increments + with each update. format: int64 type: integer type: object + AppRelationship: + description: The app's publication relationship and custom connections. + properties: + connections: + description: Array of custom connections used by the app. + items: + $ref: '#/components/schemas/CustomConnection' + type: array + deployment: + $ref: '#/components/schemas/DeploymentRelationship' + type: object ApplicationKeyCreateAttributes: description: Attributes used to create an application Key. properties: @@ -2077,6 +2113,7 @@ components: - -created_at - -updated_at - -user_name + example: -created_at type: string x-enum-varnames: - NAME @@ -6066,19 +6103,21 @@ components: - location type: object Component: - description: The definition of `Component` object. + description: '[Definition of a UI component in the app](https://docs.datadoghq.com/service_management/app_builder/components/)' properties: events: - description: The `Component` `events`. + description: Events to listen for on the UI component. items: $ref: '#/components/schemas/AppBuilderEvent' type: array id: - description: The `Component` `id`. + description: The ID of the UI component. This property is deprecated; use + `name` to identify individual components instead. nullable: true type: string name: - description: The `Component` `name`. + description: A unique identifier for this UI component. This name is also + visible in the app editor. example: '' type: string properties: @@ -6091,18 +6130,21 @@ components: - properties type: object ComponentGrid: - description: The definition of `ComponentGrid` object. + description: A grid component. The grid component is the root canvas for an + app and contains all other components. properties: events: - description: The `ComponentGrid` `events`. + description: Events to listen for on the grid component. items: $ref: '#/components/schemas/AppBuilderEvent' type: array id: - description: The `ComponentGrid` `id`. + description: The ID of the grid component. This property is deprecated; + use `name` to identify individual components instead. type: string name: - description: The `ComponentGrid` `name`. + description: A unique identifier for this grid component. This name is also + visible in the app editor. example: '' type: string properties: @@ -6115,14 +6157,14 @@ components: - properties type: object ComponentGridProperties: - description: The definition of `ComponentGridProperties` object. + description: Properties of a grid component. properties: backgroundColor: default: default - description: The `ComponentGridProperties` `backgroundColor`. + description: The background color of the grid. type: string children: - description: The `ComponentGridProperties` `children`. + description: The child components of the grid. items: $ref: '#/components/schemas/Component' type: array @@ -6130,13 +6172,15 @@ components: $ref: '#/components/schemas/ComponentGridPropertiesIsVisible' type: object ComponentGridPropertiesIsVisible: - description: The definition of `ComponentGridPropertiesIsVisible` object. + description: Whether the grid component and its children are visible. If a string, + it must be a valid JavaScript expression that evaluates to a boolean. oneOf: - type: string - default: true type: boolean ComponentGridType: - description: The definition of `ComponentGridType` object. + default: grid + description: The grid component type. enum: - grid example: grid @@ -6145,10 +6189,12 @@ components: - GRID ComponentProperties: additionalProperties: {} - description: The definition of `ComponentProperties` object. + description: Properties of a UI component. Different component types can have + their own additional unique properties. See the [components documentation](https://docs.datadoghq.com/service_management/app_builder/components/) + for more detail on each component type and its properties. properties: children: - description: The `ComponentProperties` `children`. + description: The child components of the UI component. items: $ref: '#/components/schemas/Component' type: array @@ -6156,15 +6202,16 @@ components: $ref: '#/components/schemas/ComponentPropertiesIsVisible' type: object ComponentPropertiesIsVisible: - description: The definition of `ComponentPropertiesIsVisible` object. + description: Whether the UI component is visible. If this is a string, it must + be a valid JavaScript expression that evaluates to a boolean. oneOf: - type: boolean - - description: If a string, it should be a valid JavaScript expression that - evaluates to a boolean. + - description: If this is a string, it must be a valid JavaScript expression + that evaluates to a boolean. example: ${true} type: string ComponentType: - description: The definition of `ComponentType` object. + description: The UI component type. enum: - table - textInput @@ -6186,7 +6233,7 @@ components: - search - container - calloutValue - example: table + example: text type: string x-enum-varnames: - TABLE @@ -7225,7 +7272,7 @@ components: $ref: '#/components/schemas/ActionConnectionData' type: object CreateAppRequest: - description: The definition of `CreateAppRequest` object. + description: A request object for creating a new app. example: data: attributes: @@ -7269,87 +7316,70 @@ components: $ref: '#/components/schemas/CreateAppRequestData' type: object CreateAppRequestData: - description: The definition of `CreateAppRequestData` object. + description: The data object containing the app definition. properties: attributes: $ref: '#/components/schemas/CreateAppRequestDataAttributes' type: - $ref: '#/components/schemas/CreateAppRequestDataType' + $ref: '#/components/schemas/AppDefinitionType' required: - type type: object CreateAppRequestDataAttributes: - description: The definition of `CreateAppRequestDataAttributes` object. + description: App definition attributes such as name, description, and components. properties: components: - description: The `attributes` `components`. + description: The UI components that make up the app. items: $ref: '#/components/schemas/ComponentGrid' type: array description: - description: The `attributes` `description`. + description: A human-readable description for the app. type: string embeddedQueries: - description: The `attributes` `embeddedQueries`. + description: An array of queries, such as external actions and state variables, + that the app uses. items: $ref: '#/components/schemas/Query' type: array - inputSchema: - $ref: '#/components/schemas/InputSchema' name: - description: The `attributes` `name`. + description: The name of the app. type: string rootInstanceName: - description: The `attributes` `rootInstanceName`. + description: The name of the root component of the app. This must be a `grid` + component that contains all other components. type: string - scripts: - description: The `attributes` `scripts`. - items: - $ref: '#/components/schemas/Script' - type: array tags: - description: The `attributes` `tags`. + description: A list of tags for the app, which can be used to filter apps. + example: + - service:webshop-backend + - team:webshop items: + description: An individual tag for the app. type: string type: array type: object - CreateAppRequestDataType: - default: appDefinitions - description: The definition of `CreateAppRequestDataType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS CreateAppResponse: - description: The definition of `CreateAppResponse` object. + description: The response object after a new app is successfully created, with + the app ID. properties: data: $ref: '#/components/schemas/CreateAppResponseData' type: object CreateAppResponseData: - description: The definition of `CreateAppResponseData` object. + description: The data object containing the app ID. properties: id: - description: The `data` `id`. - example: '' + description: The ID of the created app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/CreateAppResponseDataType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type type: object - CreateAppResponseDataType: - default: appDefinitions - description: The definition of `CreateAppResponseDataType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS CreateDataDeletionRequestBody: description: Object needed to create a data deletion request. properties: @@ -7751,40 +7781,44 @@ components: $ref: '#/components/schemas/CsmServerlessCoverageAnalysisData' type: object CustomConnection: - description: The definition of `CustomConnection` object. + description: A custom connection used by an app. properties: attributes: $ref: '#/components/schemas/CustomConnectionAttributes' id: - description: The `CustomConnection` `id`. + description: The ID of the custom connection. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: $ref: '#/components/schemas/CustomConnectionType' type: object CustomConnectionAttributes: - description: The definition of `CustomConnectionAttributes` object. + description: The custom connection attributes. properties: name: - description: The `attributes` `name`. + description: The name of the custom connection. type: string onPremRunner: $ref: '#/components/schemas/CustomConnectionAttributesOnPremRunner' type: object CustomConnectionAttributesOnPremRunner: - description: The definition of `CustomConnectionAttributesOnPremRunner` object. + description: Information about the Private Action Runner used by the custom + connection, if the custom connection is associated with a Private Action Runner. properties: id: - description: The `onPremRunner` `id`. + description: The Private Action Runner ID. type: string url: - description: The `onPremRunner` `url`. + description: The URL of the Private Action Runner. type: string type: object CustomConnectionType: default: custom_connections - description: The definition of `CustomConnectionType` object. + description: The custom connection type. enum: - custom_connections + example: custom_connections type: string x-enum-varnames: - CUSTOM_CONNECTIONS @@ -9175,7 +9209,7 @@ components: format: int64 type: integer DeleteAppResponse: - description: The definition of `DeleteAppResponse` object. + description: The response object after an app is successfully deleted. properties: data: $ref: '#/components/schemas/DeleteAppResponseData' @@ -9184,94 +9218,70 @@ components: description: The definition of `DeleteAppResponseData` object. properties: id: - description: The `data` `id`. - example: '' + description: The ID of the deleted app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/DeleteAppResponseDataType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type type: object - DeleteAppResponseDataType: - default: appDefinitions - description: The definition of `DeleteAppResponseDataType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS DeleteAppsRequest: - description: The definition of `DeleteAppsRequest` object. + description: A request object for deleting multiple apps by ID. example: data: - - id: 29494ddd-ac13-46a7-8558-b05b050ee755 + - id: aea2ed17-b45f-40d0-ba59-c86b7972c901 type: appDefinitions - - id: 71c0d358-eac5-41e3-892d-a7467571b9b0 + - id: f69bb8be-6168-4fe7-a30d-370256b6504a type: appDefinitions - - id: 98e7e44d-1562-474a-90f7-3a94e739c006 + - id: ab1ed73e-13ad-4426-b0df-a0ff8876a088 type: appDefinitions properties: data: - description: The `DeleteAppsRequest` `data`. + description: An array of objects containing the IDs of the apps to delete. items: $ref: '#/components/schemas/DeleteAppsRequestDataItems' type: array type: object DeleteAppsRequestDataItems: - description: The definition of `DeleteAppsRequestDataItems` object. + description: An object containing the ID of an app to delete. properties: id: - description: The `items` `id`. - example: '' + description: The ID of the app to delete. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/DeleteAppsRequestDataItemsType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type type: object - DeleteAppsRequestDataItemsType: - default: appDefinitions - description: The definition of `DeleteAppsRequestDataItemsType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS DeleteAppsResponse: - description: The definition of `DeleteAppsResponse` object. + description: The response object after multiple apps are successfully deleted. properties: data: - description: The `DeleteAppsResponse` `data`. + description: An array of objects containing the IDs of the deleted apps. items: $ref: '#/components/schemas/DeleteAppsResponseDataItems' type: array type: object DeleteAppsResponseDataItems: - description: The definition of `DeleteAppsResponseDataItems` object. + description: An object containing the ID of a deleted app. properties: id: - description: The `items` `id`. - example: '' + description: The ID of the deleted app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/DeleteAppsResponseDataItemsType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type type: object - DeleteAppsResponseDataItemsType: - default: appDefinitions - description: The definition of `DeleteAppsResponseDataItemsType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS DependencyLocation: description: Static library vulnerability location. properties: @@ -9306,175 +9316,71 @@ components: - column_start - column_end type: object - DeployAppResponse: - description: The definition of `DeployAppResponse` object. - properties: - data: - $ref: '#/components/schemas/DeployAppResponseData' - type: object - DeployAppResponseData: - description: The definition of `DeployAppResponseData` object. - properties: - attributes: - $ref: '#/components/schemas/DeployAppResponseDataAttributes' - id: - description: The `data` `id`. - type: string - meta: - $ref: '#/components/schemas/DeploymentMeta' - type: - $ref: '#/components/schemas/DeployAppResponseDataType' - type: object - DeployAppResponseDataAttributes: - description: The definition of `DeployAppResponseDataAttributes` object. - properties: - app_version_id: - description: The `attributes` `app_version_id`. - type: string - type: object - DeployAppResponseDataType: - default: deployment - description: The definition of `DeployAppResponseDataType` object. - enum: - - deployment - type: string - x-enum-varnames: - - DEPLOYMENT Deployment: - description: The definition of `Deployment` object. + description: The version of the app that was published. properties: attributes: $ref: '#/components/schemas/DeploymentAttributes' id: - description: The `Deployment` `id`. + description: The deployment ID. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string meta: - $ref: '#/components/schemas/DeploymentMeta' + $ref: '#/components/schemas/DeploymentMetadata' type: - $ref: '#/components/schemas/DeploymentType' + $ref: '#/components/schemas/AppDeploymentType' type: object DeploymentAttributes: - description: The definition of `DeploymentAttributes` object. - properties: - app_version_id: - description: The `attributes` `app_version_id`. - type: string - type: object - DeploymentIncluded: - description: The definition of `DeploymentIncluded` object. - properties: - attributes: - $ref: '#/components/schemas/DeploymentIncludedAttributes' - id: - description: The `DeploymentIncluded` `id`. - type: string - meta: - $ref: '#/components/schemas/DeploymentIncludedMeta' - type: - $ref: '#/components/schemas/DeploymentIncludedType' - type: object - DeploymentIncludedAttributes: - description: The definition of `DeploymentIncludedAttributes` object. + description: The attributes object containing the version ID of the published + app. properties: app_version_id: - description: The `attributes` `app_version_id`. - type: string - type: object - DeploymentIncludedMeta: - description: The definition of `DeploymentIncludedMeta` object. - properties: - created_at: - description: The `meta` `created_at`. - type: string - user_id: - description: The `meta` `user_id`. - format: int64 - type: integer - user_name: - description: The `meta` `user_name`. - type: string - user_uuid: - description: The `meta` `user_uuid`. + description: The version ID of the app that was published. For an unpublished + app, this is always the nil UUID (`00000000-0000-0000-0000-000000000000`). + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 format: uuid type: string type: object - DeploymentIncludedType: - default: deployment - description: The definition of `DeploymentIncludedType` object. - enum: - - deployment - type: string - x-enum-varnames: - - DEPLOYMENT - DeploymentMeta: - description: The definition of `DeploymentMeta` object. + DeploymentMetadata: + description: Metadata object containing the publication creation information. properties: created_at: - description: The `DeploymentMeta` `created_at`. + description: Timestamp of when the app was published. + format: date-time type: string user_id: - description: The `DeploymentMeta` `user_id`. + description: The ID of the user who published the app. format: int64 type: integer user_name: - description: The `DeploymentMeta` `user_name`. + description: The name (or email address) of the user who published the app. type: string user_uuid: - description: The `DeploymentMeta` `user_uuid`. + description: The UUID of the user who published the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 format: uuid type: string type: object DeploymentRelationship: - description: The definition of `DeploymentRelationship` object. + description: Information pointing to the app's publication status. properties: data: $ref: '#/components/schemas/DeploymentRelationshipData' meta: - $ref: '#/components/schemas/DeploymentRelationshipMeta' + $ref: '#/components/schemas/DeploymentMetadata' type: object DeploymentRelationshipData: - description: The definition of `DeploymentRelationshipData` object. + description: Data object containing the deployment ID. properties: id: - description: The `data` `id`. - type: string - type: - $ref: '#/components/schemas/DeploymentRelationshipDataType' - type: object - DeploymentRelationshipDataType: - default: deployment - description: The definition of `DeploymentRelationshipDataType` object. - enum: - - deployment - type: string - x-enum-varnames: - - DEPLOYMENT - DeploymentRelationshipMeta: - description: The definition of `DeploymentRelationshipMeta` object. - properties: - created_at: - description: The `meta` `created_at`. - type: string - user_id: - description: The `meta` `user_id`. - format: int64 - type: integer - user_name: - description: The `meta` `user_name`. - type: string - user_uuid: - description: The `meta` `user_uuid`. + description: The deployment ID. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 format: uuid type: string + type: + $ref: '#/components/schemas/AppDeploymentType' type: object - DeploymentType: - default: deployment - description: The definition of `DeploymentType` object. - enum: - - deployment - type: string - x-enum-varnames: - - DEPLOYMENT DetailedFinding: description: A single finding with with message and resource configuration. properties: @@ -9658,40 +9564,6 @@ components: description: The type of the resource. The value should always be device. type: string type: object - DisableAppResponse: - description: The definition of `DisableAppResponse` object. - properties: - data: - $ref: '#/components/schemas/DisableAppResponseData' - type: object - DisableAppResponseData: - description: The definition of `DisableAppResponseData` object. - properties: - attributes: - $ref: '#/components/schemas/DisableAppResponseDataAttributes' - id: - description: The `data` `id`. - type: string - meta: - $ref: '#/components/schemas/DeploymentMeta' - type: - $ref: '#/components/schemas/DisableAppResponseDataType' - type: object - DisableAppResponseDataAttributes: - description: The definition of `DisableAppResponseDataAttributes` object. - properties: - app_version_id: - description: The `attributes` `app_version_id`. - type: string - type: object - DisableAppResponseDataType: - default: deployment - description: The definition of `DisableAppResponseDataType` object. - enum: - - deployment - type: string - x-enum-varnames: - - DEPLOYMENT DomainAllowlist: description: The email domain allowlist for an org. properties: @@ -12497,94 +12369,74 @@ components: $ref: '#/components/schemas/ActionConnectionData' type: object GetAppResponse: - description: The definition of `GetAppResponse` object. + description: The full app definition response object. properties: data: $ref: '#/components/schemas/GetAppResponseData' included: - description: The `GetAppResponse` `included`. + description: Data on the version of the app that was published. items: - $ref: '#/components/schemas/DeploymentIncluded' + $ref: '#/components/schemas/Deployment' type: array meta: $ref: '#/components/schemas/AppMeta' relationship: - $ref: '#/components/schemas/GetAppResponseRelationship' + $ref: '#/components/schemas/AppRelationship' type: object GetAppResponseData: - description: The definition of `GetAppResponseData` object. + description: The data object containing the app definition. properties: attributes: $ref: '#/components/schemas/GetAppResponseDataAttributes' id: - description: The `data` `id`. - example: '' + description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/GetAppResponseDataType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type - attributes type: object GetAppResponseDataAttributes: - description: The definition of `GetAppResponseDataAttributes` object. + description: The app definition attributes, such as name, description, and components. properties: components: - description: The `attributes` `components`. + description: The UI components that make up the app. items: $ref: '#/components/schemas/ComponentGrid' type: array description: - description: The `attributes` `description`. + description: A human-readable description for the app. type: string embeddedQueries: - description: The `attributes` `embeddedQueries`. + description: An array of queries, such as external actions and state variables, + that the app uses. items: $ref: '#/components/schemas/Query' type: array favorite: - description: The `attributes` `favorite`. + description: Whether the app is marked as a favorite by the current user. type: boolean - inputSchema: - $ref: '#/components/schemas/InputSchema' name: - description: The `attributes` `name`. + description: The name of the app. type: string rootInstanceName: - description: The `attributes` `rootInstanceName`. + description: The name of the root component of the app. This must be a `grid` + component that contains all other components. type: string - scripts: - description: The `attributes` `scripts`. - items: - $ref: '#/components/schemas/Script' - type: array tags: - description: The `attributes` `tags`. + description: A list of tags for the app, which can be used to filter apps. + example: + - service:webshop-backend + - team:webshop items: + description: An individual tag for the app. type: string type: array type: object - GetAppResponseDataType: - default: appDefinitions - description: The definition of `GetAppResponseDataType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS - GetAppResponseRelationship: - description: The definition of `GetAppResponseRelationship` object. - properties: - connections: - description: The `relationship` `connections`. - items: - $ref: '#/components/schemas/CustomConnection' - type: array - deployment: - $ref: '#/components/schemas/DeploymentRelationship' - type: object GetDataDeletionsResponseBody: description: The response from the get data deletion requests endpoint. properties: @@ -15502,77 +15354,6 @@ components: - ONCALL - INCIDENT - RELATION - InputSchema: - description: The definition of `InputSchema` object. - properties: - data: - $ref: '#/components/schemas/InputSchemaData' - type: object - InputSchemaData: - description: The definition of `InputSchemaData` object. - properties: - attributes: - $ref: '#/components/schemas/InputSchemaDataAttributes' - id: - description: The `data` `id`. - type: string - type: - $ref: '#/components/schemas/InputSchemaDataType' - type: object - InputSchemaDataAttributes: - description: The definition of `InputSchemaDataAttributes` object. - properties: - parameters: - description: The `attributes` `parameters`. - items: - $ref: '#/components/schemas/InputSchemaDataAttributesParametersItems' - type: array - type: object - InputSchemaDataAttributesParametersItems: - description: The definition of `InputSchemaDataAttributesParametersItems` object. - properties: - data: - $ref: '#/components/schemas/InputSchemaDataAttributesParametersItemsData' - type: object - InputSchemaDataAttributesParametersItemsData: - description: The definition of `InputSchemaDataAttributesParametersItemsData` - object. - properties: - attributes: - $ref: '#/components/schemas/InputSchemaDataAttributesParametersItemsDataAttributes' - type: object - InputSchemaDataAttributesParametersItemsDataAttributes: - description: The definition of `InputSchemaDataAttributesParametersItemsDataAttributes` - object. - properties: - defaultValue: - description: The `attributes` `defaultValue`. - description: - description: The `attributes` `description`. - type: string - enum: - description: The `attributes` `enum`. - items: - type: string - type: array - label: - description: The `attributes` `label`. - type: string - name: - description: The `attributes` `name`. - type: string - type: - description: The `attributes` `type`. - type: string - type: object - InputSchemaDataType: - default: inputSchema - description: The definition of `InputSchemaDataType` object. - enum: - - inputSchema - type: string - x-enum-varnames: - - INPUTSCHEMA IntakePayloadAccepted: description: The payload accepted for intake. properties: @@ -16018,92 +15799,92 @@ components: $ref: '#/components/schemas/ApplicationKeyResponseMeta' type: object ListAppsResponse: - description: The definition of `ListAppsResponse` object. + description: A paginated list of apps matching the specified filters and sorting. properties: data: - description: The `ListAppsResponse` `data`. + description: An array of app definitions. items: $ref: '#/components/schemas/ListAppsResponseDataItems' type: array included: - description: The `ListAppsResponse` `included`. + description: Data on the version of the app that was published. items: - $ref: '#/components/schemas/DeploymentIncluded' + $ref: '#/components/schemas/Deployment' type: array meta: $ref: '#/components/schemas/ListAppsResponseMeta' type: object ListAppsResponseDataItems: - description: The definition of `ListAppsResponseDataItems` object. + description: An app definition object. This contains only basic information + about the app such as ID, name, and tags. properties: attributes: $ref: '#/components/schemas/ListAppsResponseDataItemsAttributes' id: - description: The `items` `id`. - example: '' + description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string meta: $ref: '#/components/schemas/AppMeta' relationships: $ref: '#/components/schemas/ListAppsResponseDataItemsRelationships' type: - $ref: '#/components/schemas/ListAppsResponseDataItemsType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type - attributes type: object ListAppsResponseDataItemsAttributes: - description: The definition of `ListAppsResponseDataItemsAttributes` object. + description: Basic information about the app such as name, description, and + tags. properties: description: - description: The `attributes` `description`. + description: A human-readable description for the app. type: string favorite: - description: The `attributes` `favorite`. + description: Whether the app is marked as a favorite by the current user. type: boolean name: - description: The `attributes` `name`. + description: The name of the app. type: string selfService: - description: The `attributes` `selfService`. + description: Whether the app is enabled for use in the Datadog self-service + hub. type: boolean tags: - description: The `attributes` `tags`. + description: A list of tags for the app, which can be used to filter apps. + example: + - service:webshop-backend + - team:webshop items: + description: An individual tag for the app. type: string type: array type: object ListAppsResponseDataItemsRelationships: - description: The definition of `ListAppsResponseDataItemsRelationships` object. + description: The app's publication information. properties: deployment: $ref: '#/components/schemas/DeploymentRelationship' type: object - ListAppsResponseDataItemsType: - default: appDefinitions - description: The definition of `ListAppsResponseDataItemsType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS ListAppsResponseMeta: - description: The definition of `ListAppsResponseMeta` object. + description: Pagination metadata. properties: page: $ref: '#/components/schemas/ListAppsResponseMetaPage' type: object ListAppsResponseMetaPage: - description: The definition of `ListAppsResponseMetaPage` object. + description: Information on the total number of apps, to be used for pagination. properties: totalCount: - description: The `page` `totalCount`. + description: The total number of apps under the Datadog organization, disregarding + any filters applied. format: int64 type: integer totalFilteredCount: - description: The `page` `totalFilteredCount`. + description: The total number of apps that match the specified filters. format: int64 type: integer type: object @@ -21079,24 +20860,34 @@ components: $ref: '#/components/schemas/Project' type: array type: object + PublishAppResponse: + description: The response object after an app is successfully published. + properties: + data: + $ref: '#/components/schemas/Deployment' + type: object Query: - description: The definition of `Query` object. + description: A query used by an app. This can take the form of an external action, + a data transformation, or a state variable change. properties: events: - description: The `Query` `events`. + description: Events to listen for downstream of the query. items: $ref: '#/components/schemas/AppBuilderEvent' type: array id: - description: The `Query` `id`. - example: '' + description: The ID of the query. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string name: - description: The `Query` `name`. + description: The name of the query. The name must be unique within the app + and is visible in the app editor. example: '' type: string properties: - description: The `Query` `properties`. + description: The properties of the query. The properties vary depending + on the query type. type: $ref: '#/components/schemas/QueryType' required: @@ -21128,7 +20919,7 @@ components: - ASC - DESC QueryType: - description: The definition of `QueryType` object. + description: The query type. enum: - action - stateVariable @@ -23945,44 +23736,6 @@ components: type: string x-enum-varnames: - SCORECARD - Script: - description: The definition of `Script` object. - properties: - data: - $ref: '#/components/schemas/ScriptData' - type: object - ScriptData: - description: The definition of `ScriptData` object. - properties: - attributes: - $ref: '#/components/schemas/ScriptDataAttributes' - id: - description: The `data` `id`. - type: string - type: - $ref: '#/components/schemas/ScriptDataType' - type: object - ScriptDataAttributes: - description: The definition of `ScriptDataAttributes` object. - properties: - name: - description: The `attributes` `name`. - type: string - src: - description: The `attributes` `src`. - type: string - type: - description: The `attributes` `type`. - type: string - type: object - ScriptDataType: - default: scripts - description: The definition of `ScriptDataType` object. - enum: - - scripts - type: string - x-enum-varnames: - - SCRIPTS SecurityFilter: description: The security filter's properties. properties: @@ -29696,6 +29449,12 @@ components: example: min type: string type: object + UnpublishAppResponse: + description: The response object after an app is successfully unpublished. + properties: + data: + $ref: '#/components/schemas/Deployment' + type: object UpdateActionConnectionRequest: description: Request used to update an action connection. properties: @@ -29711,7 +29470,7 @@ components: $ref: '#/components/schemas/ActionConnectionData' type: object UpdateAppRequest: - description: The definition of `UpdateAppRequest` object. + description: A request object for updating an existing app. example: data: attributes: @@ -29756,151 +29515,132 @@ components: $ref: '#/components/schemas/UpdateAppRequestData' type: object UpdateAppRequestData: - description: The definition of `UpdateAppRequestData` object. + description: The data object containing the new app definition. Any fields not + included in the request remain unchanged. properties: attributes: $ref: '#/components/schemas/UpdateAppRequestDataAttributes' id: - description: The `data` `id`. + description: The ID of the app to update. The app ID must match the ID in + the URL path. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/UpdateAppRequestDataType' + $ref: '#/components/schemas/AppDefinitionType' required: - type type: object UpdateAppRequestDataAttributes: - description: The definition of `UpdateAppRequestDataAttributes` object. + description: App definition attributes to be updated, such as name, description, + and components. properties: components: - description: The `attributes` `components`. + description: The new UI components that make up the app. If this field is + set, all existing components are replaced with the new components under + this field. items: $ref: '#/components/schemas/ComponentGrid' type: array description: - description: The `attributes` `description`. + description: The new human-readable description for the app. type: string embeddedQueries: - description: The `attributes` `embeddedQueries`. + description: The new array of queries, such as external actions and state + variables, that the app uses. If this field is set, all existing queries + are replaced with the new queries under this field. items: $ref: '#/components/schemas/Query' type: array - inputSchema: - $ref: '#/components/schemas/InputSchema' name: - description: The `attributes` `name`. + description: The new name of the app. type: string rootInstanceName: - description: The `attributes` `rootInstanceName`. + description: The new name of the root component of the app. This must be + a `grid` component that contains all other components. type: string - scripts: - description: The `attributes` `scripts`. - items: - $ref: '#/components/schemas/Script' - type: array tags: - description: The `attributes` `tags`. + description: The new list of tags for the app, which can be used to filter + apps. If this field is set, any existing tags not included in the request + are removed. + example: + - service:webshop-backend + - team:webshop items: + description: An individual tag for the app. type: string type: array type: object - UpdateAppRequestDataType: - default: appDefinitions - description: The definition of `UpdateAppRequestDataType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS UpdateAppResponse: - description: The definition of `UpdateAppResponse` object. + description: The response object after an app is successfully updated. properties: data: $ref: '#/components/schemas/UpdateAppResponseData' included: - description: The `UpdateAppResponse` `included`. + description: Data on the version of the app that was published. items: - $ref: '#/components/schemas/DeploymentIncluded' + $ref: '#/components/schemas/Deployment' type: array meta: $ref: '#/components/schemas/AppMeta' relationship: - $ref: '#/components/schemas/UpdateAppResponseRelationship' + $ref: '#/components/schemas/AppRelationship' type: object UpdateAppResponseData: - description: The definition of `UpdateAppResponseData` object. + description: The data object containing the updated app definition. properties: attributes: $ref: '#/components/schemas/UpdateAppResponseDataAttributes' id: - description: The `data` `id`. - example: '' + description: The ID of the updated app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid type: string type: - $ref: '#/components/schemas/UpdateAppResponseDataType' + $ref: '#/components/schemas/AppDefinitionType' required: - id - type - attributes type: object UpdateAppResponseDataAttributes: - description: The definition of `UpdateAppResponseDataAttributes` object. + description: The updated app definition attributes, such as name, description, + and components. properties: components: - description: The `attributes` `components`. + description: The UI components that make up the app. items: $ref: '#/components/schemas/ComponentGrid' type: array description: - description: The `attributes` `description`. + description: The human-readable description for the app. type: string embeddedQueries: - description: The `attributes` `embeddedQueries`. + description: An array of queries, such as external actions and state variables, + that the app uses. items: $ref: '#/components/schemas/Query' type: array favorite: - description: The `attributes` `favorite`. + description: Whether the app is marked as a favorite by the current user. type: boolean - inputSchema: - $ref: '#/components/schemas/InputSchema' name: - description: The `attributes` `name`. + description: The name of the app. type: string rootInstanceName: - description: The `attributes` `rootInstanceName`. + description: The name of the root component of the app. This must be a `grid` + component that contains all other components. type: string - scripts: - description: The `attributes` `scripts`. - items: - $ref: '#/components/schemas/Script' - type: array tags: - description: The `attributes` `tags`. + description: A list of tags for the app, which can be used to filter apps. + example: + - service:webshop-backend + - team:webshop items: + description: An individual tag for the app. type: string type: array type: object - UpdateAppResponseDataType: - default: appDefinitions - description: The definition of `UpdateAppResponseDataType` object. - enum: - - appDefinitions - example: appDefinitions - type: string - x-enum-varnames: - - APPDEFINITIONS - UpdateAppResponseRelationship: - description: The definition of `UpdateAppResponseRelationship` object. - properties: - connections: - description: The `relationship` `connections`. - items: - $ref: '#/components/schemas/CustomConnection' - type: array - deployment: - $ref: '#/components/schemas/DeploymentRelationship' - type: object UpdateOpenAPIResponse: description: Response for `UpdateOpenAPI`. properties: @@ -32248,7 +31988,7 @@ paths: - apm_pipelines_write /api/v2/app-builder/apps: delete: - description: Delete multiple apps by ID + description: Delete multiple apps in a single request from a list of app IDs. operationId: DeleteApps requestBody: content: @@ -32285,15 +32025,17 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' summary: Delete Multiple Apps tags: - - Apps + - App Builder x-permission: operator: OR permissions: - apps_write x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' get: - description: List all apps, with optional filters and sorting + description: List all apps, with optional filters and sorting. This endpoint + is paginated. Only basic app information such as the app ID, name, and description + is returned by this endpoint. operationId: ListApps parameters: - description: The number of apps to return per page. @@ -32317,6 +32059,7 @@ paths: schema: type: string - description: Filter apps by the app creator's UUID. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 in: query name: filter[user_uuid] required: false @@ -32392,15 +32135,15 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' summary: List Apps tags: - - Apps + - App Builder x-permission: operator: OR permissions: - apps_run x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' post: - description: Create a new app, returning the app ID + description: Create a new app, returning the app ID. operationId: CreateApp requestBody: content: @@ -32414,7 +32157,7 @@ paths: application/json: schema: $ref: '#/components/schemas/CreateAppResponse' - description: App Created + description: Created '400': content: application/json: @@ -32431,7 +32174,7 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' summary: Create App tags: - - Apps + - App Builder x-permission: operator: AND permissions: @@ -32439,16 +32182,19 @@ paths: - connections_resolve - workflows_run x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' /api/v2/app-builder/apps/{app_id}: delete: - description: Delete an app by ID + description: Delete a single app. operationId: DeleteApp parameters: - - in: path + - description: The ID of the app to delete. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path name: app_id required: true schema: + format: uuid type: string responses: '200': @@ -32485,23 +32231,30 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' summary: Delete App tags: - - Apps + - App Builder x-permission: operator: OR permissions: - apps_write x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' get: - description: Get the full definition of an app by ID + description: Get the full definition of an app. operationId: GetApp parameters: - - in: path + - description: The ID of the app to retrieve. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path name: app_id required: true schema: + format: uuid type: string - - in: query + - description: The version number of the app to retrieve. If not specified, + the latest version is returned. Version numbers start at 1 and increment + with each update. The special values `latest` and `deployed` can be used + to retrieve the latest version or the published version, respectively. + in: query name: version required: false schema: @@ -32535,22 +32288,25 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' summary: Get App tags: - - Apps + - App Builder x-permission: operator: AND permissions: - apps_run - connections_read x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' patch: - description: Update an existing app by ID. Creates a new version of the app + description: Update an existing app. This creates a new version of the app. operationId: UpdateApp parameters: - - in: path + - description: The ID of the app to update. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path name: app_id required: true schema: + format: uuid type: string requestBody: content: @@ -32581,7 +32337,7 @@ paths: $ref: '#/components/responses/TooManyRequestsResponse' summary: Update App tags: - - Apps + - App Builder x-permission: operator: AND permissions: @@ -32589,23 +32345,29 @@ paths: - connections_resolve - workflows_run x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' /api/v2/app-builder/apps/{app_id}/deployment: delete: - description: Disable an app by ID - operationId: DisableApp - parameters: - - in: path + description: Unpublish an app, removing the live version of the app. Unpublishing + creates a new instance of a `deployment` object on the app, with a nil `app_version_id` + (`00000000-0000-0000-0000-000000000000`). The app can still be updated and + published again in the future. + operationId: UnpublishApp + parameters: + - description: The ID of the app to unpublish. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path name: app_id required: true schema: + format: uuid type: string responses: '200': content: application/json: schema: - $ref: '#/components/schemas/DisableAppResponse' + $ref: '#/components/schemas/UnpublishAppResponse' description: OK '400': content: @@ -32627,30 +32389,35 @@ paths: description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Disable App + summary: Unpublish App tags: - - Apps + - App Builder x-permission: operator: OR permissions: - apps_write x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' post: - description: Deploy (publish) an app by ID - operationId: DeployApp + description: Publish an app for use by other users. To ensure the app is accessible + to the correct users, you also need to set a [Restriction Policy](https://docs.datadoghq.com/api/latest/restriction-policies/) + on the app if a policy does not yet exist. + operationId: PublishApp parameters: - - in: path + - description: The ID of the app to publish. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + in: path name: app_id required: true schema: + format: uuid type: string responses: '201': content: application/json: schema: - $ref: '#/components/schemas/DeployAppResponse' + $ref: '#/components/schemas/PublishAppResponse' description: Created '400': content: @@ -32672,15 +32439,15 @@ paths: description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Deploy App + summary: Publish App tags: - - Apps + - App Builder x-permission: operator: OR permissions: - apps_write x-unstable: '**Note**: App Builder API endpoints are still under active development - and may change at any time.' + and might change at any time.' /api/v2/application_keys: get: description: List all application keys available for your org @@ -49809,7 +49576,7 @@ tags: and integrate secure, customized applications into your monitoring stack that are built to accelerate remediation at scale. These API endpoints allow you to create, read, update, delete, and publish apps. - name: Apps + name: App Builder - description: Search your Audit Logs events over HTTP. name: Audit - description: '[The AuthN Mappings API](https://docs.datadoghq.com/account_management/authn_mapping/?tab=example) diff --git a/cassettes/features/v2/app_builder/Create-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/app_builder/Create-App-returns-Bad-Request-response.frozen new file mode 100644 index 000000000000..2887e18b7342 --- /dev/null +++ b/cassettes/features/v2/app_builder/Create-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:37.253Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml b/cassettes/features/v2/app_builder/Create-App-returns-Bad-Request-response.yml similarity index 74% rename from cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml rename to cassettes/features/v2/app_builder/Create-App-returns-Bad-Request-response.yml index b8068b2bb6a8..c9efb2a3874c 100644 --- a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/app_builder/Create-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: encoding: UTF-8 @@ -14,7 +14,8 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"missing required field","source":{"pointer":"/data/attributes/name"}}]}' + string: '{"errors":[{"title":"missing required field","detail":"missing required + field","source":{"pointer":"/data/attributes/name"}}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Create-App-returns-Created-response.frozen b/cassettes/features/v2/app_builder/Create-App-returns-Created-response.frozen new file mode 100644 index 000000000000..d601c8eb9509 --- /dev/null +++ b/cassettes/features/v2/app_builder/Create-App-returns-Created-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:37.369Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml b/cassettes/features/v2/app_builder/Create-App-returns-Created-response.yml similarity index 72% rename from cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml rename to cassettes/features/v2/app_builder/Create-App-returns-Created-response.yml index 6e52e504ccae..0a3909dc93f2 100644 --- a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml +++ b/cassettes/features/v2/app_builder/Create-App-returns-Created-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"calloutValue0","properties":{"isDisabled":false,"isLoading":false,"isVisible":true,"label":"CPU + string: '{"data":{"attributes":{"components":[{"events":[],"name":"grid0","properties":{"children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"calloutValue0","properties":{"isLoading":false,"isUnpublishd":false,"isVisible":true,"label":"CPU Usage","size":"sm","style":"vivid_yellow","unit":"kB","value":"42"},"type":"calloutValue"}],"isVisible":"true","layout":{"default":{"height":8,"width":2,"x":0,"y":0}}},"type":"gridCell"}]},"type":"grid"}],"description":"This is a simple example app","embeddedQueries":[],"name":"Example App","rootInstanceName":"grid0"},"type":"appDefinitions"}}' headers: @@ -16,25 +16,25 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"02c52f8c-78d9-4c14-ac27-b0bcac36ce74","type":"appDefinitions"}}' + string: '{"data":{"id":"4cbecc90-b8a4-49c4-9608-1a880d9d3de5","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/02c52f8c-78d9-4c14-ac27-b0bcac36ce74 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/4cbecc90-b8a4-49c4-9608-1a880d9d3de5 response: body: encoding: UTF-8 - string: '{"data":{"id":"02c52f8c-78d9-4c14-ac27-b0bcac36ce74","type":"appDefinitions"}}' + string: '{"data":{"id":"4cbecc90-b8a4-49c4-9608-1a880d9d3de5","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Delete-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Delete-App-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..e92ddd7d4b45 --- /dev/null +++ b/cassettes/features/v2/app_builder/Delete-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:37.755Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Delete-App-returns-Not-Found-response.yml similarity index 76% rename from cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml rename to cassettes/features/v2/app_builder/Delete-App-returns-Not-Found-response.yml index c319380ab04c..a88de333b8e6 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/app_builder/Delete-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: null headers: @@ -10,7 +10,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"app not found"}]}' + string: '{"errors":[{"title":"app not found","detail":"app not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Delete-App-returns-OK-response.frozen b/cassettes/features/v2/app_builder/Delete-App-returns-OK-response.frozen new file mode 100644 index 000000000000..b39282600f46 --- /dev/null +++ b/cassettes/features/v2/app_builder/Delete-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:37.852Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml b/cassettes/features/v2/app_builder/Delete-App-returns-OK-response.yml similarity index 72% rename from cassettes/features/v2/apps/Delete-App-returns-OK-response.yml rename to cassettes/features/v2/app_builder/Delete-App-returns-OK-response.yml index 681b5ee28cdf..773bc8322e0f 100644 --- a/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml +++ b/cassettes/features/v2/app_builder/Delete-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: encoding: UTF-8 @@ -16,43 +16,43 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"500bf715-77a5-4c1d-b4ef-0d181b071daf","type":"appDefinitions"}}' + string: '{"data":{"id":"1d01a77d-1251-42fb-ab67-c99edfb26970","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/500bf715-77a5-4c1d-b4ef-0d181b071daf + uri: https://api.datadoghq.com/api/v2/app-builder/apps/1d01a77d-1251-42fb-ab67-c99edfb26970 response: body: encoding: UTF-8 - string: '{"data":{"id":"500bf715-77a5-4c1d-b4ef-0d181b071daf","type":"appDefinitions"}}' + string: '{"data":{"id":"1d01a77d-1251-42fb-ab67-c99edfb26970","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:37 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/500bf715-77a5-4c1d-b4ef-0d181b071daf + uri: https://api.datadoghq.com/api/v2/app-builder/apps/1d01a77d-1251-42fb-ab67-c99edfb26970 response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"app not found"}]}' + string: '{"errors":[{"title":"app not found","detail":"app not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..a502e206a869 --- /dev/null +++ b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:38.331Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-Not-Found-response.yml similarity index 51% rename from cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml rename to cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-Not-Found-response.yml index 2862558fa8f5..d00db00ec7fe 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml +++ b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-Not-Found-response.yml @@ -1,9 +1,9 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: encoding: UTF-8 - string: '{"data":[{"id":"29494ddd-ac13-46a7-8558-b05b050ee755","type":"appDefinitions"},{"id":"71c0d358-eac5-41e3-892d-a7467571b9b0","type":"appDefinitions"},{"id":"98e7e44d-1562-474a-90f7-3a94e739c006","type":"appDefinitions"}]}' + string: '{"data":[{"id":"aea2ed17-b45f-40d0-ba59-c86b7972c901","type":"appDefinitions"},{"id":"f69bb8be-6168-4fe7-a30d-370256b6504a","type":"appDefinitions"},{"id":"ab1ed73e-13ad-4426-b0df-a0ff8876a088","type":"appDefinitions"}]}' headers: Accept: - application/json @@ -14,7 +14,8 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"one or more apps not found"}]}' + string: '{"errors":[{"title":"one or more apps not found","detail":"one or more + apps not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-OK-response.frozen b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-OK-response.frozen new file mode 100644 index 000000000000..0d90abf2676c --- /dev/null +++ b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-OK-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:38.424Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-OK-response.yml similarity index 73% rename from cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml rename to cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-OK-response.yml index cbfb9b76eeb6..53cf1eef780a 100644 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml +++ b/cassettes/features/v2/app_builder/Delete-Multiple-Apps-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: encoding: UTF-8 @@ -16,18 +16,18 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"884b37bc-71b8-40bc-8967-12684ec7f3c4","type":"appDefinitions"}}' + string: '{"data":{"id":"7b5a5fec-3026-47a9-acca-e01dc557af0a","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: encoding: UTF-8 - string: '{"data":[{"id":"884b37bc-71b8-40bc-8967-12684ec7f3c4","type":"appDefinitions"}]}' + string: '{"data":[{"id":"7b5a5fec-3026-47a9-acca-e01dc557af0a","type":"appDefinitions"}]}' headers: Accept: - application/json @@ -38,25 +38,25 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":[{"id":"884b37bc-71b8-40bc-8967-12684ec7f3c4","type":"appDefinitions"}]}' + string: '{"data":[{"id":"7b5a5fec-3026-47a9-acca-e01dc557af0a","type":"appDefinitions"}]}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/884b37bc-71b8-40bc-8967-12684ec7f3c4 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7b5a5fec-3026-47a9-acca-e01dc557af0a response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"app not found"}]}' + string: '{"errors":[{"title":"app not found","detail":"app not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Get-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Get-App-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..7cdb4f555830 --- /dev/null +++ b/cassettes/features/v2/app_builder/Get-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:38.801Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Get-App-returns-Not-Found-response.yml similarity index 76% rename from cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml rename to cassettes/features/v2/app_builder/Get-App-returns-Not-Found-response.yml index 17c83336b867..e24b61354997 100644 --- a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/app_builder/Get-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: null headers: @@ -10,7 +10,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"app not found"}]}' + string: '{"errors":[{"title":"app not found","detail":"app not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Get-App-returns-OK-response.frozen b/cassettes/features/v2/app_builder/Get-App-returns-OK-response.frozen new file mode 100644 index 000000000000..52d6e6be29ab --- /dev/null +++ b/cassettes/features/v2/app_builder/Get-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:38.890Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-OK-response.yml b/cassettes/features/v2/app_builder/Get-App-returns-OK-response.yml similarity index 75% rename from cassettes/features/v2/apps/Get-App-returns-OK-response.yml rename to cassettes/features/v2/app_builder/Get-App-returns-OK-response.yml index ab8e2f83eb9e..d22677eedc59 100644 --- a/cassettes/features/v2/apps/Get-App-returns-OK-response.yml +++ b/cassettes/features/v2/app_builder/Get-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: encoding: UTF-8 @@ -16,46 +16,46 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"e91c5ea9-5827-4008-b1e6-026d71f5c005","type":"appDefinitions"}}' + string: '{"data":{"id":"862d8836-4fa8-494c-8760-5555eab08dda","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: null headers: Accept: - application/json method: GET - uri: https://api.datadoghq.com/api/v2/app-builder/apps/e91c5ea9-5827-4008-b1e6-026d71f5c005 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/862d8836-4fa8-494c-8760-5555eab08dda response: body: encoding: UTF-8 - string: '{"data":{"id":"e91c5ea9-5827-4008-b1e6-026d71f5c005","type":"appDefinitions","attributes":{"components":[{"events":[],"name":"grid0","properties":{"children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"calloutValue0","properties":{"isDisabled":false,"isLoading":false,"isVisible":true,"label":"CPU + string: '{"data":{"id":"862d8836-4fa8-494c-8760-5555eab08dda","type":"appDefinitions","attributes":{"components":[{"events":[],"name":"grid0","properties":{"children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"calloutValue0","properties":{"isDisabled":false,"isLoading":false,"isVisible":true,"label":"CPU Usage","size":"sm","style":"vivid_yellow","unit":"kB","value":"42"},"type":"calloutValue"}],"isVisible":"true","layout":{"default":{"height":8,"width":2,"x":0,"y":0}}},"type":"gridCell"}]},"type":"grid"}],"description":"This is a simple example app","embeddedQueries":[],"favorite":false,"name":"Example - App","rootInstanceName":"grid0","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com","version":1,"updated_since_deployment":false,"created_at":"2024-12-20T20:39:21.945448Z","updated_at":"2024-12-20T20:39:21.945448Z","deleted_at":"0001-01-01T00:00:00Z"}}}' + App","rootInstanceName":"grid0","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com","version":1,"updated_since_deployment":false,"created_at":"2025-01-09T20:40:38.983288Z","updated_at":"2025-01-09T20:40:38.983288Z","deleted_at":"0001-01-01T00:00:00Z"}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:38 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/e91c5ea9-5827-4008-b1e6-026d71f5c005 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/862d8836-4fa8-494c-8760-5555eab08dda response: body: encoding: UTF-8 - string: '{"data":{"id":"e91c5ea9-5827-4008-b1e6-026d71f5c005","type":"appDefinitions"}}' + string: '{"data":{"id":"862d8836-4fa8-494c-8760-5555eab08dda","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/List-Apps-returns-OK-response.frozen b/cassettes/features/v2/app_builder/List-Apps-returns-OK-response.frozen new file mode 100644 index 000000000000..169b44731225 --- /dev/null +++ b/cassettes/features/v2/app_builder/List-Apps-returns-OK-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:39.352Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml b/cassettes/features/v2/app_builder/List-Apps-returns-OK-response.yml similarity index 63% rename from cassettes/features/v2/apps/List-Apps-returns-OK-response.yml rename to cassettes/features/v2/app_builder/List-Apps-returns-OK-response.yml index 9622ec2a958b..b35208630af8 100644 --- a/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml +++ b/cassettes/features/v2/app_builder/List-Apps-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:39 GMT request: body: null headers: @@ -10,9 +10,10 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":[{"id":"0cc51f70-6f90-406e-880b-e2fac88e823a","type":"appDefinitions","attributes":{"description":"","favorite":false,"name":"[synthetics] + string: '{"data":[{"id":"637107ff-d8af-4bc7-bf99-8b57e5ec6f5a","type":"appDefinitions","attributes":{"description":"","favorite":false,"name":"[synthetics] + app name 0123456789","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":7571471,"user_uuid":"01347f51-3fcd-11ef-95dd-a65df5ee2843","user_name":"01347f51-3fcd-11ef-95dd-a65df5ee2843","version":0,"updated_since_deployment":false,"created_at":"2024-12-29T15:23:59.7047Z","updated_at":"2024-12-29T15:23:59.957962Z","deleted_at":"0001-01-01T00:00:00Z"}},{"id":"0cc51f70-6f90-406e-880b-e2fac88e823a","type":"appDefinitions","attributes":{"description":"","favorite":false,"name":"[synthetics] app name 0123456789","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":7571471,"user_uuid":"01347f51-3fcd-11ef-95dd-a65df5ee2843","user_name":"01347f51-3fcd-11ef-95dd-a65df5ee2843","version":0,"updated_since_deployment":false,"created_at":"2024-12-18T11:48:55.89363Z","updated_at":"2024-12-18T11:48:55.89363Z","deleted_at":"0001-01-01T00:00:00Z"}},{"id":"d595693a-473d-4671-9da3-fce89e3a5c5d","type":"appDefinitions","attributes":{"description":"","favorite":false,"name":"Max''s - App Fri, Jul 12, 11:10:35 am","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":7571362,"user_uuid":"3114f3a0-3fc9-11ef-acbe-a6def6551924","user_name":"max.gale@datadoghq.com","version":0,"updated_since_deployment":false,"created_at":"2024-07-12T15:10:48.690305Z","updated_at":"2024-07-12T15:10:48.690305Z","deleted_at":"0001-01-01T00:00:00Z"}}],"meta":{"page":{"totalCount":2,"totalFilteredCount":2}}}' + App Fri, Jul 12, 11:10:35 am","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":7571362,"user_uuid":"3114f3a0-3fc9-11ef-acbe-a6def6551924","user_name":"max.gale@datadoghq.com","version":0,"updated_since_deployment":false,"created_at":"2024-07-12T15:10:48.690305Z","updated_at":"2024-07-12T15:10:48.690305Z","deleted_at":"0001-01-01T00:00:00Z"}}],"meta":{"page":{"totalCount":3,"totalFilteredCount":3}}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Publish-App-returns-Created-response.frozen b/cassettes/features/v2/app_builder/Publish-App-returns-Created-response.frozen new file mode 100644 index 000000000000..ee1be7694282 --- /dev/null +++ b/cassettes/features/v2/app_builder/Publish-App-returns-Created-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:39.474Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Created-response.yml b/cassettes/features/v2/app_builder/Publish-App-returns-Created-response.yml similarity index 67% rename from cassettes/features/v2/apps/Deploy-App-returns-Created-response.yml rename to cassettes/features/v2/app_builder/Publish-App-returns-Created-response.yml index 2e35b9703f42..664dac0dfaf7 100644 --- a/cassettes/features/v2/apps/Deploy-App-returns-Created-response.yml +++ b/cassettes/features/v2/app_builder/Publish-App-returns-Created-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:39 GMT request: body: encoding: UTF-8 @@ -16,43 +16,43 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"290ad26d-6f5c-43b6-aef6-57b403d755e8","type":"appDefinitions"}}' + string: '{"data":{"id":"f33cfd55-b517-4c29-862b-45c99742ed0e","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:39 GMT request: body: null headers: Accept: - application/json method: POST - uri: https://api.datadoghq.com/api/v2/app-builder/apps/290ad26d-6f5c-43b6-aef6-57b403d755e8/deployment + uri: https://api.datadoghq.com/api/v2/app-builder/apps/f33cfd55-b517-4c29-862b-45c99742ed0e/deployment response: body: encoding: UTF-8 - string: '{"data":{"id":"74a4bbff-b587-4272-a207-b61678cc0bf1","type":"deployment","attributes":{"app_version_id":"ab334928-2df5-4e6e-8e40-9eeee2b2cd44"},"meta":{"created_at":"2024-12-20T20:39:20.594723Z","user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com"}}}' + string: '{"data":{"id":"01087e5d-de82-4a28-bf05-d2e66ec4ed44","type":"deployment","attributes":{"app_version_id":"f638f430-5534-447f-85c8-860693539ff6"},"meta":{"created_at":"2025-01-09T20:40:39.764785Z","user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com"}}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:39 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/290ad26d-6f5c-43b6-aef6-57b403d755e8 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/f33cfd55-b517-4c29-862b-45c99742ed0e response: body: encoding: UTF-8 - string: '{"data":{"id":"290ad26d-6f5c-43b6-aef6-57b403d755e8","type":"appDefinitions"}}' + string: '{"data":{"id":"f33cfd55-b517-4c29-862b-45c99742ed0e","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Publish-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Publish-App-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..3a40add39a6f --- /dev/null +++ b/cassettes/features/v2/app_builder/Publish-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:39.992Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Publish-App-returns-Not-Found-response.yml similarity index 76% rename from cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.yml rename to cassettes/features/v2/app_builder/Publish-App-returns-Not-Found-response.yml index 241cc900eb3d..6d99479d4d69 100644 --- a/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/app_builder/Publish-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:39 GMT request: body: null headers: @@ -10,7 +10,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"app not found"}]}' + string: '{"errors":[{"title":"app not found","detail":"app not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Unpublish-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_builder/Unpublish-App-returns-Not-Found-response.frozen new file mode 100644 index 000000000000..89158226aa37 --- /dev/null +++ b/cassettes/features/v2/app_builder/Unpublish-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:40.084Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_builder/Unpublish-App-returns-Not-Found-response.yml similarity index 76% rename from cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.yml rename to cassettes/features/v2/app_builder/Unpublish-App-returns-Not-Found-response.yml index 5b801e25288c..a5fd9ad43e07 100644 --- a/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.yml +++ b/cassettes/features/v2/app_builder/Unpublish-App-returns-Not-Found-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: null headers: @@ -10,7 +10,7 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"app not found"}]}' + string: '{"errors":[{"title":"app not found","detail":"app not found"}]}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Unpublish-App-returns-OK-response.frozen b/cassettes/features/v2/app_builder/Unpublish-App-returns-OK-response.frozen new file mode 100644 index 000000000000..7caa9400c89b --- /dev/null +++ b/cassettes/features/v2/app_builder/Unpublish-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:40.161Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Disable-App-returns-OK-response.yml b/cassettes/features/v2/app_builder/Unpublish-App-returns-OK-response.yml similarity index 67% rename from cassettes/features/v2/apps/Disable-App-returns-OK-response.yml rename to cassettes/features/v2/app_builder/Unpublish-App-returns-OK-response.yml index ee7aba0ea360..9d9326852c43 100644 --- a/cassettes/features/v2/apps/Disable-App-returns-OK-response.yml +++ b/cassettes/features/v2/app_builder/Unpublish-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: encoding: UTF-8 @@ -16,43 +16,43 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5","type":"appDefinitions"}}' + string: '{"data":{"id":"5a291e81-8d65-4404-a700-2c3d46b1da47","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5/deployment + uri: https://api.datadoghq.com/api/v2/app-builder/apps/5a291e81-8d65-4404-a700-2c3d46b1da47/deployment response: body: encoding: UTF-8 - string: '{"data":{"id":"1c14f2b9-0161-4dac-ad44-b8dd84abcbe6","type":"deployment","attributes":{"app_version_id":"00000000-0000-0000-0000-000000000000"},"meta":{"created_at":"2024-12-20T20:39:21.490485Z","user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com"}}}' + string: '{"data":{"id":"8c318f17-b117-4ea5-b01d-b02db78134bb","type":"deployment","attributes":{"app_version_id":"00000000-0000-0000-0000-000000000000"},"meta":{"created_at":"2025-01-09T20:40:40.464096Z","user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com"}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/5a291e81-8d65-4404-a700-2c3d46b1da47 response: body: encoding: UTF-8 - string: '{"data":{"id":"cfe9f7bc-e6e6-44e2-9d30-19b03ab871b5","type":"appDefinitions"}}' + string: '{"data":{"id":"5a291e81-8d65-4404-a700-2c3d46b1da47","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Update-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/app_builder/Update-App-returns-Bad-Request-response.frozen new file mode 100644 index 000000000000..67b5e984d6c4 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:40.664Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml b/cassettes/features/v2/app_builder/Update-App-returns-Bad-Request-response.yml similarity index 69% rename from cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml rename to cassettes/features/v2/app_builder/Update-App-returns-Bad-Request-response.yml index 57c1081567ee..338d7da1a578 100644 --- a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml +++ b/cassettes/features/v2/app_builder/Update-App-returns-Bad-Request-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: encoding: UTF-8 @@ -16,47 +16,48 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"2eb79081-77f2-4082-93d5-fbb4d2291dc7","type":"appDefinitions"}}' + string: '{"data":{"id":"b3f997e6-a9db-4984-a560-23005049c5f3","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"rootInstanceName":""},"id":"2eb79081-77f2-4082-93d5-fbb4d2291dc7","type":"appDefinitions"}}' + string: '{"data":{"attributes":{"rootInstanceName":""},"id":"b3f997e6-a9db-4984-a560-23005049c5f3","type":"appDefinitions"}}' headers: Accept: - application/json Content-Type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/app-builder/apps/2eb79081-77f2-4082-93d5-fbb4d2291dc7 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/b3f997e6-a9db-4984-a560-23005049c5f3 response: body: encoding: UTF-8 - string: '{"errors":[{"detail":"missing required field","source":{"pointer":"/data/attributes/rootInstanceName"}}]}' + string: '{"errors":[{"title":"missing required field","detail":"missing required + field","source":{"pointer":"/data/attributes/rootInstanceName"}}]}' headers: Content-Type: - application/vnd.api+json status: code: 400 message: Bad Request -- recorded_at: Fri, 20 Dec 2024 20:39:22 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:40 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/2eb79081-77f2-4082-93d5-fbb4d2291dc7 + uri: https://api.datadoghq.com/api/v2/app-builder/apps/b3f997e6-a9db-4984-a560-23005049c5f3 response: body: encoding: UTF-8 - string: '{"data":{"id":"2eb79081-77f2-4082-93d5-fbb4d2291dc7","type":"appDefinitions"}}' + string: '{"data":{"id":"b3f997e6-a9db-4984-a560-23005049c5f3","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/app_builder/Update-App-returns-OK-response.frozen b/cassettes/features/v2/app_builder/Update-App-returns-OK-response.frozen new file mode 100644 index 000000000000..920baa8fa2d1 --- /dev/null +++ b/cassettes/features/v2/app_builder/Update-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2025-01-09T20:40:41.221Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-OK-response.yml b/cassettes/features/v2/app_builder/Update-App-returns-OK-response.yml similarity index 74% rename from cassettes/features/v2/apps/Update-App-returns-OK-response.yml rename to cassettes/features/v2/app_builder/Update-App-returns-OK-response.yml index cab9a9202a6b..3e39d156f201 100644 --- a/cassettes/features/v2/apps/Update-App-returns-OK-response.yml +++ b/cassettes/features/v2/app_builder/Update-App-returns-OK-response.yml @@ -1,5 +1,5 @@ http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:23 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:41 GMT request: body: encoding: UTF-8 @@ -16,50 +16,50 @@ http_interactions: response: body: encoding: UTF-8 - string: '{"data":{"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions"}}' + string: '{"data":{"id":"b5820444-b12a-48d2-9cf2-231d6a3e8858","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json status: code: 201 message: Created -- recorded_at: Fri, 20 Dec 2024 20:39:23 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:41 GMT request: body: encoding: UTF-8 - string: '{"data":{"attributes":{"name":"Updated Name","rootInstanceName":"grid0"},"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions"}}' + string: '{"data":{"attributes":{"name":"Updated Name","rootInstanceName":"grid0"},"id":"b5820444-b12a-48d2-9cf2-231d6a3e8858","type":"appDefinitions"}}' headers: Accept: - application/json Content-Type: - application/json method: PATCH - uri: https://api.datadoghq.com/api/v2/app-builder/apps/22653158-3691-4a09-bbd9-f4197f14dd0c + uri: https://api.datadoghq.com/api/v2/app-builder/apps/b5820444-b12a-48d2-9cf2-231d6a3e8858 response: body: encoding: UTF-8 - string: '{"data":{"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions","attributes":{"components":[{"events":[],"name":"grid0","properties":{"children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"calloutValue0","properties":{"isDisabled":false,"isLoading":false,"isVisible":true,"label":"CPU + string: '{"data":{"id":"b5820444-b12a-48d2-9cf2-231d6a3e8858","type":"appDefinitions","attributes":{"components":[{"events":[],"name":"grid0","properties":{"children":[{"events":[],"name":"gridCell0","properties":{"children":[{"events":[],"name":"calloutValue0","properties":{"isDisabled":false,"isLoading":false,"isVisible":true,"label":"CPU Usage","size":"sm","style":"vivid_yellow","unit":"kB","value":"42"},"type":"calloutValue"}],"isVisible":"true","layout":{"default":{"height":8,"width":2,"x":0,"y":0}}},"type":"gridCell"}]},"type":"grid"}],"description":"This is a simple example app","embeddedQueries":[],"favorite":false,"name":"Updated - Name","rootInstanceName":"grid0","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com","version":2,"updated_since_deployment":false,"created_at":"2024-12-20T20:39:23.117622Z","updated_at":"2024-12-20T20:39:23.317526Z","deleted_at":"0001-01-01T00:00:00Z"}}}' + Name","rootInstanceName":"grid0","selfService":false,"tags":[]},"meta":{"org_id":1107852,"user_id":15479137,"user_uuid":"b3f98453-b289-11ef-a4e9-d6d283f92d91","user_name":"oliver.li@datadoghq.com","version":2,"updated_since_deployment":false,"created_at":"2025-01-09T20:40:41.309534Z","updated_at":"2025-01-09T20:40:41.499741Z","deleted_at":"0001-01-01T00:00:00Z"}}}' headers: Content-Type: - application/vnd.api+json status: code: 200 message: OK -- recorded_at: Fri, 20 Dec 2024 20:39:23 GMT +- recorded_at: Thu, 09 Jan 2025 20:40:41 GMT request: body: null headers: Accept: - application/json method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/22653158-3691-4a09-bbd9-f4197f14dd0c + uri: https://api.datadoghq.com/api/v2/app-builder/apps/b5820444-b12a-48d2-9cf2-231d6a3e8858 response: body: encoding: UTF-8 - string: '{"data":{"id":"22653158-3691-4a09-bbd9-f4197f14dd0c","type":"appDefinitions"}}' + string: '{"data":{"id":"b5820444-b12a-48d2-9cf2-231d6a3e8858","type":"appDefinitions"}}' headers: Content-Type: - application/vnd.api+json diff --git a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen deleted file mode 100644 index a188f565172a..000000000000 --- a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:18.375Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen deleted file mode 100644 index 6bab6b517746..000000000000 --- a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:18.779Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen deleted file mode 100644 index f2fcc286e7ea..000000000000 --- a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:18.880Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml deleted file mode 100644 index 1cb0dd924d59..000000000000 --- a/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml +++ /dev/null @@ -1,20 +0,0 @@ -http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:18 GMT - request: - body: null - headers: - Accept: - - application/json - method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/bad-app-id - response: - body: - encoding: UTF-8 - string: '{"errors":[{"detail":"invalid path parameter","source":{"parameter":"appId"}}]}' - headers: - Content-Type: - - application/vnd.api+json - status: - code: 400 - message: Bad Request -recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen deleted file mode 100644 index fb9dd880bf6e..000000000000 --- a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:18.985Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen deleted file mode 100644 index 744eafd50164..000000000000 --- a/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:19.083Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen deleted file mode 100644 index c2c122a9a5cb..000000000000 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:19.594Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml deleted file mode 100644 index 2bfa8d54ed6f..000000000000 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml +++ /dev/null @@ -1,25 +0,0 @@ -http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:19 GMT - request: - body: - encoding: UTF-8 - string: '{"data":[{"id":"71c0d358-eac5-41e3-892d-a7467571b9b","type":"appDefinitions"},{"id":"71c0d358-eac5-41e3-892d-a7467571b9b0","type":"appDefinitions"},{"id":"98e7e44d-1562-474a-90f7-3a94e739c006","type":"appDefinitions"}]}' - headers: - Accept: - - application/json - Content-Type: - - application/json - method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps - response: - body: - encoding: UTF-8 - string: '{"errors":[{"status":"400","title":"Bad Request","detail":"invalid - UUID length: 35"}]}' - headers: - Content-Type: - - application/vnd.api+json - status: - code: 400 - message: Bad Request -recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen deleted file mode 100644 index 7d397ad29fe9..000000000000 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:19.688Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen deleted file mode 100644 index d2346be1daa0..000000000000 --- a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:19.785Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.frozen deleted file mode 100644 index 3f65923d0af9..000000000000 --- a/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:20.190Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.yml deleted file mode 100644 index 4ee6d51d4856..000000000000 --- a/cassettes/features/v2/apps/Deploy-App-returns-Bad-Request-response.yml +++ /dev/null @@ -1,20 +0,0 @@ -http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:20 GMT - request: - body: null - headers: - Accept: - - application/json - method: POST - uri: https://api.datadoghq.com/api/v2/app-builder/apps/invalid-uuid/deployment - response: - body: - encoding: UTF-8 - string: '{"errors":[{"detail":"invalid path parameter","source":{"parameter":"appId"}}]}' - headers: - Content-Type: - - application/vnd.api+json - status: - code: 400 - message: Bad Request -recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Created-response.frozen b/cassettes/features/v2/apps/Deploy-App-returns-Created-response.frozen deleted file mode 100644 index 2c4a1170293a..000000000000 --- a/cassettes/features/v2/apps/Deploy-App-returns-Created-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:20.292Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.frozen deleted file mode 100644 index f8f8e8f26927..000000000000 --- a/cassettes/features/v2/apps/Deploy-App-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:20.929Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.frozen deleted file mode 100644 index afd2bf6b9f82..000000000000 --- a/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:21.034Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.yml deleted file mode 100644 index 0351474fb7ed..000000000000 --- a/cassettes/features/v2/apps/Disable-App-returns-Bad-Request-response.yml +++ /dev/null @@ -1,20 +0,0 @@ -http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT - request: - body: null - headers: - Accept: - - application/json - method: DELETE - uri: https://api.datadoghq.com/api/v2/app-builder/apps/invalid-uuid/deployment - response: - body: - encoding: UTF-8 - string: '{"errors":[{"detail":"invalid path parameter","source":{"parameter":"appId"}}]}' - headers: - Content-Type: - - application/vnd.api+json - status: - code: 400 - message: Bad Request -recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.frozen deleted file mode 100644 index 7332f6001324..000000000000 --- a/cassettes/features/v2/apps/Disable-App-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:21.129Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Disable-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Disable-App-returns-OK-response.frozen deleted file mode 100644 index 672904fce269..000000000000 --- a/cassettes/features/v2/apps/Disable-App-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:21.230Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen deleted file mode 100644 index 8251b6eaf66d..000000000000 --- a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:21.680Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml deleted file mode 100644 index 8e0396ba476c..000000000000 --- a/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml +++ /dev/null @@ -1,20 +0,0 @@ -http_interactions: -- recorded_at: Fri, 20 Dec 2024 20:39:21 GMT - request: - body: null - headers: - Accept: - - application/json - method: GET - uri: https://api.datadoghq.com/api/v2/app-builder/apps/invalid-uuid - response: - body: - encoding: UTF-8 - string: '{"errors":[{"detail":"invalid path parameter","source":{"parameter":"appId"}}]}' - headers: - Content-Type: - - application/vnd.api+json - status: - code: 400 - message: Bad Request -recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen deleted file mode 100644 index 8bd6f7561c50..000000000000 --- a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:21.762Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen deleted file mode 100644 index e407ffe5d622..000000000000 --- a/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:21.868Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen b/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen deleted file mode 100644 index b459860c38ed..000000000000 --- a/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:22.419Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen deleted file mode 100644 index fd24ecdb585a..000000000000 --- a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:22.549Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen deleted file mode 100644 index b873204c5afb..000000000000 --- a/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen +++ /dev/null @@ -1 +0,0 @@ -2024-12-20T20:39:23.050Z \ No newline at end of file diff --git a/examples/v2/apps/CreateApp.rb b/examples/v2/app-builder/CreateApp.rb similarity index 90% rename from examples/v2/apps/CreateApp.rb rename to examples/v2/app-builder/CreateApp.rb index c06d2b4dd397..a921cf9f9099 100644 --- a/examples/v2/apps/CreateApp.rb +++ b/examples/v2/app-builder/CreateApp.rb @@ -1,10 +1,10 @@ -# Create App returns "App Created" response +# Create App returns "Created" response require "datadog_api_client" DatadogAPIClient.configure do |config| config.unstable_operations["v2.create_app".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppsAPI.new +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new body = DatadogAPIClient::V2::CreateAppRequest.new({ data: DatadogAPIClient::V2::CreateAppRequestData.new({ @@ -43,7 +43,7 @@ name: "Example App", root_instance_name: "grid0", }), - type: DatadogAPIClient::V2::CreateAppRequestDataType::APPDEFINITIONS, + type: DatadogAPIClient::V2::AppDefinitionType::APPDEFINITIONS, }), }) p api_instance.create_app(body) diff --git a/examples/v2/apps/DeleteApp.rb b/examples/v2/app-builder/DeleteApp.rb similarity index 83% rename from examples/v2/apps/DeleteApp.rb rename to examples/v2/app-builder/DeleteApp.rb index 10ad1838c7ec..0befa6fe7dfa 100644 --- a/examples/v2/apps/DeleteApp.rb +++ b/examples/v2/app-builder/DeleteApp.rb @@ -4,7 +4,7 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.delete_app".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppsAPI.new +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new # there is a valid "app" in the system APP_DATA_ID = ENV["APP_DATA_ID"] diff --git a/examples/v2/apps/DeleteApps.rb b/examples/v2/app-builder/DeleteApps.rb similarity index 77% rename from examples/v2/apps/DeleteApps.rb rename to examples/v2/app-builder/DeleteApps.rb index 7f7a939d35fc..71075dbe2dc0 100644 --- a/examples/v2/apps/DeleteApps.rb +++ b/examples/v2/app-builder/DeleteApps.rb @@ -4,7 +4,7 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.delete_apps".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppsAPI.new +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new # there is a valid "app" in the system APP_DATA_ID = ENV["APP_DATA_ID"] @@ -13,7 +13,7 @@ data: [ DatadogAPIClient::V2::DeleteAppsRequestDataItems.new({ id: APP_DATA_ID, - type: DatadogAPIClient::V2::DeleteAppsRequestDataItemsType::APPDEFINITIONS, + type: DatadogAPIClient::V2::AppDefinitionType::APPDEFINITIONS, }), ], }) diff --git a/examples/v2/apps/GetApp.rb b/examples/v2/app-builder/GetApp.rb similarity index 83% rename from examples/v2/apps/GetApp.rb rename to examples/v2/app-builder/GetApp.rb index bddd371f073b..6221b18e781d 100644 --- a/examples/v2/apps/GetApp.rb +++ b/examples/v2/app-builder/GetApp.rb @@ -4,7 +4,7 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.get_app".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppsAPI.new +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new # there is a valid "app" in the system APP_DATA_ID = ENV["APP_DATA_ID"] diff --git a/examples/v2/apps/ListApps.rb b/examples/v2/app-builder/ListApps.rb similarity index 77% rename from examples/v2/apps/ListApps.rb rename to examples/v2/app-builder/ListApps.rb index a6eddc229696..f6f3a136cee7 100644 --- a/examples/v2/apps/ListApps.rb +++ b/examples/v2/app-builder/ListApps.rb @@ -4,5 +4,5 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.list_apps".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppsAPI.new +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new p api_instance.list_apps() diff --git a/examples/v2/app-builder/PublishApp.rb b/examples/v2/app-builder/PublishApp.rb new file mode 100644 index 000000000000..f3f92acf5558 --- /dev/null +++ b/examples/v2/app-builder/PublishApp.rb @@ -0,0 +1,11 @@ +# Publish App returns "Created" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.publish_app".to_sym] = true +end +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new + +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] +p api_instance.publish_app(APP_DATA_ID) diff --git a/examples/v2/app-builder/UnpublishApp.rb b/examples/v2/app-builder/UnpublishApp.rb new file mode 100644 index 000000000000..dbe4ea5617a1 --- /dev/null +++ b/examples/v2/app-builder/UnpublishApp.rb @@ -0,0 +1,11 @@ +# Unpublish App returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.unpublish_app".to_sym] = true +end +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new + +# there is a valid "app" in the system +APP_DATA_ID = ENV["APP_DATA_ID"] +p api_instance.unpublish_app(APP_DATA_ID) diff --git a/examples/v2/apps/UpdateApp.rb b/examples/v2/app-builder/UpdateApp.rb similarity index 82% rename from examples/v2/apps/UpdateApp.rb rename to examples/v2/app-builder/UpdateApp.rb index a754ab5d3902..ed4e00b13f6f 100644 --- a/examples/v2/apps/UpdateApp.rb +++ b/examples/v2/app-builder/UpdateApp.rb @@ -4,7 +4,7 @@ DatadogAPIClient.configure do |config| config.unstable_operations["v2.update_app".to_sym] = true end -api_instance = DatadogAPIClient::V2::AppsAPI.new +api_instance = DatadogAPIClient::V2::AppBuilderAPI.new # there is a valid "app" in the system APP_DATA_ID = ENV["APP_DATA_ID"] @@ -16,7 +16,7 @@ root_instance_name: "grid0", }), id: APP_DATA_ID, - type: DatadogAPIClient::V2::UpdateAppRequestDataType::APPDEFINITIONS, + type: DatadogAPIClient::V2::AppDefinitionType::APPDEFINITIONS, }), }) p api_instance.update_app(APP_DATA_ID, body) diff --git a/examples/v2/apps/DeployApp.rb b/examples/v2/apps/DeployApp.rb deleted file mode 100644 index 553f9c547285..000000000000 --- a/examples/v2/apps/DeployApp.rb +++ /dev/null @@ -1,11 +0,0 @@ -# Deploy App returns "Created" response - -require "datadog_api_client" -DatadogAPIClient.configure do |config| - config.unstable_operations["v2.deploy_app".to_sym] = true -end -api_instance = DatadogAPIClient::V2::AppsAPI.new - -# there is a valid "app" in the system -APP_DATA_ID = ENV["APP_DATA_ID"] -p api_instance.deploy_app(APP_DATA_ID) diff --git a/examples/v2/apps/DisableApp.rb b/examples/v2/apps/DisableApp.rb deleted file mode 100644 index 1f1ee733aa9a..000000000000 --- a/examples/v2/apps/DisableApp.rb +++ /dev/null @@ -1,11 +0,0 @@ -# Disable App returns "OK" response - -require "datadog_api_client" -DatadogAPIClient.configure do |config| - config.unstable_operations["v2.disable_app".to_sym] = true -end -api_instance = DatadogAPIClient::V2::AppsAPI.new - -# there is a valid "app" in the system -APP_DATA_ID = ENV["APP_DATA_ID"] -p api_instance.disable_app(APP_DATA_ID) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index f67b3e6f3df9..bc8c9014d4cb 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -976,21 +976,21 @@ "body" => "CreateAppRequest", }, "v2.DeleteApp" => { - "app_id" => "String", + "app_id" => "UUID", }, "v2.GetApp" => { - "app_id" => "String", + "app_id" => "UUID", "version" => "String", }, "v2.UpdateApp" => { - "app_id" => "String", + "app_id" => "UUID", "body" => "UpdateAppRequest", }, - "v2.DisableApp" => { - "app_id" => "String", + "v2.UnpublishApp" => { + "app_id" => "UUID", }, - "v2.DeployApp" => { - "app_id" => "String", + "v2.PublishApp" => { + "app_id" => "UUID", }, "v2.ListAuditLogs" => { "filter_query" => "String", diff --git a/features/v2/apps.feature b/features/v2/app_builder.feature similarity index 77% rename from features/v2/apps.feature rename to features/v2/app_builder.feature index 1bed411c3113..e0385bdb8328 100644 --- a/features/v2/apps.feature +++ b/features/v2/app_builder.feature @@ -1,5 +1,5 @@ -@endpoint(apps) @endpoint(apps-v2) -Feature: Apps +@endpoint(app-builder) @endpoint(app-builder-v2) +Feature: App Builder Datadog App Builder provides a low-code solution to rapidly develop and integrate secure, customized applications into your monitoring stack that are built to accelerate remediation at scale. These API endpoints allow @@ -8,16 +8,7 @@ Feature: Apps Background: Given a valid "apiKeyAuth" key in the system And a valid "appKeyAuth" key in the system - And an instance of "Apps" API - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Create App returns "App Created" response - Given operation "CreateApp" enabled - And new "CreateApp" request - And body with value {"data": {"attributes": {"components": [{"events": [], "name": "grid0", "properties": {"children": [{"events": [], "name": "gridCell0", "properties": {"children": [{"events": [], "name": "calloutValue0", "properties": {"isVisible": true, "isDisabled": false, "isLoading": false, "label": "CPU Usage", "size": "sm", "style": "vivid_yellow", "unit": "kB", "value": "42"}, "type": "calloutValue"}], "isVisible": "true", "layout": {"default": {"height": 8, "width": 2, "x": 0, "y": 0}}}, "type": "gridCell"}]}, "type": "grid"}], "description": "This is a simple example app", "embeddedQueries": [], "name": "Example App", "rootInstanceName": "grid0"}, "type": "appDefinitions"}} - When the request is sent - Then the response status is 201 App Created - And the response "data.type" is equal to "appDefinitions" + And an instance of "AppBuilder" API @skip-typescript @team:DataDog/app-builder-backend Scenario: Create App returns "Bad Request" response @@ -30,6 +21,15 @@ Feature: Apps And the response "errors[0].detail" is equal to "missing required field" @skip-typescript @team:DataDog/app-builder-backend + Scenario: Create App returns "Created" response + Given operation "CreateApp" enabled + And new "CreateApp" request + And body with value {"data": {"attributes": {"components": [{"events": [], "name": "grid0", "properties": {"children": [{"events": [], "name": "gridCell0", "properties": {"children": [{"events": [], "name": "calloutValue0", "properties": {"isVisible": true, "isUnpublishd": false, "isLoading": false, "label": "CPU Usage", "size": "sm", "style": "vivid_yellow", "unit": "kB", "value": "42"}, "type": "calloutValue"}], "isVisible": "true", "layout": {"default": {"height": 8, "width": 2, "x": 0, "y": 0}}}, "type": "gridCell"}]}, "type": "grid"}], "description": "This is a simple example app", "embeddedQueries": [], "name": "Example App", "rootInstanceName": "grid0"}, "type": "appDefinitions"}} + When the request is sent + Then the response status is 201 Created + And the response "data.type" is equal to "appDefinitions" + + @skip @team:DataDog/app-builder-backend Scenario: Delete App returns "Bad Request" response Given operation "DeleteApp" enabled And new "DeleteApp" request @@ -37,11 +37,11 @@ Feature: Apps When the request is sent Then the response status is 400 Bad Request - @generated @skip @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Delete App returns "Gone" response Given operation "DeleteApp" enabled And new "DeleteApp" request - And request contains "app_id" parameter from "REPLACE.ME" + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" When the request is sent Then the response status is 410 Gone @@ -64,11 +64,11 @@ Feature: Apps And the response "data.id" has the same value as "app.data.id" And the response "data.type" is equal to "appDefinitions" - @skip-typescript @team:DataDog/app-builder-backend + @generated @skip @team:DataDog/app-builder-backend Scenario: Delete Multiple Apps returns "Bad Request" response Given operation "DeleteApps" enabled And new "DeleteApps" request - And body with value {"data": [{"id": "71c0d358-eac5-41e3-892d-a7467571b9b", "type": "appDefinitions"}, {"id": "71c0d358-eac5-41e3-892d-a7467571b9b0", "type": "appDefinitions"}, {"id": "98e7e44d-1562-474a-90f7-3a94e739c006", "type": "appDefinitions"}]} + And body with value {"data": [{"id": "aea2ed17-b45f-40d0-ba59-c86b7972c901", "type": "appDefinitions"}, {"id": "f69bb8be-6168-4fe7-a30d-370256b6504a", "type": "appDefinitions"}, {"id": "ab1ed73e-13ad-4426-b0df-a0ff8876a088", "type": "appDefinitions"}]} When the request is sent Then the response status is 400 Bad Request @@ -76,7 +76,7 @@ Feature: Apps Scenario: Delete Multiple Apps returns "Not Found" response Given operation "DeleteApps" enabled And new "DeleteApps" request - And body with value {"data": [{"id": "29494ddd-ac13-46a7-8558-b05b050ee755", "type": "appDefinitions"}, {"id": "71c0d358-eac5-41e3-892d-a7467571b9b0", "type": "appDefinitions"}, {"id": "98e7e44d-1562-474a-90f7-3a94e739c006", "type": "appDefinitions"}]} + And body with value {"data": [{"id": "aea2ed17-b45f-40d0-ba59-c86b7972c901", "type": "appDefinitions"}, {"id": "f69bb8be-6168-4fe7-a30d-370256b6504a", "type": "appDefinitions"}, {"id": "ab1ed73e-13ad-4426-b0df-a0ff8876a088", "type": "appDefinitions"}]} When the request is sent Then the response status is 404 Not Found @@ -91,57 +91,7 @@ Feature: Apps And the response "data" has length 1 And the response "data[0].id" has the same value as "app.data.id" - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Deploy App returns "Bad Request" response - Given operation "DeployApp" enabled - And new "DeployApp" request - And request contains "app_id" parameter with value "invalid-uuid" - When the request is sent - Then the response status is 400 Bad Request - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Deploy App returns "Created" response - Given operation "DeployApp" enabled - And new "DeployApp" request - And there is a valid "app" in the system - And request contains "app_id" parameter from "app.data.id" - When the request is sent - Then the response status is 201 Created - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Deploy App returns "Not Found" response - Given operation "DeployApp" enabled - And new "DeployApp" request - And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" - When the request is sent - Then the response status is 404 Not Found - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Disable App returns "Bad Request" response - Given operation "DisableApp" enabled - And new "DisableApp" request - And request contains "app_id" parameter with value "invalid-uuid" - When the request is sent - Then the response status is 400 Bad Request - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Disable App returns "Not Found" response - Given operation "DisableApp" enabled - And new "DisableApp" request - And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" - When the request is sent - Then the response status is 404 Not Found - - @skip-typescript @team:DataDog/app-builder-backend - Scenario: Disable App returns "OK" response - Given operation "DisableApp" enabled - And new "DisableApp" request - And there is a valid "app" in the system - And request contains "app_id" parameter from "app.data.id" - When the request is sent - Then the response status is 200 OK - - @skip-typescript @team:DataDog/app-builder-backend + @skip @team:DataDog/app-builder-backend Scenario: Get App returns "Bad Request" response Given operation "GetApp" enabled And new "GetApp" request @@ -182,6 +132,56 @@ Feature: Apps When the request is sent Then the response status is 200 OK + @skip @team:DataDog/app-builder-backend + Scenario: Publish App returns "Bad Request" response + Given operation "PublishApp" enabled + And new "PublishApp" request + And request contains "app_id" parameter with value "invalid-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Publish App returns "Created" response + Given operation "PublishApp" enabled + And new "PublishApp" request + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + When the request is sent + Then the response status is 201 Created + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Publish App returns "Not Found" response + Given operation "PublishApp" enabled + And new "PublishApp" request + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" + When the request is sent + Then the response status is 404 Not Found + + @skip @team:DataDog/app-builder-backend + Scenario: Unpublish App returns "Bad Request" response + Given operation "UnpublishApp" enabled + And new "UnpublishApp" request + And request contains "app_id" parameter with value "invalid-uuid" + When the request is sent + Then the response status is 400 Bad Request + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Unpublish App returns "Not Found" response + Given operation "UnpublishApp" enabled + And new "UnpublishApp" request + And request contains "app_id" parameter with value "7addb29b-f935-472c-ae79-d1963979a23e" + When the request is sent + Then the response status is 404 Not Found + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Unpublish App returns "OK" response + Given operation "UnpublishApp" enabled + And new "UnpublishApp" request + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + When the request is sent + Then the response status is 200 OK + @skip-typescript @team:DataDog/app-builder-backend Scenario: Update App returns "Bad Request" response Given operation "UpdateApp" enabled diff --git a/features/v2/given.json b/features/v2/given.json index a4729ae0c583..9f928a1afcbc 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -68,7 +68,7 @@ ], "step": "there is a valid \"app\" in the system", "key": "app", - "tag": "Apps", + "tag": "App Builder", "operationId": "CreateApp" }, { diff --git a/features/v2/undo.json b/features/v2/undo.json index d8ddf129a0ea..bb873597555a 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -191,19 +191,19 @@ } }, "DeleteApps": { - "tag": "Apps", + "tag": "App Builder", "undo": { "type": "idempotent" } }, "ListApps": { - "tag": "Apps", + "tag": "App Builder", "undo": { "type": "safe" } }, "CreateApp": { - "tag": "Apps", + "tag": "App Builder", "undo": { "operationId": "DeleteApp", "parameters": [ @@ -216,31 +216,31 @@ } }, "DeleteApp": { - "tag": "Apps", + "tag": "App Builder", "undo": { "type": "idempotent" } }, "GetApp": { - "tag": "Apps", + "tag": "App Builder", "undo": { "type": "safe" } }, "UpdateApp": { - "tag": "Apps", + "tag": "App Builder", "undo": { "type": "idempotent" } }, - "DisableApp": { - "tag": "Apps", + "UnpublishApp": { + "tag": "App Builder", "undo": { "type": "idempotent" } }, - "DeployApp": { - "tag": "Apps", + "PublishApp": { + "tag": "App Builder", "undo": { "type": "idempotent" } diff --git a/lib/datadog_api_client/configuration.rb b/lib/datadog_api_client/configuration.rb index 5183ca639c9e..bb00a4f95aa4 100644 --- a/lib/datadog_api_client/configuration.rb +++ b/lib/datadog_api_client/configuration.rb @@ -197,10 +197,10 @@ def initialize "v2.create_app": false, "v2.delete_app": false, "v2.delete_apps": false, - "v2.deploy_app": false, - "v2.disable_app": false, "v2.get_app": false, "v2.list_apps": false, + "v2.publish_app": false, + "v2.unpublish_app": false, "v2.update_app": false, "v2.get_active_billing_dimensions": false, "v2.get_monthly_cost_attribution": false, diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index d4e456aa40c2..e1e661080c2b 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -940,6 +940,8 @@ def overrides "v2.app_builder_event" => "AppBuilderEvent", "v2.app_builder_event_name" => "AppBuilderEventName", "v2.app_builder_event_type" => "AppBuilderEventType", + "v2.app_definition_type" => "AppDefinitionType", + "v2.app_deployment_type" => "AppDeploymentType", "v2.application_key_create_attributes" => "ApplicationKeyCreateAttributes", "v2.application_key_create_data" => "ApplicationKeyCreateData", "v2.application_key_create_request" => "ApplicationKeyCreateRequest", @@ -954,6 +956,7 @@ def overrides "v2.application_key_update_data" => "ApplicationKeyUpdateData", "v2.application_key_update_request" => "ApplicationKeyUpdateRequest", "v2.app_meta" => "AppMeta", + "v2.app_relationship" => "AppRelationship", "v2.apps_sort_field" => "AppsSortField", "v2.asset" => "Asset", "v2.asset_attributes" => "AssetAttributes", @@ -1308,10 +1311,8 @@ def overrides "v2.create_app_request" => "CreateAppRequest", "v2.create_app_request_data" => "CreateAppRequestData", "v2.create_app_request_data_attributes" => "CreateAppRequestDataAttributes", - "v2.create_app_request_data_type" => "CreateAppRequestDataType", "v2.create_app_response" => "CreateAppResponse", "v2.create_app_response_data" => "CreateAppResponseData", - "v2.create_app_response_data_type" => "CreateAppResponseDataType", "v2.create_data_deletion_request_body" => "CreateDataDeletionRequestBody", "v2.create_data_deletion_request_body_attributes" => "CreateDataDeletionRequestBodyAttributes", "v2.create_data_deletion_request_body_data" => "CreateDataDeletionRequestBodyData", @@ -1415,37 +1416,22 @@ def overrides "v2.data_scalar_column" => "DataScalarColumn", "v2.delete_app_response" => "DeleteAppResponse", "v2.delete_app_response_data" => "DeleteAppResponseData", - "v2.delete_app_response_data_type" => "DeleteAppResponseDataType", "v2.delete_apps_request" => "DeleteAppsRequest", "v2.delete_apps_request_data_items" => "DeleteAppsRequestDataItems", - "v2.delete_apps_request_data_items_type" => "DeleteAppsRequestDataItemsType", "v2.delete_apps_response" => "DeleteAppsResponse", "v2.delete_apps_response_data_items" => "DeleteAppsResponseDataItems", - "v2.delete_apps_response_data_items_type" => "DeleteAppsResponseDataItemsType", "v2.dependency_location" => "DependencyLocation", - "v2.deploy_app_response" => "DeployAppResponse", - "v2.deploy_app_response_data" => "DeployAppResponseData", - "v2.deploy_app_response_data_attributes" => "DeployAppResponseDataAttributes", - "v2.deploy_app_response_data_type" => "DeployAppResponseDataType", - "v2.deployment_included" => "DeploymentIncluded", - "v2.deployment_included_attributes" => "DeploymentIncludedAttributes", - "v2.deployment_included_meta" => "DeploymentIncludedMeta", - "v2.deployment_included_type" => "DeploymentIncludedType", - "v2.deployment_meta" => "DeploymentMeta", + "v2.deployment" => "Deployment", + "v2.deployment_attributes" => "DeploymentAttributes", + "v2.deployment_metadata" => "DeploymentMetadata", "v2.deployment_relationship" => "DeploymentRelationship", "v2.deployment_relationship_data" => "DeploymentRelationshipData", - "v2.deployment_relationship_data_type" => "DeploymentRelationshipDataType", - "v2.deployment_relationship_meta" => "DeploymentRelationshipMeta", "v2.detailed_finding" => "DetailedFinding", "v2.detailed_finding_attributes" => "DetailedFindingAttributes", "v2.detailed_finding_type" => "DetailedFindingType", "v2.device_attributes" => "DeviceAttributes", "v2.device_attributes_interface_statuses" => "DeviceAttributesInterfaceStatuses", "v2.devices_list_data" => "DevicesListData", - "v2.disable_app_response" => "DisableAppResponse", - "v2.disable_app_response_data" => "DisableAppResponseData", - "v2.disable_app_response_data_attributes" => "DisableAppResponseDataAttributes", - "v2.disable_app_response_data_type" => "DisableAppResponseDataType", "v2.domain_allowlist" => "DomainAllowlist", "v2.domain_allowlist_attributes" => "DomainAllowlistAttributes", "v2.domain_allowlist_request" => "DomainAllowlistRequest", @@ -1646,8 +1632,6 @@ def overrides "v2.get_app_response" => "GetAppResponse", "v2.get_app_response_data" => "GetAppResponseData", "v2.get_app_response_data_attributes" => "GetAppResponseDataAttributes", - "v2.get_app_response_data_type" => "GetAppResponseDataType", - "v2.get_app_response_relationship" => "GetAppResponseRelationship", "v2.get_data_deletions_response_body" => "GetDataDeletionsResponseBody", "v2.get_device_attributes" => "GetDeviceAttributes", "v2.get_device_data" => "GetDeviceData", @@ -1821,13 +1805,6 @@ def overrides "v2.incident_user_data" => "IncidentUserData", "v2.incident_user_defined_field_type" => "IncidentUserDefinedFieldType", "v2.include_type" => "IncludeType", - "v2.input_schema" => "InputSchema", - "v2.input_schema_data" => "InputSchemaData", - "v2.input_schema_data_attributes" => "InputSchemaDataAttributes", - "v2.input_schema_data_attributes_parameters_items" => "InputSchemaDataAttributesParametersItems", - "v2.input_schema_data_attributes_parameters_items_data" => "InputSchemaDataAttributesParametersItemsData", - "v2.input_schema_data_attributes_parameters_items_data_attributes" => "InputSchemaDataAttributesParametersItemsDataAttributes", - "v2.input_schema_data_type" => "InputSchemaDataType", "v2.intake_payload_accepted" => "IntakePayloadAccepted", "v2.interface_attributes" => "InterfaceAttributes", "v2.interface_attributes_status" => "InterfaceAttributesStatus", @@ -1866,7 +1843,6 @@ def overrides "v2.list_apps_response_data_items" => "ListAppsResponseDataItems", "v2.list_apps_response_data_items_attributes" => "ListAppsResponseDataItemsAttributes", "v2.list_apps_response_data_items_relationships" => "ListAppsResponseDataItemsRelationships", - "v2.list_apps_response_data_items_type" => "ListAppsResponseDataItemsType", "v2.list_apps_response_meta" => "ListAppsResponseMeta", "v2.list_apps_response_meta_page" => "ListAppsResponseMetaPage", "v2.list_devices_response" => "ListDevicesResponse", @@ -2211,6 +2187,7 @@ def overrides "v2.project_resource_type" => "ProjectResourceType", "v2.project_response" => "ProjectResponse", "v2.projects_response" => "ProjectsResponse", + "v2.publish_app_response" => "PublishAppResponse", "v2.query" => "Query", "v2.query_formula" => "QueryFormula", "v2.query_sort_order" => "QuerySortOrder", @@ -2407,10 +2384,6 @@ def overrides "v2.scalar_query" => "ScalarQuery", "v2.scalar_response" => "ScalarResponse", "v2.scorecard_type" => "ScorecardType", - "v2.script" => "Script", - "v2.script_data" => "ScriptData", - "v2.script_data_attributes" => "ScriptDataAttributes", - "v2.script_data_type" => "ScriptDataType", "v2.security_filter" => "SecurityFilter", "v2.security_filter_attributes" => "SecurityFilterAttributes", "v2.security_filter_create_attributes" => "SecurityFilterCreateAttributes", @@ -2759,17 +2732,15 @@ def overrides "v2.token_type" => "TokenType", "v2.trigger_source" => "TriggerSource", "v2.unit" => "Unit", + "v2.unpublish_app_response" => "UnpublishAppResponse", "v2.update_action_connection_request" => "UpdateActionConnectionRequest", "v2.update_action_connection_response" => "UpdateActionConnectionResponse", "v2.update_app_request" => "UpdateAppRequest", "v2.update_app_request_data" => "UpdateAppRequestData", "v2.update_app_request_data_attributes" => "UpdateAppRequestDataAttributes", - "v2.update_app_request_data_type" => "UpdateAppRequestDataType", "v2.update_app_response" => "UpdateAppResponse", "v2.update_app_response_data" => "UpdateAppResponseData", "v2.update_app_response_data_attributes" => "UpdateAppResponseDataAttributes", - "v2.update_app_response_data_type" => "UpdateAppResponseDataType", - "v2.update_app_response_relationship" => "UpdateAppResponseRelationship", "v2.update_open_api_response" => "UpdateOpenAPIResponse", "v2.update_open_api_response_attributes" => "UpdateOpenAPIResponseAttributes", "v2.update_open_api_response_data" => "UpdateOpenAPIResponseData", @@ -2898,7 +2869,7 @@ def overrides "v2.agentless_scanning_api" => "AgentlessScanningAPI", "v2.api_management_api" => "APIManagementAPI", "v2.apm_retention_filters_api" => "APMRetentionFiltersAPI", - "v2.apps_api" => "AppsAPI", + "v2.app_builder_api" => "AppBuilderAPI", "v2.audit_api" => "AuditAPI", "v2.authn_mappings_api" => "AuthNMappingsAPI", "v2.aws_integration_api" => "AWSIntegrationAPI", diff --git a/lib/datadog_api_client/v2/api/apps_api.rb b/lib/datadog_api_client/v2/api/app_builder_api.rb similarity index 80% rename from lib/datadog_api_client/v2/api/apps_api.rb rename to lib/datadog_api_client/v2/api/app_builder_api.rb index 93e0533bbfd4..b9bf48c8adb3 100644 --- a/lib/datadog_api_client/v2/api/apps_api.rb +++ b/lib/datadog_api_client/v2/api/app_builder_api.rb @@ -16,7 +16,7 @@ require 'cgi' module DatadogAPIClient::V2 - class AppsAPI + class AppBuilderAPI attr_accessor :api_client def initialize(api_client = DatadogAPIClient::APIClient.default) @@ -33,7 +33,7 @@ def create_app(body, opts = {}) # Create App. # - # Create a new app, returning the app ID + # Create a new app, returning the app ID. # # @param body [CreateAppRequest] # @param opts [Hash] the optional parameters @@ -47,11 +47,11 @@ def create_app_with_http_info(body, opts = {}) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.create_app ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.create_app ...' end # verify the required parameter 'body' is set if @api_client.config.client_side_validation && body.nil? - fail ArgumentError, "Missing the required parameter 'body' when calling AppsAPI.create_app" + fail ArgumentError, "Missing the required parameter 'body' when calling AppBuilderAPI.create_app" end # resource path local_var_path = '/api/v2/app-builder/apps' @@ -91,7 +91,7 @@ def create_app_with_http_info(body, opts = {}) data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#create_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#create_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end @@ -106,9 +106,9 @@ def delete_app(app_id, opts = {}) # Delete App. # - # Delete an app by ID + # Delete a single app. # - # @param app_id [String] + # @param app_id [UUID] The ID of the app to delete. # @param opts [Hash] the optional parameters # @return [Array<(DeleteAppResponse, Integer, Hash)>] DeleteAppResponse data, response status code and response headers def delete_app_with_http_info(app_id, opts = {}) @@ -120,11 +120,11 @@ def delete_app_with_http_info(app_id, opts = {}) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.delete_app ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.delete_app ...' end # verify the required parameter 'app_id' is set if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.delete_app" + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppBuilderAPI.delete_app" end # resource path local_var_path = '/api/v2/app-builder/apps/{app_id}'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) @@ -162,7 +162,7 @@ def delete_app_with_http_info(app_id, opts = {}) data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#delete_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#delete_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end @@ -177,7 +177,7 @@ def delete_apps(body, opts = {}) # Delete Multiple Apps. # - # Delete multiple apps by ID + # Delete multiple apps in a single request from a list of app IDs. # # @param body [DeleteAppsRequest] # @param opts [Hash] the optional parameters @@ -191,11 +191,11 @@ def delete_apps_with_http_info(body, opts = {}) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.delete_apps ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.delete_apps ...' end # verify the required parameter 'body' is set if @api_client.config.client_side_validation && body.nil? - fail ArgumentError, "Missing the required parameter 'body' when calling AppsAPI.delete_apps" + fail ArgumentError, "Missing the required parameter 'body' when calling AppBuilderAPI.delete_apps" end # resource path local_var_path = '/api/v2/app-builder/apps' @@ -235,46 +235,48 @@ def delete_apps_with_http_info(body, opts = {}) data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#delete_apps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#delete_apps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end - # Deploy App. + # Get App. # - # @see #deploy_app_with_http_info - def deploy_app(app_id, opts = {}) - data, _status_code, _headers = deploy_app_with_http_info(app_id, opts) + # @see #get_app_with_http_info + def get_app(app_id, opts = {}) + data, _status_code, _headers = get_app_with_http_info(app_id, opts) data end - # Deploy App. + # Get App. # - # Deploy (publish) an app by ID + # Get the full definition of an app. # - # @param app_id [String] + # @param app_id [UUID] The ID of the app to retrieve. # @param opts [Hash] the optional parameters - # @return [Array<(DeployAppResponse, Integer, Hash)>] DeployAppResponse data, response status code and response headers - def deploy_app_with_http_info(app_id, opts = {}) - unstable_enabled = @api_client.config.unstable_operations["v2.deploy_app".to_sym] + # @option opts [String] :version The version number of the app to retrieve. If not specified, the latest version is returned. Version numbers start at 1 and increment with each update. The special values `latest` and `deployed` can be used to retrieve the latest version or the published version, respectively. + # @return [Array<(GetAppResponse, Integer, Hash)>] GetAppResponse data, response status code and response headers + def get_app_with_http_info(app_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.get_app".to_sym] if unstable_enabled - @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.deploy_app") + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.get_app") else - raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.deploy_app")) + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.get_app")) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.deploy_app ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.get_app ...' end # verify the required parameter 'app_id' is set if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.deploy_app" + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppBuilderAPI.get_app" end # resource path - local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) + local_var_path = '/api/v2/app-builder/apps/{app_id}'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) # query parameters query_params = opts[:query_params] || {} + query_params[:'version'] = opts[:'version'] if !opts[:'version'].nil? # header parameters header_params = opts[:header_params] || {} @@ -288,13 +290,13 @@ def deploy_app_with_http_info(app_id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'DeployAppResponse' + return_type = opts[:debug_return_type] || 'GetAppResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] new_options = opts.merge( - :operation => :deploy_app, + :operation => :get_app, :header_params => header_params, :query_params => query_params, :form_params => form_params, @@ -304,48 +306,65 @@ def deploy_app_with_http_info(app_id, opts = {}) :api_version => "V2" ) - data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#deploy_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#get_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end - # Disable App. + # List Apps. # - # @see #disable_app_with_http_info - def disable_app(app_id, opts = {}) - data, _status_code, _headers = disable_app_with_http_info(app_id, opts) + # @see #list_apps_with_http_info + def list_apps(opts = {}) + data, _status_code, _headers = list_apps_with_http_info(opts) data end - # Disable App. + # List Apps. # - # Disable an app by ID + # List all apps, with optional filters and sorting. This endpoint is paginated. Only basic app information such as the app ID, name, and description is returned by this endpoint. # - # @param app_id [String] # @param opts [Hash] the optional parameters - # @return [Array<(DisableAppResponse, Integer, Hash)>] DisableAppResponse data, response status code and response headers - def disable_app_with_http_info(app_id, opts = {}) - unstable_enabled = @api_client.config.unstable_operations["v2.disable_app".to_sym] + # @option opts [Integer] :limit The number of apps to return per page. + # @option opts [Integer] :page The page number to return. + # @option opts [String] :filter_user_name Filter apps by the app creator. Usually the user's email. + # @option opts [UUID] :filter_user_uuid Filter apps by the app creator's UUID. + # @option opts [String] :filter_name Filter by app name. + # @option opts [String] :filter_query Filter apps by the app name or the app creator. + # @option opts [Boolean] :filter_deployed Filter apps by whether they are published. + # @option opts [String] :filter_tags Filter apps by tags. + # @option opts [Boolean] :filter_favorite Filter apps by whether you have added them to your favorites. + # @option opts [Boolean] :filter_self_service Filter apps by whether they are enabled for self-service. + # @option opts [Array] :sort The fields and direction to sort apps by. + # @return [Array<(ListAppsResponse, Integer, Hash)>] ListAppsResponse data, response status code and response headers + def list_apps_with_http_info(opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.list_apps".to_sym] if unstable_enabled - @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.disable_app") + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.list_apps") else - raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.disable_app")) + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.list_apps")) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.disable_app ...' - end - # verify the required parameter 'app_id' is set - if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.disable_app" + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.list_apps ...' end # resource path - local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) + local_var_path = '/api/v2/app-builder/apps' # query parameters query_params = opts[:query_params] || {} + query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? + query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil? + query_params[:'filter[user_name]'] = opts[:'filter_user_name'] if !opts[:'filter_user_name'].nil? + query_params[:'filter[user_uuid]'] = opts[:'filter_user_uuid'] if !opts[:'filter_user_uuid'].nil? + query_params[:'filter[name]'] = opts[:'filter_name'] if !opts[:'filter_name'].nil? + query_params[:'filter[query]'] = opts[:'filter_query'] if !opts[:'filter_query'].nil? + query_params[:'filter[deployed]'] = opts[:'filter_deployed'] if !opts[:'filter_deployed'].nil? + query_params[:'filter[tags]'] = opts[:'filter_tags'] if !opts[:'filter_tags'].nil? + query_params[:'filter[favorite]'] = opts[:'filter_favorite'] if !opts[:'filter_favorite'].nil? + query_params[:'filter[self_service]'] = opts[:'filter_self_service'] if !opts[:'filter_self_service'].nil? + query_params[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :csv) if !opts[:'sort'].nil? # header parameters header_params = opts[:header_params] || {} @@ -359,13 +378,13 @@ def disable_app_with_http_info(app_id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'DisableAppResponse' + return_type = opts[:debug_return_type] || 'ListAppsResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] new_options = opts.merge( - :operation => :disable_app, + :operation => :list_apps, :header_params => header_params, :query_params => query_params, :form_params => form_params, @@ -375,50 +394,48 @@ def disable_app_with_http_info(app_id, opts = {}) :api_version => "V2" ) - data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) + data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#disable_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#list_apps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end - # Get App. + # Publish App. # - # @see #get_app_with_http_info - def get_app(app_id, opts = {}) - data, _status_code, _headers = get_app_with_http_info(app_id, opts) + # @see #publish_app_with_http_info + def publish_app(app_id, opts = {}) + data, _status_code, _headers = publish_app_with_http_info(app_id, opts) data end - # Get App. + # Publish App. # - # Get the full definition of an app by ID + # Publish an app for use by other users. To ensure the app is accessible to the correct users, you also need to set a [Restriction Policy](https://docs.datadoghq.com/api/latest/restriction-policies/) on the app if a policy does not yet exist. # - # @param app_id [String] + # @param app_id [UUID] The ID of the app to publish. # @param opts [Hash] the optional parameters - # @option opts [String] :version - # @return [Array<(GetAppResponse, Integer, Hash)>] GetAppResponse data, response status code and response headers - def get_app_with_http_info(app_id, opts = {}) - unstable_enabled = @api_client.config.unstable_operations["v2.get_app".to_sym] + # @return [Array<(PublishAppResponse, Integer, Hash)>] PublishAppResponse data, response status code and response headers + def publish_app_with_http_info(app_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.publish_app".to_sym] if unstable_enabled - @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.get_app") + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.publish_app") else - raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.get_app")) + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.publish_app")) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.get_app ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.publish_app ...' end # verify the required parameter 'app_id' is set if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.get_app" + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppBuilderAPI.publish_app" end # resource path - local_var_path = '/api/v2/app-builder/apps/{app_id}'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) + local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) # query parameters query_params = opts[:query_params] || {} - query_params[:'version'] = opts[:'version'] if !opts[:'version'].nil? # header parameters header_params = opts[:header_params] || {} @@ -432,13 +449,13 @@ def get_app_with_http_info(app_id, opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'GetAppResponse' + return_type = opts[:debug_return_type] || 'PublishAppResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] new_options = opts.merge( - :operation => :get_app, + :operation => :publish_app, :header_params => header_params, :query_params => query_params, :form_params => form_params, @@ -448,65 +465,48 @@ def get_app_with_http_info(app_id, opts = {}) :api_version => "V2" ) - data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + data, status_code, headers = @api_client.call_api(Net::HTTP::Post, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#get_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#publish_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end - # List Apps. + # Unpublish App. # - # @see #list_apps_with_http_info - def list_apps(opts = {}) - data, _status_code, _headers = list_apps_with_http_info(opts) + # @see #unpublish_app_with_http_info + def unpublish_app(app_id, opts = {}) + data, _status_code, _headers = unpublish_app_with_http_info(app_id, opts) data end - # List Apps. + # Unpublish App. # - # List all apps, with optional filters and sorting + # Unpublish an app, removing the live version of the app. Unpublishing creates a new instance of a `deployment` object on the app, with a nil `app_version_id` (`00000000-0000-0000-0000-000000000000`). The app can still be updated and published again in the future. # + # @param app_id [UUID] The ID of the app to unpublish. # @param opts [Hash] the optional parameters - # @option opts [Integer] :limit The number of apps to return per page. - # @option opts [Integer] :page The page number to return. - # @option opts [String] :filter_user_name Filter apps by the app creator. Usually the user's email. - # @option opts [UUID] :filter_user_uuid Filter apps by the app creator's UUID. - # @option opts [String] :filter_name Filter by app name. - # @option opts [String] :filter_query Filter apps by the app name or the app creator. - # @option opts [Boolean] :filter_deployed Filter apps by whether they are published. - # @option opts [String] :filter_tags Filter apps by tags. - # @option opts [Boolean] :filter_favorite Filter apps by whether you have added them to your favorites. - # @option opts [Boolean] :filter_self_service Filter apps by whether they are enabled for self-service. - # @option opts [Array] :sort The fields and direction to sort apps by. - # @return [Array<(ListAppsResponse, Integer, Hash)>] ListAppsResponse data, response status code and response headers - def list_apps_with_http_info(opts = {}) - unstable_enabled = @api_client.config.unstable_operations["v2.list_apps".to_sym] + # @return [Array<(UnpublishAppResponse, Integer, Hash)>] UnpublishAppResponse data, response status code and response headers + def unpublish_app_with_http_info(app_id, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.unpublish_app".to_sym] if unstable_enabled - @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.list_apps") + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.unpublish_app") else - raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.list_apps")) + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.unpublish_app")) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.list_apps ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.unpublish_app ...' + end + # verify the required parameter 'app_id' is set + if @api_client.config.client_side_validation && app_id.nil? + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppBuilderAPI.unpublish_app" end # resource path - local_var_path = '/api/v2/app-builder/apps' + local_var_path = '/api/v2/app-builder/apps/{app_id}/deployment'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) # query parameters query_params = opts[:query_params] || {} - query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil? - query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil? - query_params[:'filter[user_name]'] = opts[:'filter_user_name'] if !opts[:'filter_user_name'].nil? - query_params[:'filter[user_uuid]'] = opts[:'filter_user_uuid'] if !opts[:'filter_user_uuid'].nil? - query_params[:'filter[name]'] = opts[:'filter_name'] if !opts[:'filter_name'].nil? - query_params[:'filter[query]'] = opts[:'filter_query'] if !opts[:'filter_query'].nil? - query_params[:'filter[deployed]'] = opts[:'filter_deployed'] if !opts[:'filter_deployed'].nil? - query_params[:'filter[tags]'] = opts[:'filter_tags'] if !opts[:'filter_tags'].nil? - query_params[:'filter[favorite]'] = opts[:'filter_favorite'] if !opts[:'filter_favorite'].nil? - query_params[:'filter[self_service]'] = opts[:'filter_self_service'] if !opts[:'filter_self_service'].nil? - query_params[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :csv) if !opts[:'sort'].nil? # header parameters header_params = opts[:header_params] || {} @@ -520,13 +520,13 @@ def list_apps_with_http_info(opts = {}) post_body = opts[:debug_body] # return_type - return_type = opts[:debug_return_type] || 'ListAppsResponse' + return_type = opts[:debug_return_type] || 'UnpublishAppResponse' # auth_names auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] new_options = opts.merge( - :operation => :list_apps, + :operation => :unpublish_app, :header_params => header_params, :query_params => query_params, :form_params => form_params, @@ -536,9 +536,9 @@ def list_apps_with_http_info(opts = {}) :api_version => "V2" ) - data, status_code, headers = @api_client.call_api(Net::HTTP::Get, local_var_path, new_options) + data, status_code, headers = @api_client.call_api(Net::HTTP::Delete, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#list_apps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#unpublish_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end @@ -553,9 +553,9 @@ def update_app(app_id, body, opts = {}) # Update App. # - # Update an existing app by ID. Creates a new version of the app + # Update an existing app. This creates a new version of the app. # - # @param app_id [String] + # @param app_id [UUID] The ID of the app to update. # @param body [UpdateAppRequest] # @param opts [Hash] the optional parameters # @return [Array<(UpdateAppResponse, Integer, Hash)>] UpdateAppResponse data, response status code and response headers @@ -568,15 +568,15 @@ def update_app_with_http_info(app_id, body, opts = {}) end if @api_client.config.debugging - @api_client.config.logger.debug 'Calling API: AppsAPI.update_app ...' + @api_client.config.logger.debug 'Calling API: AppBuilderAPI.update_app ...' end # verify the required parameter 'app_id' is set if @api_client.config.client_side_validation && app_id.nil? - fail ArgumentError, "Missing the required parameter 'app_id' when calling AppsAPI.update_app" + fail ArgumentError, "Missing the required parameter 'app_id' when calling AppBuilderAPI.update_app" end # verify the required parameter 'body' is set if @api_client.config.client_side_validation && body.nil? - fail ArgumentError, "Missing the required parameter 'body' when calling AppsAPI.update_app" + fail ArgumentError, "Missing the required parameter 'body' when calling AppBuilderAPI.update_app" end # resource path local_var_path = '/api/v2/app-builder/apps/{app_id}'.sub('{app_id}', CGI.escape(app_id.to_s).gsub('%2F', '/')) @@ -616,7 +616,7 @@ def update_app_with_http_info(app_id, body, opts = {}) data, status_code, headers = @api_client.call_api(Net::HTTP::Patch, local_var_path, new_options) if @api_client.config.debugging - @api_client.config.logger.debug "API called: AppsAPI#update_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + @api_client.config.logger.debug "API called: AppBuilderAPI#update_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end diff --git a/lib/datadog_api_client/v2/models/app_builder_event.rb b/lib/datadog_api_client/v2/models/app_builder_event.rb index 495835e28e2d..7ae538fd82f9 100644 --- a/lib/datadog_api_client/v2/models/app_builder_event.rb +++ b/lib/datadog_api_client/v2/models/app_builder_event.rb @@ -17,7 +17,7 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `AppBuilderEvent` object. + # An event on a UI component that triggers a response or action in an app. class AppBuilderEvent include BaseGenericModel diff --git a/lib/datadog_api_client/v2/models/get_app_response_data_type.rb b/lib/datadog_api_client/v2/models/app_definition_type.rb similarity index 87% rename from lib/datadog_api_client/v2/models/get_app_response_data_type.rb rename to lib/datadog_api_client/v2/models/app_definition_type.rb index 57e18f715712..282639c15db8 100644 --- a/lib/datadog_api_client/v2/models/get_app_response_data_type.rb +++ b/lib/datadog_api_client/v2/models/app_definition_type.rb @@ -17,8 +17,8 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `GetAppResponseDataType` object. - class GetAppResponseDataType + # The app definition type. + class AppDefinitionType include BaseEnumModel APPDEFINITIONS = "appDefinitions".freeze diff --git a/lib/datadog_api_client/v2/models/deployment_included_type.rb b/lib/datadog_api_client/v2/models/app_deployment_type.rb similarity index 87% rename from lib/datadog_api_client/v2/models/deployment_included_type.rb rename to lib/datadog_api_client/v2/models/app_deployment_type.rb index 5ade5ee68bb5..b635b2e660a4 100644 --- a/lib/datadog_api_client/v2/models/deployment_included_type.rb +++ b/lib/datadog_api_client/v2/models/app_deployment_type.rb @@ -17,8 +17,8 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `DeploymentIncludedType` object. - class DeploymentIncludedType + # The deployment type. + class AppDeploymentType include BaseEnumModel DEPLOYMENT = "deployment".freeze diff --git a/lib/datadog_api_client/v2/models/app_meta.rb b/lib/datadog_api_client/v2/models/app_meta.rb index 3a6949607f53..ffd1f0f279bc 100644 --- a/lib/datadog_api_client/v2/models/app_meta.rb +++ b/lib/datadog_api_client/v2/models/app_meta.rb @@ -17,38 +17,35 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `AppMeta` object. + # Metadata of an app. class AppMeta include BaseGenericModel - # The `AppMeta` `created_at`. + # Timestamp of when the app was created. attr_accessor :created_at - # The `AppMeta` `deleted_at`. + # Timestamp of when the app was deleted. attr_accessor :deleted_at - # The `AppMeta` `org_id`. + # The Datadog organization ID that owns the app. attr_accessor :org_id - # The `AppMeta` `run_as_user`. - attr_accessor :run_as_user - - # The `AppMeta` `updated_at`. + # Timestamp of when the app was last updated. attr_accessor :updated_at - # The `AppMeta` `updated_since_deployment`. + # Whether the app was updated since it was last published. Published apps are pinned to a specific version and do not automatically update when the app is updated. attr_accessor :updated_since_deployment - # The `AppMeta` `user_id`. + # The ID of the user who created the app. attr_accessor :user_id - # The `AppMeta` `user_name`. + # The name (or email address) of the user who created the app. attr_accessor :user_name - # The `AppMeta` `user_uuid`. + # The UUID of the user who created the app. attr_accessor :user_uuid - # The `AppMeta` `version`. + # The version number of the app. This starts at 1 and increments with each update. attr_accessor :version attr_accessor :additional_properties @@ -60,7 +57,6 @@ def self.attribute_map :'created_at' => :'created_at', :'deleted_at' => :'deleted_at', :'org_id' => :'org_id', - :'run_as_user' => :'run_as_user', :'updated_at' => :'updated_at', :'updated_since_deployment' => :'updated_since_deployment', :'user_id' => :'user_id', @@ -74,11 +70,10 @@ def self.attribute_map # @!visibility private def self.openapi_types { - :'created_at' => :'String', - :'deleted_at' => :'String', + :'created_at' => :'Time', + :'deleted_at' => :'Time', :'org_id' => :'Integer', - :'run_as_user' => :'String', - :'updated_at' => :'String', + :'updated_at' => :'Time', :'updated_since_deployment' => :'Boolean', :'user_id' => :'Integer', :'user_name' => :'String', @@ -117,10 +112,6 @@ def initialize(attributes = {}) self.org_id = attributes[:'org_id'] end - if attributes.key?(:'run_as_user') - self.run_as_user = attributes[:'run_as_user'] - end - if attributes.key?(:'updated_at') self.updated_at = attributes[:'updated_at'] end @@ -175,7 +166,6 @@ def ==(o) created_at == o.created_at && deleted_at == o.deleted_at && org_id == o.org_id && - run_as_user == o.run_as_user && updated_at == o.updated_at && updated_since_deployment == o.updated_since_deployment && user_id == o.user_id && @@ -189,7 +179,7 @@ def ==(o) # @return [Integer] Hash code # @!visibility private def hash - [created_at, deleted_at, org_id, run_as_user, updated_at, updated_since_deployment, user_id, user_name, user_uuid, version, additional_properties].hash + [created_at, deleted_at, org_id, updated_at, updated_since_deployment, user_id, user_name, user_uuid, version, additional_properties].hash end end end diff --git a/lib/datadog_api_client/v2/models/get_app_response_relationship.rb b/lib/datadog_api_client/v2/models/app_relationship.rb similarity index 92% rename from lib/datadog_api_client/v2/models/get_app_response_relationship.rb rename to lib/datadog_api_client/v2/models/app_relationship.rb index 9e2aaccaa0e4..5e066f34aa59 100644 --- a/lib/datadog_api_client/v2/models/get_app_response_relationship.rb +++ b/lib/datadog_api_client/v2/models/app_relationship.rb @@ -17,14 +17,14 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `GetAppResponseRelationship` object. - class GetAppResponseRelationship + # The app's publication relationship and custom connections. + class AppRelationship include BaseGenericModel - # The `relationship` `connections`. + # Array of custom connections used by the app. attr_accessor :connections - # The definition of `DeploymentRelationship` object. + # Information pointing to the app's publication status. attr_accessor :deployment attr_accessor :additional_properties @@ -52,7 +52,7 @@ def self.openapi_types # @!visibility private def initialize(attributes = {}) if (!attributes.is_a?(Hash)) - fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::GetAppResponseRelationship` initialize method" + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppRelationship` initialize method" end self.additional_properties = {} diff --git a/lib/datadog_api_client/v2/models/component.rb b/lib/datadog_api_client/v2/models/component.rb index c338ce794b36..e156560ee053 100644 --- a/lib/datadog_api_client/v2/models/component.rb +++ b/lib/datadog_api_client/v2/models/component.rb @@ -17,23 +17,23 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `Component` object. + # [Definition of a UI component in the app](https://docs.datadoghq.com/service_management/app_builder/components/) class Component include BaseGenericModel - # The `Component` `events`. + # Events to listen for on the UI component. attr_accessor :events - # The `Component` `id`. + # The ID of the UI component. This property is deprecated; use `name` to identify individual components instead. attr_accessor :id - # The `Component` `name`. + # A unique identifier for this UI component. This name is also visible in the app editor. attr_reader :name - # The definition of `ComponentProperties` object. + # Properties of a UI component. Different component types can have their own additional unique properties. See the [components documentation](https://docs.datadoghq.com/service_management/app_builder/components/) for more detail on each component type and its properties. attr_reader :properties - # The definition of `ComponentType` object. + # The UI component type. attr_reader :type attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/component_grid.rb b/lib/datadog_api_client/v2/models/component_grid.rb index cef60371afbd..8d61a182a92c 100644 --- a/lib/datadog_api_client/v2/models/component_grid.rb +++ b/lib/datadog_api_client/v2/models/component_grid.rb @@ -17,23 +17,23 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentGrid` object. + # A grid component. The grid component is the root canvas for an app and contains all other components. class ComponentGrid include BaseGenericModel - # The `ComponentGrid` `events`. + # Events to listen for on the grid component. attr_accessor :events - # The `ComponentGrid` `id`. + # The ID of the grid component. This property is deprecated; use `name` to identify individual components instead. attr_accessor :id - # The `ComponentGrid` `name`. + # A unique identifier for this grid component. This name is also visible in the app editor. attr_reader :name - # The definition of `ComponentGridProperties` object. + # Properties of a grid component. attr_reader :properties - # The definition of `ComponentGridType` object. + # The grid component type. attr_reader :type attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/component_grid_properties.rb b/lib/datadog_api_client/v2/models/component_grid_properties.rb index 72f4ccf66ee3..402ec274f473 100644 --- a/lib/datadog_api_client/v2/models/component_grid_properties.rb +++ b/lib/datadog_api_client/v2/models/component_grid_properties.rb @@ -17,17 +17,17 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentGridProperties` object. + # Properties of a grid component. class ComponentGridProperties include BaseGenericModel - # The `ComponentGridProperties` `backgroundColor`. + # The background color of the grid. attr_accessor :background_color - # The `ComponentGridProperties` `children`. + # The child components of the grid. attr_accessor :children - # The definition of `ComponentGridPropertiesIsVisible` object. + # Whether the grid component and its children are visible. If a string, it must be a valid JavaScript expression that evaluates to a boolean. attr_accessor :is_visible attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/component_grid_properties_is_visible.rb b/lib/datadog_api_client/v2/models/component_grid_properties_is_visible.rb index 19aa3750677c..625d736ff19e 100644 --- a/lib/datadog_api_client/v2/models/component_grid_properties_is_visible.rb +++ b/lib/datadog_api_client/v2/models/component_grid_properties_is_visible.rb @@ -17,7 +17,7 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentGridPropertiesIsVisible` object. + # Whether the grid component and its children are visible. If a string, it must be a valid JavaScript expression that evaluates to a boolean. module ComponentGridPropertiesIsVisible class << self include BaseOneOfModel diff --git a/lib/datadog_api_client/v2/models/component_grid_type.rb b/lib/datadog_api_client/v2/models/component_grid_type.rb index 38cee2f2c87b..dc5646b8c77c 100644 --- a/lib/datadog_api_client/v2/models/component_grid_type.rb +++ b/lib/datadog_api_client/v2/models/component_grid_type.rb @@ -17,7 +17,7 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentGridType` object. + # The grid component type. class ComponentGridType include BaseEnumModel diff --git a/lib/datadog_api_client/v2/models/component_properties.rb b/lib/datadog_api_client/v2/models/component_properties.rb index fffaf503eb84..fcb9e9011c50 100644 --- a/lib/datadog_api_client/v2/models/component_properties.rb +++ b/lib/datadog_api_client/v2/models/component_properties.rb @@ -17,14 +17,14 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentProperties` object. + # Properties of a UI component. Different component types can have their own additional unique properties. See the [components documentation](https://docs.datadoghq.com/service_management/app_builder/components/) for more detail on each component type and its properties. class ComponentProperties include BaseGenericModel - # The `ComponentProperties` `children`. + # The child components of the UI component. attr_accessor :children - # The definition of `ComponentPropertiesIsVisible` object. + # Whether the UI component is visible. If this is a string, it must be a valid JavaScript expression that evaluates to a boolean. attr_accessor :is_visible attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/component_properties_is_visible.rb b/lib/datadog_api_client/v2/models/component_properties_is_visible.rb index 7e5ec64977aa..8bccd76760a5 100644 --- a/lib/datadog_api_client/v2/models/component_properties_is_visible.rb +++ b/lib/datadog_api_client/v2/models/component_properties_is_visible.rb @@ -17,7 +17,7 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentPropertiesIsVisible` object. + # Whether the UI component is visible. If this is a string, it must be a valid JavaScript expression that evaluates to a boolean. module ComponentPropertiesIsVisible class << self include BaseOneOfModel diff --git a/lib/datadog_api_client/v2/models/component_type.rb b/lib/datadog_api_client/v2/models/component_type.rb index f5e38553cd80..6be643bff29b 100644 --- a/lib/datadog_api_client/v2/models/component_type.rb +++ b/lib/datadog_api_client/v2/models/component_type.rb @@ -17,7 +17,7 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `ComponentType` object. + # The UI component type. class ComponentType include BaseEnumModel diff --git a/lib/datadog_api_client/v2/models/create_app_request.rb b/lib/datadog_api_client/v2/models/create_app_request.rb index b7d2e6e4b389..055247d9a027 100644 --- a/lib/datadog_api_client/v2/models/create_app_request.rb +++ b/lib/datadog_api_client/v2/models/create_app_request.rb @@ -17,11 +17,11 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `CreateAppRequest` object. + # A request object for creating a new app. class CreateAppRequest include BaseGenericModel - # The definition of `CreateAppRequestData` object. + # The data object containing the app definition. attr_accessor :data attr_accessor :additional_properties diff --git a/lib/datadog_api_client/v2/models/create_app_request_data.rb b/lib/datadog_api_client/v2/models/create_app_request_data.rb index c6c70c27218f..18ab604bbb98 100644 --- a/lib/datadog_api_client/v2/models/create_app_request_data.rb +++ b/lib/datadog_api_client/v2/models/create_app_request_data.rb @@ -17,14 +17,14 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `CreateAppRequestData` object. + # The data object containing the app definition. class CreateAppRequestData include BaseGenericModel - # The definition of `CreateAppRequestDataAttributes` object. + # App definition attributes such as name, description, and components. attr_accessor :attributes - # The definition of `CreateAppRequestDataType` object. + # The app definition type. attr_reader :type attr_accessor :additional_properties @@ -43,7 +43,7 @@ def self.attribute_map def self.openapi_types { :'attributes' => :'CreateAppRequestDataAttributes', - :'type' => :'CreateAppRequestDataType' + :'type' => :'AppDefinitionType' } end diff --git a/lib/datadog_api_client/v2/models/create_app_request_data_attributes.rb b/lib/datadog_api_client/v2/models/create_app_request_data_attributes.rb index 051407240e79..a83df63412ab 100644 --- a/lib/datadog_api_client/v2/models/create_app_request_data_attributes.rb +++ b/lib/datadog_api_client/v2/models/create_app_request_data_attributes.rb @@ -17,32 +17,26 @@ require 'time' module DatadogAPIClient::V2 - # The definition of `CreateAppRequestDataAttributes` object. + # App definition attributes such as name, description, and components. class CreateAppRequestDataAttributes include BaseGenericModel - # The `attributes` `components`. + # The UI components that make up the app. attr_accessor :components - # The `attributes` `description`. + # A human-readable description for the app. attr_accessor :description - # The `attributes` `embeddedQueries`. + # An array of queries, such as external actions and state variables, that the app uses. attr_accessor :embedded_queries - # The definition of `InputSchema` object. - attr_accessor :input_schema - - # The `attributes` `name`. + # The name of the app. attr_accessor :name - # The `attributes` `rootInstanceName`. + # The name of the root component of the app. This must be a `grid` component that contains all other components. attr_accessor :root_instance_name - # The `attributes` `scripts`. - attr_accessor :scripts - - # The `attributes` `tags`. + # A list of tags for the app, which can be used to filter apps. attr_accessor :tags attr_accessor :additional_properties @@ -54,10 +48,8 @@ def self.attribute_map :'components' => :'components', :'description' => :'description', :'embedded_queries' => :'embeddedQueries', - :'input_schema' => :'inputSchema', :'name' => :'name', :'root_instance_name' => :'rootInstanceName', - :'scripts' => :'scripts', :'tags' => :'tags' } end @@ -69,10 +61,8 @@ def self.openapi_types :'components' => :'Array', :'description' => :'String', :'embedded_queries' => :'Array', - :'input_schema' => :'InputSchema', :'name' => :'String', :'root_instance_name' => :'String', - :'scripts' => :'Array