curl --request PUT \
--url https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Tenant-Id: <tenant-id>' \
--data '
{
"id": "Project_00000000",
"name": "Project Name",
"aws_account_id": "123123123123",
"aws_region": "us-east-1",
"max_budget": 1000,
"description": "Project Description",
"notify_when_forecast_cost_exceed": true,
"notify_when_actual_cost_exceed": true,
"notify_email": "test@example.com",
"domain": "example.com"
}
'import requests
url = "https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}"
payload = {
"id": "Project_00000000",
"name": "Project Name",
"aws_account_id": "123123123123",
"aws_region": "us-east-1",
"max_budget": 1000,
"description": "Project Description",
"notify_when_forecast_cost_exceed": True,
"notify_when_actual_cost_exceed": True,
"notify_email": "test@example.com",
"domain": "example.com"
}
headers = {
"Tenant-Id": "<tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'Tenant-Id': '<tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: 'Project_00000000',
name: 'Project Name',
aws_account_id: '123123123123',
aws_region: 'us-east-1',
max_budget: 1000,
description: 'Project Description',
notify_when_forecast_cost_exceed: true,
notify_when_actual_cost_exceed: true,
notify_email: 'test@example.com',
domain: 'example.com'
})
};
fetch('https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'id' => 'Project_00000000',
'name' => 'Project Name',
'aws_account_id' => '123123123123',
'aws_region' => 'us-east-1',
'max_budget' => 1000,
'description' => 'Project Description',
'notify_when_forecast_cost_exceed' => true,
'notify_when_actual_cost_exceed' => true,
'notify_email' => 'test@example.com',
'domain' => 'example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Tenant-Id: <tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}"
payload := strings.NewReader("{\n \"id\": \"Project_00000000\",\n \"name\": \"Project Name\",\n \"aws_account_id\": \"123123123123\",\n \"aws_region\": \"us-east-1\",\n \"max_budget\": 1000,\n \"description\": \"Project Description\",\n \"notify_when_forecast_cost_exceed\": true,\n \"notify_when_actual_cost_exceed\": true,\n \"notify_email\": \"test@example.com\",\n \"domain\": \"example.com\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Tenant-Id", "<tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}")
.header("Tenant-Id", "<tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"Project_00000000\",\n \"name\": \"Project Name\",\n \"aws_account_id\": \"123123123123\",\n \"aws_region\": \"us-east-1\",\n \"max_budget\": 1000,\n \"description\": \"Project Description\",\n \"notify_when_forecast_cost_exceed\": true,\n \"notify_when_actual_cost_exceed\": true,\n \"notify_email\": \"test@example.com\",\n \"domain\": \"example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Tenant-Id"] = '<tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"Project_00000000\",\n \"name\": \"Project Name\",\n \"aws_account_id\": \"123123123123\",\n \"aws_region\": \"us-east-1\",\n \"max_budget\": 1000,\n \"description\": \"Project Description\",\n \"notify_when_forecast_cost_exceed\": true,\n \"notify_when_actual_cost_exceed\": true,\n \"notify_email\": \"test@example.com\",\n \"domain\": \"example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"sk": "<string>",
"type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"description": "<string>",
"aws_account_id": "<string>",
"aws_region": "us-east-1",
"max_budget": 123,
"notify_when_forecast_cost_exceed": true,
"notify_when_actual_cost_exceed": true,
"domain": "<string>",
"cost": 123,
"webhooks": [
{
"id": "<string>",
"events": [
"<string>"
],
"endpoint": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"env_variables": [
{
"id": "<string>",
"name": "<string>",
"value": "<string>",
"sensitive": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"actor": "<string>"
}
],
"integrations": [
{
"name": "<string>",
"description": "<string>",
"overview": "<string>",
"instructions": "<string>",
"category": "PAYMENT",
"website_url": "<string>",
"company": "<string>",
"id": "<string>",
"sk": "<string>",
"type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"is_free": true,
"doc": "<string>",
"support_url": "<string>",
"privacy_policy_url": "<string>",
"icon": "<string>",
"is_active": true,
"env_variables": [
{
"name": "<string>",
"value": "<string>",
"id": "<string>",
"sensitive": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"actor": "<string>"
}
]
}
],
"status": "ALPHA",
"notify_email": "<string>",
"month_cost": {
"cost": 123,
"cost_unit": "<string>",
"max_day_cost": 123,
"min_day_cost": 123,
"average_day_cost": 123
},
"cost_exceeded": true
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}Update a project
curl --request PUT \
--url https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Tenant-Id: <tenant-id>' \
--data '
{
"id": "Project_00000000",
"name": "Project Name",
"aws_account_id": "123123123123",
"aws_region": "us-east-1",
"max_budget": 1000,
"description": "Project Description",
"notify_when_forecast_cost_exceed": true,
"notify_when_actual_cost_exceed": true,
"notify_email": "test@example.com",
"domain": "example.com"
}
'import requests
url = "https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}"
payload = {
"id": "Project_00000000",
"name": "Project Name",
"aws_account_id": "123123123123",
"aws_region": "us-east-1",
"max_budget": 1000,
"description": "Project Description",
"notify_when_forecast_cost_exceed": True,
"notify_when_actual_cost_exceed": True,
"notify_email": "test@example.com",
"domain": "example.com"
}
headers = {
"Tenant-Id": "<tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
'Tenant-Id': '<tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
id: 'Project_00000000',
name: 'Project Name',
aws_account_id: '123123123123',
aws_region: 'us-east-1',
max_budget: 1000,
description: 'Project Description',
notify_when_forecast_cost_exceed: true,
notify_when_actual_cost_exceed: true,
notify_email: 'test@example.com',
domain: 'example.com'
})
};
fetch('https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'id' => 'Project_00000000',
'name' => 'Project Name',
'aws_account_id' => '123123123123',
'aws_region' => 'us-east-1',
'max_budget' => 1000,
'description' => 'Project Description',
'notify_when_forecast_cost_exceed' => true,
'notify_when_actual_cost_exceed' => true,
'notify_email' => 'test@example.com',
'domain' => 'example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Tenant-Id: <tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}"
payload := strings.NewReader("{\n \"id\": \"Project_00000000\",\n \"name\": \"Project Name\",\n \"aws_account_id\": \"123123123123\",\n \"aws_region\": \"us-east-1\",\n \"max_budget\": 1000,\n \"description\": \"Project Description\",\n \"notify_when_forecast_cost_exceed\": true,\n \"notify_when_actual_cost_exceed\": true,\n \"notify_email\": \"test@example.com\",\n \"domain\": \"example.com\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Tenant-Id", "<tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}")
.header("Tenant-Id", "<tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"id\": \"Project_00000000\",\n \"name\": \"Project Name\",\n \"aws_account_id\": \"123123123123\",\n \"aws_region\": \"us-east-1\",\n \"max_budget\": 1000,\n \"description\": \"Project Description\",\n \"notify_when_forecast_cost_exceed\": true,\n \"notify_when_actual_cost_exceed\": true,\n \"notify_email\": \"test@example.com\",\n \"domain\": \"example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://9nr7sbhimh.execute-api.us-west-1.amazonaws.com/prod/project/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Tenant-Id"] = '<tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"id\": \"Project_00000000\",\n \"name\": \"Project Name\",\n \"aws_account_id\": \"123123123123\",\n \"aws_region\": \"us-east-1\",\n \"max_budget\": 1000,\n \"description\": \"Project Description\",\n \"notify_when_forecast_cost_exceed\": true,\n \"notify_when_actual_cost_exceed\": true,\n \"notify_email\": \"test@example.com\",\n \"domain\": \"example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"sk": "<string>",
"type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"description": "<string>",
"aws_account_id": "<string>",
"aws_region": "us-east-1",
"max_budget": 123,
"notify_when_forecast_cost_exceed": true,
"notify_when_actual_cost_exceed": true,
"domain": "<string>",
"cost": 123,
"webhooks": [
{
"id": "<string>",
"events": [
"<string>"
],
"endpoint": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"env_variables": [
{
"id": "<string>",
"name": "<string>",
"value": "<string>",
"sensitive": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"actor": "<string>"
}
],
"integrations": [
{
"name": "<string>",
"description": "<string>",
"overview": "<string>",
"instructions": "<string>",
"category": "PAYMENT",
"website_url": "<string>",
"company": "<string>",
"id": "<string>",
"sk": "<string>",
"type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"is_free": true,
"doc": "<string>",
"support_url": "<string>",
"privacy_policy_url": "<string>",
"icon": "<string>",
"is_active": true,
"env_variables": [
{
"name": "<string>",
"value": "<string>",
"id": "<string>",
"sensitive": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"actor": "<string>"
}
]
}
],
"status": "ALPHA",
"notify_email": "<string>",
"month_cost": {
"cost": 123,
"cost_unit": "<string>",
"max_day_cost": 123,
"min_day_cost": 123,
"average_day_cost": 123
},
"cost_exceeded": true
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}{
"code": "common.internal_error",
"error": "<string>",
"meta": {}
}Authorizations
Bearer token in the Authorization header (e.g. JWT / Cognito access token).
Headers
ID of the tenant (current tenant context).
Path Parameters
Project identifier.
Body
Payload to update an existing project.
"Project_00000000"
"Project Name"
"123123123123"
AWS region identifier. Matches models.AwsRegion JSON values in paas-lib.
us-east-1, us-east-2, us-west-1, us-west-2, us-gov-east-1, us-gov-west-1, ca-central-1, ca-west-1, eu-central-1, eu-central-2, eu-north-1, eu-west-1, eu-west-2, eu-west-3, eu-south-1, eu-south-2, me-south-1, me-central-1, mx-central-1, cn-north-1, cn-northwest-1, ap-east-1, ap-south-1, ap-south-2, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-4, ap-southeast-5, ap-east-2, ap-southeast-7, ap-southeast-6, af-south-1, sa-east-1 "us-east-1"
x >= 01000
Lifecycle status of the project.
ALPHA, BETA, RELEASE "Project Description"
true
true
May be omitted, null, or empty; when notify_when_actual_cost_exceed is true, a non-empty valid email is required (validated by the API).
"test@example.com"
"example.com"
Response
OK
Full project representation returned by the API (includes relations and cost summary).
Primary key (project id).
Sort key.
Linked AWS account id (12 digits).
AWS region identifier. Matches models.AwsRegion JSON values in paas-lib.
us-east-1, us-east-2, us-west-1, us-west-2, us-gov-east-1, us-gov-west-1, ca-central-1, ca-west-1, eu-central-1, eu-central-2, eu-north-1, eu-west-1, eu-west-2, eu-west-3, eu-south-1, eu-south-2, me-south-1, me-central-1, mx-central-1, cn-north-1, cn-northwest-1, ap-east-1, ap-south-1, ap-south-2, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-4, ap-southeast-5, ap-east-2, ap-southeast-7, ap-southeast-6, af-south-1, sa-east-1 "us-east-1"
Maximum budget threshold for notifications.
Current or last reported cost (application-defined units).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Lifecycle status of the project.
ALPHA, BETA, RELEASE Notification email; may be null or empty when unset.
Aggregated cost summary for a billing period.
Show child attributes
Show child attributes
True when cost has exceeded configured thresholds.