/** * 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 { CipherDiffieHellmanGroup } from './cipherDiffieHellmanGroup'; import { CipherIntegrityAlgorithm } from './cipherIntegrityAlgorithm'; import { IpsecConnectionIpv4Block } from './ipsecConnectionIpv4Block'; import { CipherEncryptionAlgorithm } from './cipherEncryptionAlgorithm'; export interface _IpsecConnectionSpec { /** * The IKE version */ ike_version?: IpsecConnectionSpec.IkeVersionEnum; /** * remote peer IPv4 address */ remote_ipv4_address?: string; /** * remote peer DNS IPv4 address */ remote_dns_ipv4_address?: string; /** * Remote peer healthcheck IPv4 address. The remote peer address must respond to ping (ICMP). This is used to validate the health of the connection. */ remote_healthcheck_ipv4_address?: string; ike_cipher_encryption_algorithm?: CipherEncryptionAlgorithm; ike_cipher_integrity_algorithm?: CipherIntegrityAlgorithm; ike_cipher_diffie_hellman_group?: CipherDiffieHellmanGroup; esp_cipher_encryption_algorithm?: CipherEncryptionAlgorithm; esp_cipher_integrity_algorithm?: CipherIntegrityAlgorithm; esp_cipher_diffie_hellman_group?: CipherDiffieHellmanGroup; /** * Absolute time after which an IPsec security association expires, in minutes. */ esp_lifetime?: number; /** * Absolute time after which an IKE security association expires, in minutes. */ ike_lifetime?: number; /** * Allows control of IKE rekey. true is enabled, false is disabled. */ ike_rekey?: boolean; /** * Allows control of IKE re-authentication. true is enabled, false is disabled. */ ike_reauth?: boolean; /** * The IKE authentication type. */ ike_authentication_type?: IpsecConnectionSpec.IkeAuthenticationTypeEnum; /** * ike preshared key */ ike_preshared_key?: string; /** * Chain of trust certficates. Certificates are PEM encoded and are separated by a newline. ie. A signed by B would be a string where A is first, newline, followed by B. */ ike_chain_of_trust_certificates?: string; /** * certificate distinguished name (DN) Deprecated in favour of the generic ike_remote_identity field. */ ike_certificate_dn?: string; /** * The identity of the remote peer. The remote peer will send credentials including this identity as part of the IKE authentication exchange. The meaning of the identity depends on the authentication type. - `ike_preshared_key`: This is an arbitrary value provisioned on the remote peer, often a FQDN or email address. E.g. \"vpn.my-org.example.com\". - `certificate`: This is the distinguished name (DN) of the entity certificate presented by the remote peer. E.g. \"C=CA; O=Agilicus; CN=vpn-1.ca-1.agilicus.ca\". */ ike_remote_identity?: string; /** * The local IP block that used by the tunnel. A tunnel requires a /30 subnet, within the following IP address ranges 192.168.0.0 -> 192.168.255.252 172.16.0.0 -> 172.31.255.255 */ local_ipv4_block?: string; /** * One or more IP address ranges that define the peer network range. */ remote_ipv4_ranges?: Array; /** * Controls if certificate exchange using hash is enabled. */ use_cert_hash?: boolean; /** * Provides the local endpoint uri base for certificate hash lookup. See https://tools.ietf.org/html/rfc7296#section-3.6 (Hash and URL encoding). Note that since the ultimate URL is constructed through concatenation, the final `/` is important. */ local_certificate_uribase?: string; /** * Provides the remote endpoint uri base for certificate hash lookup. See https://tools.ietf.org/html/rfc7296#section-3.6 (Hash and URL encoding). Note that since the ultimate URL is constructed through concatenation, the final `/` is important. */ remote_certificate_uribase?: string; } export interface IpsecConnectionSpec extends _IpsecConnectionSpec { _builtin_original?: _IpsecConnectionSpec; _remove_builtin_extensions?: () => void; } export declare class IpsecConnectionSpecImpl implements _IpsecConnectionSpec { _builtin_original?: _IpsecConnectionSpec; ike_version: IpsecConnectionSpec.IkeVersionEnum | undefined; remote_ipv4_address: string | undefined; remote_dns_ipv4_address: string | undefined; remote_healthcheck_ipv4_address: string | undefined; ike_cipher_encryption_algorithm: CipherEncryptionAlgorithm | undefined; ike_cipher_integrity_algorithm: CipherIntegrityAlgorithm | undefined; ike_cipher_diffie_hellman_group: CipherDiffieHellmanGroup | undefined; esp_cipher_encryption_algorithm: CipherEncryptionAlgorithm | undefined; esp_cipher_integrity_algorithm: CipherIntegrityAlgorithm | undefined; esp_cipher_diffie_hellman_group: CipherDiffieHellmanGroup | undefined; esp_lifetime: number | undefined; ike_lifetime: number | undefined; ike_rekey: boolean | undefined; ike_reauth: boolean | undefined; ike_authentication_type: IpsecConnectionSpec.IkeAuthenticationTypeEnum | undefined; ike_preshared_key: string | undefined; ike_chain_of_trust_certificates: string | undefined; ike_certificate_dn: string | undefined; ike_remote_identity: string | undefined; local_ipv4_block: string | undefined; remote_ipv4_ranges: Array | undefined; use_cert_hash: boolean | undefined; local_certificate_uribase: string | undefined; remote_certificate_uribase: string | undefined; constructor(base: _IpsecConnectionSpec); _remove_builtin_extensions(): void; } export declare namespace IpsecConnectionSpec { type IkeVersionEnum = 'ikev1' | 'ikev2'; const IkeVersionEnum: { ikev1: IkeVersionEnum; ikev2: IkeVersionEnum; }; type IkeAuthenticationTypeEnum = 'ike_preshared_key' | 'certificate'; const IkeAuthenticationTypeEnum: { ike_preshared_key: IkeAuthenticationTypeEnum; certificate: IkeAuthenticationTypeEnum; }; } export declare function newIpsecConnectionSpecImpl(base: _IpsecConnectionSpec): IpsecConnectionSpecImpl;