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

services.AffinityGroupsService Maven / Gradle / Ivy

There is a newer version: 4.6.0
Show newest version
/*
Copyright (c) 2015 Red Hat, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

package services;

import annotations.Area;
import org.ovirt.api.metamodel.annotations.In;
import org.ovirt.api.metamodel.annotations.InputDetail;
import org.ovirt.api.metamodel.annotations.Out;
import org.ovirt.api.metamodel.annotations.Service;
import types.AffinityGroup;

import static org.ovirt.api.metamodel.language.ApiLanguage.mandatory;

/**
 * The affinity groups service manages virtual machine relationships and dependencies.
 *
 * @author Martin Sivak 
 * @author Megan Lewis 
 * @date 31 Jan 2017
 * @status updated_by_docs
 */
@Service
@Area("SLA")
public interface AffinityGroupsService {
    /**
     * Create a new affinity group.
     *
     * Post a request like in the example below to create a new affinity group:
     *
     * [source]
     * ----
     * POST /ovirt-engine/api/clusters/000-000/affinitygroups
     * ----
     *
     * And use the following example in its body:
     *
     * [source,xml]
     * ----
     * 
     *   AF_GROUP_001
     *   true
     *   true
     * 
     * ----
     *
     * @author Martin Sivak 
     * @author Megan Lewis 
     * @date 31 Jan 2017
     * @status updated_by_docs
     */
    interface Add {
        @InputDetail
        default void inputDetail() {
            mandatory(group().enforcing());
            mandatory(group().name());
            mandatory(group().positive());
        }
        /**
         * The affinity group object to create.
         *
         * @author Martin Sivak 
         * @author Megan Lewis 
         * @date 31 Jan 2017
         * @status updated_by_docs
         */
        @In @Out AffinityGroup group();
    }

    /**
     * List existing affinity groups.
     *
     * @author Martin Sivak 
     * @author Megan Lewis 
     * @date 31 Jan 2017
     * @status updated_by_docs
     */
    interface List {
        /**
         * The list of existing affinity groups.
         *
         * @author Martin Sivak 
         * @author Megan Lewis 
         * @date 31 Jan 2017
         * @status updated_by_docs
         */
        @Out AffinityGroup[] groups();

        /**
         * Sets the maximum number of affinity groups to return. If not specified all the affinity groups are returned.
         *
         * @author Megan Lewis 
         * @date 31 Jan 2017
         * @status updated_by_docs
         */
        @In Integer max();
    }

    /**
     * Access the affinity group service that manages the affinity group specified by an ID.
     *
     * @author Martin Sivak 
     * @author Megan Lewis 
     * @date 31 Jan 2017
     * @status updated_by_docs
     */
    @Service AffinityGroupService group(String id);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy