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

com.microsoft.azure.management.eventhub.EventHubConsumerGroup Maven / Gradle / Ivy

/**
 * 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.eventhub;

import com.microsoft.azure.management.apigeneration.Beta;
import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.eventhub.implementation.ConsumerGroupInner;
import com.microsoft.azure.management.eventhub.implementation.EventHubManager;
import com.microsoft.azure.management.resources.fluentcore.arm.models.HasManager;
import com.microsoft.azure.management.resources.fluentcore.model.Appliable;
import com.microsoft.azure.management.resources.fluentcore.model.Creatable;
import com.microsoft.azure.management.resources.fluentcore.model.HasInner;
import com.microsoft.azure.management.resources.fluentcore.model.Refreshable;
import com.microsoft.azure.management.resources.fluentcore.model.Updatable;
import org.joda.time.DateTime;

/**
 * Type representing consumer group of an event hub.
 */
@Fluent
@Beta(Beta.SinceVersion.V1_7_0)
public interface EventHubConsumerGroup extends
        NestedResource,
        HasManager,
        Refreshable,
        HasInner,
        Updatable {
    /**
     * @return the resource group of the namespace where parent event hub resides
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    String namespaceResourceGroupName();
    /**
     * @return the namespace name of parent event hub
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    String namespaceName();
    /**
     * @return the name of the parent event hub
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    String eventHubName();
    /**
     * @return creation time of the consumer group
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    DateTime createdAt();
    /**
     * @return last modified time of the consumer group
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    DateTime updatedAt();
    /**
     * @return user metadata associated with the consumer group
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    String userMetadata();

    /**
     * The entirety of the consumer group definition.
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    interface Definition extends
            DefinitionStages.Blank,
            DefinitionStages.WithEventHub,
            DefinitionStages.WithUserMetadata,
            DefinitionStages.WithCreate {
    }

    /**
     * Grouping of consumer group definition stages.
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    interface DefinitionStages {
        /**
         * The first stage of a event hub definition.
         */
        @Beta(Beta.SinceVersion.V1_7_0)
        interface Blank extends WithEventHub {
        }

        /**
         * The stage of the consumer group definition allowing to specify the event
         * hub to be associated with it.
         */
        @Beta(Beta.SinceVersion.V1_7_0)
        interface WithEventHub {
            /**
             * Specifies the event hub for which consumer group needs to be created.
             *
             * @param eventHub event hub
             * @return next stage of the consumer group definition
             */
            @Beta(Beta.SinceVersion.V1_7_0)
            WithCreate withExistingEventHub(EventHub eventHub);

            /**
             * Specifies the event hub for which consumer group needs to be created.
             *
             * @param eventHubId ARM resource id of event hub
             * @return next stage of the consumer group definition
             */
            @Beta(Beta.SinceVersion.V1_7_0)
            WithCreate withExistingEventHubId(String eventHubId);

            /**
             * Specifies the event hub for which consumer group needs to be created.
             *
             * @param resourceGroupName event hub namespace resource group name
             * @param namespaceName event hub namespace name
             * @param eventHubName event hub name
             * @return next stage of the consumer group definition
             */
            @Beta(Beta.SinceVersion.V1_7_0)
            WithCreate withExistingEventHub(String resourceGroupName, String namespaceName, String eventHubName);
        }

        /**
         * The stage of the consumer group definition allowing to specify user metadata.
         */
        @Beta(Beta.SinceVersion.V1_7_0)
        interface WithUserMetadata {
            /**
             * Specifies user metadata.
             *
             * @param metadata the metadata
             * @return next stage of the consumer group definition
             */
            @Beta(Beta.SinceVersion.V1_7_0)
            WithCreate withUserMetadata(String metadata);
        }

        /**
         * The stage of the definition which contains all the minimum required inputs for
         * the resource to be created (via {@link WithCreate#create()}), but also allows
         * for any other optional settings to be specified.
         */
        @Beta(Beta.SinceVersion.V1_7_0)
        interface WithCreate extends
                Creatable,
                DefinitionStages.WithUserMetadata {
        }
    }

    /**
     * The template for a consumer group update operation, containing all the settings
     * that can be modified.
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    interface Update extends
            Appliable,
            UpdateStages.WithUserMetadata {
    }

    /**
     * Grouping of consumer group update stages.
     */
    @Beta(Beta.SinceVersion.V1_7_0)
    interface UpdateStages {
        /**
         * The stage of the consumer group update allowing to specify user metadata.
         */
        @Beta(Beta.SinceVersion.V1_7_0)
        interface WithUserMetadata {
            /**
             * Specifies user metadata.
             *
             * @param metadata the metadata
             * @return next stage of the consumer group update
             */
            @Beta(Beta.SinceVersion.V1_7_0)
            Update withUserMetadata(String metadata);
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy