curl --request POST \
--url https://api.vantage.sh/v2/access_policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"title": "<string>",
"policy": {
"api_version": "v1",
"policy": {
"filter": "(vantage.provider = 'aws')"
}
},
"description": "<string>",
"team_tokens": [
"team_abcd1234"
]
}
EOFimport requests
url = "https://api.vantage.sh/v2/access_policies"
payload = {
"title": "<string>",
"policy": {
"api_version": "v1",
"policy": { "filter": "(vantage.provider = 'aws')" }
},
"description": "<string>",
"team_tokens": ["team_abcd1234"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
policy: {api_version: 'v1', policy: {filter: '(vantage.provider = \'aws\')'}},
description: '<string>',
team_tokens: ['team_abcd1234']
})
};
fetch('https://api.vantage.sh/v2/access_policies', 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://api.vantage.sh/v2/access_policies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'policy' => [
'api_version' => 'v1',
'policy' => [
'filter' => '(vantage.provider = \'aws\')'
]
],
'description' => '<string>',
'team_tokens' => [
'team_abcd1234'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.vantage.sh/v2/access_policies"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"policy\": {\n \"api_version\": \"v1\",\n \"policy\": {\n \"filter\": \"(vantage.provider = 'aws')\"\n }\n },\n \"description\": \"<string>\",\n \"team_tokens\": [\n \"team_abcd1234\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.vantage.sh/v2/access_policies")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"policy\": {\n \"api_version\": \"v1\",\n \"policy\": {\n \"filter\": \"(vantage.provider = 'aws')\"\n }\n },\n \"description\": \"<string>\",\n \"team_tokens\": [\n \"team_abcd1234\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vantage.sh/v2/access_policies")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"policy\": {\n \"api_version\": \"v1\",\n \"policy\": {\n \"filter\": \"(vantage.provider = 'aws')\"\n }\n },\n \"description\": \"<string>\",\n \"team_tokens\": [\n \"team_abcd1234\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"token": "accss_plcy_c40f15062b6d5c37",
"title": "Engineering costs",
"description": "Limits cost visibility to the Engineering team.",
"policy": {
"api_version": "v1",
"policy": {
"filter": "(vantage.provider = 'aws')"
}
},
"team_tokens": [
"team_fd5c524ba104712b"
],
"created_by": "usr_eb8ce6bdc1fa31d5",
"created_at": "2024-01-18T17:39:37Z"
}{
"errors": [
"<string>"
],
"links": {
"self": "<string>",
"first": "<string>",
"next": "<string>",
"last": "<string>",
"prev": "<string>"
}
}{
"errors": [
"<string>"
],
"links": {
"self": "<string>",
"first": "<string>",
"next": "<string>",
"last": "<string>",
"prev": "<string>"
}
}{
"errors": [
"<string>"
],
"links": {
"self": "<string>",
"first": "<string>",
"next": "<string>",
"last": "<string>",
"prev": "<string>"
}
}Create access policy
Create an Access Policy. Requires a personal API token belonging to a user with the Owner role and the write scope.
curl --request POST \
--url https://api.vantage.sh/v2/access_policies \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"title": "<string>",
"policy": {
"api_version": "v1",
"policy": {
"filter": "(vantage.provider = 'aws')"
}
},
"description": "<string>",
"team_tokens": [
"team_abcd1234"
]
}
EOFimport requests
url = "https://api.vantage.sh/v2/access_policies"
payload = {
"title": "<string>",
"policy": {
"api_version": "v1",
"policy": { "filter": "(vantage.provider = 'aws')" }
},
"description": "<string>",
"team_tokens": ["team_abcd1234"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
policy: {api_version: 'v1', policy: {filter: '(vantage.provider = \'aws\')'}},
description: '<string>',
team_tokens: ['team_abcd1234']
})
};
fetch('https://api.vantage.sh/v2/access_policies', 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://api.vantage.sh/v2/access_policies",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'title' => '<string>',
'policy' => [
'api_version' => 'v1',
'policy' => [
'filter' => '(vantage.provider = \'aws\')'
]
],
'description' => '<string>',
'team_tokens' => [
'team_abcd1234'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.vantage.sh/v2/access_policies"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"policy\": {\n \"api_version\": \"v1\",\n \"policy\": {\n \"filter\": \"(vantage.provider = 'aws')\"\n }\n },\n \"description\": \"<string>\",\n \"team_tokens\": [\n \"team_abcd1234\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.vantage.sh/v2/access_policies")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"policy\": {\n \"api_version\": \"v1\",\n \"policy\": {\n \"filter\": \"(vantage.provider = 'aws')\"\n }\n },\n \"description\": \"<string>\",\n \"team_tokens\": [\n \"team_abcd1234\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vantage.sh/v2/access_policies")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"policy\": {\n \"api_version\": \"v1\",\n \"policy\": {\n \"filter\": \"(vantage.provider = 'aws')\"\n }\n },\n \"description\": \"<string>\",\n \"team_tokens\": [\n \"team_abcd1234\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"token": "accss_plcy_c40f15062b6d5c37",
"title": "Engineering costs",
"description": "Limits cost visibility to the Engineering team.",
"policy": {
"api_version": "v1",
"policy": {
"filter": "(vantage.provider = 'aws')"
}
},
"team_tokens": [
"team_fd5c524ba104712b"
],
"created_by": "usr_eb8ce6bdc1fa31d5",
"created_at": "2024-01-18T17:39:37Z"
}{
"errors": [
"<string>"
],
"links": {
"self": "<string>",
"first": "<string>",
"next": "<string>",
"last": "<string>",
"prev": "<string>"
}
}{
"errors": [
"<string>"
],
"links": {
"self": "<string>",
"first": "<string>",
"next": "<string>",
"last": "<string>",
"prev": "<string>"
}
}{
"errors": [
"<string>"
],
"links": {
"self": "<string>",
"first": "<string>",
"next": "<string>",
"last": "<string>",
"prev": "<string>"
}
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Create an Access Policy. Requires a personal API token belonging to a user with the Owner role and the write scope.
The title of the AccessPolicy.
The AccessPolicy definition as a v1 document with vantage.* VQL.
Show child attributes
Show child attributes
{
"api_version": "v1",
"policy": { "filter": "(vantage.provider = 'aws')" }
}
The description of the AccessPolicy.
The tokens for Teams this AccessPolicy is assigned to.
["team_abcd1234"]
Response
AccessPolicy model
The title of the AccessPolicy.
"Engineering costs"
The description of the AccessPolicy.
"Limits cost visibility to the Engineering team."
Show child attributes
Show child attributes
The tokens for Teams this AccessPolicy is assigned to.
The token for the User who created the AccessPolicy.
"usr_abcd1234"
The date and time, in UTC, the AccessPolicy was created. ISO 8601 Formatted.
"2024-01-18T17:39:37Z"