All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softlayer.api.service.account.link.OpenStack Maven / Gradle / Ivy

There is a newer version: 0.3.4
Show newest version
package com.softlayer.api.service.account.link;

import com.softlayer.api.ApiClient;
import com.softlayer.api.ResponseHandler;
import com.softlayer.api.annotation.ApiMethod;
import com.softlayer.api.annotation.ApiProperty;
import com.softlayer.api.annotation.ApiType;
import com.softlayer.api.service.account.Link;
import com.softlayer.api.service.account.link.openstack.DomainCreationDetails;
import com.softlayer.api.service.account.link.openstack.LinkRequest;
import com.softlayer.api.service.account.link.openstack.ProjectCreationDetails;
import com.softlayer.api.service.account.link.openstack.ProjectDetails;
import java.util.List;
import java.util.concurrent.Future;

/**
 * Service for linking account to OpenStack project 
 *
 * @see SoftLayer_Account_Link_OpenStack
 */
@ApiType("SoftLayer_Account_Link_OpenStack")
public class OpenStack extends Link {

    /**
     * Pseudonym for destinationAccountAlphanumericId
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String domainId;

    public String getDomainId() {
        return domainId;
    }

    public void setDomainId(String domainId) {
        domainIdSpecified = true;
        this.domainId = domainId;
    }

    protected boolean domainIdSpecified;

    public boolean isDomainIdSpecified() {
        return domainIdSpecified;
    }

    public void unsetDomainId() {
        domainId = null;
        domainIdSpecified = false;
    }

    public Service asService(ApiClient client) {
        return service(client, id);
    }

    public static Service service(ApiClient client) {
        return client.createService(Service.class, null);
    }

    public static Service service(ApiClient client, Long id) {
        return client.createService(Service.class, id == null ? null : id.toString());
    }

    /**
     * Service for linking account to OpenStack project 
     *
     * @see SoftLayer_Account_Link_OpenStack
     */
    @com.softlayer.api.annotation.ApiService("SoftLayer_Account_Link_OpenStack")
    public static interface Service extends com.softlayer.api.Service {

        public ServiceAsync asAsync();
        public Mask withNewMask();
        public Mask withMask();
        public void setMask(Mask mask);

        /**
         * @see SoftLayer_Account_Link_OpenStack::createOSDomain
         */
        @ApiMethod
        public DomainCreationDetails createOSDomain(LinkRequest request);

        /**
         * @see SoftLayer_Account_Link_OpenStack::createOSProject
         */
        @ApiMethod
        public ProjectCreationDetails createOSProject(LinkRequest request);

        /**
         * @see SoftLayer_Account_Link_OpenStack::deleteOSDomain
         */
        @ApiMethod
        public Boolean deleteOSDomain(String domainId);

        /**
         * @see SoftLayer_Account_Link_OpenStack::deleteOSProject
         */
        @ApiMethod
        public Boolean deleteOSProject(String projectId);

        /**
         * deleteObject permanently removes an account link and all of it's associated keystone data (including users for the associated project). '''This cannot be undone.''' Be wary of running this method. If you remove an account link in error you will need to re-create it by creating a new SoftLayer_Account_Link_OpenStack object. 
         *
         * @see SoftLayer_Account_Link_OpenStack::deleteObject
         */
        @ApiMethod(instanceRequired = true)
        public Boolean deleteObject();

        /**
         * @see SoftLayer_Account_Link_OpenStack::getOSProject
         */
        @ApiMethod
        public ProjectDetails getOSProject(String projectId);

        /**
         * @see SoftLayer_Account_Link_OpenStack::getObject
         */
        @ApiMethod(instanceRequired = true)
        public OpenStack getObject();

        /**
         * @see SoftLayer_Account_Link_OpenStack::listOSProjects
         */
        @ApiMethod
        public List listOSProjects();

    }

    public static interface ServiceAsync extends com.softlayer.api.ServiceAsync {

        public Mask withNewMask();
        public Mask withMask();
        public void setMask(Mask mask);

        /**
         * Async version of {@link Service#createOSDomain}
         */
        public Future createOSDomain(LinkRequest request);

        public Future createOSDomain(LinkRequest request, ResponseHandler callback);

        /**
         * Async version of {@link Service#createOSProject}
         */
        public Future createOSProject(LinkRequest request);

        public Future createOSProject(LinkRequest request, ResponseHandler callback);

        /**
         * Async version of {@link Service#deleteOSDomain}
         */
        public Future deleteOSDomain(String domainId);

        public Future deleteOSDomain(String domainId, ResponseHandler callback);

        /**
         * Async version of {@link Service#deleteOSProject}
         */
        public Future deleteOSProject(String projectId);

        public Future deleteOSProject(String projectId, ResponseHandler callback);

        /**
         * Async version of {@link Service#deleteObject}
         */
        public Future deleteObject();

        public Future deleteObject(ResponseHandler callback);

        /**
         * Async version of {@link Service#getOSProject}
         */
        public Future getOSProject(String projectId);

        public Future getOSProject(String projectId, ResponseHandler callback);

        /**
         * Async version of {@link Service#getObject}
         */
        public Future getObject();

        public Future getObject(ResponseHandler callback);

        /**
         * Async version of {@link Service#listOSProjects}
         */
        public Future> listOSProjects();

        public Future listOSProjects(ResponseHandler> callback);

    }

    public static class Mask extends com.softlayer.api.service.account.Link.Mask {

        public Mask domainId() {
            withLocalProperty("domainId");
            return this;
        }

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy