com.microsoft.azure.management.graphrbac.PasswordCredential Maven / Gradle / Ivy
Show all versions of azure-mgmt-graph-rbac Show documentation
/**
* 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.Fluent;
import com.microsoft.azure.management.graphrbac.implementation.PasswordCredentialInner;
import com.microsoft.azure.management.resources.fluentcore.model.Attachable;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import java.io.OutputStream;
/**
* An immutable client-side representation of an Azure AD credential.
*/
@Fluent(ContainerName = "/Microsoft.Azure.Management.Graph.RBAC.Fluent")
public interface PasswordCredential extends
Credential,
HasInner {
/**************************************************************
* Fluent interfaces to attach a credential
**************************************************************/
/**
* The entirety of a credential definition.
* @param the return type of the final {@link Attachable#attach()}
*/
interface Definition extends
DefinitionStages.Blank,
DefinitionStages.WithSubscriptionInAuthFile,
DefinitionStages.WithAttach {
}
/**
* Grouping of credential definition stages applicable as part of a application or service principal creation.
*/
interface DefinitionStages {
/**
* The first stage of a credential definition.
*
* @param the stage of the parent definition to return to after attaching this definition
*/
interface Blank extends WithKey {
}
/**
* The credential definition stage allowing the the password or certificate to be set.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithKey {
/**
* Use a password as a key.
* @param password the password value
* @return the next stage in credential definition
*/
WithAttach withPasswordValue(String password);
}
/**
* The credential definition stage allowing start date to be set.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithStartDate {
/**
* Specifies the start date after which password or key would be valid. Default value is current time.
* @param startDate the start date for validity
* @return the next stage in credential definition
*/
WithAttach withStartDate(DateTime startDate);
}
/**
* The credential definition stage allowing the duration of key validity to be set.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithDuration {
/**
* Specifies the duration for which password or key would be valid. Default value is 1 year.
* @param duration the duration of validity
* @return the next stage in credential definition
*/
WithAttach withDuration(Duration duration);
}
/**
* A credential definition stage allowing exporting the auth file for the service principal.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithAuthFile {
/**
* Export the information of this service principal into an auth file.
* @param outputStream the output stream to export the file
* @return the next stage in credential definition
*/
WithSubscriptionInAuthFile withAuthFileToExport(OutputStream outputStream);
}
/**
* A credential definition stage allowing the subscription in the auth file to be set.
* @param the stage of the parent definition to return to after attaching this definition
*/
interface WithSubscriptionInAuthFile {
/**
* Specifies the "subscription=" field in the auth file.
* @param subscriptionId the UUID of the subscription
* @return the next stage in credential definition
*/
WithAttach withSubscriptionId(String subscriptionId);
}
/** The final stage of the credential definition.
*
* At this stage, more settings can be specified, or the credential definition can be
* attached to the parent application / service principal definition
* using {@link WithAttach#attach()}.
* @param the return type of {@link WithAttach#attach()}
*/
interface WithAttach extends
Attachable.InDefinition,
WithStartDate,
WithDuration,
WithAuthFile {
}
}
/**
* The entirety of a credential definition as part of a application or service principal update.
* @param the return type of the final {@link UpdateDefinitionStages.WithAttach#attach()}
*/
interface UpdateDefinition extends
UpdateDefinitionStages.Blank,
UpdateDefinitionStages.WithSubscriptionInAuthFile,
UpdateDefinitionStages.WithAttach {
}
/**
* Grouping of credential definition stages applicable as part of a application or service principal update.
*/
interface UpdateDefinitionStages {
/**
* The first stage of a credential definition.
*
* @param the stage of the parent update to return to after attaching this definition
*/
interface Blank extends WithKey {
}
/**
* The credential definition stage allowing the the password or certificate to be set.
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithKey {
/**
* Use a password as a key.
* @param password the password value
* @return the next stage in credential definition
*/
WithAttach withPasswordValue(String password);
}
/**
* The credential definition stage allowing start date to be set.
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithStartDate {
/**
* Specifies the start date after which password or key would be valid. Default value is current time.
* @param startDate the start date for validity
* @return the next stage in credential definition
*/
WithAttach withStartDate(DateTime startDate);
}
/**
* The credential definition stage allowing the duration of key validity to be set.
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithDuration {
/**
* Specifies the duration for which password or key would be valid. Default value is 1 year.
* @param duration the duration of validity
* @return the next stage in credential definition
*/
WithAttach withDuration(Duration duration);
}
/**
* A credential definition stage allowing exporting the auth file for the service principal.
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithAuthFile {
/**
* Export the information of this service principal into an auth file.
* @param outputStream the output stream to export the file
* @return the next stage in credential definition
*/
WithSubscriptionInAuthFile withAuthFileToExport(OutputStream outputStream);
}
/**
* A credential definition stage allowing the subscription in the auth file to be set.
* @param the stage of the parent update to return to after attaching this definition
*/
interface WithSubscriptionInAuthFile {
/**
* Specifies the "subscription=" field in the auth file.
* @param subscriptionId the UUID of the subscription
* @return the next stage in credential definition
*/
WithAttach withSubscriptionId(String subscriptionId);
}
/** The final stage of the credential definition.
*
* At this stage, more settings can be specified, or the credential definition can be
* attached to the parent application / service principal update
* using {@link WithAttach#attach()}.
* @param the return type of {@link WithAttach#attach()}
*/
interface WithAttach extends
Attachable.InUpdate,
WithStartDate,
WithDuration,
WithAuthFile {
}
}
}