For the complete documentation index, see llms.txt. This page is also available as Markdown.

Perspective Reports

Manage cost reports created on Perspectives.

Fetch details of a cost Report

get

Fetch cost Report details for the given Report ID or a Perspective ID.

Path parameters
accountIdentifierstringRequired

Account Identifier for the Entity.

Query parameters
perspectiveIdstringOptional

Unique identifier for the Perspective

reportIdstringOptional

Unique identifier for the Report

Responses
400

Bad Request

application/json

This is Failure entity as defied in Harness

statusstring · enumOptionalPossible values:
codestring · enumOptionalPossible values:
messagestringOptional
correlationIdstringOptional
get/perspectiveReport/{accountIdentifier}
GET /gateway/ccm/api/perspectiveReport/{accountIdentifier} HTTP/1.1
Host: nextgen-ce-66b6b78845-qll9w
Accept: */*
{
  "status": "SUCCESS",
  "code": "DEFAULT_ERROR_CODE",
  "message": "text",
  "correlationId": "text",
  "errors": [
    {
      "fieldId": "text",
      "error": "text"
    }
  ]
}

Create a schedule for a Report

post

Create a report schedule for the given Report ID or a Perspective ID.

Path parameters
accountIdentifierstringRequired

Account Identifier for the Entity.

Body

Cloud Cost Report Schedule contains definition of 'how often' and 'to whom' the Report will be sent

uuidstringOptional
namestring · min: 1 · max: 80Required
enabledbooleanOptional
descriptionstring · max: 100Optional
viewsIdstring[] · min: 1 · max: 1Required
userCronstringRequired
recipientsstring[] · max: 50Required
accountIdstringOptional
dataColumnsstring[]Optional
exportRowsUpTointeger · int64Optional
excludeRowsWithCostBelownumber · doubleOptional
createdAtinteger · int64Optional
lastUpdatedAtinteger · int64Optional
userCronTimeZonestringOptional
nextExecutionstring · date-timeOptional
Responses
400

Bad Request

application/json

This is Failure entity as defied in Harness

statusstring · enumOptionalPossible values:
codestring · enumOptionalPossible values:
messagestringOptional
correlationIdstringOptional
post/perspectiveReport/{accountIdentifier}
POST /gateway/ccm/api/perspectiveReport/{accountIdentifier} HTTP/1.1
Host: nextgen-ce-66b6b78845-qll9w
Content-Type: application/json
Accept: */*
Content-Length: 1274

{
  "uuid": "text",
  "name": "text",
  "enabled": true,
  "description": "text",
  "viewsId": [
    "text"
  ],
  "userCron": "text",
  "recipients": [
    "text"
  ],
  "accountId": "text",
  "groupBy": [
    {
      "entityGroupBy": {
        "fieldId": "text",
        "fieldName": "text",
        "identifier": "CLUSTER",
        "identifierName": "text"
      },
      "timeTruncGroupBy": {
        "resolution": "HOUR"
      }
    }
  ],
  "filters": [
    {
      "idFilter": {
        "field": {
          "fieldId": "text",
          "fieldName": "text",
          "identifier": "CLUSTER",
          "identifierName": "text"
        },
        "operator": "NOT_IN",
        "values": [
          "text"
        ]
      },
      "timeFilter": {
        "field": {
          "fieldId": "text",
          "fieldName": "text",
          "identifier": "CLUSTER",
          "identifierName": "text"
        },
        "operator": "AFTER",
        "value": 1
      },
      "timeRangeTypeFilter": "LAST_MONTH",
      "viewMetadataFilter": {
        "viewId": "text",
        "isPreview": true,
        "preview": true
      },
      "ruleFilter": {
        "conditions": [
          {
            "field": {
              "fieldId": "text",
              "fieldName": "text",
              "identifier": "CLUSTER",
              "identifierName": "text"
            },
            "operator": "NOT_IN",
            "values": [
              "text"
            ]
          }
        ]
      }
    }
  ],
  "viewTimeRange": {
    "viewTimeRangeType": "LAST_7",
    "startTime": 1,
    "endTime": 1
  },
  "dataColumns": [
    "text"
  ],
  "exportRowsUpTo": 1,
  "excludeRowsWithCostBelow": 1,
  "createdAt": 1,
  "lastUpdatedAt": 1,
  "userCronTimeZone": "text",
  "createdBy": {
    "uuid": "text",
    "name": "text",
    "email": "text",
    "externalUserId": "text"
  },
  "lastUpdatedBy": {
    "uuid": "text",
    "name": "text",
    "email": "text",
    "externalUserId": "text"
  },
  "nextExecution": "2026-01-01T00:00:00.000Z"
}
{
  "status": "SUCCESS",
  "code": "DEFAULT_ERROR_CODE",
  "message": "text",
  "correlationId": "text",
  "errors": [
    {
      "fieldId": "text",
      "error": "text"
    }
  ]
}

Update a cost Perspective Report

put

Update cost Perspective Reports.

Path parameters
accountIdentifierstringRequired

Account Identifier for the Entity.

Body

Cloud Cost Report Schedule contains definition of 'how often' and 'to whom' the Report will be sent

uuidstringOptional
namestring · min: 1 · max: 80Required
enabledbooleanOptional
descriptionstring · max: 100Optional
viewsIdstring[] · min: 1 · max: 1Required
userCronstringRequired
recipientsstring[] · max: 50Required
accountIdstringOptional
dataColumnsstring[]Optional
exportRowsUpTointeger · int64Optional
excludeRowsWithCostBelownumber · doubleOptional
createdAtinteger · int64Optional
lastUpdatedAtinteger · int64Optional
userCronTimeZonestringOptional
nextExecutionstring · date-timeOptional
Responses
400

Bad Request

application/json

This is Failure entity as defied in Harness

statusstring · enumOptionalPossible values:
codestring · enumOptionalPossible values:
messagestringOptional
correlationIdstringOptional
put/perspectiveReport/{accountIdentifier}
PUT /gateway/ccm/api/perspectiveReport/{accountIdentifier} HTTP/1.1
Host: nextgen-ce-66b6b78845-qll9w
Content-Type: application/json
Accept: */*
Content-Length: 1274

{
  "uuid": "text",
  "name": "text",
  "enabled": true,
  "description": "text",
  "viewsId": [
    "text"
  ],
  "userCron": "text",
  "recipients": [
    "text"
  ],
  "accountId": "text",
  "groupBy": [
    {
      "entityGroupBy": {
        "fieldId": "text",
        "fieldName": "text",
        "identifier": "CLUSTER",
        "identifierName": "text"
      },
      "timeTruncGroupBy": {
        "resolution": "HOUR"
      }
    }
  ],
  "filters": [
    {
      "idFilter": {
        "field": {
          "fieldId": "text",
          "fieldName": "text",
          "identifier": "CLUSTER",
          "identifierName": "text"
        },
        "operator": "NOT_IN",
        "values": [
          "text"
        ]
      },
      "timeFilter": {
        "field": {
          "fieldId": "text",
          "fieldName": "text",
          "identifier": "CLUSTER",
          "identifierName": "text"
        },
        "operator": "AFTER",
        "value": 1
      },
      "timeRangeTypeFilter": "LAST_MONTH",
      "viewMetadataFilter": {
        "viewId": "text",
        "isPreview": true,
        "preview": true
      },
      "ruleFilter": {
        "conditions": [
          {
            "field": {
              "fieldId": "text",
              "fieldName": "text",
              "identifier": "CLUSTER",
              "identifierName": "text"
            },
            "operator": "NOT_IN",
            "values": [
              "text"
            ]
          }
        ]
      }
    }
  ],
  "viewTimeRange": {
    "viewTimeRangeType": "LAST_7",
    "startTime": 1,
    "endTime": 1
  },
  "dataColumns": [
    "text"
  ],
  "exportRowsUpTo": 1,
  "excludeRowsWithCostBelow": 1,
  "createdAt": 1,
  "lastUpdatedAt": 1,
  "userCronTimeZone": "text",
  "createdBy": {
    "uuid": "text",
    "name": "text",
    "email": "text",
    "externalUserId": "text"
  },
  "lastUpdatedBy": {
    "uuid": "text",
    "name": "text",
    "email": "text",
    "externalUserId": "text"
  },
  "nextExecution": "2026-01-01T00:00:00.000Z"
}
{
  "status": "SUCCESS",
  "code": "DEFAULT_ERROR_CODE",
  "message": "text",
  "correlationId": "text",
  "errors": [
    {
      "fieldId": "text",
      "error": "text"
    }
  ]
}

Delete cost Perspective report

delete

Delete cost Perspective Report for the given Report ID or a Perspective ID.

Path parameters
accountIdentifierstringRequired

Account Identifier for the Entity.

Query parameters
reportIdstringOptional

Unique identifier for the Report

perspectiveIdstringOptional

Unique identifier for the Perspective

Responses
400

Bad Request

application/json

This is Failure entity as defied in Harness

statusstring · enumOptionalPossible values:
codestring · enumOptionalPossible values:
messagestringOptional
correlationIdstringOptional
delete/perspectiveReport/{accountIdentifier}
DELETE /gateway/ccm/api/perspectiveReport/{accountIdentifier} HTTP/1.1
Host: nextgen-ce-66b6b78845-qll9w
Accept: */*
{
  "status": "SUCCESS",
  "code": "DEFAULT_ERROR_CODE",
  "message": "text",
  "correlationId": "text",
  "errors": [
    {
      "fieldId": "text",
      "error": "text"
    }
  ]
}

Fetch cost Report details accessible to a user

post

Fetch cost Report details accessible to a user.

Query parameters
accountIdentifierstringRequired

Account Identifier for the Entity.

Body

The query object for perspective report filters

perspectiveIdsstring[]Optional

Perspective Ids

searchTextstringOptional

The search text entered to filter out reports by name

offsetinteger · int32Optional

Query Offset

limitinteger · int32Optional

Query Limit

Responses
400

Bad Request

application/json

This is Failure entity as defied in Harness

statusstring · enumOptionalPossible values:
codestring · enumOptionalPossible values:
messagestringOptional
correlationIdstringOptional
post/perspectiveReport/getAllReports
POST /gateway/ccm/api/perspectiveReport/getAllReports?accountIdentifier=text HTTP/1.1
Host: nextgen-ce-66b6b78845-qll9w
Content-Type: application/json
Accept: */*
Content-Length: 68

{
  "perspectiveIds": [
    "text"
  ],
  "searchText": "text",
  "offset": 1,
  "limit": 1
}
{
  "status": "SUCCESS",
  "code": "DEFAULT_ERROR_CODE",
  "message": "text",
  "correlationId": "text",
  "errors": [
    {
      "fieldId": "text",
      "error": "text"
    }
  ]
}

Send mail based on reportId

post

Send mail based on reportId.

Query parameters
accountIdentifierstringRequired

Account Identifier for the Entity.

Body
reportIdstringOptional
perspectiveIdstringOptional
Responses
400

Bad Request

application/json

This is Failure entity as defied in Harness

statusstring · enumOptionalPossible values:
codestring · enumOptionalPossible values:
messagestringOptional
correlationIdstringOptional
post/perspectiveReport/sendMail
POST /gateway/ccm/api/perspectiveReport/sendMail?accountIdentifier=text HTTP/1.1
Host: nextgen-ce-66b6b78845-qll9w
Content-Type: application/json
Accept: */*
Content-Length: 1368

{
  "reportId": "text",
  "perspectiveId": "text",
  "ceReportScheduleDTO": {
    "uuid": "text",
    "name": "text",
    "enabled": true,
    "description": "text",
    "perspectiveId": "text",
    "perspectiveName": "text",
    "userCron": "text",
    "viewTimeRange": {
      "viewTimeRangeType": "LAST_7",
      "startTime": 1,
      "endTime": 1
    },
    "recipients": [
      "text"
    ],
    "accountId": "text",
    "filters": [
      {
        "idFilter": {
          "field": {
            "fieldId": "text",
            "fieldName": "text",
            "identifier": "CLUSTER",
            "identifierName": "text"
          },
          "operator": "NOT_IN",
          "values": [
            "text"
          ]
        },
        "timeFilter": {
          "field": {
            "fieldId": "text",
            "fieldName": "text",
            "identifier": "CLUSTER",
            "identifierName": "text"
          },
          "operator": "AFTER",
          "value": 1
        },
        "timeRangeTypeFilter": "LAST_MONTH",
        "viewMetadataFilter": {
          "viewId": "text",
          "isPreview": true,
          "preview": true
        },
        "ruleFilter": {
          "conditions": [
            {
              "field": {
                "fieldId": "text",
                "fieldName": "text",
                "identifier": "CLUSTER",
                "identifierName": "text"
              },
              "operator": "NOT_IN",
              "values": [
                "text"
              ]
            }
          ]
        }
      }
    ],
    "dataColumns": [
      "text"
    ],
    "groupBy": [
      {
        "entityGroupBy": {
          "fieldId": "text",
          "fieldName": "text",
          "identifier": "CLUSTER",
          "identifierName": "text"
        },
        "timeTruncGroupBy": {
          "resolution": "HOUR"
        }
      }
    ],
    "exportRowsUpTo": 1,
    "excludeRowsWithCostBelow": 1,
    "createdAt": 1,
    "lastUpdatedAt": 1,
    "userCronTimeZone": "text",
    "createdBy": {
      "uuid": "text",
      "name": "text",
      "email": "text",
      "externalUserId": "text"
    },
    "lastUpdatedBy": {
      "uuid": "text",
      "name": "text",
      "email": "text",
      "externalUserId": "text"
    },
    "nextExecution": "2026-01-01T00:00:00.000Z"
  }
}
{
  "status": "SUCCESS",
  "code": "DEFAULT_ERROR_CODE",
  "message": "text",
  "correlationId": "text",
  "errors": [
    {
      "fieldId": "text",
      "error": "text"
    }
  ]
}

Last updated

Was this helpful?