/** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for * license information. */ package com.microsoft.azure.management.graphrbac; import com.microsoft.azure.management.apigeneration.Beta; import com.microsoft.azure.management.apigeneration.Fluent; import com.microsoft.azure.management.graphrbac.implementation.ADGroupInner; import com.microsoft.azure.management.resources.fluentcore.model.Creatable; import com.microsoft.azure.management.resources.fluentcore.model.HasInner; /** * An immutable client-side representation of an Azure AD group. */ @Fluent(ContainerName = "/Microsoft.Azure.Management.Fluent.Graph.RBAC") @Beta public interface ActiveDirectoryGroup extends HasInner<ADGroupInner> { /** * @return object Id. */ String objectId(); /** * @return object type. */ String objectType(); /** * @return group display name. */ String displayName(); /** * @return security enabled field. */ Boolean securityEnabled(); /** * @return mail field. */ String mail(); /************************************************************** * Fluent interfaces to provision a Group **************************************************************/ /** * Container interface for all the definitions that need to be implemented. */ interface Definition extends DefinitionStages.Blank, DefinitionStages.WithDisplayName, DefinitionStages.WithMailNickname, DefinitionStages.WithCreate { } /** * Grouping of all the group definition stages. */ interface DefinitionStages { /** * The first stage of the group definition. */ interface Blank extends WithDisplayName { } /** * The stage of group definition allowing display name to be specified. */ interface WithDisplayName { /** * Specifies the display name of the group. * * @param displayName the human readable display name * @return the next stage of group definition */ WithMailNickname withDisplayName(String displayName); } /** * The stage of group definition allowing mail nickname to be specified. */ interface WithMailNickname { /** * Specifies the mail nickname of the group. * * @param mailNickname the mail nickname for the group * @return the next stage of group definition */ WithCreate withMailNickname(String mailNickname); } /** * An AD group definition with sufficient inputs to create a new * group in the cloud, but exposing additional optional inputs to * specify. */ interface WithCreate extends Creatable<ActiveDirectoryGroup> { } } /** * Grouping of all the group update stages. */ interface UpdateStages { } /** * The template for a group update operation, containing all the settings that can be modified. */ interface Update { } }