integratedhub/types/graph/ServicePrincipal.ts
2026-02-14 02:20:19 +00:00

106 lines
2.7 KiB
TypeScript

// types/graph/ServicePrincipal.ts
/** Represents a service principal resource from Microsoft Graph */
export interface ServicePrincipal {
"@odata.context"?: string;
id: string;
deletedDateTime: string | null;
accountEnabled: boolean;
alternativeNames: string[];
appDisplayName: string;
appDescription: string | null;
appId: string;
applicationTemplateId: string | null;
appOwnerOrganizationId: string;
appRoleAssignmentRequired: boolean;
createdDateTime: string;
description: string | null;
disabledByMicrosoftStatus: string | null;
displayName: string;
homepage: string | null;
loginUrl: string | null;
logoutUrl: string | null;
notes?: string;
notificationEmailAddresses: string[];
preferredSingleSignOnMode: string | null;
preferredTokenSigningKeyThumbprint: string | null;
replyUrls: string[];
servicePrincipalNames: string[];
servicePrincipalType: string;
signInAudience: string;
tags: string[];
tokenEncryptionKeyId: string | null;
samlSingleSignOnSettings: unknown | null;
addIns: Array<{
id: string;
type: string;
properties: Record<string, unknown>[];
}>[];
appRoleIds: string[];
info: {
logoUrl: string | null;
marketingUrl: string | null;
privacyStatementUrl: string | null;
supportUrl: string | null;
termsOfServiceUrl: string | null;
};
keyCredentials: Array<{
customKeyIdentifier?: string;
displayName?: string;
endDateTime?: string;
keyId: string;
keyType: string;
keyUsage: string;
startDateTime?: string;
value?: string;
}>[];
oauth2PermissionScopeIds: string[];
passwordCredentials: Array<{
customKeyIdentifier?: string;
displayName?: string;
endDateTime?: string;
keyId: string;
secretText?: string;
startDateTime?: string;
type: string;
}>[];
resourceSpecificApplicationPermissions: Array<{
adminConsentDescription: string;
adminConsentDisplayName: string;
id: string;
isEnabled: boolean;
type: string;
userConsentDescription: string;
userConsentDisplayName: string;
value: string;
}>[];
verifiedPublisher: {
displayName: string | null;
verifiedPublisherId: string | null;
addedDateTime: string | null;
};
}
/** Defines role metadata under the appRoles array */
export interface AppRole {
allowedMemberTypes: string[]; // e.g., ["User"]
description: string;
displayName: string;
id: string;
isEnabled: boolean;
origin: string;
value: string;
}
/** Describes a defined OAuth2 permission scope */
export interface OAuth2PermissionScope {
adminConsentDescription: string;
adminConsentDisplayName: string;
id: string;
isEnabled: boolean;
type: string;
userConsentDescription: string;
userConsentDisplayName: string;
value: string;
}