UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip gov aops-policy

Syntax and options for `uip gov aops-policy`'s policy CRUD, product catalog, license-type catalog, and Form.io template commands.

uip gov aops-policy manages UiPath AOps governance policies — product configuration rules (e.g. a StudioX policy restricting which project settings are allowed) authored as a filled-in Form.io form and assigned across tenants/users/groups. This page covers the authoring side: the policy record itself (list/get/create/update/delete), plus the read-only reference catalogs (product, license-type) and the template commands that generate the fillable form-data blueprint a policy's data payload is built from. For assigning a policy to a subject and resolving what actually applies at runtime, see aops-policy deployment and deployed-policy. For the parent tool overview and Access Policies, see uip gov.

Note:

Typical flow: template get <product> → edit the emitted form-data.json → policy create --product-name <product> --name <name> --input form-data.json → deployment tenant configure (or user/group) to roll it out.

Synopsis​

uip gov aops-policy list [--product-name <name>] [--product-label <label>] [--search <term>] [--sort-by <field>] [--sort-order asc|desc] [--limit <n>] [--offset <n>] [--download [path]]
uip gov aops-policy get <policyIdentifier> [--download [path]]
uip gov aops-policy create --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy update --identifier <id> --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy delete <policyIdentifier>

uip gov aops-policy product list
uip gov aops-policy product get <productIdentifier>

uip gov aops-policy license-type list

uip gov aops-policy template get <productIdentifier> [--output-form-data <path>] [--output-template-locale-resource <path>]
uip gov aops-policy template list --output-dir <path>
uip gov aops-policy list [--product-name <name>] [--product-label <label>] [--search <term>] [--sort-by <field>] [--sort-order asc|desc] [--limit <n>] [--offset <n>] [--download [path]]
uip gov aops-policy get <policyIdentifier> [--download [path]]
uip gov aops-policy create --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy update --identifier <id> --name <name> --product-name <name> [--description <text>] [--priority <n>] [--availability <n>] [--input <path>]
uip gov aops-policy delete <policyIdentifier>

uip gov aops-policy product list
uip gov aops-policy product get <productIdentifier>

uip gov aops-policy license-type list

uip gov aops-policy template get <productIdentifier> [--output-form-data <path>] [--output-template-locale-resource <path>]
uip gov aops-policy template list --output-dir <path>

Every verb also accepts --login-validity <minutes> to override the interactive-login token lifetime for that one call (rarely needed).

uip gov aops-policy list​

List governance policies, with optional filtering and pagination. Returns policy metadata (identifier, name, product, priority, availability) — not the policy data blob.

Options​

LongValueDescription
--product-name <product-name>stringRestrict to one product (e.g. StudioX). Matches product.name — see product list.
--product-label <productLabel>stringRestrict to one product by display label (e.g. 'Studio X'). Prefer --product-name for scripting.
--search <searchTerm>stringCase-insensitive substring match against policy name/description.
--sort-by <field>stringField to sort by (e.g. name, createdOn, priority). Passed through to the governance API.
--sort-order <direction>asc | descSort direction for --sort-by. Case-insensitive; any other value fails client-side.
--limit <n>integerPage size. Default 20.
--offset <n>integerZero-based page index, not a row offset. Default 0. Page 0 returns rows 1 to --limit, page 1 the next --limit rows.
--download [path]pathWrite every policy on the page to its own JSON file and pack the files into a zip, instead of printing them. Refer to Downloading policies.

Example​

uip gov aops-policy list --product-name StudioX --limit 2
uip gov aops-policy list --product-name StudioX --limit 2

Data shape (--output json)​

{
  "Code": "AopsPolicyList",
  "Data": {
    "TotalCount": 2,
    "Result": [
      {
        "Name": "Baseline StudioX Policy",
        "Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
        "Description": "",
        "Priority": 10,
        "Availability": 1,
        "Product": { "Name": "StudioX", "Label": "Studio X" },
        "Data": null
      }
    ]
  }
}
{
  "Code": "AopsPolicyList",
  "Data": {
    "TotalCount": 2,
    "Result": [
      {
        "Name": "Baseline StudioX Policy",
        "Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
        "Description": "",
        "Priority": 10,
        "Availability": 1,
        "Product": { "Name": "StudioX", "Label": "Studio X" },
        "Data": null
      }
    ]
  }
}

Data.Result holds the policies on the requested page and Data.TotalCount the number of policies that match the filters. Product holds the policy's product record. Rows on a page carry Data: null; use get for a policy's form data.

With --download, the command returns Code: "AopsPolicyListDownloaded" and Data with DownloadFile (the zip path), PolicyCount (policies downloaded), and TotalCount (policies matched). PolicyCount lower than TotalCount means the zip holds one page of the matches. When no policy matches, the command fails with ErrorCode: "not_found".

uip gov aops-policy get​

Fetch one policy by identifier, including its full data payload (the filled form-data blueprint). Use to inspect submitted values, or to seed a follow-up update.

Arguments​

NameRequiredPurpose
<policyIdentifier>yesPolicy GUID, from list.

Options​

LongValueDescription
--download [path]pathWrite the policy to a JSON file instead of printing it. Refer to Downloading policies.

Examples​

uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001

# Save the policy as ./backups/<product name>-<policy name>.json
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001 --download ./backups/
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001

# Save the policy as ./backups/<product name>-<policy name>.json
uip gov aops-policy get a1b2c3d4-0000-0000-0000-000000000001 --download ./backups/

Data shape (--output json)​

{
  "Code": "AopsPolicyGet",
  "Data": {
    "Name": "Baseline StudioX Policy",
    "Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
    "Description": "",
    "Priority": 10,
    "Availability": 1,
    "Product": { "Name": "StudioX", "Label": "Studio X" },
    "Data": { "allowAnalytics": true, "maxProjects": 5 }
  }
}
{
  "Code": "AopsPolicyGet",
  "Data": {
    "Name": "Baseline StudioX Policy",
    "Identifier": "a1b2c3d4-0000-0000-0000-000000000001",
    "Description": "",
    "Priority": 10,
    "Availability": 1,
    "Product": { "Name": "StudioX", "Label": "Studio X" },
    "Data": { "allowAnalytics": true, "maxProjects": 5 }
  }
}

The policy's own fields are PascalCase. The keys inside Data.Data, the policy's form data, are returned exactly as the service sent them, in the Form.io form's camelCase or kebab-case. Save Data.Data to a file to pass it back with update --input.

With --download, the command returns Code: "AopsPolicyDownloaded" and Data with DownloadFile (the JSON file path) and PolicyCount: 1.

uip gov aops-policy create​

Create a new governance policy for a product.

Options​

LongValueRequiredDescription
--name <name>stringyesHuman-readable policy name (unique within the product).
--product-name <product-name>stringyesTarget product (e.g. StudioX, AITrustLayer) — must match a name from product list.
--description <description>stringnoFree-text description surfaced in the governance UI.
--priority <n>integernoWhen multiple policies apply to the same subject, higher numbers win.
--availability <n>integernoAvailability flag (product-specific enum) — check the governance UI or service docs for valid values.
--input <path>pathnoJSON file with the filled form-data object (from template get --output-form-data). Omit for a policy with no data payload.

Example​

uip gov aops-policy create --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json
uip gov aops-policy create --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json

Data shape (--output json)​

{
  "Code": "AopsPolicyCreate",
  "Data": { "Identifier": "a1b2c3d4-0000-0000-0000-000000000001", "Name": "Baseline StudioX Policy" }
}
{
  "Code": "AopsPolicyCreate",
  "Data": { "Identifier": "a1b2c3d4-0000-0000-0000-000000000001", "Name": "Baseline StudioX Policy" }
}

The policy's own fields are PascalCase, and the keys inside Data.Data are returned exactly as the service sent them. The response echoes the raw (doubly-wrapped) data blob, not the flattened shape get returns — use get to produce form-data for a follow-up update --input.

uip gov aops-policy update​

Replace the fields of an existing policy. Full update, not a patch — every field you want to keep must be passed again; omitting --description/--priority/--availability/--input clears that field on the server.

Options​

LongValueRequiredDescription
--identifier <identifier>GUIDyesPolicy to update. From list/get.
--name <name>stringyesPolicy name. Passing the existing name preserves it.
--product-name <product-name>stringyesMust match the policy's existing product — changing product on update is not supported.
--description <description>stringnoFull-replace: re-pass the existing value from get to preserve it.
--priority <n>integernoFull-replace: re-pass the existing value to preserve it.
--availability <n>integernoFull-replace: re-pass the existing value to preserve it.
--input <path>pathnoFull-replace: re-pass the existing data (saved from get) to preserve it.

Fails with a "template upgrade in progress" error if the underlying Form.io template is being migrated — retry once it completes.

Example​

uip gov aops-policy update --identifier a1b2c3d4-0000-0000-0000-000000000001 --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json
uip gov aops-policy update --identifier a1b2c3d4-0000-0000-0000-000000000001 --name "Baseline StudioX Policy" --product-name StudioX --input form-data.json

Data shape (--output json)​

Same shape as create, with Code: "AopsPolicyUpdate".

uip gov aops-policy delete​

Permanently delete a governance policy.

Note:

Fails if the policy is still assigned to any tenant/user/group. Run deployment tenant\|user\|group remove on every subject first, then retry.

Arguments​

NameRequiredPurpose
<policyIdentifier>yesPolicy GUID, from list.

Example​

uip gov aops-policy delete a1b2c3d4-0000-0000-0000-000000000001
uip gov aops-policy delete a1b2c3d4-0000-0000-0000-000000000001

Data shape (--output json)​

{ "Code": "AopsPolicyDelete", "Data": { "Status": "Deleted", "Identifier": "a1b2c3d4-0000-0000-0000-000000000001" } }
{ "Code": "AopsPolicyDelete", "Data": { "Status": "Deleted", "Identifier": "a1b2c3d4-0000-0000-0000-000000000001" } }

Downloading policies​

list --download and get --download write policies to disk instead of printing them. Each policy file holds the policy exactly as the governance service's download returns it, form data included, with keys exactly as the service sent them: policy-name, description, availability, version, product-name, and data.

CommandWhat it writes[path]
get --download [path]One JSON file named <product name>-<policy name>.json.The JSON file to write. A directory saves the default file name inside it. Leaving it off saves the default file name in the current directory.
list --download [path]A zip with one <product name>-<policy name>.json entry per policy on the requested page. --limit, --offset, and the filters apply as for a plain list.The zip file to write. A directory saves aops-policies.zip inside it. Leaving it off saves aops-policies.zip in the current directory.

uip gov aops-policy product​

Read-only catalog of products that publish governance templates. Use to discover valid --product-name values.

uip gov aops-policy product list​

Example​
uip gov aops-policy product list
uip gov aops-policy product list
Data shape (--output json)​
{
  "Code": "AopsProductList",
  "Data": [
    { "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" }
  ]
}
{
  "Code": "AopsProductList",
  "Data": [
    { "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" }
  ]
}

name is what policy create --product-name, template get <productIdentifier>, and deployment ... configure entries expect; label is the display name.

uip gov aops-policy product get​

Arguments​
NameRequiredPurpose
<productIdentifier>yesProduct name (e.g. StudioX) or GUID — either name or identifier from product list.
Example​
uip gov aops-policy product get StudioX
uip gov aops-policy product get StudioX
Data shape (--output json)​
{ "Code": "AopsProductGet", "Data": { "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" } }
{ "Code": "AopsProductGet", "Data": { "identifier": "a1b2c3d4-0000-0000-0000-0000000000B1", "name": "StudioX", "label": "Studio X" } }

uip gov aops-policy license-type​

Read-only catalog of license types (e.g. Attended, Unattended) — used to scope deployment tenant configure entries and as the <license-type> argument to deployed-policy get/list.

uip gov aops-policy license-type list​

Example​
uip gov aops-policy license-type list
uip gov aops-policy license-type list
Data shape (--output json)​
{
  "Code": "AopsLicenseTypeList",
  "Data": [
    { "identifier": "a1b2c3d4-0000-0000-0000-0000000000A1", "name": "Attended" },
    { "identifier": "a1b2c3d4-0000-0000-0000-0000000000A2", "name": "Unattended" }
  ]
}
{
  "Code": "AopsLicenseTypeList",
  "Data": [
    { "identifier": "a1b2c3d4-0000-0000-0000-0000000000A1", "name": "Attended" },
    { "identifier": "a1b2c3d4-0000-0000-0000-0000000000A2", "name": "Unattended" }
  ]
}

The identifier feeds deployment tenant configure entries; the display name is what deployed-policy get/list accept as <license-type>.

uip gov aops-policy template​

Generates the fillable form-data blueprint (and a human-readable reference) from a product's Form.io policy template — the source of a policy's data payload.

uip gov aops-policy template get​

Fetch the active Form.io template for one product and emit policy artifacts.

Arguments​
NameRequiredPurpose
<productIdentifier>yesProduct name or identifier (e.g. StudioX).
Options​
LongValueDescription
--output-form-data <path>pathWrite the fillable form-data blueprint JSON — the object you edit and submit back on create/update. Display-only components (hidden, button, submit, HTML, content) are skipped; missing leaves get type-appropriate defaults (false for checkbox, [] for editgrid, {} for selectboxes, null for text/select).
--output-template-locale-resource <path>pathWrite a locale-resolved human-readable reference: every product-scoped locale key is replaced with its English string (with a sibling <prop>-key preserving the original), and defaultData.data becomes a flat annotated map ({ value, type, label, description?, tooltip? }). Cross-product prefixes (e.g. AutomationOps.submit) are left unresolved.

If neither --output-* flag is passed, both the template and form-data are returned in the stdout Data payload instead.

Example​
uip gov aops-policy template get StudioX --output-form-data form-data.json --output-template-locale-resource reference.json
uip gov aops-policy template get StudioX --output-form-data form-data.json --output-template-locale-resource reference.json
Data shape (--output json)​
{
  "Code": "AopsPolicyTemplateGet",
  "Data": {
    "formDataFile": "/Users/alice/aops/form-data.json",
    "templateLocaleResourceFile": "/Users/alice/aops/reference.json"
  }
}
{
  "Code": "AopsPolicyTemplateGet",
  "Data": {
    "formDataFile": "/Users/alice/aops/form-data.json",
    "templateLocaleResourceFile": "/Users/alice/aops/reference.json"
  }
}

When no --output-* flag is passed, Data instead contains template (the raw Form.io DTO) and formData (the blueprint) directly — both preserve their native Form.io key casing rather than being PascalCased, so formData round-trips into create/update --input verbatim.

An UnsupportedTemplateComponentError (product's template uses a component type the CLI can't convert) fails with ErrorCode: "configuration_error" and Retry: "RetryWillNotFix" — author the policy data by hand in that case.

uip gov aops-policy template list​

Fetch every product's template and dump a full artifact set per product — use instead of looping template get.

Options​
LongValueRequiredDescription
--output-dir <path>pathyesDirectory under which one <ProductName>/ folder per product (containing form-template.json, form-data.json, form-template-locale-resource.json) is created.

Per-product failures are collected and don't abort the run — the command exits non-zero only if every product fails.

Example​
uip gov aops-policy template list --output-dir ./aops-templates
uip gov aops-policy template list --output-dir ./aops-templates
Data shape (--output json)​
{
  "Code": "AopsPolicyTemplateList",
  "Data": {
    "outputDir": "/Users/alice/aops-templates",
    "results": [
      {
        "productName": "StudioX",
        "status": "Success",
        "templateFile": "/Users/alice/aops-templates/StudioX/form-template.json",
        "formDataFile": "/Users/alice/aops-templates/StudioX/form-data.json",
        "templateLocaleResourceFile": "/Users/alice/aops-templates/StudioX/form-template-locale-resource.json"
      }
    ]
  }
}
{
  "Code": "AopsPolicyTemplateList",
  "Data": {
    "outputDir": "/Users/alice/aops-templates",
    "results": [
      {
        "productName": "StudioX",
        "status": "Success",
        "templateFile": "/Users/alice/aops-templates/StudioX/form-template.json",
        "formDataFile": "/Users/alice/aops-templates/StudioX/form-data.json",
        "templateLocaleResourceFile": "/Users/alice/aops-templates/StudioX/form-template-locale-resource.json"
      }
    ]
  }
}

A failed product's entry has status: "Failure" and a message field instead of the three file paths.

See also​

Was this page helpful?

Connect

Need help? Support(opens in new window)

Want to learn? UiPath Academy(opens in new window)

Have questions? UiPath Forum(opens in new window)

Stay updated