diff --git a/.apigentools-info b/.apigentools-info index 619af91f938..4e9b5a929d4 100644 --- a/.apigentools-info +++ b/.apigentools-info @@ -4,13 +4,13 @@ "spec_versions": { "v1": { "apigentools_version": "1.6.6", - "regenerated": "2024-12-16 19:15:46.680976", - "spec_repo_commit": "162aece5" + "regenerated": "2024-12-17 15:16:57.844667", + "spec_repo_commit": "0e9d9759" }, "v2": { "apigentools_version": "1.6.6", - "regenerated": "2024-12-16 19:15:46.695609", - "spec_repo_commit": "162aece5" + "regenerated": "2024-12-17 15:16:57.871803", + "spec_repo_commit": "0e9d9759" } } } \ No newline at end of file diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 5d4184e4f2e..c19d456f413 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -1615,6 +1615,126 @@ components: type: string x-enum-varnames: - apm_retention_filter + AppBuilderError: + description: The definition of `AppBuilderError` object. + properties: + errors: + description: The `AppBuilderError` `errors`. + items: + $ref: '#/components/schemas/AppBuilderErrorErrorsItems' + type: array + type: object + AppBuilderErrorErrorsItems: + description: The definition of `AppBuilderErrorErrorsItems` object. + properties: + detail: + description: The `items` `detail`. + type: string + source: + $ref: '#/components/schemas/AppBuilderErrorErrorsItemsSource' + type: object + AppBuilderErrorErrorsItemsSource: + description: The definition of `AppBuilderErrorErrorsItemsSource` object. + properties: + parameter: + description: The `source` `parameter`. + type: string + pointer: + description: The `source` `pointer`. + type: string + type: object + AppBuilderEvent: + additionalProperties: {} + description: The definition of `AppBuilderEvent` object. + properties: + name: + $ref: '#/components/schemas/AppBuilderEventName' + type: + $ref: '#/components/schemas/AppBuilderEventType' + type: object + AppBuilderEventName: + description: The triggering action for the event. + enum: + - pageChange + - tableRowClick + - _tableRowButtonClick + - change + - submit + - click + - toggleOpen + - close + - open + - executionFinished + type: string + x-enum-varnames: + - PAGECHANGE + - TABLEROWCLICK + - TABLEROWBUTTONCLICK + - CHANGE + - SUBMIT + - CLICK + - TOGGLEOPEN + - CLOSE + - OPEN + - EXECUTIONFINISHED + AppBuilderEventType: + description: The response to the event. + enum: + - custom + - setComponentState + - triggerQuery + - openModal + - closeModal + - openUrl + - downloadFile + - setStateVariableValue + type: string + x-enum-varnames: + - CUSTOM + - SETCOMPONENTSTATE + - TRIGGERQUERY + - OPENMODAL + - CLOSEMODAL + - OPENURL + - DOWNLOADFILE + - SETSTATEVARIABLEVALUE + AppMeta: + description: The definition of `AppMeta` object. + properties: + created_at: + description: The `AppMeta` `created_at`. + type: string + deleted_at: + description: The `AppMeta` `deleted_at`. + type: string + org_id: + description: The `AppMeta` `org_id`. + format: int64 + type: integer + run_as_user: + description: The `AppMeta` `run_as_user`. + type: string + updated_at: + description: The `AppMeta` `updated_at`. + type: string + updated_since_deployment: + description: The `AppMeta` `updated_since_deployment`. + type: boolean + user_id: + description: The `AppMeta` `user_id`. + format: int64 + type: integer + user_name: + description: The `AppMeta` `user_name`. + type: string + user_uuid: + description: The `AppMeta` `user_uuid`. + type: string + version: + description: The `AppMeta` `version`. + format: int64 + type: integer + type: object ApplicationKeyCreateAttributes: description: Attributes used to create an application Key. properties: @@ -1766,6 +1886,27 @@ components: type: string x-enum-varnames: - APPLICATION_KEYS + AppsSortField: + description: The field and direction to sort apps by + enum: + - name + - created_at + - updated_at + - user_name + - -name + - -created_at + - -updated_at + - -user_name + type: string + x-enum-varnames: + - NAME + - CREATED_AT + - UPDATED_AT + - USER_NAME + - NAME_DESC + - CREATED_AT_DESC + - UPDATED_AT_DESC + - USER_NAME_DESC AuditLogsEvent: description: Object description of an Audit Logs event after it is processed and stored by Datadog. @@ -5528,6 +5669,150 @@ components: $ref: '#/components/schemas/CloudflareAccountResponseData' type: array type: object + Component: + description: The definition of `Component` object. + properties: + events: + description: The `Component` `events`. + items: + $ref: '#/components/schemas/AppBuilderEvent' + type: array + id: + description: The `Component` `id`. + nullable: true + type: string + name: + description: The `Component` `name`. + example: '' + type: string + properties: + $ref: '#/components/schemas/ComponentProperties' + type: + $ref: '#/components/schemas/ComponentType' + required: + - name + - type + - properties + type: object + ComponentGrid: + description: The definition of `ComponentGrid` object. + properties: + events: + description: The `ComponentGrid` `events`. + items: + $ref: '#/components/schemas/AppBuilderEvent' + type: array + id: + description: The `ComponentGrid` `id`. + type: string + name: + description: The `ComponentGrid` `name`. + example: '' + type: string + properties: + $ref: '#/components/schemas/ComponentGridProperties' + type: + $ref: '#/components/schemas/ComponentGridType' + required: + - name + - type + - properties + type: object + ComponentGridProperties: + description: The definition of `ComponentGridProperties` object. + properties: + backgroundColor: + default: default + description: The `ComponentGridProperties` `backgroundColor`. + type: string + children: + description: The `ComponentGridProperties` `children`. + items: + $ref: '#/components/schemas/Component' + type: array + isVisible: + $ref: '#/components/schemas/ComponentGridPropertiesIsVisible' + type: object + ComponentGridPropertiesIsVisible: + description: The definition of `ComponentGridPropertiesIsVisible` object. + oneOf: + - type: string + - default: true + type: boolean + ComponentGridType: + description: The definition of `ComponentGridType` object. + enum: + - grid + example: grid + type: string + x-enum-varnames: + - GRID + ComponentProperties: + additionalProperties: {} + description: The definition of `ComponentProperties` object. + properties: + children: + description: The `ComponentProperties` `children`. + items: + $ref: '#/components/schemas/Component' + type: array + isVisible: + $ref: '#/components/schemas/ComponentPropertiesIsVisible' + type: object + ComponentPropertiesIsVisible: + description: The definition of `ComponentPropertiesIsVisible` object. + oneOf: + - type: boolean + - description: If a string, it should be a valid JavaScript expression that + evaluates to a boolean. + example: ${true} + type: string + ComponentType: + description: The definition of `ComponentType` object. + enum: + - table + - textInput + - textArea + - button + - text + - select + - modal + - schemaForm + - checkbox + - tabs + - vegaChart + - radioButtons + - numberInput + - fileInput + - jsonInput + - gridCell + - dateRangePicker + - search + - container + - calloutValue + example: table + type: string + x-enum-varnames: + - TABLE + - TEXTINPUT + - TEXTAREA + - BUTTON + - TEXT + - SELECT + - MODAL + - SCHEMAFORM + - CHECKBOX + - TABS + - VEGACHART + - RADIOBUTTONS + - NUMBERINPUT + - FILEINPUT + - JSONINPUT + - GRIDCELL + - DATERANGEPICKER + - SEARCH + - CONTAINER + - CALLOUTVALUE ConfluentAccountCreateRequest: description: Payload schema when adding a Confluent account. properties: @@ -6529,6 +6814,132 @@ components: type: string x-enum-varnames: - COST_BY_ORG + CreateAppRequest: + description: The definition of `CreateAppRequest` object. + example: + 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 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 + properties: + data: + $ref: '#/components/schemas/CreateAppRequestData' + type: object + CreateAppRequestData: + description: The definition of `CreateAppRequestData` object. + properties: + attributes: + $ref: '#/components/schemas/CreateAppRequestDataAttributes' + type: + $ref: '#/components/schemas/CreateAppRequestDataType' + required: + - type + type: object + CreateAppRequestDataAttributes: + description: The definition of `CreateAppRequestDataAttributes` object. + properties: + components: + description: The `attributes` `components`. + items: + $ref: '#/components/schemas/ComponentGrid' + type: array + description: + description: The `attributes` `description`. + type: string + embeddedQueries: + description: The `attributes` `embeddedQueries`. + items: + $ref: '#/components/schemas/Query' + type: array + inputSchema: + $ref: '#/components/schemas/InputSchema' + name: + description: The `attributes` `name`. + type: string + rootInstanceName: + description: The `attributes` `rootInstanceName`. + type: string + scripts: + description: The `attributes` `scripts`. + items: + $ref: '#/components/schemas/Script' + type: array + tags: + description: The `attributes` `tags`. + items: + 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. + properties: + data: + $ref: '#/components/schemas/CreateAppResponseData' + type: object + CreateAppResponseData: + description: The definition of `CreateAppResponseData` object. + properties: + id: + description: The `data` `id`. + example: '' + type: string + type: + $ref: '#/components/schemas/CreateAppResponseDataType' + 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: @@ -6748,6 +7159,44 @@ components: meta: $ref: '#/components/schemas/CSMAgentsMetadata' type: object + CustomConnection: + description: The definition of `CustomConnection` object. + properties: + attributes: + $ref: '#/components/schemas/CustomConnectionAttributes' + id: + description: The `CustomConnection` `id`. + type: string + type: + $ref: '#/components/schemas/CustomConnectionType' + type: object + CustomConnectionAttributes: + description: The definition of `CustomConnectionAttributes` object. + properties: + name: + description: The `attributes` `name`. + type: string + onPremRunner: + $ref: '#/components/schemas/CustomConnectionAttributesOnPremRunner' + type: object + CustomConnectionAttributesOnPremRunner: + description: The definition of `CustomConnectionAttributesOnPremRunner` object. + properties: + id: + description: The `onPremRunner` `id`. + type: string + url: + description: The `onPremRunner` `url`. + type: string + type: object + CustomConnectionType: + default: custom_connections + description: The definition of `CustomConnectionType` object. + enum: + - custom_connections + type: string + x-enum-varnames: + - CUSTOM_CONNECTIONS CustomCostGetResponseMeta: description: Meta for the response from the Get Custom Costs endpoints. properties: @@ -8129,6 +8578,270 @@ components: type: number type: array type: object + DeleteAppResponse: + description: The definition of `DeleteAppResponse` object. + properties: + data: + $ref: '#/components/schemas/DeleteAppResponseData' + type: object + DeleteAppResponseData: + description: The definition of `DeleteAppResponseData` object. + properties: + id: + description: The `data` `id`. + example: '' + type: string + type: + $ref: '#/components/schemas/DeleteAppResponseDataType' + 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. + example: + 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 + properties: + data: + description: The `DeleteAppsRequest` `data`. + items: + $ref: '#/components/schemas/DeleteAppsRequestDataItems' + type: array + type: object + DeleteAppsRequestDataItems: + description: The definition of `DeleteAppsRequestDataItems` object. + properties: + id: + description: The `items` `id`. + example: '' + type: string + type: + $ref: '#/components/schemas/DeleteAppsRequestDataItemsType' + 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. + properties: + data: + description: The `DeleteAppsResponse` `data`. + items: + $ref: '#/components/schemas/DeleteAppsResponseDataItems' + type: array + type: object + DeleteAppsResponseDataItems: + description: The definition of `DeleteAppsResponseDataItems` object. + properties: + id: + description: The `items` `id`. + example: '' + type: string + type: + $ref: '#/components/schemas/DeleteAppsResponseDataItemsType' + required: + - id + - type + type: object + DeleteAppsResponseDataItemsType: + default: appDefinitions + description: The definition of `DeleteAppsResponseDataItemsType` object. + enum: + - appDefinitions + example: appDefinitions + type: string + x-enum-varnames: + - APPDEFINITIONS + 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. + properties: + attributes: + $ref: '#/components/schemas/DeploymentAttributes' + id: + description: The `Deployment` `id`. + type: string + meta: + $ref: '#/components/schemas/DeploymentMeta' + type: + $ref: '#/components/schemas/DeploymentType' + 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. + 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`. + 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. + properties: + created_at: + description: The `DeploymentMeta` `created_at`. + type: string + user_id: + description: The `DeploymentMeta` `user_id`. + format: int64 + type: integer + user_name: + description: The `DeploymentMeta` `user_name`. + type: string + user_uuid: + description: The `DeploymentMeta` `user_uuid`. + type: string + type: object + DeploymentRelationship: + description: The definition of `DeploymentRelationship` object. + properties: + data: + $ref: '#/components/schemas/DeploymentRelationshipData' + meta: + $ref: '#/components/schemas/DeploymentRelationshipMeta' + type: object + DeploymentRelationshipData: + description: The definition of `DeploymentRelationshipData` object. + 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`. + type: string + 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: @@ -8312,6 +9025,40 @@ 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: @@ -11092,6 +11839,95 @@ components: type: string x-enum-varnames: - GCP_SERVICE_ACCOUNT + GetAppResponse: + description: The definition of `GetAppResponse` object. + properties: + data: + $ref: '#/components/schemas/GetAppResponseData' + included: + description: The `GetAppResponse` `included`. + items: + $ref: '#/components/schemas/DeploymentIncluded' + type: array + meta: + $ref: '#/components/schemas/AppMeta' + relationship: + $ref: '#/components/schemas/GetAppResponseRelationship' + type: object + GetAppResponseData: + description: The definition of `GetAppResponseData` object. + properties: + attributes: + $ref: '#/components/schemas/GetAppResponseDataAttributes' + id: + description: The `data` `id`. + example: '' + type: string + type: + $ref: '#/components/schemas/GetAppResponseDataType' + required: + - id + - type + - attributes + type: object + GetAppResponseDataAttributes: + description: The definition of `GetAppResponseDataAttributes` object. + properties: + components: + description: The `attributes` `components`. + items: + $ref: '#/components/schemas/ComponentGrid' + type: array + description: + description: The `attributes` `description`. + type: string + embeddedQueries: + description: The `attributes` `embeddedQueries`. + items: + $ref: '#/components/schemas/Query' + type: array + favorite: + description: The `attributes` `favorite`. + type: boolean + inputSchema: + $ref: '#/components/schemas/InputSchema' + name: + description: The `attributes` `name`. + type: string + rootInstanceName: + description: The `attributes` `rootInstanceName`. + type: string + scripts: + description: The `attributes` `scripts`. + items: + $ref: '#/components/schemas/Script' + type: array + tags: + description: The `attributes` `tags`. + items: + 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: @@ -13745,6 +14581,77 @@ 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: @@ -14130,6 +15037,96 @@ components: meta: $ref: '#/components/schemas/ApplicationKeyResponseMeta' type: object + ListAppsResponse: + description: The definition of `ListAppsResponse` object. + properties: + data: + description: The `ListAppsResponse` `data`. + items: + $ref: '#/components/schemas/ListAppsResponseDataItems' + type: array + included: + description: The `ListAppsResponse` `included`. + items: + $ref: '#/components/schemas/DeploymentIncluded' + type: array + meta: + $ref: '#/components/schemas/ListAppsResponseMeta' + type: object + ListAppsResponseDataItems: + description: The definition of `ListAppsResponseDataItems` object. + properties: + attributes: + $ref: '#/components/schemas/ListAppsResponseDataItemsAttributes' + id: + description: The `items` `id`. + example: '' + type: string + meta: + $ref: '#/components/schemas/AppMeta' + relationships: + $ref: '#/components/schemas/ListAppsResponseDataItemsRelationships' + type: + $ref: '#/components/schemas/ListAppsResponseDataItemsType' + required: + - id + - type + - attributes + type: object + ListAppsResponseDataItemsAttributes: + description: The definition of `ListAppsResponseDataItemsAttributes` object. + properties: + description: + description: The `attributes` `description`. + type: string + favorite: + description: The `attributes` `favorite`. + type: boolean + name: + description: The `attributes` `name`. + type: string + selfService: + description: The `attributes` `selfService`. + type: boolean + tags: + description: The `attributes` `tags`. + items: + type: string + type: array + type: object + ListAppsResponseDataItemsRelationships: + description: The definition of `ListAppsResponseDataItemsRelationships` object. + 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. + properties: + page: + $ref: '#/components/schemas/ListAppsResponseMetaPage' + type: object + ListAppsResponseMetaPage: + description: The definition of `ListAppsResponseMetaPage` object. + properties: + totalCount: + description: The `page` `totalCount`. + format: int64 + type: integer + totalFilteredCount: + description: The `page` `totalFilteredCount`. + format: int64 + type: integer + type: object ListDevicesResponse: description: List devices response. properties: @@ -18908,6 +19905,31 @@ components: $ref: '#/components/schemas/Project' type: array type: object + Query: + description: The definition of `Query` object. + properties: + events: + description: The `Query` `events`. + items: + $ref: '#/components/schemas/AppBuilderEvent' + type: array + id: + description: The `Query` `id`. + example: '' + type: string + name: + description: The `Query` `name`. + example: '' + type: string + properties: + description: The `Query` `properties`. + type: + $ref: '#/components/schemas/QueryType' + required: + - id + - name + - type + type: object QueryFormula: description: A formula for calculation based on one or more queries. properties: @@ -18931,6 +19953,18 @@ components: x-enum-varnames: - ASC - DESC + QueryType: + description: The definition of `QueryType` object. + enum: + - action + - stateVariable + - dataTransform + example: action + type: string + x-enum-varnames: + - ACTION + - STATEVARIABLE + - DATATRANSFORM RUMAggregateBucketValue: description: A bucket value, can be either a timeseries or a single value. oneOf: @@ -21465,6 +22499,44 @@ 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: @@ -27058,6 +28130,197 @@ components: example: min type: string type: object + UpdateAppRequest: + description: The definition of `UpdateAppRequest` object. + example: + 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 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 + id: 9e20cbaf-68da-45a6-9ccf-54193ac29fa5 + type: appDefinitions + properties: + data: + $ref: '#/components/schemas/UpdateAppRequestData' + type: object + UpdateAppRequestData: + description: The definition of `UpdateAppRequestData` object. + properties: + attributes: + $ref: '#/components/schemas/UpdateAppRequestDataAttributes' + id: + description: The `data` `id`. + type: string + type: + $ref: '#/components/schemas/UpdateAppRequestDataType' + required: + - type + type: object + UpdateAppRequestDataAttributes: + description: The definition of `UpdateAppRequestDataAttributes` object. + properties: + components: + description: The `attributes` `components`. + items: + $ref: '#/components/schemas/ComponentGrid' + type: array + description: + description: The `attributes` `description`. + type: string + embeddedQueries: + description: The `attributes` `embeddedQueries`. + items: + $ref: '#/components/schemas/Query' + type: array + inputSchema: + $ref: '#/components/schemas/InputSchema' + name: + description: The `attributes` `name`. + type: string + rootInstanceName: + description: The `attributes` `rootInstanceName`. + type: string + scripts: + description: The `attributes` `scripts`. + items: + $ref: '#/components/schemas/Script' + type: array + tags: + description: The `attributes` `tags`. + items: + 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. + properties: + data: + $ref: '#/components/schemas/UpdateAppResponseData' + included: + description: The `UpdateAppResponse` `included`. + items: + $ref: '#/components/schemas/DeploymentIncluded' + type: array + meta: + $ref: '#/components/schemas/AppMeta' + relationship: + $ref: '#/components/schemas/UpdateAppResponseRelationship' + type: object + UpdateAppResponseData: + description: The definition of `UpdateAppResponseData` object. + properties: + attributes: + $ref: '#/components/schemas/UpdateAppResponseDataAttributes' + id: + description: The `data` `id`. + example: '' + type: string + type: + $ref: '#/components/schemas/UpdateAppResponseDataType' + required: + - id + - type + - attributes + type: object + UpdateAppResponseDataAttributes: + description: The definition of `UpdateAppResponseDataAttributes` object. + properties: + components: + description: The `attributes` `components`. + items: + $ref: '#/components/schemas/ComponentGrid' + type: array + description: + description: The `attributes` `description`. + type: string + embeddedQueries: + description: The `attributes` `embeddedQueries`. + items: + $ref: '#/components/schemas/Query' + type: array + favorite: + description: The `attributes` `favorite`. + type: boolean + inputSchema: + $ref: '#/components/schemas/InputSchema' + name: + description: The `attributes` `name`. + type: string + rootInstanceName: + description: The `attributes` `rootInstanceName`. + type: string + scripts: + description: The `attributes` `scripts`. + items: + $ref: '#/components/schemas/Script' + type: array + tags: + description: The `attributes` `tags`. + items: + 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: @@ -28816,6 +30079,430 @@ paths: permissions: - apm_retention_filter_write - apm_pipelines_write + /api/v2/app-builder/apps: + delete: + description: Delete multiple apps by ID + operationId: DeleteApps + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteAppsRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteAppsResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden, e.g. missing permissions to delete one or more apps + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete Multiple Apps + tags: + - Apps + 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.' + get: + description: List all apps, with optional filters and sorting + operationId: ListApps + parameters: + - description: The number of apps to return per page + in: query + name: limit + required: false + schema: + format: int64 + type: integer + - description: The page number to return + in: query + name: page + required: false + schema: + format: int64 + type: integer + - description: The `AppsFilter` `user_name`. + in: query + name: filter[user_name] + required: false + schema: + type: string + - description: The `AppsFilter` `user_uuid`. + in: query + name: filter[user_uuid] + required: false + schema: + type: string + - description: The `AppsFilter` `name`. + in: query + name: filter[name] + required: false + schema: + type: string + - description: The `AppsFilter` `query`. + in: query + name: filter[query] + required: false + schema: + type: string + - description: The `AppsFilter` `deployed`. + in: query + name: filter[deployed] + required: false + schema: + type: boolean + - description: The `AppsFilter` `tags`. + in: query + name: filter[tags] + required: false + schema: + type: string + - description: The `AppsFilter` `favorite`. + in: query + name: filter[favorite] + required: false + schema: + type: boolean + - explode: false + in: query + name: sort + required: false + schema: + items: + $ref: '#/components/schemas/AppsSortField' + type: array + style: form + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ListAppsResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request, e.g. invalid sort parameter + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: List Apps + tags: + - Apps + 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.' + post: + description: Create a new app, returning the app ID + operationId: CreateApp + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAppRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAppResponse' + description: App Created + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden, e.g. missing required permissions to a connection + or workflow used in the app + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Create App + tags: + - Apps + x-permission: + operator: AND + permissions: + - apps_write + - connections_resolve + - workflows_run + x-unstable: '**Note**: App Builder API endpoints are still under active development + and may change at any time.' + /api/v2/app-builder/apps/{app_id}: + delete: + description: Delete an app by ID + operationId: DeleteApp + parameters: + - in: path + name: app_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteAppResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Not Found + '410': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Gone + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete App + tags: + - Apps + 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.' + get: + description: Get the full definition of an app by ID + operationId: GetApp + parameters: + - in: path + name: app_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/GetAppResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get App + tags: + - Apps + 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.' + patch: + description: Update an existing app by ID. Creates a new version of the app + operationId: UpdateApp + parameters: + - in: path + name: app_id + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAppRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAppResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden, e.g. missing required permissions to a connection + or workflow used in the app + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update App + tags: + - Apps + x-permission: + operator: AND + permissions: + - apps_write + - connections_resolve + - workflows_run + x-unstable: '**Note**: App Builder API endpoints are still under active development + and may change at any time.' + /api/v2/app-builder/apps/{app_id}/deployment: + delete: + description: Disable an app by ID + operationId: DisableApp + parameters: + - in: path + name: app_id + required: true + schema: + type: string + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/DisableAppResponse' + description: OK + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Disable App + tags: + - App Deployment + 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.' + post: + description: Deploy (publish) an app by ID + operationId: DeployApp + parameters: + - in: path + name: app_id + required: true + schema: + type: string + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/DeployAppResponse' + description: Created + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Bad Request + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/AppBuilderError' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Deploy App + tags: + - App Deployment + 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.' /api/v2/application_keys: get: description: List all application keys available for your org @@ -44843,6 +46530,10 @@ tags: externalDocs: url: https://docs.datadoghq.com/integrations/amazon_web_services/#log-collection name: AWS Logs Integration +- description: Deploy and disable apps in App Builder. + name: App Deployment +- description: Create, read, update, and delete apps in App Builder. + name: Apps - 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_deployment/Deploy-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.frozen new file mode 100644 index 00000000000..70eab29e2a7 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:35.320Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.yml b/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.yml new file mode 100644 index 00000000000..a4596176dc8 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Deploy-App-returns-Bad-Request-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:35 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/app_deployment/Deploy-App-returns-Created-response.frozen b/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.frozen new file mode 100644 index 00000000000..12cd09b1d29 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:22.668Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.yml b/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.yml new file mode 100644 index 00000000000..d0bb837158a --- /dev/null +++ b/cassettes/features/v2/app_deployment/Deploy-App-returns-Created-response.yml @@ -0,0 +1,62 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:22 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"d9f547cd-bc8d-46be-b321-336856723728","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:22 GMT + request: + body: null + headers: + Accept: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps/d9f547cd-bc8d-46be-b321-336856723728/deployment + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"7e1d147c-815e-46fa-8be0-278783311881","type":"deployment","attributes":{"app_version_id":"f8567809-049e-49c2-b5c0-e5cb0e8e0f5e"},"meta":{"created_at":"2024-12-12T20:29:23.253704Z","user_id":2320499,"user_uuid":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","user_name":"9919ec9b-ebc7-49ee-8dc8-03626e717cca"}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:22 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/d9f547cd-bc8d-46be-b321-336856723728 + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"d9f547cd-bc8d-46be-b321-336856723728","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.frozen new file mode 100644 index 00000000000..c11fe09d7f4 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:35.984Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.yml new file mode 100644 index 00000000000..d3430a3d3f9 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Deploy-App-returns-Not-Found-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:35 GMT + request: + body: null + headers: + Accept: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/deployment + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"app not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.frozen b/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.frozen new file mode 100644 index 00000000000..bf3af7629d0 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:36.091Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.yml b/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.yml new file mode 100644 index 00000000000..f143723922d --- /dev/null +++ b/cassettes/features/v2/app_deployment/Disable-App-returns-Bad-Request-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:36 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/app_deployment/Disable-App-returns-Not-Found-response.frozen b/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.frozen new file mode 100644 index 00000000000..8dc6b57d756 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:36.179Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.yml b/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.yml new file mode 100644 index 00000000000..4c2f45085e3 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Disable-App-returns-Not-Found-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:36 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e/deployment + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"app not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.frozen b/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.frozen new file mode 100644 index 00000000000..883ce61def2 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:23.546Z \ No newline at end of file diff --git a/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.yml b/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.yml new file mode 100644 index 00000000000..f79fe7ef415 --- /dev/null +++ b/cassettes/features/v2/app_deployment/Disable-App-returns-OK-response.yml @@ -0,0 +1,62 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:23 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:23 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad/deployment + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"be510de8-34d8-45fc-830f-85c208a42920","type":"deployment","attributes":{"app_version_id":"00000000-0000-0000-0000-000000000000"},"meta":{"created_at":"2024-12-12T20:29:23.883145Z","user_id":2320499,"user_uuid":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","user_name":"9919ec9b-ebc7-49ee-8dc8-03626e717cca"}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +- recorded_at: Thu, 12 Dec 2024 20:29:23 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"6fdd1eb3-bd2c-4fe3-a3cf-38d0af4913ad","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 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 new file mode 100644 index 00000000000..6dfadcf607a --- /dev/null +++ b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:24.182Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml new file mode 100644 index 00000000000..6a66628c9c6 --- /dev/null +++ b/cassettes/features/v2/apps/Create-App-returns-App-Created-response.yml @@ -0,0 +1,44 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:24 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"2d9dd18e-c574-454c-8d43-3045b731d6a2","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/2d9dd18e-c574-454c-8d43-3045b731d6a2 + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"2d9dd18e-c574-454c-8d43-3045b731d6a2","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 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 new file mode 100644 index 00000000000..5912dc34412 --- /dev/null +++ b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:10.031Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml new file mode 100644 index 00000000000..3d91d20a10f --- /dev/null +++ b/cassettes/features/v2/apps/Create-App-returns-Bad-Request-response.yml @@ -0,0 +1,24 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT + request: + body: + encoding: UTF-8 + string: '{"data":{"attributes":{"description":"This is a bad example app","embeddedQueries":[],"rootInstanceName":"grid0"},"type":"appDefinitions"}}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"missing required field","source":{"pointer":"/data/attributes/name"}}]}' + 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-Bad-Request-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen new file mode 100644 index 00000000000..3925b1b25d4 --- /dev/null +++ b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:10.128Z \ 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 new file mode 100644 index 00000000000..25ad2445f4e --- /dev/null +++ b/cassettes/features/v2/apps/Delete-App-returns-Bad-Request-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:10 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 new file mode 100644 index 00000000000..cfa34bd9baf --- /dev/null +++ b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:10.225Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml new file mode 100644 index 00000000000..b9b6347ab40 --- /dev/null +++ b/cassettes/features/v2/apps/Delete-App-returns-Not-Found-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:10 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"app not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen new file mode 100644 index 00000000000..81a74305aec --- /dev/null +++ b/cassettes/features/v2/apps/Delete-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:24.659Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml b/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml new file mode 100644 index 00000000000..cacc3dabfdc --- /dev/null +++ b/cassettes/features/v2/apps/Delete-App-returns-OK-response.yml @@ -0,0 +1,62 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:24 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"5cb67134-d7bd-4320-9cda-d79ec98cff4c","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/5cb67134-d7bd-4320-9cda-d79ec98cff4c + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"5cb67134-d7bd-4320-9cda-d79ec98cff4c","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +- recorded_at: Thu, 12 Dec 2024 20:29:24 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/5cb67134-d7bd-4320-9cda-d79ec98cff4c + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"app not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 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 new file mode 100644 index 00000000000..47c84b21b2b --- /dev/null +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:10.845Z \ 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 new file mode 100644 index 00000000000..d46a706bf25 --- /dev/null +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Bad-Request-response.yml @@ -0,0 +1,25 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:10 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 new file mode 100644 index 00000000000..0fbfbe769d0 --- /dev/null +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:10.942Z \ 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/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml new file mode 100644 index 00000000000..65c610f1e64 --- /dev/null +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-Not-Found-response.yml @@ -0,0 +1,24 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:10 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"}]}' + 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":[{"detail":"one or more apps not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 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 new file mode 100644 index 00000000000..5848314b797 --- /dev/null +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:25.239Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml new file mode 100644 index 00000000000..0e9699b600d --- /dev/null +++ b/cassettes/features/v2/apps/Delete-Multiple-Apps-returns-OK-response.yml @@ -0,0 +1,66 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:25 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"61d36766-5d27-47ea-a3e7-aa7bd77b1da3","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT + request: + body: + encoding: UTF-8 + string: '{"data":[{"id":"61d36766-5d27-47ea-a3e7-aa7bd77b1da3","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: '{"data":[{"id":"61d36766-5d27-47ea-a3e7-aa7bd77b1da3","type":"appDefinitions"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/61d36766-5d27-47ea-a3e7-aa7bd77b1da3 + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"app not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 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 new file mode 100644 index 00000000000..9a1b4493f05 --- /dev/null +++ b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:11.519Z \ 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 new file mode 100644 index 00000000000..398f3cb08e1 --- /dev/null +++ b/cassettes/features/v2/apps/Get-App-returns-Bad-Request-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:11 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 new file mode 100644 index 00000000000..0d42c760761 --- /dev/null +++ b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:11.612Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml new file mode 100644 index 00000000000..6c0ab3ad797 --- /dev/null +++ b/cassettes/features/v2/apps/Get-App-returns-Not-Found-response.yml @@ -0,0 +1,20 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:11 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/app-builder/apps/7addb29b-f935-472c-ae79-d1963979a23e + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"app not found"}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 404 + message: Not Found +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen new file mode 100644 index 00000000000..7b34332de4d --- /dev/null +++ b/cassettes/features/v2/apps/Get-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:25.770Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Get-App-returns-OK-response.yml b/cassettes/features/v2/apps/Get-App-returns-OK-response.yml new file mode 100644 index 00000000000..f5d70a084f7 --- /dev/null +++ b/cassettes/features/v2/apps/Get-App-returns-OK-response.yml @@ -0,0 +1,65 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:25 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"4937a273-31f5-4375-a9cf-b71eeb92f89c","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/app-builder/apps/4937a273-31f5-4375-a9cf-b71eeb92f89c + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"4937a273-31f5-4375-a9cf-b71eeb92f89c","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":321813,"user_id":2320499,"user_uuid":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","user_name":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","version":1,"updated_since_deployment":false,"created_at":"2024-12-12T20:29:25.869968Z","updated_at":"2024-12-12T20:29:25.869968Z","deleted_at":"0001-01-01T00:00:00Z"}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +- recorded_at: Thu, 12 Dec 2024 20:29:25 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/4937a273-31f5-4375-a9cf-b71eeb92f89c + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"4937a273-31f5-4375-a9cf-b71eeb92f89c","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen b/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen new file mode 100644 index 00000000000..1cb2468dc44 --- /dev/null +++ b/cassettes/features/v2/apps/List-Apps-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-10T19:57:12.227Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml b/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml new file mode 100644 index 00000000000..8d910597b6a --- /dev/null +++ b/cassettes/features/v2/apps/List-Apps-returns-OK-response.yml @@ -0,0 +1,21 @@ +http_interactions: +- recorded_at: Tue, 10 Dec 2024 19:57:12 GMT + request: + body: null + headers: + Accept: + - application/json + method: GET + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":[{"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":1,"totalFilteredCount":1}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 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 new file mode 100644 index 00000000000..56162830354 --- /dev/null +++ b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:26.349Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml new file mode 100644 index 00000000000..c813f849d83 --- /dev/null +++ b/cassettes/features/v2/apps/Update-App-returns-Bad-Request-response.yml @@ -0,0 +1,66 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:26 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"9d2ee93b-6ac5-4b0e-abd8-829916f2365d","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT + request: + body: + encoding: UTF-8 + string: '{"data":{"attributes":{"rootInstanceName":""},"id":"9d2ee93b-6ac5-4b0e-abd8-829916f2365d","type":"appDefinitions"}}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/9d2ee93b-6ac5-4b0e-abd8-829916f2365d + response: + body: + encoding: UTF-8 + string: '{"errors":[{"detail":"missing required field","source":{"pointer":"/data/attributes/rootInstanceName"}}]}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 400 + message: Bad Request +- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/9d2ee93b-6ac5-4b0e-abd8-829916f2365d + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"9d2ee93b-6ac5-4b0e-abd8-829916f2365d","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen b/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen new file mode 100644 index 00000000000..9a62b802399 --- /dev/null +++ b/cassettes/features/v2/apps/Update-App-returns-OK-response.frozen @@ -0,0 +1 @@ +2024-12-12T20:29:26.986Z \ No newline at end of file diff --git a/cassettes/features/v2/apps/Update-App-returns-OK-response.yml b/cassettes/features/v2/apps/Update-App-returns-OK-response.yml new file mode 100644 index 00000000000..439e08e294b --- /dev/null +++ b/cassettes/features/v2/apps/Update-App-returns-OK-response.yml @@ -0,0 +1,69 @@ +http_interactions: +- recorded_at: Thu, 12 Dec 2024 20:29:26 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 + 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: + Accept: + - application/json + Content-Type: + - application/json + method: POST + uri: https://api.datadoghq.com/api/v2/app-builder/apps + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 201 + message: Created +- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT + request: + body: + encoding: UTF-8 + string: '{"data":{"attributes":{"name":"Updated Name","rootInstanceName":"grid0"},"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","type":"appDefinitions"}}' + headers: + Accept: + - application/json + Content-Type: + - application/json + method: PATCH + uri: https://api.datadoghq.com/api/v2/app-builder/apps/5a5e6785-d3f8-41bf-9d5d-95a179362e02 + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","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":321813,"user_id":2320499,"user_uuid":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","user_name":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","version":2,"updated_since_deployment":false,"created_at":"2024-12-12T20:29:27.115629Z","updated_at":"2024-12-12T20:29:27.362767Z","deleted_at":"0001-01-01T00:00:00Z"}}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +- recorded_at: Thu, 12 Dec 2024 20:29:26 GMT + request: + body: null + headers: + Accept: + - application/json + method: DELETE + uri: https://api.datadoghq.com/api/v2/app-builder/apps/5a5e6785-d3f8-41bf-9d5d-95a179362e02 + response: + body: + encoding: UTF-8 + string: '{"data":{"id":"5a5e6785-d3f8-41bf-9d5d-95a179362e02","type":"appDefinitions"}}' + headers: + Content-Type: + - application/vnd.api+json + status: + code: 200 + message: OK +recorded_with: VCR 6.0.0 diff --git a/examples/v2/app-deployment/DeployApp.rb b/examples/v2/app-deployment/DeployApp.rb new file mode 100644 index 00000000000..9d5ada69754 --- /dev/null +++ b/examples/v2/app-deployment/DeployApp.rb @@ -0,0 +1,11 @@ +# 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::AppDeploymentAPI.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/app-deployment/DisableApp.rb b/examples/v2/app-deployment/DisableApp.rb new file mode 100644 index 00000000000..d516cb30f97 --- /dev/null +++ b/examples/v2/app-deployment/DisableApp.rb @@ -0,0 +1,11 @@ +# 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::AppDeploymentAPI.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/examples/v2/apps/CreateApp.rb b/examples/v2/apps/CreateApp.rb new file mode 100644 index 00000000000..c06d2b4dd39 --- /dev/null +++ b/examples/v2/apps/CreateApp.rb @@ -0,0 +1,49 @@ +# Create App returns "App 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 + +body = DatadogAPIClient::V2::CreateAppRequest.new({ + data: DatadogAPIClient::V2::CreateAppRequestData.new({ + attributes: DatadogAPIClient::V2::CreateAppRequestDataAttributes.new({ + components: [ + DatadogAPIClient::V2::ComponentGrid.new({ + events: [], + name: "grid0", + properties: DatadogAPIClient::V2::ComponentGridProperties.new({ + children: [ + DatadogAPIClient::V2::Component.new({ + events: [], + name: "gridCell0", + properties: DatadogAPIClient::V2::ComponentProperties.new({ + children: [ + DatadogAPIClient::V2::Component.new({ + events: [], + name: "calloutValue0", + properties: DatadogAPIClient::V2::ComponentProperties.new({ + is_visible: true, + }), + type: DatadogAPIClient::V2::ComponentType::CALLOUTVALUE, + }), + ], + is_visible: "true", + }), + type: DatadogAPIClient::V2::ComponentType::GRIDCELL, + }), + ], + }), + type: DatadogAPIClient::V2::ComponentGridType::GRID, + }), + ], + description: "This is a simple example app", + embedded_queries: [], + name: "Example App", + root_instance_name: "grid0", + }), + type: DatadogAPIClient::V2::CreateAppRequestDataType::APPDEFINITIONS, + }), +}) +p api_instance.create_app(body) diff --git a/examples/v2/apps/DeleteApp.rb b/examples/v2/apps/DeleteApp.rb new file mode 100644 index 00000000000..10ad1838c7e --- /dev/null +++ b/examples/v2/apps/DeleteApp.rb @@ -0,0 +1,11 @@ +# Delete App returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.delete_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.delete_app(APP_DATA_ID) diff --git a/examples/v2/apps/DeleteApps.rb b/examples/v2/apps/DeleteApps.rb new file mode 100644 index 00000000000..7f7a939d35f --- /dev/null +++ b/examples/v2/apps/DeleteApps.rb @@ -0,0 +1,20 @@ +# Delete Multiple Apps returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.delete_apps".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"] + +body = DatadogAPIClient::V2::DeleteAppsRequest.new({ + data: [ + DatadogAPIClient::V2::DeleteAppsRequestDataItems.new({ + id: APP_DATA_ID, + type: DatadogAPIClient::V2::DeleteAppsRequestDataItemsType::APPDEFINITIONS, + }), + ], +}) +p api_instance.delete_apps(body) diff --git a/examples/v2/apps/GetApp.rb b/examples/v2/apps/GetApp.rb new file mode 100644 index 00000000000..bddd371f073 --- /dev/null +++ b/examples/v2/apps/GetApp.rb @@ -0,0 +1,11 @@ +# Get App returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.get_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.get_app(APP_DATA_ID) diff --git a/examples/v2/apps/ListApps.rb b/examples/v2/apps/ListApps.rb new file mode 100644 index 00000000000..a6eddc22969 --- /dev/null +++ b/examples/v2/apps/ListApps.rb @@ -0,0 +1,8 @@ +# List Apps returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.list_apps".to_sym] = true +end +api_instance = DatadogAPIClient::V2::AppsAPI.new +p api_instance.list_apps() diff --git a/examples/v2/apps/UpdateApp.rb b/examples/v2/apps/UpdateApp.rb new file mode 100644 index 00000000000..a754ab5d390 --- /dev/null +++ b/examples/v2/apps/UpdateApp.rb @@ -0,0 +1,22 @@ +# Update App returns "OK" response + +require "datadog_api_client" +DatadogAPIClient.configure do |config| + config.unstable_operations["v2.update_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"] + +body = DatadogAPIClient::V2::UpdateAppRequest.new({ + data: DatadogAPIClient::V2::UpdateAppRequestData.new({ + attributes: DatadogAPIClient::V2::UpdateAppRequestDataAttributes.new({ + name: "Updated Name", + root_instance_name: "grid0", + }), + id: APP_DATA_ID, + type: DatadogAPIClient::V2::UpdateAppRequestDataType::APPDEFINITIONS, + }), +}) +p api_instance.update_app(APP_DATA_ID, body) diff --git a/features/scenarios_model_mapping.rb b/features/scenarios_model_mapping.rb index 5cad3b47bf0..6cc2f2771cc 100644 --- a/features/scenarios_model_mapping.rb +++ b/features/scenarios_model_mapping.rb @@ -943,6 +943,40 @@ "filter_id" => "String", "body" => "RetentionFilterUpdateRequest", }, + "v2.DeleteApps" => { + "body" => "DeleteAppsRequest", + }, + "v2.ListApps" => { + "limit" => "Integer", + "page" => "Integer", + "filter_user_name" => "String", + "filter_user_uuid" => "String", + "filter_name" => "String", + "filter_query" => "String", + "filter_deployed" => "Boolean", + "filter_tags" => "String", + "filter_favorite" => "Boolean", + "sort" => "Array", + }, + "v2.CreateApp" => { + "body" => "CreateAppRequest", + }, + "v2.DeleteApp" => { + "app_id" => "String", + }, + "v2.GetApp" => { + "app_id" => "String", + }, + "v2.UpdateApp" => { + "app_id" => "String", + "body" => "UpdateAppRequest", + }, + "v2.DisableApp" => { + "app_id" => "String", + }, + "v2.DeployApp" => { + "app_id" => "String", + }, "v2.ListAuditLogs" => { "filter_query" => "String", "filter_from" => "Time", diff --git a/features/v2/app_deployment.feature b/features/v2/app_deployment.feature new file mode 100644 index 00000000000..b76bc1d8841 --- /dev/null +++ b/features/v2/app_deployment.feature @@ -0,0 +1,58 @@ +@endpoint(app-deployment) @endpoint(app-deployment-v2) +Feature: App Deployment + Deploy and disable apps in App Builder. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "AppDeployment" API + + @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 diff --git a/features/v2/apps.feature b/features/v2/apps.feature new file mode 100644 index 00000000000..531cc382643 --- /dev/null +++ b/features/v2/apps.feature @@ -0,0 +1,155 @@ +@endpoint(apps) @endpoint(apps-v2) +Feature: Apps + Create, read, update, and delete apps in App Builder. + + 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" + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Create App returns "Bad Request" response + Given operation "CreateApp" enabled + And new "CreateApp" request + And body with value {"data": {"attributes": {"description": "This is a bad example app", "embeddedQueries": [], "rootInstanceName": "grid0"}, "type": "appDefinitions"}} + When the request is sent + Then the response status is 400 Bad Request + And the response "errors" has length 1 + And the response "errors[0].detail" is equal to "missing required field" + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Delete App returns "Bad Request" response + Given operation "DeleteApp" enabled + And new "DeleteApp" request + And request contains "app_id" parameter with value "bad-app-id" + When the request is sent + Then the response status is 400 Bad Request + + @generated @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" + When the request is sent + Then the response status is 410 Gone + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Delete App returns "Not Found" response + Given operation "DeleteApp" enabled + And new "DeleteApp" 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: Delete App returns "OK" response + Given operation "DeleteApp" enabled + And there is a valid "app" in the system + And new "DeleteApp" request + And request contains "app_id" parameter from "app.data.id" + When the request is sent + Then the response status is 200 OK + 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 + 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"}]} + When the request is sent + Then the response status is 400 Bad Request + + @skip-typescript @team:DataDog/app-builder-backend + 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"}]} + When the request is sent + Then the response status is 404 Not Found + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Delete Multiple Apps returns "OK" response + Given operation "DeleteApps" enabled + And new "DeleteApps" request + And there is a valid "app" in the system + And body with value {"data": [{"id": "{{ app.data.id }}", "type": "appDefinitions"}]} + When the request is sent + Then the response status is 200 OK + 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: Get App returns "Bad Request" response + Given operation "GetApp" enabled + And new "GetApp" 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: Get App returns "Not Found" response + Given operation "GetApp" enabled + And new "GetApp" 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: Get App returns "OK" response + Given operation "GetApp" enabled + And new "GetApp" 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 + And the response "data.id" has the same value as "app.data.id" + And the response "data.type" is equal to "appDefinitions" + + @generated @skip @team:DataDog/app-builder-backend + Scenario: List Apps returns "Bad Request, e.g. invalid sort parameter" response + Given operation "ListApps" enabled + And new "ListApps" request + When the request is sent + Then the response status is 400 Bad Request, e.g. invalid sort parameter + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: List Apps returns "OK" response + Given operation "ListApps" enabled + And new "ListApps" request + 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 + And new "UpdateApp" request + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + And body with value {"data": {"attributes": {"rootInstanceName": ""}, "id": "{{ app.data.id }}", "type": "appDefinitions"}} + When the request is sent + Then the response status is 400 Bad Request + And the response "errors" has length 1 + And the response "errors[0].detail" is equal to "missing required field" + + @skip-typescript @team:DataDog/app-builder-backend + Scenario: Update App returns "OK" response + Given operation "UpdateApp" enabled + And new "UpdateApp" request + And there is a valid "app" in the system + And request contains "app_id" parameter from "app.data.id" + And body with value {"data": {"attributes": {"name": "Updated Name", "rootInstanceName": "grid0"}, "id": "{{ app.data.id }}", "type": "appDefinitions"}} + When the request is sent + Then the response status is 200 OK + And the response "data.id" has the same value as "app.data.id" + And the response "data.type" is equal to "appDefinitions" + And the response "data.attributes.name" is equal to "Updated Name" diff --git a/features/v2/given.json b/features/v2/given.json index 21d526af248..29503a6ae7c 100644 --- a/features/v2/given.json +++ b/features/v2/given.json @@ -47,6 +47,18 @@ "tag": "APM Retention Filters", "operationId": "CreateApmRetentionFilter" }, + { + "parameters": [ + { + "name": "body", + "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\"}}" + } + ], + "step": "there is a valid \"app\" in the system", + "key": "app", + "tag": "Apps", + "operationId": "CreateApp" + }, { "parameters": [ { diff --git a/features/v2/undo.json b/features/v2/undo.json index 8a00411a3b6..b1ed2db693d 100644 --- a/features/v2/undo.json +++ b/features/v2/undo.json @@ -153,6 +153,61 @@ "type": "idempotent" } }, + "DeleteApps": { + "tag": "Apps", + "undo": { + "type": "idempotent" + } + }, + "ListApps": { + "tag": "Apps", + "undo": { + "type": "safe" + } + }, + "CreateApp": { + "tag": "Apps", + "undo": { + "operationId": "DeleteApp", + "parameters": [ + { + "name": "app_id", + "source": "data.id" + } + ], + "type": "unsafe" + } + }, + "DeleteApp": { + "tag": "Apps", + "undo": { + "type": "idempotent" + } + }, + "GetApp": { + "tag": "Apps", + "undo": { + "type": "safe" + } + }, + "UpdateApp": { + "tag": "Apps", + "undo": { + "type": "idempotent" + } + }, + "DisableApp": { + "tag": "App Deployment", + "undo": { + "type": "idempotent" + } + }, + "DeployApp": { + "tag": "App Deployment", + "undo": { + "type": "idempotent" + } + }, "ListApplicationKeys": { "tag": "Key Management", "undo": { diff --git a/lib/datadog_api_client/configuration.rb b/lib/datadog_api_client/configuration.rb index 2ca5a30792a..6dd512bf344 100644 --- a/lib/datadog_api_client/configuration.rb +++ b/lib/datadog_api_client/configuration.rb @@ -194,6 +194,14 @@ def initialize "v2.get_open_api": false, "v2.list_apis": false, "v2.update_open_api": false, + "v2.create_app": false, + "v2.delete_app": false, + "v2.delete_apps": false, + "v2.get_app": false, + "v2.list_apps": false, + "v2.update_app": false, + "v2.deploy_app": false, + "v2.disable_app": false, "v2.get_active_billing_dimensions": false, "v2.get_billing_dimension_mapping": false, "v2.get_monthly_cost_attribution": false, diff --git a/lib/datadog_api_client/inflector.rb b/lib/datadog_api_client/inflector.rb index b282b6df797..6fa0332c2d2 100644 --- a/lib/datadog_api_client/inflector.rb +++ b/lib/datadog_api_client/inflector.rb @@ -926,6 +926,12 @@ def overrides "v2.api_key_update_data" => "APIKeyUpdateData", "v2.api_key_update_request" => "APIKeyUpdateRequest", "v2.apm_retention_filter_type" => "ApmRetentionFilterType", + "v2.app_builder_error" => "AppBuilderError", + "v2.app_builder_error_errors_items" => "AppBuilderErrorErrorsItems", + "v2.app_builder_error_errors_items_source" => "AppBuilderErrorErrorsItemsSource", + "v2.app_builder_event" => "AppBuilderEvent", + "v2.app_builder_event_name" => "AppBuilderEventName", + "v2.app_builder_event_type" => "AppBuilderEventType", "v2.application_key_create_attributes" => "ApplicationKeyCreateAttributes", "v2.application_key_create_data" => "ApplicationKeyCreateData", "v2.application_key_create_request" => "ApplicationKeyCreateRequest", @@ -939,6 +945,8 @@ def overrides "v2.application_key_update_attributes" => "ApplicationKeyUpdateAttributes", "v2.application_key_update_data" => "ApplicationKeyUpdateData", "v2.application_key_update_request" => "ApplicationKeyUpdateRequest", + "v2.app_meta" => "AppMeta", + "v2.apps_sort_field" => "AppsSortField", "v2.audit_logs_event" => "AuditLogsEvent", "v2.audit_logs_event_attributes" => "AuditLogsEventAttributes", "v2.audit_logs_events_response" => "AuditLogsEventsResponse", @@ -1196,6 +1204,14 @@ def overrides "v2.cloud_workload_security_agent_rule_update_data" => "CloudWorkloadSecurityAgentRuleUpdateData", "v2.cloud_workload_security_agent_rule_updater_attributes" => "CloudWorkloadSecurityAgentRuleUpdaterAttributes", "v2.cloud_workload_security_agent_rule_update_request" => "CloudWorkloadSecurityAgentRuleUpdateRequest", + "v2.component" => "Component", + "v2.component_grid" => "ComponentGrid", + "v2.component_grid_properties" => "ComponentGridProperties", + "v2.component_grid_properties_is_visible" => "ComponentGridPropertiesIsVisible", + "v2.component_grid_type" => "ComponentGridType", + "v2.component_properties" => "ComponentProperties", + "v2.component_properties_is_visible" => "ComponentPropertiesIsVisible", + "v2.component_type" => "ComponentType", "v2.confluent_account_create_request" => "ConfluentAccountCreateRequest", "v2.confluent_account_create_request_attributes" => "ConfluentAccountCreateRequestAttributes", "v2.confluent_account_create_request_data" => "ConfluentAccountCreateRequestData", @@ -1259,6 +1275,13 @@ def overrides "v2.cost_by_org_attributes" => "CostByOrgAttributes", "v2.cost_by_org_response" => "CostByOrgResponse", "v2.cost_by_org_type" => "CostByOrgType", + "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", @@ -1276,6 +1299,10 @@ def overrides "v2.csm_agents_metadata" => "CSMAgentsMetadata", "v2.csm_agents_response" => "CsmAgentsResponse", "v2.csm_agents_type" => "CSMAgentsType", + "v2.custom_connection" => "CustomConnection", + "v2.custom_connection_attributes" => "CustomConnectionAttributes", + "v2.custom_connection_attributes_on_prem_runner" => "CustomConnectionAttributesOnPremRunner", + "v2.custom_connection_type" => "CustomConnectionType", "v2.custom_cost_get_response_meta" => "CustomCostGetResponseMeta", "v2.custom_cost_list_response_meta" => "CustomCostListResponseMeta", "v2.custom_costs_file_get_response" => "CustomCostsFileGetResponse", @@ -1341,12 +1368,38 @@ def overrides "v2.data_deletion_response_item_attributes" => "DataDeletionResponseItemAttributes", "v2.data_deletion_response_meta" => "DataDeletionResponseMeta", "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.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_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", @@ -1542,6 +1595,11 @@ def overrides "v2.gcpsts_service_accounts_response" => "GCPSTSServiceAccountsResponse", "v2.gcpsts_service_account_update_request" => "GCPSTSServiceAccountUpdateRequest", "v2.gcpsts_service_account_update_request_data" => "GCPSTSServiceAccountUpdateRequestData", + "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", @@ -1699,6 +1757,13 @@ 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", @@ -1730,6 +1795,13 @@ def overrides "v2.list_apis_response_meta" => "ListAPIsResponseMeta", "v2.list_apis_response_meta_pagination" => "ListAPIsResponseMetaPagination", "v2.list_application_keys_response" => "ListApplicationKeysResponse", + "v2.list_apps_response" => "ListAppsResponse", + "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", "v2.list_devices_response_metadata" => "ListDevicesResponseMetadata", "v2.list_devices_response_metadata_page" => "ListDevicesResponseMetadataPage", @@ -2060,8 +2132,10 @@ def overrides "v2.project_resource_type" => "ProjectResourceType", "v2.project_response" => "ProjectResponse", "v2.projects_response" => "ProjectsResponse", + "v2.query" => "Query", "v2.query_formula" => "QueryFormula", "v2.query_sort_order" => "QuerySortOrder", + "v2.query_type" => "QueryType", "v2.relationship_item" => "RelationshipItem", "v2.relationship_to_incident_attachment" => "RelationshipToIncidentAttachment", "v2.relationship_to_incident_attachment_data" => "RelationshipToIncidentAttachmentData", @@ -2243,6 +2317,10 @@ 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", @@ -2587,6 +2665,15 @@ def overrides "v2.timeseries_response_attributes" => "TimeseriesResponseAttributes", "v2.timeseries_response_series" => "TimeseriesResponseSeries", "v2.unit" => "Unit", + "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", @@ -2697,6 +2784,8 @@ def overrides "v1.webhooks_integration_api" => "WebhooksIntegrationAPI", "v2.api_management_api" => "APIManagementAPI", "v2.apm_retention_filters_api" => "APMRetentionFiltersAPI", + "v2.app_deployment_api" => "AppDeploymentAPI", + "v2.apps_api" => "AppsAPI", "v2.audit_api" => "AuditAPI", "v2.authn_mappings_api" => "AuthNMappingsAPI", "v2.aws_integration_api" => "AWSIntegrationAPI", diff --git a/lib/datadog_api_client/v2/api/app_deployment_api.rb b/lib/datadog_api_client/v2/api/app_deployment_api.rb new file mode 100644 index 00000000000..692c448f5ac --- /dev/null +++ b/lib/datadog_api_client/v2/api/app_deployment_api.rb @@ -0,0 +1,168 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'cgi' + +module DatadogAPIClient::V2 + class AppDeploymentAPI + attr_accessor :api_client + + def initialize(api_client = DatadogAPIClient::APIClient.default) + @api_client = api_client + end + + # Deploy 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) + data + end + + # Deploy App. + # + # Deploy (publish) an app by ID + # + # @param app_id [String] + # @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] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.deploy_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.deploy_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppDeploymentAPI.deploy_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 AppDeploymentAPI.deploy_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', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'DeployAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :deploy_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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: AppDeploymentAPI#deploy_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Disable App. + # + # @see #disable_app_with_http_info + def disable_app(app_id, opts = {}) + data, _status_code, _headers = disable_app_with_http_info(app_id, opts) + data + end + + # Disable App. + # + # Disable an app by ID + # + # @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] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.disable_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.disable_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppDeploymentAPI.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 AppDeploymentAPI.disable_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', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'DisableAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :disable_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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: AppDeploymentAPI#disable_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + end +end diff --git a/lib/datadog_api_client/v2/api/apps_api.rb b/lib/datadog_api_client/v2/api/apps_api.rb new file mode 100644 index 00000000000..9370b6c9e09 --- /dev/null +++ b/lib/datadog_api_client/v2/api/apps_api.rb @@ -0,0 +1,478 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'cgi' + +module DatadogAPIClient::V2 + class AppsAPI + attr_accessor :api_client + + def initialize(api_client = DatadogAPIClient::APIClient.default) + @api_client = api_client + end + + # Create App. + # + # @see #create_app_with_http_info + def create_app(body, opts = {}) + data, _status_code, _headers = create_app_with_http_info(body, opts) + data + end + + # Create App. + # + # Create a new app, returning the app ID + # + # @param body [CreateAppRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(CreateAppResponse, Integer, Hash)>] CreateAppResponse data, response status code and response headers + def create_app_with_http_info(body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.create_app".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.create_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.create_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppsAPI.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" + end + # resource path + local_var_path = '/api/v2/app-builder/apps' + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'CreateAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :create_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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}" + end + return data, status_code, headers + end + + # Delete App. + # + # @see #delete_app_with_http_info + def delete_app(app_id, opts = {}) + data, _status_code, _headers = delete_app_with_http_info(app_id, opts) + data + end + + # Delete App. + # + # Delete an app by ID + # + # @param app_id [String] + # @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 = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.delete_app".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.delete_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.delete_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppsAPI.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" + end + # resource path + 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] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'DeleteAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :delete_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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}" + end + return data, status_code, headers + end + + # Delete Multiple Apps. + # + # @see #delete_apps_with_http_info + def delete_apps(body, opts = {}) + data, _status_code, _headers = delete_apps_with_http_info(body, opts) + data + end + + # Delete Multiple Apps. + # + # Delete multiple apps by ID + # + # @param body [DeleteAppsRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(DeleteAppsResponse, Integer, Hash)>] DeleteAppsResponse data, response status code and response headers + def delete_apps_with_http_info(body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.delete_apps".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.delete_apps") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.delete_apps")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppsAPI.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" + end + # resource path + local_var_path = '/api/v2/app-builder/apps' + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'DeleteAppsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :delete_apps, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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}" + end + return data, status_code, headers + end + + # Get 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) + data + end + + # Get App. + # + # Get the full definition of an app by ID + # + # @param app_id [String] + # @param opts [Hash] the optional parameters + # @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.get_app") + else + 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.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.get_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', '/')) + + # query parameters + query_params = opts[:query_params] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'GetAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :get_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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#get_app\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # List Apps. + # + # @see #list_apps_with_http_info + def list_apps(opts = {}) + data, _status_code, _headers = list_apps_with_http_info(opts) + data + end + + # List Apps. + # + # List all apps, with optional filters and sorting + # + # @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 The `AppsFilter` `user_name`. + # @option opts [String] :filter_user_uuid The `AppsFilter` `user_uuid`. + # @option opts [String] :filter_name The `AppsFilter` `name`. + # @option opts [String] :filter_query The `AppsFilter` `query`. + # @option opts [Boolean] :filter_deployed The `AppsFilter` `deployed`. + # @option opts [String] :filter_tags The `AppsFilter` `tags`. + # @option opts [Boolean] :filter_favorite The `AppsFilter` `favorite`. + # @option opts [Array] :sort + # @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.list_apps") + else + 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.list_apps ...' + end + # resource path + 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[:'sort'] = @api_client.build_collection_param(opts[:'sort'], :csv) if !opts[:'sort'].nil? + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] + + # return_type + return_type = opts[:debug_return_type] || 'ListAppsResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :list_apps, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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#list_apps\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" + end + return data, status_code, headers + end + + # Update App. + # + # @see #update_app_with_http_info + def update_app(app_id, body, opts = {}) + data, _status_code, _headers = update_app_with_http_info(app_id, body, opts) + data + end + + # Update App. + # + # Update an existing app by ID. Creates a new version of the app + # + # @param app_id [String] + # @param body [UpdateAppRequest] + # @param opts [Hash] the optional parameters + # @return [Array<(UpdateAppResponse, Integer, Hash)>] UpdateAppResponse data, response status code and response headers + def update_app_with_http_info(app_id, body, opts = {}) + unstable_enabled = @api_client.config.unstable_operations["v2.update_app".to_sym] + if unstable_enabled + @api_client.config.logger.warn format("Using unstable operation '%s'", "v2.update_app") + else + raise DatadogAPIClient::APIError.new(message: format("Unstable operation '%s' is disabled", "v2.update_app")) + end + + if @api_client.config.debugging + @api_client.config.logger.debug 'Calling API: AppsAPI.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" + 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" + end + # resource path + 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] || {} + + # header parameters + header_params = opts[:header_params] || {} + # HTTP header 'Accept' (if needed) + header_params['Accept'] = @api_client.select_header_accept(['application/json']) + # HTTP header 'Content-Type' + header_params['Content-Type'] = @api_client.select_header_content_type(['application/json']) + + # form parameters + form_params = opts[:form_params] || {} + + # http body (model) + post_body = opts[:debug_body] || @api_client.object_to_http_body(body) + + # return_type + return_type = opts[:debug_return_type] || 'UpdateAppResponse' + + # auth_names + auth_names = opts[:debug_auth_names] || [:apiKeyAuth, :appKeyAuth] + + new_options = opts.merge( + :operation => :update_app, + :header_params => header_params, + :query_params => query_params, + :form_params => form_params, + :body => post_body, + :auth_names => auth_names, + :return_type => return_type, + :api_version => "V2" + ) + + 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}" + end + return data, status_code, headers + end + end +end diff --git a/lib/datadog_api_client/v2/models/app_builder_error.rb b/lib/datadog_api_client/v2/models/app_builder_error.rb new file mode 100644 index 00000000000..583057f34b4 --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_builder_error.rb @@ -0,0 +1,107 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `AppBuilderError` object. + class AppBuilderError + include BaseGenericModel + + # The `AppBuilderError` `errors`. + attr_accessor :errors + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'errors' => :'errors' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'errors' => :'Array' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderError` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'errors') + if (value = attributes[:'errors']).is_a?(Array) + self.errors = value + end + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + errors == o.errors && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [errors, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/app_builder_error_errors_items.rb b/lib/datadog_api_client/v2/models/app_builder_error_errors_items.rb new file mode 100644 index 00000000000..a29afee0631 --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_builder_error_errors_items.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `AppBuilderErrorErrorsItems` object. + class AppBuilderErrorErrorsItems + include BaseGenericModel + + # The `items` `detail`. + attr_accessor :detail + + # The definition of `AppBuilderErrorErrorsItemsSource` object. + attr_accessor :source + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'detail' => :'detail', + :'source' => :'source' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'detail' => :'String', + :'source' => :'AppBuilderErrorErrorsItemsSource' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderErrorErrorsItems` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'detail') + self.detail = attributes[:'detail'] + end + + if attributes.key?(:'source') + self.source = attributes[:'source'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + detail == o.detail && + source == o.source && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [detail, source, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/app_builder_error_errors_items_source.rb b/lib/datadog_api_client/v2/models/app_builder_error_errors_items_source.rb new file mode 100644 index 00000000000..adfcaee5a94 --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_builder_error_errors_items_source.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `AppBuilderErrorErrorsItemsSource` object. + class AppBuilderErrorErrorsItemsSource + include BaseGenericModel + + # The `source` `parameter`. + attr_accessor :parameter + + # The `source` `pointer`. + attr_accessor :pointer + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'parameter' => :'parameter', + :'pointer' => :'pointer' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'parameter' => :'String', + :'pointer' => :'String' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderErrorErrorsItemsSource` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'parameter') + self.parameter = attributes[:'parameter'] + end + + if attributes.key?(:'pointer') + self.pointer = attributes[:'pointer'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + parameter == o.parameter && + pointer == o.pointer && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [parameter, pointer, additional_properties].hash + end + end +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 new file mode 100644 index 00000000000..495835e28e2 --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_builder_event.rb @@ -0,0 +1,115 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `AppBuilderEvent` object. + class AppBuilderEvent + include BaseGenericModel + + # The triggering action for the event. + attr_accessor :name + + # The response to the event. + attr_accessor :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'name' => :'name', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'name' => :'AppBuilderEventName', + :'type' => :'AppBuilderEventType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppBuilderEvent` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + name == o.name && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [name, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/app_builder_event_name.rb b/lib/datadog_api_client/v2/models/app_builder_event_name.rb new file mode 100644 index 00000000000..87e288292ad --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_builder_event_name.rb @@ -0,0 +1,35 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The triggering action for the event. + class AppBuilderEventName + include BaseEnumModel + + PAGECHANGE = "pageChange".freeze + TABLEROWCLICK = "tableRowClick".freeze + TABLEROWBUTTONCLICK = "_tableRowButtonClick".freeze + CHANGE = "change".freeze + SUBMIT = "submit".freeze + CLICK = "click".freeze + TOGGLEOPEN = "toggleOpen".freeze + CLOSE = "close".freeze + OPEN = "open".freeze + EXECUTIONFINISHED = "executionFinished".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/app_builder_event_type.rb b/lib/datadog_api_client/v2/models/app_builder_event_type.rb new file mode 100644 index 00000000000..c2e53d017aa --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_builder_event_type.rb @@ -0,0 +1,33 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The response to the event. + class AppBuilderEventType + include BaseEnumModel + + CUSTOM = "custom".freeze + SETCOMPONENTSTATE = "setComponentState".freeze + TRIGGERQUERY = "triggerQuery".freeze + OPENMODAL = "openModal".freeze + CLOSEMODAL = "closeModal".freeze + OPENURL = "openUrl".freeze + DOWNLOADFILE = "downloadFile".freeze + SETSTATEVARIABLEVALUE = "setStateVariableValue".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/app_meta.rb b/lib/datadog_api_client/v2/models/app_meta.rb new file mode 100644 index 00000000000..25cccb23a84 --- /dev/null +++ b/lib/datadog_api_client/v2/models/app_meta.rb @@ -0,0 +1,195 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `AppMeta` object. + class AppMeta + include BaseGenericModel + + # The `AppMeta` `created_at`. + attr_accessor :created_at + + # The `AppMeta` `deleted_at`. + attr_accessor :deleted_at + + # The `AppMeta` `org_id`. + attr_accessor :org_id + + # The `AppMeta` `run_as_user`. + attr_accessor :run_as_user + + # The `AppMeta` `updated_at`. + attr_accessor :updated_at + + # The `AppMeta` `updated_since_deployment`. + attr_accessor :updated_since_deployment + + # The `AppMeta` `user_id`. + attr_accessor :user_id + + # The `AppMeta` `user_name`. + attr_accessor :user_name + + # The `AppMeta` `user_uuid`. + attr_accessor :user_uuid + + # The `AppMeta` `version`. + attr_accessor :version + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + 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', + :'user_name' => :'user_name', + :'user_uuid' => :'user_uuid', + :'version' => :'version' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'created_at' => :'String', + :'deleted_at' => :'String', + :'org_id' => :'Integer', + :'run_as_user' => :'String', + :'updated_at' => :'String', + :'updated_since_deployment' => :'Boolean', + :'user_id' => :'Integer', + :'user_name' => :'String', + :'user_uuid' => :'String', + :'version' => :'Integer' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AppMeta` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'created_at') + self.created_at = attributes[:'created_at'] + end + + if attributes.key?(:'deleted_at') + self.deleted_at = attributes[:'deleted_at'] + end + + if attributes.key?(:'org_id') + 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 + + if attributes.key?(:'updated_since_deployment') + self.updated_since_deployment = attributes[:'updated_since_deployment'] + end + + if attributes.key?(:'user_id') + self.user_id = attributes[:'user_id'] + end + + if attributes.key?(:'user_name') + self.user_name = attributes[:'user_name'] + end + + if attributes.key?(:'user_uuid') + self.user_uuid = attributes[:'user_uuid'] + end + + if attributes.key?(:'version') + self.version = attributes[:'version'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + 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 && + user_name == o.user_name && + user_uuid == o.user_uuid && + version == o.version && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @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 + end + end +end diff --git a/lib/datadog_api_client/v2/models/apps_sort_field.rb b/lib/datadog_api_client/v2/models/apps_sort_field.rb new file mode 100644 index 00000000000..aace8e6d1c1 --- /dev/null +++ b/lib/datadog_api_client/v2/models/apps_sort_field.rb @@ -0,0 +1,33 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The field and direction to sort apps by + class AppsSortField + include BaseEnumModel + + NAME = "name".freeze + CREATED_AT = "created_at".freeze + UPDATED_AT = "updated_at".freeze + USER_NAME = "user_name".freeze + NAME_DESC = "-name".freeze + CREATED_AT_DESC = "-created_at".freeze + UPDATED_AT_DESC = "-updated_at".freeze + USER_NAME_DESC = "-user_name".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/component.rb b/lib/datadog_api_client/v2/models/component.rb new file mode 100644 index 00000000000..c338ce794b3 --- /dev/null +++ b/lib/datadog_api_client/v2/models/component.rb @@ -0,0 +1,195 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `Component` object. + class Component + include BaseGenericModel + + # The `Component` `events`. + attr_accessor :events + + # The `Component` `id`. + attr_accessor :id + + # The `Component` `name`. + attr_reader :name + + # The definition of `ComponentProperties` object. + attr_reader :properties + + # The definition of `ComponentType` object. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'events' => :'events', + :'id' => :'id', + :'name' => :'name', + :'properties' => :'properties', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'events' => :'Array', + :'id' => :'String', + :'name' => :'String', + :'properties' => :'ComponentProperties', + :'type' => :'ComponentType' + } + end + + # List of attributes with nullable: true + # @!visibility private + def self.openapi_nullable + Set.new([ + :'id', + ]) + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::Component` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'events') + if (value = attributes[:'events']).is_a?(Array) + self.events = value + end + end + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'properties') + self.properties = attributes[:'properties'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @name.nil? + return false if @properties.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param properties [Object] Object to be assigned + # @!visibility private + def properties=(properties) + if properties.nil? + fail ArgumentError, 'invalid value for "properties", properties cannot be nil.' + end + @properties = properties + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + events == o.events && + id == o.id && + name == o.name && + properties == o.properties && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [events, id, name, properties, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/component_grid.rb b/lib/datadog_api_client/v2/models/component_grid.rb new file mode 100644 index 00000000000..cef60371afb --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_grid.rb @@ -0,0 +1,187 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentGrid` object. + class ComponentGrid + include BaseGenericModel + + # The `ComponentGrid` `events`. + attr_accessor :events + + # The `ComponentGrid` `id`. + attr_accessor :id + + # The `ComponentGrid` `name`. + attr_reader :name + + # The definition of `ComponentGridProperties` object. + attr_reader :properties + + # The definition of `ComponentGridType` object. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'events' => :'events', + :'id' => :'id', + :'name' => :'name', + :'properties' => :'properties', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'events' => :'Array', + :'id' => :'String', + :'name' => :'String', + :'properties' => :'ComponentGridProperties', + :'type' => :'ComponentGridType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ComponentGrid` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'events') + if (value = attributes[:'events']).is_a?(Array) + self.events = value + end + end + + if attributes.key?(:'id') + self.id = attributes[:'id'] + end + + if attributes.key?(:'name') + self.name = attributes[:'name'] + end + + if attributes.key?(:'properties') + self.properties = attributes[:'properties'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @name.nil? + return false if @properties.nil? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param name [Object] Object to be assigned + # @!visibility private + def name=(name) + if name.nil? + fail ArgumentError, 'invalid value for "name", name cannot be nil.' + end + @name = name + end + + # Custom attribute writer method with validation + # @param properties [Object] Object to be assigned + # @!visibility private + def properties=(properties) + if properties.nil? + fail ArgumentError, 'invalid value for "properties", properties cannot be nil.' + end + @properties = properties + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + events == o.events && + id == o.id && + name == o.name && + properties == o.properties && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [events, id, name, properties, type, additional_properties].hash + end + end +end diff --git a/lib/datadog_api_client/v2/models/component_grid_properties.rb b/lib/datadog_api_client/v2/models/component_grid_properties.rb new file mode 100644 index 00000000000..72f4ccf66ee --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_grid_properties.rb @@ -0,0 +1,127 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentGridProperties` object. + class ComponentGridProperties + include BaseGenericModel + + # The `ComponentGridProperties` `backgroundColor`. + attr_accessor :background_color + + # The `ComponentGridProperties` `children`. + attr_accessor :children + + # The definition of `ComponentGridPropertiesIsVisible` object. + attr_accessor :is_visible + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'background_color' => :'backgroundColor', + :'children' => :'children', + :'is_visible' => :'isVisible' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'background_color' => :'String', + :'children' => :'Array', + :'is_visible' => :'ComponentGridPropertiesIsVisible' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ComponentGridProperties` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'background_color') + self.background_color = attributes[:'background_color'] + end + + if attributes.key?(:'children') + if (value = attributes[:'children']).is_a?(Array) + self.children = value + end + end + + if attributes.key?(:'is_visible') + self.is_visible = attributes[:'is_visible'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + background_color == o.background_color && + children == o.children && + is_visible == o.is_visible && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [background_color, children, is_visible, additional_properties].hash + end + end +end 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 new file mode 100644 index 00000000000..19aa3750677 --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_grid_properties_is_visible.rb @@ -0,0 +1,63 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentGridPropertiesIsVisible` object. + module ComponentGridPropertiesIsVisible + class << self + include BaseOneOfModel + include BaseOneOfModelNoDiscriminator + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'String', + :'Boolean' + ] + end + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + # Go through the list of oneOf items and attempt to identify the appropriate one. + # Note: + # - We do not attempt to check whether exactly one item matches. + # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 }) + # due to the way the deserialization is made in the base_object template (it just casts without verifying). + # - TODO: scalar values are de facto behaving as if they were nullable. + # - TODO: logging when debugging is set. + openapi_one_of.each do |klass| + begin + next if klass == :AnyType # "nullable: true" + typed_data = find_and_cast_into_type(klass, data) + next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed + return typed_data if typed_data + rescue # rescue all errors so we keep iterating even if the current item lookup raises + end + end + + if openapi_one_of.include?(:AnyType) + data + else + self._unparsed = true + DatadogAPIClient::UnparsedObject.new(data) + end + end + end + end +end diff --git a/lib/datadog_api_client/v2/models/component_grid_type.rb b/lib/datadog_api_client/v2/models/component_grid_type.rb new file mode 100644 index 00000000000..38cee2f2c87 --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_grid_type.rb @@ -0,0 +1,26 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentGridType` object. + class ComponentGridType + include BaseEnumModel + + GRID = "grid".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/component_properties.rb b/lib/datadog_api_client/v2/models/component_properties.rb new file mode 100644 index 00000000000..fffaf503eb8 --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_properties.rb @@ -0,0 +1,117 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentProperties` object. + class ComponentProperties + include BaseGenericModel + + # The `ComponentProperties` `children`. + attr_accessor :children + + # The definition of `ComponentPropertiesIsVisible` object. + attr_accessor :is_visible + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'children' => :'children', + :'is_visible' => :'isVisible' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'children' => :'Array', + :'is_visible' => :'ComponentPropertiesIsVisible' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::ComponentProperties` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'children') + if (value = attributes[:'children']).is_a?(Array) + self.children = value + end + end + + if attributes.key?(:'is_visible') + self.is_visible = attributes[:'is_visible'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + children == o.children && + is_visible == o.is_visible && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [children, is_visible, additional_properties].hash + end + end +end 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 new file mode 100644 index 00000000000..7e5ec64977a --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_properties_is_visible.rb @@ -0,0 +1,63 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentPropertiesIsVisible` object. + module ComponentPropertiesIsVisible + class << self + include BaseOneOfModel + include BaseOneOfModelNoDiscriminator + + # List of class defined in oneOf (OpenAPI v3) + def openapi_one_of + [ + :'Boolean', + :'String' + ] + end + # Builds the object + # @param data [Mixed] Data to be matched against the list of oneOf items + # @return [Object] Returns the model or the data itself + def build(data) + # Go through the list of oneOf items and attempt to identify the appropriate one. + # Note: + # - We do not attempt to check whether exactly one item matches. + # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 }) + # due to the way the deserialization is made in the base_object template (it just casts without verifying). + # - TODO: scalar values are de facto behaving as if they were nullable. + # - TODO: logging when debugging is set. + openapi_one_of.each do |klass| + begin + next if klass == :AnyType # "nullable: true" + typed_data = find_and_cast_into_type(klass, data) + next if typed_data.respond_to?(:_unparsed) && typed_data._unparsed + return typed_data if typed_data + rescue # rescue all errors so we keep iterating even if the current item lookup raises + end + end + + if openapi_one_of.include?(:AnyType) + data + else + self._unparsed = true + DatadogAPIClient::UnparsedObject.new(data) + end + end + end + end +end diff --git a/lib/datadog_api_client/v2/models/component_type.rb b/lib/datadog_api_client/v2/models/component_type.rb new file mode 100644 index 00000000000..f5e38553cd8 --- /dev/null +++ b/lib/datadog_api_client/v2/models/component_type.rb @@ -0,0 +1,45 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `ComponentType` object. + class ComponentType + include BaseEnumModel + + TABLE = "table".freeze + TEXTINPUT = "textInput".freeze + TEXTAREA = "textArea".freeze + BUTTON = "button".freeze + TEXT = "text".freeze + SELECT = "select".freeze + MODAL = "modal".freeze + SCHEMAFORM = "schemaForm".freeze + CHECKBOX = "checkbox".freeze + TABS = "tabs".freeze + VEGACHART = "vegaChart".freeze + RADIOBUTTONS = "radioButtons".freeze + NUMBERINPUT = "numberInput".freeze + FILEINPUT = "fileInput".freeze + JSONINPUT = "jsonInput".freeze + GRIDCELL = "gridCell".freeze + DATERANGEPICKER = "dateRangePicker".freeze + SEARCH = "search".freeze + CONTAINER = "container".freeze + CALLOUTVALUE = "calloutValue".freeze + end +end diff --git a/lib/datadog_api_client/v2/models/create_app_request.rb b/lib/datadog_api_client/v2/models/create_app_request.rb new file mode 100644 index 00000000000..b7d2e6e4b38 --- /dev/null +++ b/lib/datadog_api_client/v2/models/create_app_request.rb @@ -0,0 +1,105 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `CreateAppRequest` object. + class CreateAppRequest + include BaseGenericModel + + # The definition of `CreateAppRequestData` object. + attr_accessor :data + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'data' => :'data' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'data' => :'CreateAppRequestData' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::CreateAppRequest` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'data') + self.data = attributes[:'data'] + end + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + data == o.data && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [data, additional_properties].hash + end + end +end 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 new file mode 100644 index 00000000000..c6c70c27218 --- /dev/null +++ b/lib/datadog_api_client/v2/models/create_app_request_data.rb @@ -0,0 +1,133 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `CreateAppRequestData` object. + class CreateAppRequestData + include BaseGenericModel + + # The definition of `CreateAppRequestDataAttributes` object. + attr_accessor :attributes + + # The definition of `CreateAppRequestDataType` object. + attr_reader :type + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + def self.attribute_map + { + :'attributes' => :'attributes', + :'type' => :'type' + } + end + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'attributes' => :'CreateAppRequestDataAttributes', + :'type' => :'CreateAppRequestDataType' + } + end + + # Initializes the object + # @param attributes [Hash] Model attributes in the form of hash + # @!visibility private + def initialize(attributes = {}) + if (!attributes.is_a?(Hash)) + fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::CreateAppRequestData` initialize method" + end + + self.additional_properties = {} + # check to see if the attribute exists and convert string to symbol for hash key + attributes = attributes.each_with_object({}) { |(k, v), h| + if (!self.class.attribute_map.key?(k.to_sym)) + self.additional_properties[k.to_sym] = v + else + h[k.to_sym] = v + end + } + + if attributes.key?(:'attributes') + self.attributes = attributes[:'attributes'] + end + + if attributes.key?(:'type') + self.type = attributes[:'type'] + end + end + + # Check to see if the all the properties in the model are valid + # @return true if the model is valid + # @!visibility private + def valid? + return false if @type.nil? + true + end + + # Custom attribute writer method with validation + # @param type [Object] Object to be assigned + # @!visibility private + def type=(type) + if type.nil? + fail ArgumentError, 'invalid value for "type", type cannot be nil.' + end + @type = type + end + + # Returns the object in the form of hash, with additionalProperties support. + # @return [Hash] Returns the object in the form of hash + # @!visibility private + def to_hash + hash = {} + self.class.attribute_map.each_pair do |attr, param| + value = self.send(attr) + if value.nil? + is_nullable = self.class.openapi_nullable.include?(attr) + next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}")) + end + + hash[param] = _to_hash(value) + end + self.additional_properties.each_pair do |attr, value| + hash[attr] = value + end + hash + end + + # Checks equality by comparing each attribute. + # @param o [Object] Object to be compared + # @!visibility private + def ==(o) + return true if self.equal?(o) + self.class == o.class && + attributes == o.attributes && + type == o.type && + additional_properties == o.additional_properties + end + + # Calculates hash code according to all attributes. + # @return [Integer] Hash code + # @!visibility private + def hash + [attributes, type, additional_properties].hash + end + end +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 new file mode 100644 index 00000000000..051407240e7 --- /dev/null +++ b/lib/datadog_api_client/v2/models/create_app_request_data_attributes.rb @@ -0,0 +1,183 @@ +=begin +#Datadog API V2 Collection + +#Collection of all Datadog Public endpoints. + +The version of the OpenAPI document: 1.0 +Contact: support@datadoghq.com +Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator + + Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. + This product includes software developed at Datadog (https://www.datadoghq.com/). + Copyright 2020-Present Datadog, Inc. + +=end + +require 'date' +require 'time' + +module DatadogAPIClient::V2 + # The definition of `CreateAppRequestDataAttributes` object. + class CreateAppRequestDataAttributes + include BaseGenericModel + + # The `attributes` `components`. + attr_accessor :components + + # The `attributes` `description`. + attr_accessor :description + + # The `attributes` `embeddedQueries`. + attr_accessor :embedded_queries + + # The definition of `InputSchema` object. + attr_accessor :input_schema + + # The `attributes` `name`. + attr_accessor :name + + # The `attributes` `rootInstanceName`. + attr_accessor :root_instance_name + + # The `attributes` `scripts`. + attr_accessor :scripts + + # The `attributes` `tags`. + attr_accessor :tags + + attr_accessor :additional_properties + + # Attribute mapping from ruby-style variable name to JSON key. + # @!visibility private + 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 + + # Attribute type mapping. + # @!visibility private + def self.openapi_types + { + :'components' => :'Array', + :'description' => :'String', + :'embedded_queries' => :'Array', + :'input_schema' => :'InputSchema', + :'name' => :'String', + :'root_instance_name' => :'String', + :'scripts' => :'Array