import { type SecurityClassList } from '../index.js'; import { type AdditionalDataHolder, type Guid, type Parsable, type ParseNode, type SerializationWriter } from '@microsoft/kiota-abstractions'; export interface AvdIntermediary extends AdditionalDataHolder, Parsable { /** * Optional Virtual Network IP Address range, defaults to 10.0.0.0/16. */ addressRangeCIDR?: string | null; /** * Read-only value that the server generates that is the Object ID of the user assignment security group for the current instance of the AVD intermediary. */ assignmentGroup?: Guid | null; /** * Used to uniquely name multiple session hosts in a single host pool. */ index?: number | null; /** * Azure Regions that are available for the configured subscription. Resources will be deployed to the region specified here. */ location?: string | null; /** * ID of the Host Pool. This is generated by the server and can't be set, hence the read only flag. */ resourceId?: string | null; /** * Read-only value that the server generates that is the Object ID of the session host security group for the current instance of the AVD intermediary. */ sessionHostGroup?: Guid | null; /** * Short name to append to the beginning of the session host VMs. The max computer name length is 15, 4 chars are reserved for indexing and 4 for prefixing. */ sessionHostPrefix?: string | null; /** * SKU ID in Azure of the VM session host set that is to be deployed. */ vmSku?: string | null; } /** * Creates a new instance of the appropriate class based on discriminator value * @param parseNode The parse node to use to read the discriminator value and create the object * @returns {AvdIntermediary} */ export declare function createAvdIntermediaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record void>); /** * Creates a new instance of the appropriate class based on discriminator value * @param parseNode The parse node to use to read the discriminator value and create the object * @returns {Device} */ export declare function createDeviceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record void>); /** * Creates a new instance of the appropriate class based on discriminator value * @param parseNode The parse node to use to read the discriminator value and create the object * @returns {Intermediary} */ export declare function createIntermediaryFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record void>); /** * Creates a new instance of the appropriate class based on discriminator value * @param parseNode The parse node to use to read the discriminator value and create the object * @returns {PrivilegedDevice} */ export declare function createPrivilegedDeviceFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record void>); /** * Creates a new instance of the appropriate class based on discriminator value * @param parseNode The parse node to use to read the discriminator value and create the object * @returns {PrivilegedUser} */ export declare function createPrivilegedUserFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record void>); /** * Creates a new instance of the appropriate class based on discriminator value * @param parseNode The parse node to use to read the discriminator value and create the object * @returns {User} */ export declare function createUserFromDiscriminatorValue(parseNode: ParseNode | undefined): ((instance?: Parsable) => Record void>); /** * The deserialization information for the current model * @param AvdIntermediary The instance to deserialize into. * @returns {Record void>} */ export declare function deserializeIntoAvdIntermediary(avdIntermediary?: Partial | undefined): Record void>; /** * The deserialization information for the current model * @param Device The instance to deserialize into. * @returns {Record void>} */ export declare function deserializeIntoDevice(device?: Partial | undefined): Record void>; /** * The deserialization information for the current model * @param Intermediary The instance to deserialize into. * @returns {Record void>} */ export declare function deserializeIntoIntermediary(intermediary?: Partial | undefined): Record void>; /** * The deserialization information for the current model * @param PrivilegedDevice The instance to deserialize into. * @returns {Record void>} */ export declare function deserializeIntoPrivilegedDevice(privilegedDevice?: Partial | undefined): Record void>; /** * The deserialization information for the current model * @param PrivilegedUser The instance to deserialize into. * @returns {Record void>} */ export declare function deserializeIntoPrivilegedUser(privilegedUser?: Partial | undefined): Record void>; /** * The deserialization information for the current model * @param User The instance to deserialize into. * @returns {Record void>} */ export declare function deserializeIntoUser(user?: Partial | undefined): Record void>; /** * Structure that represents a all of the states a managed device could be in. */ export interface Device extends AdditionalDataHolder, Parsable { /** * This is the ISO 8601 string format of the time representing the commission date of the PAW. */ commissionedDate?: Date | null; /** * Current computer name of the device according to Entra ID. Empty string indicates that the device has not joined Entra ID yet. */ displayName?: string | null; /** * Entra ID Device ID (Not Object ID) of the specified device. */ id?: Guid | null; /** * DeviceID of the parent PAW device. */ parentDeviceId?: string | null; /** * Security class types as described in https://learn.microsoft.com/en-us/security/compass/privileged-access-security-levels. */ securityClass?: SecurityClassList | null; /** * The object ID of the unique security group that contains the managed Entra ID Device Identity. */ uniqueGroupId?: string | null; } /** * Base template for all intermediary objects to inherit from. */ export interface Intermediary extends AdditionalDataHolder, Parsable { /** * Read-only. */ id?: Guid | null; /** * Type of Intermediary that the properties are describing. */ kind?: string | null; /** * Human friendly name of the AVD cluster. This will be displayed to end users in the remote desktop app and web portals. */ name?: string | null; /** * Security class types as described in https://learn.microsoft.com/en-us/security/compass/privileged-access-security-levels. */ securityClass?: SecurityClassList | null; } /** * Set of properties that are available on privileged managed device objects only. */ export interface PrivilegedDevice extends Device, Parsable { /** * This is the ID of the Custom CSP Device Configuration that configures the local admin and local hyper-v group memberships. */ groupAssignmentId?: string | null; /** * The ID of the Settings Catalog that contains the user rights assignment of the specified PAW device. */ userAssignmentId?: string | null; /** * List of Object IDs for the privileged user accounts that are assigned to this device. */ userAssignmentList?: Guid[] | null; } /** * Additional settings that represents a privileged user object. All data in this structure is preserved in the settings engine's permanent storage system. */ export interface PrivilegedUser extends Parsable, User { /** * List of devices that the privileged users are able to use as endpoints. */ deviceAssignmentList?: Guid[] | null; /** * The password that was created for the managed user upon managed user creation, this is not stored. This is only available once during user creation. If the password is lost, reset the PWD in Entra ID or have the user perform SSPR. */ generatedPassword?: string | null; /** * The Entra ID Object ID of the object that the manged user is tied to. This value is only present on privileged users. */ parentId?: Guid | null; /** * A TAP that was created for the managed user upon managed user creation, this is not stored. This is only available once during user creation. TAP expires at the configured tenant expiration time. */ temporaryAccessPass?: string | null; } /** * Serializes information the current object * @param AvdIntermediary The instance to serialize from. * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type. * @param writer Serialization writer to use to serialize this model */ export declare function serializeAvdIntermediary(writer: SerializationWriter, avdIntermediary?: Partial | undefined | null, isSerializingDerivedType?: boolean): void; /** * Serializes information the current object * @param Device The instance to serialize from. * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type. * @param writer Serialization writer to use to serialize this model */ export declare function serializeDevice(writer: SerializationWriter, device?: Partial | undefined | null, isSerializingDerivedType?: boolean): void; /** * Serializes information the current object * @param Intermediary The instance to serialize from. * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type. * @param writer Serialization writer to use to serialize this model */ export declare function serializeIntermediary(writer: SerializationWriter, intermediary?: Partial | undefined | null, isSerializingDerivedType?: boolean): void; /** * Serializes information the current object * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type. * @param PrivilegedDevice The instance to serialize from. * @param writer Serialization writer to use to serialize this model */ export declare function serializePrivilegedDevice(writer: SerializationWriter, privilegedDevice?: Partial | undefined | null, isSerializingDerivedType?: boolean): void; /** * Serializes information the current object * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type. * @param PrivilegedUser The instance to serialize from. * @param writer Serialization writer to use to serialize this model */ export declare function serializePrivilegedUser(writer: SerializationWriter, privilegedUser?: Partial | undefined | null, isSerializingDerivedType?: boolean): void; /** * Serializes information the current object * @param isSerializingDerivedType A boolean indicating whether the serialization is for a derived type. * @param User The instance to serialize from. * @param writer Serialization writer to use to serialize this model */ export declare function serializeUser(writer: SerializationWriter, user?: Partial | undefined | null, isSerializingDerivedType?: boolean): void; /** * A user object that has limited properties. The user object is generated by combining multiple pieces of metadata from Entra ID and SHIELD. */ export interface User extends AdditionalDataHolder, Parsable { /** * A date object representing when the user managed by SHIELD. */ creationDate?: Date | null; /** * The name shown on UIs for the privileged user according to Entra ID. */ displayName?: string | null; /** * Given name of the privileged user according to Entra ID. */ firstName?: string | null; /** * The Entra ID Object ID of the managed user. This is the one property that is stored in the settings engine. This is the key in the storage systems to uniquely separate the managed user's data from others. */ id?: Guid | null; /** * List of intermediaries that the user is assigned to. */ intermediaryAssignmentList?: Guid[] | null; /** * Surname/family name of the privileged user according to Entra ID. */ lastName?: string | null; /** * Security class types as described in https://learn.microsoft.com/en-us/security/compass/privileged-access-security-levels. */ securityClass?: SecurityClassList | null; /** * List of silos that the user is assigned to. */ siloAssignmentList?: Guid[] | null; /** * Indicates if user education is enabled in the UI for the specified user. True is on, false is off. */ uiEducation?: boolean | null; /** * ObjectID of the unique user group that the managed user is a member of. */ uniqueGroupId?: Guid | null; /** * User principal name of the user object according to Azure Active Directory. */ upn?: string | null; }