/**
* 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.implementation;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.graphrbac.PasswordProfile;
import com.microsoft.azure.management.graphrbac.User;
import com.microsoft.azure.management.resources.fluentcore.model.implementation.CreatableUpdatableImpl;
import rx.Observable;
/**
* Implementation for User and its parent interfaces.
*/
@LangDefinition(ContainerName = "/Microsoft.Azure.Management.Fluent.Graph.RBAC")
class UserImpl
extends CreatableUpdatableImpl<User, UserInner, UserImpl>
implements
User,
User.Definition,
User.Update {
private UsersInner client;
private UserCreateParametersInner createParameters;
UserImpl(String userPrincipalName, UsersInner client) {
super(userPrincipalName, new UserInner());
this.client = client;
this.createParameters = new UserCreateParametersInner().withUserPrincipalName(userPrincipalName);
}
UserImpl(UserInner innerObject, UsersInner client) {
super(innerObject.userPrincipalName(), innerObject);
this.client = client;
this.createParameters = new UserCreateParametersInner();
}
@Override
public String objectId() {
return inner().objectId();
}
@Override
public String objectType() {
return inner().objectType();
}
@Override
public String userPrincipalName() {
return inner().userPrincipalName();
}
@Override
public String displayName() {
return inner().displayName();
}
@Override
public String signInName() {
return inner().signInName();
}
@Override
public String mail() {
return inner().mail();
}
@Override
public String mailNickname() {
return inner().mailNickname();
}
@Override
public UserImpl withAccountEnabled(boolean enabled) {
createParameters.withAccountEnabled(enabled);
return this;
}
@Override
public UserImpl withDisplayName(String displayName) {
createParameters.withDisplayName(displayName);
return this;
}
@Override
public UserImpl withMailNickname(String mailNickname) {
createParameters.withMailNickname(mailNickname);
return this;
}
@Override
public UserImpl withPassword(String password) {
createParameters.withPasswordProfile(new PasswordProfile().withPassword(password));
return this;
}
@Override
public UserImpl withPassword(String password, boolean forceChangePasswordNextLogin) {
createParameters.withPasswordProfile(new PasswordProfile().withPassword(password).withForceChangePasswordNextLogin(forceChangePasswordNextLogin));
return this;
}
@Override
protected Observable<UserInner> getInnerAsync() {
return client.getAsync(name());
}
@Override
public Observable<User> createResourceAsync() {
throw new UnsupportedOperationException("not implemented yet");
}
@Override
public boolean isInCreateMode() {
return false;
}
}