Project: azure4j-blog-samples
package microsoft.cloud.accesscontrol.management;
/**
 * Copyright 2005-2010 Noelios Technologies. 
 *  
 * The contents of this file are subject to the terms of one of the following 
 * open source licenses: LGPL 3.0 or LGPL 2.1 or CDDL 1.0 or EPL 1.0 (the 
 * "Licenses"). You can select the license that you prefer but you may not use 
 * this file except in compliance with one of these Licenses. 
 *  
 * You can obtain a copy of the LGPL 3.0 license at 
 * http://www.opensource.org/licenses/lgpl-3.0.html 
 *  
 * You can obtain a copy of the LGPL 2.1 license at 
 * http://www.opensource.org/licenses/lgpl-2.1.php 
 *  
 * You can obtain a copy of the CDDL 1.0 license at 
 * http://www.opensource.org/licenses/cddl1.php 
 *  
 * You can obtain a copy of the EPL 1.0 license at 
 * http://www.opensource.org/licenses/eclipse-1.0.php 
 *  
 * See the Licenses for the specific language governing permissions and 
 * limitations under the Licenses. 
 *  
 * Alternatively, you can obtain a royalty free commercial license with less 
 * limitations, transferable or non-transferable, directly at 
 * http://www.noelios.com/products/restlet-engine 
 *  
 * Restlet is a registered trademark of Noelios Technologies. 
 */
 
 
import org.restlet.data.ChallengeResponse; 
import org.restlet.engine.Engine; 
import org.restlet.ext.odata.Query; 
 
import com.persistent.azure.acs.ACSAuthenticationHelper; 
 
/**
* Generated by the generator tool for the OData extension for the Restlet framework.<br> 
* @see <a href="https://namespaceforacs.accesscontrol.windows.net/v2/mgmt/service/$metadata">Metadata of the target OData service</a> 
*/
 
public class MicrosoftCloudAccessControlManagementService extends org.restlet.ext.odata.Service { 
 
    /**
     * Constructor. 
     *  
     */
 
        super("https://namespaceforacs.accesscontrol.windows.net/v2/mgmt/service"); 
    } 
     
    public MicrosoftCloudAccessControlManagementService(String acsNameSpace, String acsMgmtUserName, 
   String acsMgmtPassword) { 
  super(String.format(ACSAuthenticationHelper.AcsODataServiceUrl, acsNameSpace)); 
   
  // Register ACS Authentication Helper 
  Engine.getInstance().getRegisteredAuthenticators().clear(); 
  Engine.getInstance().getRegisteredAuthenticators() 
    .add(new ACSAuthenticationHelper(acsMgmtUserName)); 
   
  // Create ChallangeResponse with ACS credentials 
  ChallengeResponse challenge = new ChallengeResponse( 
    ACSAuthenticationHelper.SCHEME_ACS, acsNameSpace, 
    acsMgmtPassword); 
   
  // Register ChallangeResponse with the OData ACS service 
  this.setCredentials(challenge); 
    } 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.ServiceKey entity) throws Exception { 
        addEntity("/ServiceKeys", entity); 
    } 
 
    /**
     * Creates a query for serviceKey entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.ServiceKey> createServiceKeyQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.ServiceKey.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.IdentityProvider entity) throws Exception { 
        addEntity("/IdentityProviders", entity); 
    } 
 
    /**
     * Creates a query for identityProvider entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.IdentityProvider> createIdentityProviderQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.IdentityProvider.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.IdentityProviderAddress entity) throws Exception { 
        addEntity("/IdentityProviderAddresses", entity); 
    } 
 
    /**
     * Creates a query for identityProviderAddress entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.IdentityProviderAddress> createIdentityProviderAddressQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.IdentityProviderAddress.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.IdentityProviderKey entity) throws Exception { 
        addEntity("/IdentityProviderKeys", entity); 
    } 
 
    /**
     * Creates a query for identityProviderKey entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.IdentityProviderKey> createIdentityProviderKeyQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.IdentityProviderKey.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.ClaimType entity) throws Exception { 
        addEntity("/ClaimTypes", entity); 
    } 
 
    /**
     * Creates a query for claimType entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.ClaimType> createClaimTypeQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.ClaimType.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.IdentityProviderClaimType entity) throws Exception { 
        addEntity("/IdentityProviderClaimTypes", entity); 
    } 
 
    /**
     * Creates a query for identityProviderClaimType entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.IdentityProviderClaimType> createIdentityProviderClaimTypeQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.IdentityProviderClaimType.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.Delegation entity) throws Exception { 
        addEntity("/Delegations", entity); 
    } 
 
    /**
     * Creates a query for delegation entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.Delegation> createDelegationQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.Delegation.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.RelyingParty entity) throws Exception { 
        addEntity("/RelyingParties", entity); 
    } 
 
    /**
     * Creates a query for relyingParty entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.RelyingParty> createRelyingPartyQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.RelyingParty.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.RelyingPartyAddress entity) throws Exception { 
        addEntity("/RelyingPartyAddresses", entity); 
    } 
 
    /**
     * Creates a query for relyingPartyAddress entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.RelyingPartyAddress> createRelyingPartyAddressQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.RelyingPartyAddress.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.RelyingPartyIdentityProvider entity) throws Exception { 
        addEntity("/RelyingPartyIdentityProviders", entity); 
    } 
 
    /**
     * Creates a query for relyingPartyIdentityProvider entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.RelyingPartyIdentityProvider> createRelyingPartyIdentityProviderQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.RelyingPartyIdentityProvider.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.RelyingPartyKey entity) throws Exception { 
        addEntity("/RelyingPartyKeys", entity); 
    } 
 
    /**
     * Creates a query for relyingPartyKey entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.RelyingPartyKey> createRelyingPartyKeyQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.RelyingPartyKey.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.ServiceIdentity entity) throws Exception { 
        addEntity("/ServiceIdentities", entity); 
    } 
 
    /**
     * Creates a query for serviceIdentity entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.ServiceIdentity> createServiceIdentityQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.ServiceIdentity.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.ServiceIdentityKey entity) throws Exception { 
        addEntity("/ServiceIdentityKeys", entity); 
    } 
 
    /**
     * Creates a query for serviceIdentityKey entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.ServiceIdentityKey> createServiceIdentityKeyQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.ServiceIdentityKey.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.RuleGroup entity) throws Exception { 
        addEntity("/RuleGroups", entity); 
    } 
 
    /**
     * Creates a query for ruleGroup entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.RuleGroup> createRuleGroupQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.RuleGroup.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.RelyingPartyRuleGroup entity) throws Exception { 
        addEntity("/RelyingPartyRuleGroups", entity); 
    } 
 
    /**
     * Creates a query for relyingPartyRuleGroup entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.RelyingPartyRuleGroup> createRelyingPartyRuleGroupQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.RelyingPartyRuleGroup.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.Issuer entity) throws Exception { 
        addEntity("/Issuers", entity); 
    } 
 
    /**
     * Creates a query for issuer entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.Issuer> createIssuerQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.Issuer.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.Rule entity) throws Exception { 
        addEntity("/Rules", entity); 
    } 
 
    /**
     * Creates a query for rule entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.Rule> createRuleQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.Rule.class); 
    } 
 
 
    /**
     * Adds a new entity to the service. 
     *  
     * @param entity 
     *            The entity to add to the service. 
     * @throws Exception  
     */
 
    public void addEntity(microsoft.cloud.accesscontrol.management.ConditionalRule entity) throws Exception { 
        addEntity("/ConditionalRules", entity); 
    } 
 
    /**
     * Creates a query for conditionalRule entities hosted by this service. 
     *  
     * @param subpath 
     *            The path to this entity relatively to the service URI. 
     * @return A query object. 
     */
 
    public Query<microsoft.cloud.accesscontrol.management.ConditionalRule> createConditionalRuleQuery(String subpath) { 
        return createQuery(subpath, microsoft.cloud.accesscontrol.management.ConditionalRule.class); 
    } 
 
 
}