/* * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. * * Code generated by Microsoft (R) AutoRest Code Generator. * Changes may cause incorrect behavior and will be lost if the code is regenerated. */ import * as coreClient from "@azure/core-client"; /** A list of REST API operations supported by an Azure Resource Provider. It contains an URL link to get the next set of results. */ export interface OperationListResult { /** * List of operations supported by the resource provider * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly value?: Operation[]; /** * URL to get the next set of operation list results (if there are any). * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; } /** Details of a REST API operation, returned from the Resource Provider Operations API */ export interface Operation { /** * The name of the operation, as per Resource-Based Access Control (RBAC). Examples: "Microsoft.Compute/virtualMachines/write", "Microsoft.Compute/virtualMachines/capture/action" * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly name?: string; /** * Whether the operation applies to data-plane. This is "true" for data-plane operations and "false" for ARM/control-plane operations. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly isDataAction?: boolean; /** Localized display information for this particular operation. */ display?: OperationDisplay; /** * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly origin?: Origin; /** * Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly actionType?: ActionType; } /** Localized display information for this particular operation. */ export interface OperationDisplay { /** * The localized friendly form of the resource provider name, e.g. "Microsoft Monitoring Insights" or "Microsoft Compute". * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly provider?: string; /** * The localized friendly name of the resource type related to this operation. E.g. "Virtual Machines" or "Job Schedule Collections". * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly resource?: string; /** * The concise, localized friendly name for the operation; suitable for dropdowns. E.g. "Create or Update Virtual Machine", "Restart Virtual Machine". * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly operation?: string; /** * The short, localized friendly description of the operation; suitable for tool tips and detailed views. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly description?: string; } /** Error response indicates that the service is not able to process the incoming request. The reason is provided in the error message. */ export interface ErrorResponseBody { /** The details of the error. */ error?: ErrorResponse; } /** Describes the format of Error response. */ export interface ErrorResponse { /** Error code */ code?: string; /** Error message indicating why the operation failed. */ message?: string; } /** List of Grants info. */ export interface GrantListResponse { /** * The list of labs. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly value?: GrantDetails[]; /** * The link (url) to the next page of results. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; } /** The amount. */ export interface Amount { /** The type of currency being used for the value. */ currency?: string; /** Amount value. */ value?: number; } /** Common fields that are returned in the response for all Azure Resource Manager resources */ export interface Resource { /** * Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly id?: string; /** * The name of the resource * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly name?: string; /** * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly type?: string; /** * Azure Resource Manager metadata containing createdBy and modifiedBy information. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly systemData?: SystemData; } /** Metadata pertaining to creation and last modification of the resource. */ export interface SystemData { /** The identity that created the resource. */ createdBy?: string; /** The type of identity that created the resource. */ createdByType?: CreatedByType; /** The timestamp of resource creation (UTC). */ createdAt?: Date; /** The identity that last modified the resource. */ lastModifiedBy?: string; /** The type of identity that last modified the resource. */ lastModifiedByType?: CreatedByType; /** The timestamp of resource last modification (UTC) */ lastModifiedAt?: Date; } /** List of labs. */ export interface LabListResult { /** * The list of labs. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly value?: LabDetails[]; /** * The link (url) to the next page of results. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; } /** invite code generate request. */ export interface InviteCodeGenerateRequest { /** the total number of students that can be accepted to the lab. */ maxStudentCount?: number; } /** list of join requests. */ export interface JoinRequestList { /** * The list of requests. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly value?: JoinRequestDetails[]; /** * the link (url) to the next page of results. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; } /** redeem request. */ export interface RedeemRequest { /** redeem code */ redeemCode: string; /** first name of requester */ firstName: string; /** last name of requester */ lastName: string; } /** List of students. */ export interface StudentListResult { /** * The list of students. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly value?: StudentDetails[]; /** * The link (url) to the next page of results. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; } /** List of labs. */ export interface StudentLabListResult { /** * The list of labs. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly value?: StudentLabDetails[]; /** * The link (url) to the next page of results. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly nextLink?: string; } /** Grant details. */ export interface GrantDetails extends Resource { /** * Offer Cap * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly offerCap?: Amount; /** * Grant Effective Date * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly effectiveDate?: Date; /** * Grant Offer Type * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly offerType?: GrantType; /** * Expiration Date * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly expirationDate?: Date; /** * Grant status * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly status?: GrantStatus; /** * allocated budget * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly allocatedBudget?: Amount; } /** Lab details. */ export interface LabDetails extends Resource { /** Lab Display Name */ displayName?: string; /** Default monetary cap for each student in this lab */ budgetPerStudent?: Amount; /** Detail description of this lab */ description?: string; /** Default expiration date for each student in this lab */ expirationDate?: Date; /** * Lab creation date * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly effectiveDate?: Date; /** * The status of this lab * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly status?: LabStatus; /** * the total number of students that can be accepted to the lab. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly maxStudentCount?: number; /** * invitation code for redeemable lab * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly invitationCode?: string; /** The type of currency being used for the value. */ currencyPropertiesTotalAllocatedBudgetCurrency?: string; /** Amount value. */ valuePropertiesTotalAllocatedBudgetValue?: number; /** The type of currency being used for the value. */ currencyPropertiesTotalBudgetCurrency?: string; /** Amount value. */ valuePropertiesTotalBudgetValue?: number; } /** join requests. */ export interface JoinRequestDetails extends Resource { /** First Name */ firstName?: string; /** Last Name */ lastName?: string; /** join request email */ email?: string; /** Join request status */ status?: JoinRequestStatus; } /** Student details. */ export interface StudentDetails extends Resource { /** First Name */ firstName?: string; /** Last Name */ lastName?: string; /** Student Email */ email?: string; /** Student Role */ role?: StudentRole; /** Student Budget */ budget?: Amount; /** * Subscription Id * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly subscriptionId?: string; /** Date this student is set to expire from the lab. */ expirationDate?: Date; /** * Student Lab Status * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly status?: StudentLabStatus; /** * Date student was added to the lab * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly effectiveDate?: Date; /** Subscription alias */ subscriptionAlias?: string; /** subscription invite last sent date */ subscriptionInviteLastSentDate?: Date; } /** Student lab details. */ export interface StudentLabDetails extends Resource { /** * Student lab Display Name * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly displayName?: string; /** * Detail description of this lab * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly description?: string; /** * Date the lab will expire and by default will be the expiration date for each student in this lab * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly expirationDate?: Date; /** * Student Role * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly role?: StudentRole; /** * Student Budget * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly budget?: Amount; /** * Subscription Id * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly subscriptionId?: string; /** * Student Lab Status * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly status?: StudentLabStatus; /** * User Added Date * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly effectiveDate?: Date; /** * Lab Scope. /providers/Microsoft.Billing/billingAccounts/{billingAccountName}/billingProfiles/{billingProfileName}/invoiceSections/{invoiceSectionName}/providers/Microsoft.Education/labs/default * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly labScope?: string; } /** Known values of {@link Origin} that the service accepts. */ export enum KnownOrigin { /** User */ User = "user", /** System */ System = "system", /** UserSystem */ UserSystem = "user,system" } /** * Defines values for Origin. \ * {@link KnownOrigin} can be used interchangeably with Origin, * this enum contains the known values that the service supports. * ### Known values supported by the service * **user** \ * **system** \ * **user,system** */ export type Origin = string; /** Known values of {@link ActionType} that the service accepts. */ export enum KnownActionType { /** Internal */ Internal = "Internal" } /** * Defines values for ActionType. \ * {@link KnownActionType} can be used interchangeably with ActionType, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Internal** */ export type ActionType = string; /** Known values of {@link GrantType} that the service accepts. */ export enum KnownGrantType { /** Student */ Student = "Student", /** Academic */ Academic = "Academic" } /** * Defines values for GrantType. \ * {@link KnownGrantType} can be used interchangeably with GrantType, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Student** \ * **Academic** */ export type GrantType = string; /** Known values of {@link GrantStatus} that the service accepts. */ export enum KnownGrantStatus { /** Active */ Active = "Active", /** Inactive */ Inactive = "Inactive" } /** * Defines values for GrantStatus. \ * {@link KnownGrantStatus} can be used interchangeably with GrantStatus, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Active** \ * **Inactive** */ export type GrantStatus = string; /** Known values of {@link CreatedByType} that the service accepts. */ export enum KnownCreatedByType { /** User */ User = "User", /** Application */ Application = "Application", /** ManagedIdentity */ ManagedIdentity = "ManagedIdentity", /** Key */ Key = "Key" } /** * Defines values for CreatedByType. \ * {@link KnownCreatedByType} can be used interchangeably with CreatedByType, * this enum contains the known values that the service supports. * ### Known values supported by the service * **User** \ * **Application** \ * **ManagedIdentity** \ * **Key** */ export type CreatedByType = string; /** Known values of {@link LabStatus} that the service accepts. */ export enum KnownLabStatus { /** Active */ Active = "Active", /** Deleted */ Deleted = "Deleted", /** Pending */ Pending = "Pending" } /** * Defines values for LabStatus. \ * {@link KnownLabStatus} can be used interchangeably with LabStatus, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Active** \ * **Deleted** \ * **Pending** */ export type LabStatus = string; /** Known values of {@link JoinRequestStatus} that the service accepts. */ export enum KnownJoinRequestStatus { /** Pending */ Pending = "Pending", /** Denied */ Denied = "Denied" } /** * Defines values for JoinRequestStatus. \ * {@link KnownJoinRequestStatus} can be used interchangeably with JoinRequestStatus, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Pending** \ * **Denied** */ export type JoinRequestStatus = string; /** Known values of {@link StudentRole} that the service accepts. */ export enum KnownStudentRole { /** Student */ Student = "Student", /** Admin */ Admin = "Admin" } /** * Defines values for StudentRole. \ * {@link KnownStudentRole} can be used interchangeably with StudentRole, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Student** \ * **Admin** */ export type StudentRole = string; /** Known values of {@link StudentLabStatus} that the service accepts. */ export enum KnownStudentLabStatus { /** Active */ Active = "Active", /** Disabled */ Disabled = "Disabled", /** Expired */ Expired = "Expired", /** Pending */ Pending = "Pending", /** Deleted */ Deleted = "Deleted" } /** * Defines values for StudentLabStatus. \ * {@link KnownStudentLabStatus} can be used interchangeably with StudentLabStatus, * this enum contains the known values that the service supports. * ### Known values supported by the service * **Active** \ * **Disabled** \ * **Expired** \ * **Pending** \ * **Deleted** */ export type StudentLabStatus = string; /** Optional parameters. */ export interface OperationsListOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the list operation. */ export type OperationsListResponse = OperationListResult; /** Optional parameters. */ export interface GrantsListAllOptionalParams extends coreClient.OperationOptions { /** May be used to include information about budget that has been allocated. */ includeAllocatedBudget?: boolean; } /** Contains response data for the listAll operation. */ export type GrantsListAllResponse = GrantListResponse; /** Optional parameters. */ export interface GrantsListOptionalParams extends coreClient.OperationOptions { /** May be used to include information about budget that has been allocated. */ includeAllocatedBudget?: boolean; } /** Contains response data for the list operation. */ export type GrantsListResponse = GrantListResponse; /** Optional parameters. */ export interface GrantsGetOptionalParams extends coreClient.OperationOptions { /** May be used to include information about budget that has been allocated. */ includeAllocatedBudget?: boolean; } /** Contains response data for the get operation. */ export type GrantsGetResponse = GrantDetails; /** Optional parameters. */ export interface GrantsListAllNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listAllNext operation. */ export type GrantsListAllNextResponse = GrantListResponse; /** Optional parameters. */ export interface GrantsListNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type GrantsListNextResponse = GrantListResponse; /** Optional parameters. */ export interface LabsListAllOptionalParams extends coreClient.OperationOptions { /** May be used to include budget information. */ includeBudget?: boolean; /** May be used to show deleted items. */ includeDeleted?: boolean; } /** Contains response data for the listAll operation. */ export type LabsListAllResponse = LabListResult; /** Optional parameters. */ export interface LabsListOptionalParams extends coreClient.OperationOptions { /** May be used to include budget information. */ includeBudget?: boolean; } /** Contains response data for the list operation. */ export type LabsListResponse = LabListResult; /** Optional parameters. */ export interface LabsGetOptionalParams extends coreClient.OperationOptions { /** May be used to include budget information. */ includeBudget?: boolean; } /** Contains response data for the get operation. */ export type LabsGetResponse = LabDetails; /** Optional parameters. */ export interface LabsDeleteOptionalParams extends coreClient.OperationOptions {} /** Optional parameters. */ export interface LabsCreateOrUpdateOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the createOrUpdate operation. */ export type LabsCreateOrUpdateResponse = LabDetails; /** Optional parameters. */ export interface LabsGenerateInviteCodeOptionalParams extends coreClient.OperationOptions { /** set this flag to true if you want to update student count without generating a new invite code */ onlyUpdateStudentCountParameter?: boolean; } /** Contains response data for the generateInviteCode operation. */ export type LabsGenerateInviteCodeResponse = LabDetails; /** Optional parameters. */ export interface LabsListAllNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listAllNext operation. */ export type LabsListAllNextResponse = LabListResult; /** Optional parameters. */ export interface LabsListNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type LabsListNextResponse = LabListResult; /** Optional parameters. */ export interface JoinRequestsListOptionalParams extends coreClient.OperationOptions { /** Include denied */ includeDenied?: boolean; } /** Contains response data for the list operation. */ export type JoinRequestsListResponse = JoinRequestList; /** Optional parameters. */ export interface JoinRequestsGetOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the get operation. */ export type JoinRequestsGetResponse = JoinRequestDetails; /** Optional parameters. */ export interface JoinRequestsApproveOptionalParams extends coreClient.OperationOptions {} /** Optional parameters. */ export interface JoinRequestsDenyOptionalParams extends coreClient.OperationOptions {} /** Optional parameters. */ export interface JoinRequestsListNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type JoinRequestsListNextResponse = JoinRequestList; /** Optional parameters. */ export interface RedeemInvitationCodeOptionalParams extends coreClient.OperationOptions {} /** Optional parameters. */ export interface StudentsListOptionalParams extends coreClient.OperationOptions { /** May be used to show deleted items. */ includeDeleted?: boolean; } /** Contains response data for the list operation. */ export type StudentsListResponse = StudentListResult; /** Optional parameters. */ export interface StudentsGetOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the get operation. */ export type StudentsGetResponse = StudentDetails; /** Optional parameters. */ export interface StudentsDeleteOptionalParams extends coreClient.OperationOptions {} /** Optional parameters. */ export interface StudentsCreateOrUpdateOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the createOrUpdate operation. */ export type StudentsCreateOrUpdateResponse = StudentDetails; /** Optional parameters. */ export interface StudentsListNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listNext operation. */ export type StudentsListNextResponse = StudentListResult; /** Optional parameters. */ export interface StudentLabsListAllOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listAll operation. */ export type StudentLabsListAllResponse = StudentLabListResult; /** Optional parameters. */ export interface StudentLabsGetOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the get operation. */ export type StudentLabsGetResponse = StudentLabDetails; /** Optional parameters. */ export interface StudentLabsListAllNextOptionalParams extends coreClient.OperationOptions {} /** Contains response data for the listAllNext operation. */ export type StudentLabsListAllNextResponse = StudentLabListResult; /** Optional parameters. */ export interface EducationManagementClientOptionalParams extends coreClient.ServiceClientOptions { /** server parameter */ $host?: string; /** Api Version */ apiVersion?: string; /** Overrides client endpoint. */ endpoint?: string; }