cURL
curl --request POST \
--url https://api.osohq.com/api/policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"src": "<string>"
}
'import os
from oso_cloud import Oso
oso = Oso(api_key=os.environ.get('OSO_CLOUD_API_KEY', None))
# Update policy with Polar code
policy_code = """
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
"""
oso.policy(policy_code)import { Oso } from 'oso-cloud';
const apiKey = process.env.OSO_CLOUD_API_KEY;
const oso = new Oso("https://cloud.osohq.com", apiKey);
// Update policy with Polar code
const policyCode = `
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
`;
await oso.policy(policyCode);package main
import (
"log"
"os"
oso "github.com/osohq/go-oso-cloud/v2"
)
func main() {
apiKey := os.Getenv("OSO_CLOUD_API_KEY")
osoClient := oso.NewClient("https://cloud.osohq.com", apiKey)
// Update policy with Polar code
policyCode := `
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
`
err := osoClient.Policy(policyCode)
if err != nil {
log.Fatal(err)
}
}package com.mycompany;
import java.io.IOException;
import com.osohq.oso_cloud.Oso;
import com.osohq.oso_cloud.api.ApiException;
public class App {
public static void main(String[] args) {
String apiKey = System.getenv("OSO_CLOUD_API_KEY");
Oso oso = new Oso(apiKey);
// Update policy with Polar code
String policyCode = """
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
""";
try {
oso.policy(policyCode);
} catch (IOException | ApiException e) {
System.err.println("Error updating policy: " + e.getMessage());
}
}
}require 'oso-cloud'
api_key = ENV.fetch('OSO_CLOUD_API_KEY', nil)
oso = OsoCloud::Oso.new(url: "https://cloud.osohq.com", api_key: api_key)
# Update policy with Polar code
policy_code = <<~POLAR
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
POLAR
oso.policy(policy_code)using OsoCloud;
string? apiKey = Environment.GetEnvironmentVariable("OSO_CLOUD_API_KEY");
var oso = new Oso("https://api.osohq.com", apiKey);
// Update policy with Polar code
var policyCode = @"
actor User {}
resource Repository {
permissions = [""read"", ""write""];
roles = [""owner"", ""maintainer""];
}
has_role(user: User, ""owner"", repo: Repository) if
user.id = repo.owner_id;
";
await oso.Policy(policyCode);{
"message": "<string>"
}{
"message": "<string>"
}{
"error_type": "Generic",
"message": "<string>"
}Policy
Post policy
Updates the policy in Oso Cloud. The policy should be represented as a string containing Polar code.
POST
/
policy
cURL
curl --request POST \
--url https://api.osohq.com/api/policy \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"src": "<string>"
}
'import os
from oso_cloud import Oso
oso = Oso(api_key=os.environ.get('OSO_CLOUD_API_KEY', None))
# Update policy with Polar code
policy_code = """
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
"""
oso.policy(policy_code)import { Oso } from 'oso-cloud';
const apiKey = process.env.OSO_CLOUD_API_KEY;
const oso = new Oso("https://cloud.osohq.com", apiKey);
// Update policy with Polar code
const policyCode = `
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
`;
await oso.policy(policyCode);package main
import (
"log"
"os"
oso "github.com/osohq/go-oso-cloud/v2"
)
func main() {
apiKey := os.Getenv("OSO_CLOUD_API_KEY")
osoClient := oso.NewClient("https://cloud.osohq.com", apiKey)
// Update policy with Polar code
policyCode := `
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
`
err := osoClient.Policy(policyCode)
if err != nil {
log.Fatal(err)
}
}package com.mycompany;
import java.io.IOException;
import com.osohq.oso_cloud.Oso;
import com.osohq.oso_cloud.api.ApiException;
public class App {
public static void main(String[] args) {
String apiKey = System.getenv("OSO_CLOUD_API_KEY");
Oso oso = new Oso(apiKey);
// Update policy with Polar code
String policyCode = """
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
""";
try {
oso.policy(policyCode);
} catch (IOException | ApiException e) {
System.err.println("Error updating policy: " + e.getMessage());
}
}
}require 'oso-cloud'
api_key = ENV.fetch('OSO_CLOUD_API_KEY', nil)
oso = OsoCloud::Oso.new(url: "https://cloud.osohq.com", api_key: api_key)
# Update policy with Polar code
policy_code = <<~POLAR
actor User {}
resource Repository {
permissions = ["read", "write"];
roles = ["owner", "maintainer"];
}
has_role(user: User, "owner", repo: Repository) if
user.id = repo.owner_id;
POLAR
oso.policy(policy_code)using OsoCloud;
string? apiKey = Environment.GetEnvironmentVariable("OSO_CLOUD_API_KEY");
var oso = new Oso("https://api.osohq.com", apiKey);
// Update policy with Polar code
var policyCode = @"
actor User {}
resource Repository {
permissions = [""read"", ""write""];
roles = [""owner"", ""maintainer""];
}
has_role(user: User, ""owner"", repo: Repository) if
user.id = repo.owner_id;
";
await oso.Policy(policyCode);{
"message": "<string>"
}{
"message": "<string>"
}{
"error_type": "Generic",
"message": "<string>"
}Was this page helpful?
⌘I