DSCResources/MSFT_AADServicePrincipal/MSFT_AADServicePrincipal.schema.mof

[ClassVersion("1.0.0")]
class MSFT_AADServicePrincipalRoleAssignment
{
    [Write, Description("Type of principal. Accepted values are User or Group"), ValueMap{"Group","User"}, Values{"Group","User"}] String PrincipalType;
    [Write, Description("Unique identity representing the principal.")] String Identity;
};
 
[ClassVersion("1.0.0")]
class MSFT_AADServicePrincipalDelegatedPermissionClassification
{
    [Write, Description("Classification of the delegated permission"), ValueMap{"low", "medium", "high"}, Values{"low", "medium", "high"}] String Classification;
    [Write, Description("Name of the permission")] String PermissionName;
};
 
[ClassVersion("1.0.0")]
class MSFT_AADServicePrincipalAttributeValue
{
    [Write, Description("Name of the Attribute")] String AttributeName;
    [Write, Description("If the attribute has a string array value")] String StringArrayValue[];
    [Write, Description("If the attribute has a int array value")] UInt32 IntArrayValue[];
    [Write, Description("If the attribute has a string value")] String StringValue;
    [Write, Description("If the attribute has a int value")] UInt32 IntValue;
    [Write, Description("If the attribute has a boolean value")] Boolean BoolValue;
};
 
[ClassVersion("1.0.0")]
class MSFT_AADServicePrincipalAttributeSet
{
    [Write, Description("Attribute Set Name.")] String AttributeSetName;
    [Write, Description("List of attribute values."), EmbeddedInstance("MSFT_AADServicePrincipalAttributeValue")] String AttributeValues[];
};
 
[ClassVersion("1.0.0.0"), FriendlyName("AADServicePrincipal")]
class MSFT_AADServicePrincipal : OMI_BaseResource
{
    [Key, Description("The unique identifier for the associated application.")] String AppId;
    [Write, Description("App role assignments for this app or service, granted to users, groups, and other service principals."), EmbeddedInstance("MSFT_AADServicePrincipalRoleAssignment")] String AppRoleAssignedTo[];
    [Write, Description("The ObjectID of the ServicePrincipal")] String ObjectID;
    [Write, Description("Displayname of the ServicePrincipal.")] String DisplayName;
    [Write, Description("The alternative names for this service principal")] String AlternativeNames[];
    [Write, Description("True if the service principal account is enabled; otherwise, false.")] Boolean AccountEnabled;
    [Write, Description("Indicates whether an application role assignment is required.")] Boolean AppRoleAssignmentRequired;
    [Write, Description("Specifies the error URL of the ServicePrincipal.")] String ErrorUrl;
    [Write, Description("Specifies the homepage of the ServicePrincipal.")] String Homepage;
    [Write, Description("Specifies the LogoutURL of the ServicePrincipal.")] String LogoutUrl;
    [Write, Description("Notes associated with the ServicePrincipal.")] String Notes;
    [Write, Description("Specifies the PublisherName of the ServicePrincipal.")] String PublisherName;
    [Write, Description("List of the owners of the service principal.")] String Owners[];
    [Write, Description("Specifies the signle sign-on mode configured for this application.")] String PreferredSingleSignOnMode;
    [Write, Description("The URLs that user tokens are sent to for sign in with the associated application, or the redirect URIs that OAuth 2.0 authorization codes and access tokens are sent to for the associated application.")] String ReplyUrls[];
    [Write, Description("The URL for the SAML metadata of the ServicePrincipal.")] String SamlMetadataUrl;
    [Write, Description("Specifies an array of service principal names. Based on the identifierURIs collection, plus the application's appId property, these URIs are used to reference an application's service principal.")] String ServicePrincipalNames[];
    [Write, Description("The type of the service principal.")] String ServicePrincipalType;
    [Write, Description("Tags linked to this service principal.Note that if you intend for this service principal to show up in the All Applications list in the admin portal, you need to set this value to {WindowsAzureActiveDirectoryIntegratedApp}")] String Tags[];
    [Write, Description("The permission classifications for delegated permissions exposed by the app that this service principal represents."), EmbeddedInstance("MSFT_AADServicePrincipalDelegatedPermissionClassification")] String DelegatedPermissionClassifications[];
    [Write, Description("The list of custom security attributes attached to this SPN"), EmbeddedInstance("MSFT_AADServicePrincipalAttributeSet")] String CustomSecurityAttributes[];
 
    [Write, Description("Specify if the Azure AD App should exist or not."), ValueMap{"Present","Absent"}, Values{"Present","Absent"}] String Ensure;
    [Write, Description("Id of the Azure Active Directory application to authenticate with.")] String ApplicationId;
    [Write, Description("Id of the Azure Active Directory tenant used for authentication.")] String TenantId;
    [Write, Description("Thumbprint of the Azure Active Directory application's authentication certificate to use for authentication.")] String CertificateThumbprint;
    [Write, Description("Secret of the Azure Active Directory application to authenticate with."), EmbeddedInstance("MSFT_Credential")] String ApplicationSecret;
    [Write, Description("Credentials of the Azure AD Admin"), EmbeddedInstance("MSFT_Credential")] string Credential;
    [Write, Description("Managed ID being used for authentication.")] Boolean ManagedIdentity;
    [Write, Description("Access token used for authentication.")] String AccessTokens[];
    [Write, Description("The collection of password credentials associated with the service principal. Not nullable."), EmbeddedInstance("MSFT_MicrosoftGraphpasswordCredential")] String PasswordCredentials[];
    [Write, Description("The collection of key credentials associated with the service principal. Not nullable. Supports $filter (eq, NOT, ge, le)."), EmbeddedInstance("MSFT_MicrosoftGraphkeyCredential")] String KeyCredentials[];
};
 
[ClassVersion("1.0.0")]
class MSFT_MicrosoftGraphKeyCredential
{
    [Write, Description("A 40-character binary type that can be used to identify the credential. Optional. When not provided in the payload, defaults to the thumbprint of the certificate.")] String CustomKeyIdentifier;
    [Write, Description("Friendly name for the key. Optional.")] String DisplayName;
    [Write, Description("The date and time at which the credential expires. The DateTimeOffset type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.")] String EndDateTime;
    [Write, Description("The unique identifier (GUID) for the key.")] String KeyId;
    [Write, Description("The certificate's raw data in byte array converted to Base64 string.")] String Key;
    [Write, Description("The date and time at which the credential becomes valid.The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.")] String StartDateTime;
    [Write, Description("The type of key credential for example, Symmetric, AsymmetricX509Cert.")] String Type;
    [Write, Description("A string that describes the purpose for which the key can be used for example, Verify.")] String Usage;
};
 
[ClassVersion("1.0.0")]
class MSFT_MicrosoftGraphPasswordCredential
{
    [Write, Description("Friendly name for the password. Optional.")] String DisplayName;
    [Write, Description("The date and time at which the password expires represented using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.")] String EndDateTime;
    [Write, Description("Contains the first three characters of the password. Read-only.")] String Hint;
    [Write, Description("The unique identifier for the password.")] String KeyId;
    [Write, Description("The date and time at which the password becomes valid. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z. Optional.")] String StartDateTime;
};