Skip to main content
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>"
}

Authorizations

Authorization
string
header
required

Requires an API key to access.

Query Parameters

force
boolean
required
show_suggestions
boolean
required
fail_fast
boolean
required

Body

application/json
src
string
required
filename
string | null

Response

The policy was updated.

message
string
required