Create access policy
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>"
}
}AccessPolicies
Create access policy
Create an Access Policy.
POST
/
access_policies
Create access policy
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
application/json
Create an Access Policy.
The title of the AccessPolicy.
The AccessPolicy definition as a v1 document with vantage.* VQL.
Show child attributes
Show child attributes
Example:
{ "api_version": "v1", "policy": { "filter": "(vantage.provider = 'aws')" } }
The description of the AccessPolicy.
The tokens for Teams this AccessPolicy is assigned to.
Example:
["team_abcd1234"]
Response
AccessPolicy model
The title of the AccessPolicy.
Example:
"Engineering costs"
The description of the AccessPolicy.
Example:
"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.
Example:
"usr_abcd1234"
The date and time, in UTC, the AccessPolicy was created. ISO 8601 Formatted.
Example:
"2024-01-18T17:39:37Z"