/** * Agilicus API * Agilicus is API-first. Modern software is controlled by other software, is open, is available for you to use the way you want, securely, simply. The OpenAPI Specification in YAML format is available on [www](https://www.agilicus.com/www/api/agilicus-openapi.yaml) for importing to other tools. A rendered, online viewable and usable version of this specification is available at [api](https://www.agilicus.com/api). You may try the API inline directly in the web page. To do so, first obtain an Authentication Token (the simplest way is to install the Python SDK, and then run `agilicus-cli --issuer https://MYISSUER get-token`). You will need an org-id for most calls (and can obtain from `agilicus-cli --issuer https://MYISSUER list-orgs`). The `MYISSUER` will typically be `auth.MYDOMAIN`, and you will see it as you sign-in to the administrative UI. This API releases on Bearer-Token authentication. To obtain a valid bearer token you will need to Authenticate to an Issuer with OpenID Connect (a superset of OAUTH2). Your \"issuer\" will look like https://auth.MYDOMAIN. For example, when you signed-up, if you said \"use my own domain name\" and assigned a CNAME of cloud.example.com, then your issuer would be https://auth.cloud.example.com. If you selected \"use an Agilicus supplied domain name\", your issuer would look like https://auth.myorg.agilicus.cloud. For test purposes you can use our [Python SDK](https://pypi.org/project/agilicus/) and run `agilicus-cli --issuer https://auth.MYDOMAIN get-token`. This API may be used in any language runtime that supports OpenAPI 3.0, or, you may use our [Python SDK](https://pypi.org/project/agilicus/), our [Typescript SDK](https://www.npmjs.com/package/@agilicus/angular), or our [Golang SDK](https://git.agilicus.com/pub/sdk-go). 100% of the activities in our system our API-driven, from our web-admin, through our progressive web applications, to all internals: there is nothing that is not accessible. For more information, see [developer resources](https://www.agilicus.com/developer). * * The version of the OpenAPI document: 2025.12.16 * Contact: dev@agilicus.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import { DesktopConnectionInfo } from './desktopConnectionInfo'; import { NetworkServiceConfig } from './networkServiceConfig'; import { DesktopRemoteApp } from './desktopRemoteApp'; import { ResourceConfig } from './resourceConfig'; export interface _DesktopResourceSpec { /** * The name of the DesktopResource. This uniquely identifies the DesktopResource within the organisation. */ name: string; /** * The hostname or IP of the DesktopResource. A Desktop Gateway will proxy requests from the client through to this address via the Connector associated with this gateway using `connector_id`. */ address: string; config?: NetworkServiceConfig; /** * The type of desktop represented by this DesktopResource. The type identifies which protocol will be used to communicate with it. The possible types are: - `rdp`: Remote Desktop Protocol (RDP). This allows clients which support RDP to connect to a desktop running an RDP server. - \'vnc\': Virtual Network Computing protocol (VNC). This allows the clients that support VNC to connect to a desktop running a VNC server */ desktop_type: DesktopResourceSpec.DesktopTypeEnum; /** * The internal session type. In Microsoft Remote Desktop, `admin` means console. - `admin`: Connect to the console (session id = 0) - `user`: Create a new user session, which might sign out the console depending on setup. */ session_type?: DesktopResourceSpec.SessionTypeEnum; /** * Unique identifier */ org_id: string; /** * Unique identifier */ connector_id?: string; /** * A human readable slug to identify a resource and that is rfc1035 label compliant. The length has been restricted to 20 characters such that this name can be concatenated with other names or slugs. A slug is readOnly as it is generated by the backend resource. */ name_slug?: string; connection_info?: DesktopConnectionInfo; remote_app?: DesktopRemoteApp; /** * Extra configuration for desktops. For RDP desktops use https://learn.microsoft.com/en-us/azure/virtual-desktop/rdp-properties These fields will be added to the end of the generated RDP configuration files. These configurations will override other configurations. */ extra_configs?: Array; resource_config?: ResourceConfig; /** * Whether to allow non-domian-joined users. If true, append relavant properties for user\'s RDP session */ allow_non_domain_joined_users?: boolean; } export interface DesktopResourceSpec extends _DesktopResourceSpec { _builtin_original?: _DesktopResourceSpec; _remove_builtin_extensions?: () => void; } export declare class DesktopResourceSpecImpl implements _DesktopResourceSpec { _builtin_original?: _DesktopResourceSpec; name: string; address: string; config: NetworkServiceConfig | undefined; desktop_type: DesktopResourceSpec.DesktopTypeEnum; session_type: DesktopResourceSpec.SessionTypeEnum | undefined; org_id: string; connector_id: string | undefined; name_slug: string | undefined; connection_info: DesktopConnectionInfo | undefined; remote_app: DesktopRemoteApp | undefined; extra_configs: Array | undefined; resource_config: ResourceConfig | undefined; allow_non_domain_joined_users: boolean | undefined; constructor(base: _DesktopResourceSpec); _remove_builtin_extensions(): void; } export declare namespace DesktopResourceSpec { type DesktopTypeEnum = 'rdp' | 'vnc'; const DesktopTypeEnum: { rdp: DesktopTypeEnum; vnc: DesktopTypeEnum; }; type SessionTypeEnum = 'user' | 'admin'; const SessionTypeEnum: { user: SessionTypeEnum; admin: SessionTypeEnum; }; } export declare function newDesktopResourceSpecImpl(base: _DesktopResourceSpec): DesktopResourceSpecImpl;