> ## Documentation Index > Fetch the complete documentation index at: https://support.appgate.com/llms.txt > Use this file to discover all available pages before exploring further. # Get a specific Policy > Get a specific Policy. ## OpenAPI ````json GET /policies/{id} { "openapi": "3.0.0", "info": { "title": "AppGate SDP Controller REST API", "version": "API version 24.0", "license": { "name": "Proprietary", "url": "https://www.appgate.com" }, "description": "# About\n This specification documents the REST API calls for the AppGate SDP Controller.\n\n Please refer to the REST API chapter in the manual or contact AppGate support with any questions about\n this functionality.\n# Getting Started\n Requirements for API scripting:\n - Access to the Admin/API TLS Connection (default port 8443) of a Controller appliance.\n (https://support.appgate.com/docs/adminapi-tls-connection-v6-6)\n - An API user with relevant permissions.\n (https://support.appgate.com/docs/configure-admin-roles-v6-6)\n - In order to use the simple login API, Admin MFA must be disabled or the API user must be excluded.\n (https://support.appgate.com/docs/mfa-for-admins-v6-6)\n# Base path\n HTTPS requests must be sent to the Admin Interface hostname and port, with **/admin** path.\n\n For example: **https://appgate.company.com:8443/admin**\n\n All requests must have the **Accept** header as:\n\n **application/vnd.appgate.peer-v24+json**\n\n An exception is made for the **/admin/version** endpoint which instead expects an **application/json** Accept header.\n# API Conventions\n API conventions are important to understand and follow strictly.\n\n - While updating objects (via PUT), entire object must be sent with all fields.\n - For example, in order to add a remedy method to the condition below:\n ```\n {\n \"id\": \"12699e27-b584-464a-81ee-5b4784b6d425\",\n \"name\": \"Test\",\n \"notes\": \"Making a point\",\n \"tags\": [\"test\", \"tag\"],\n \"expression\": \"return true;\",\n \"remedyMethods\": []\n }\n ```\n - send the entire object with updated and non-updated fields:\n ```\n {\n \"id\": \"12699e27-b584-464a-81ee-5b4784b6d425\",\n \"name\": \"Test\",\n \"notes\": \"Making a point\",\n \"tags\": [\"test\", \"tag\"],\n \"expression\": \"return true;\",\n \"remedyMethods\": [{\"type\": \"DisplayMessage\", \"message\": \"test message\"}]\n }\n ```\n\n - In case Controller returns an error (non-2xx HTTP status code), response body is JSON.\n The \"message\" field contains information about the error.\n HTTP 422 \"Unprocessable Entity\" has extra `errors` field to list all the issues with specific fields.\n\n - Empty string (\"\") is considered a different value than \"null\" or field being omitted from JSON.\n Omitting the field is recommended if no value is intended.\n Empty string (\"\") will be almost always rejected as invalid value.\n\n - There are common pattern between many objects:\n - **Configuration Objects**: There are many objects with common fields, namely \"id\", \"name\", \"notes\", \"created\"\n and \"updated\". These entities are listed, queried, created, updated and deleted in a similar fashion.\n - **Distinguished Name**: Users and Devices are identified with what is called Distinguished Names, as used in\n LDAP. The distinguished format that identifies a device and a user combination is\n \"CN=\\,CN=\\,OU=\\\". Some objects have the\n \"userDistinguishedName\" field, which does not include the CN for Device ID.\n This identifies a user on every device.", "x-logo": { "url": "data:image/png;base64,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", "href": "#" }, "contact": { "name": "AppGate SDP Support", "url": "https://support.appgate.com/docs", "email": "appgatesdp.support@appgate.com" } }, "servers": [ { "url": "https://appgate.company.com:8443/admin" } ], "security": [ { "BearerAuth": [] } ], "x-tagGroups": [ { "name": "Authentication & Authorization", "tags": [ "Version", "Login" ] }, { "name": "Dashboard", "tags": [ "Top Entitlements", "User Logins Per Hour", "Devices On-Boarded Per Hour" ] }, { "name": "Admin Messages", "tags": [ "Admin Messages" ] }, { "name": "Access", "tags": [ "Policies", "Conditions", "Entitlements", "Risk Model", "Ringfence Rules", "Admin Roles", "Criteria Scripts", "Entitlement Scripts" ] }, { "name": "Identity", "tags": [ "Client Profiles", "Identity Providers", "IP Pools", "MFA Providers", "Device Claim Scripts", "User Claim Scripts", "Local Users", "Service Users" ] }, { "name": "System", "tags": [ "Appliances", "Replication Targets", "Sites", "Tags", "Appliance Customizations", "Trusted Certificates", "Secrets Manager", "Client Auto-Update", "Certificate Authority", "Appliance Change", "Appliance Upgrade", "Appliance Backup", "Appliance Metrics" ] }, { "name": "Usage", "tags": [ "Active Sessions", "Client Logs", "Discovered Apps", "Health", "Registered Devices", "Blacklisted Users", "Licensed Users", "Default Time-Based OTP Provider Seeds", "FIDO2 Devices", "Issued Certificates" ] }, { "name": "Settings", "tags": [ "Global Settings", "MFA for Admins", "License", "ZTP", "Replication Source" ] }, { "name": "Other", "tags": [ "Admin Preferences" ] } ], "paths": { "/policies/{id}": { "get": { "summary": "Get a specific Policy.", "description": "Get a specific Policy.", "tags": [ "Policies" ], "parameters": [ { "$ref": "#/components/parameters/id" } ], "responses": { "200": { "description": "Single Policy.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Policy" } } } }, "401": { "$ref": "#/components/responses/TokenError" }, "403": { "$ref": "#/components/responses/PermissionError" }, "404": { "$ref": "#/components/responses/NotFoundError" }, "406": { "$ref": "#/components/responses/responses-NotAcceptableError" }, "500": { "$ref": "#/components/responses/UnexpectedError" } } } } }, "components": { "parameters": { "id": { "name": "id", "in": "path", "description": "ID of the object.", "required": true, "schema": { "type": "string", "format": "uuid", "example": "12699e27-b584-464a-81ee-5b4784b6d425" } } }, "schemas": { "Policy": { "allOf": [ { "$ref": "#/components/schemas/BaseEntity" }, { "type": "object", "description": "Represents a Policy.", "required": [ "expression" ], "properties": { "disabled": { "type": "boolean", "description": "If true, the Policy will be disregarded during authorization.", "default": false }, "expression": { "type": "string", "description": "A JavaScript expression that returns boolean. Criteria Scripts may be used by calling them as functions.", "example": "var result = false;\nif/*claims.user.groups*/(claims.user.groups && claims.user.groups.indexOf(\"developers\") >= 0)/*end claims.user.groups*/ { return true; }\nif/*criteriaScript*/(admins(claims))/*end criteriaScript*/ { return true; }\nreturn result;" }, "type": { "type": "string", "description": "Type of the Policy. The assigned type will be enforced by not allowing enabling other types of features on the Policy.", "enum": [ "Access", "Device", "Dns", "Admin", "Mixed", "Stop" ], "default": "Mixed" }, "entitlements": { "type": "array", "description": "List of Entitlement IDs in this Policy.", "items": { "x-uuid-ref": "Entitlement", "type": "string", "format": "uuid", "example": "4c07bc67-57ea-42dd-b702-c2d6c45419fc" } }, "entitlementLinks": { "type": "array", "description": "List of Entitlement tags in this Policy.", "items": { "type": "string", "example": "developer" } }, "ringfenceRules": { "type": "array", "description": "List of Ringfence Rule IDs in this Policy.", "items": { "type": "string", "format": "uuid", "x-uuid-ref": "RingfenceRule", "example": "4c07bc67-57ea-42dd-b702-c2d6c45419fc" } }, "ringfenceRuleLinks": { "type": "array", "description": "List of Ringfence Rule tags in this Policy.", "items": { "type": "string", "example": "developer" } }, "tamperProofing": { "type": "boolean", "description": "Will enable Tamper Proofing on desktop clients which will make sure the routes and ringfence configurations are not changed. Will be set to true if it's not provided and the type is \"Device\"." }, "overrideSite": { "x-uuid-ref": "Site", "type": "string", "format": "uuid", "description": "Site ID where all the Entitlements of this Policy must be deployed. This overrides Entitlement's own Site and to be used only in specific network layouts. Otherwise the assigned site on individual Entitlements will be used.", "example": "4c07bc67-57ea-42dd-b702-c2d6c45419fc" }, "overrideSiteClaim": { "type": "string", "description": "The path of a claim that contains the UUID of an override site. It should be defined as \"claims.xxx.xxx\" or \"claims.xxx.xxx.xxx\".", "example": "claims.user.overrideSite" }, "overrideNearestSite": { "type": "boolean", "description": "Overrides the Entitlements Site according to location of the client and Sites where this feature is enabled." }, "applyFallbackSite": { "type": "boolean", "description": "The Entitlements in this Policy will be available in the fallback Sites if the corresponding Sites are configured accordingly." }, "blockLocalDnsRequests": { "type": "boolean", "description": "Whether the Windows Client will block local DNS requests or not.", "default": false }, "proxyAutoConfig": { "type": "object", "description": "Client configures PAC URL on the client OS.", "properties": { "enabled": { "type": "boolean", "default": false }, "url": { "type": "string", "description": "The URL to set on the Client OS.", "example": "https://pac.company.com/file.pac" }, "persist": { "type": "boolean", "description": "If true Client will leave the PAC URL configured after signing out." } } }, "trustedNetworkCheck": { "type": "object", "description": "Client suspends operations when it's in a trusted network.", "properties": { "enabled": { "type": "boolean", "default": false }, "dnsSuffix": { "type": "string", "description": "Client checks if the DNS suffix has been configured on the OS to decide whether it's on a trusted network or not." } } }, "dnsSettings": { "type": "array", "description": "List of domain names with DNS server IPs that the Client should be using.", "items": { "type": "object", "description": "A domain name and a list of DNS servers.", "required": [ "domain", "servers" ], "properties": { "domain": { "type": "string", "description": "The domain for which the DNS servers should be used by the client.", "example": "Default" }, "servers": { "type": "array", "items": { "type": "string", "description": "The DNS servers to use for the domain.", "example": "192.168.1.22" } }, "registerTunIpsToActiveDirectory": { "type": "boolean", "description": "Enables a Windows feature to register Appgate TUN IPs to the Active Directory for this domain." } } } }, "clientSettings": { "type": "object", "description": "Settings that admins can apply to the Client.", "properties": { "enabled": { "type": "boolean", "description": "Enable Client Settings for this Policy.", "default": false }, "entitlementsList": { "type": "string", "description": "Show or hide Entitlement List on Client UI.", "enum": [ "Show", "Hide" ] }, "attentionLevel": { "type": "string", "enum": [ "Show", "Low", "Medium", "High" ], "description": "Set the Attention Level automatically on Client and hide the option. \"Show\" will leave option to the user." }, "autoStart": { "type": "string", "enum": [ "Show", "Enabled", "Disabled" ], "description": "Set the Autostart setting automatically on Client and hide the option. \"Show\" will leave option to the user." }, "addRemoveProfiles": { "type": "string", "description": "Allow adding and removing profiles on Client.", "enum": [ "Show", "Hide" ] }, "keepMeSignedIn": { "type": "string", "enum": [ "Show", "Enabled", "Disabled" ], "description": "Set the \"Keep me signed-in\" setting for credential providers automatically on Client and hide the option. \"Show\" will leave option to the user." }, "samlAutoSignIn": { "type": "string", "enum": [ "Show", "Enabled", "Disabled" ], "description": "Set the \"SAML/Certificate auto sign-in\" setting automatically on Client and hide the option. \"Show\" will leave option the user." }, "quit": { "type": "string", "description": "Show or hide \"Quit\" on Client UI.", "enum": [ "Show", "Hide" ] }, "signOut": { "type": "string", "description": "Show or hide \"Sign out\" on Client UI.", "enum": [ "Show", "Hide" ] }, "suspend": { "type": "string", "description": "Show or hide \"Suspend\" feature on Client UI.", "enum": [ "Show", "Hide" ] }, "newUserOnboarding": { "type": "string", "description": "Show or hide the tooltips for new users on Client UI as well as the arrival messages on Portal. As of 6.4, Client has no longer tooltips so this setting only affects the arrival messages on Portal. ", "enum": [ "Show", "Hide" ] } } }, "clientProfileSettings": { "type": "object", "description": "Profiles that admins can apply to the Client.", "properties": { "enabled": { "type": "boolean", "description": "Enable Client Profile Settings for this Policy." }, "profiles": { "type": "array", "description": "List of profiles.", "items": { "type": "string", "format": "uuid", "example": "4c07bc67-57ea-42dd-b702-c2d6c45419fc" } }, "force": { "type": "boolean", "description": "Makes the client skip the user prompt and apply the profiles immediately. Required to be true to apply the settings when authorization fails, such as in case of Stop Policies.", "default": false } } }, "customClientHelpUrl": { "type": "string", "description": "Set custom help URL on Client UI.", "example": "https://support.appgate.com/docs/welcome-vx-x" }, "administrativeRoles": { "type": "array", "description": "List of Administrative Role IDs in this Policy.", "items": { "x-uuid-ref": "AdministrativeRole", "type": "string", "format": "uuid", "example": "4c07bc67-57ea-42dd-b702-c2d6c45419fc" } } } } ] }, "BaseEntity": { "type": "object", "required": [ "name" ], "properties": { "id": { "type": "string", "format": "uuid", "description": "ID of the object.", "example": "4c07bc67-57ea-42dd-b702-c2d6c45419fc" }, "name": { "type": "string", "description": "Name of the object.", "example": "object" }, "notes": { "type": "string", "description": "Notes for the object. Used for documentation purposes.", "example": "This object has been created for test purposes." }, "created": { "type": "string", "format": "date-time", "description": "Create date.", "readOnly": true }, "updated": { "type": "string", "format": "date-time", "description": "Last update date.", "readOnly": true }, "readOnly": { "type": "boolean", "description": "Whether the entity is protected from manual updates and deletes.", "example": false, "readOnly": true }, "tags": { "type": "array", "description": "Array of tags.", "items": { "type": "string" }, "example": [ "developer", "api-created" ] } } }, "Error": { "type": "object", "description": "Generic HTTP error.", "properties": { "id": { "type": "string", "description": "Machine readable error code." }, "message": { "type": "string", "description": "Human readable error details." } } } }, "responses": { "TokenError": { "description": "Token error. Login again.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "PermissionError": { "description": "Insufficient permissions to access this resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "NotFoundError": { "description": "The requested resource can not be found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "responses-NotAcceptableError": { "description": "Invalid 'Accept' header.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } }, "UnexpectedError": { "description": "Unexpected server side error.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" } } } } }, "securitySchemes": { "BearerAuth": { "type": "http", "scheme": "bearer" } } } } ````