Outlook_Addin_LLM/node_modules/@microsoft/dev-tunnels-contracts/tunnelAccessControlEntry.d.ts

117 lines
4.7 KiB
TypeScript

import { TunnelAccessControlEntryType } from './tunnelAccessControlEntryType';
/**
* Data contract for an access control entry on a {@link Tunnel} or {@link TunnelPort}.
*
* An access control entry (ACE) grants or denies one or more access scopes to one or more
* subjects. Tunnel ports inherit access control entries from their tunnel, and they may
* have additional port-specific entries that augment or override those access rules.
*/
export interface TunnelAccessControlEntry {
/**
* Gets or sets the access control entry type.
*/
type: TunnelAccessControlEntryType;
/**
* Gets or sets the provider of the subjects in this access control entry. The
* provider impacts how the subject identifiers are resolved and displayed. The
* provider may be an identity provider such as AAD, or a system or standard such as
* "ssh" or "ipv4".
*
* For user, group, or org ACEs, this value is the name of the identity provider of
* the user/group/org IDs. It may be one of the well-known provider names in {@link
* TunnelAccessControlEntry.providers}, or (in the future) a custom identity provider.
* For public key ACEs, this value is the type of public key, e.g. "ssh". For IP
* address range ACEs, this value is the IP address version, "ipv4" or "ipv6", or
* "service-tag" if the range is defined by an Azure service tag. For anonymous ACEs,
* this value is null.
*/
provider?: string;
/**
* Gets or sets a value indicating whether this is an access control entry on a tunnel
* port that is inherited from the tunnel's access control list.
*/
isInherited?: boolean;
/**
* Gets or sets a value indicating whether this entry is a deny rule that blocks
* access to the specified users. Otherwise it is an allow rule.
*
* All deny rules (including inherited rules) are processed after all allow rules.
* Therefore a deny ACE cannot be overridden by an allow ACE that is later in the list
* or on a more-specific resource. In other words, inherited deny ACEs cannot be
* overridden.
*/
isDeny?: boolean;
/**
* Gets or sets a value indicating whether this entry applies to all subjects that are
* NOT in the {@link TunnelAccessControlEntry.subjects} list.
*
* Examples: an inverse organizations ACE applies to all users who are not members of
* the listed organization(s); an inverse anonymous ACE applies to all authenticated
* users; an inverse IP address ranges ACE applies to all clients that are not within
* any of the listed IP address ranges. The inverse option is often useful in policies
* in combination with {@link TunnelAccessControlEntry.isDeny}, for example a policy
* could deny access to users who are not members of an organization or are outside of
* an IP address range, effectively blocking any tunnels from allowing outside access
* (because inherited deny ACEs cannot be overridden).
*/
isInverse?: boolean;
/**
* Gets or sets an optional organization context for all subjects of this entry. The
* use and meaning of this value depends on the {@link TunnelAccessControlEntry.type}
* and {@link TunnelAccessControlEntry.provider} of this entry.
*
* For AAD users and group ACEs, this value is the AAD tenant ID. It is not currently
* used with any other types of ACEs.
*/
organization?: string;
/**
* Gets or sets the subjects for the entry, such as user or group IDs. The format of
* the values depends on the {@link TunnelAccessControlEntry.type} and {@link
* TunnelAccessControlEntry.provider} of this entry.
*/
subjects: string[];
/**
* Gets or sets the access scopes that this entry grants or denies to the subjects.
*
* These must be one or more values from {@link TunnelAccessScopes}.
*/
scopes: string[];
/**
* Gets or sets the expiration for an access control entry.
*
* If no value is set then this value is null.
*/
expiration?: Date;
}
export declare namespace TunnelAccessControlEntry {
/**
* Constants for well-known identity providers.
*/
enum Providers {
/**
* Microsoft (AAD) identity provider.
*/
Microsoft = "microsoft",
/**
* GitHub identity provider.
*/
GitHub = "github",
/**
* SSH public keys.
*/
Ssh = "ssh",
/**
* IPv4 addresses.
*/
IPv4 = "ipv4",
/**
* IPv6 addresses.
*/
IPv6 = "ipv6",
/**
* Service tags.
*/
ServiceTag = "service-tag"
}
}
//# sourceMappingURL=tunnelAccessControlEntry.d.ts.map