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

com.microsoft.azure.management.eventhub.implementation.DisasterRecoveryPairingAuthorizationRulesImpl 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.implementation;

import com.microsoft.azure.Page;
import com.microsoft.azure.PagedList;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.eventhub.DisasterRecoveryPairingAuthorizationRule;
import com.microsoft.azure.management.eventhub.DisasterRecoveryPairingAuthorizationRules;
import com.microsoft.azure.management.resources.fluentcore.arm.ResourceId;
import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.ReadableWrappersImpl;
import com.microsoft.azure.management.resources.fluentcore.utils.PagedListConverter;
import com.microsoft.rest.ServiceCallback;
import com.microsoft.rest.ServiceFuture;
import rx.Observable;
import rx.functions.Func1;

/**
 * Implementation for {@link DisasterRecoveryPairingAuthorizationRules}.
 */
@LangDefinition
class DisasterRecoveryPairingAuthorizationRulesImpl
        extends ReadableWrappersImpl
        implements DisasterRecoveryPairingAuthorizationRules {

    private final EventHubManager manager;

    DisasterRecoveryPairingAuthorizationRulesImpl(EventHubManager manager) {
        this.manager = manager;
    }

    @Override
    public PagedList listByDisasterRecoveryPairing(String resourceGroupName, String namespaceName, String pairingName) {
        return (new PagedListConverter() {
            @Override
            public Observable typeConvertAsync(final AuthorizationRuleInner inner) {
                return Observable.just(wrapModel(inner));
            }
        }).convert(inner().listAuthorizationRules(resourceGroupName, namespaceName, pairingName));
    }

    @Override
    public Observable listByDisasterRecoveryPairingAsync(String resourceGroupName, String namespaceName, String pairingName) {
         return this.manager.inner().disasterRecoveryConfigs().listAuthorizationRulesAsync(resourceGroupName, namespaceName, pairingName)
                .flatMapIterable(new Func1, Iterable>() {
                    @Override
                    public Iterable call(Page page) {
                        return page.items();
                    }
                })
                .map(new Func1() {
                    @Override
                    public DisasterRecoveryPairingAuthorizationRule call(AuthorizationRuleInner inner) {
                        return  wrapModel(inner);
                    }
                });
    }

    @Override
    public Observable getByNameAsync(String resourceGroupName, String namespaceName, String pairingName, String name) {
        return this.manager.inner().disasterRecoveryConfigs().getAuthorizationRuleAsync(resourceGroupName,
                namespaceName,
                pairingName,
                name)
                .map(new Func1() {
                    @Override
                    public DisasterRecoveryPairingAuthorizationRule call(AuthorizationRuleInner inner) {
                        if (inner == null) {
                            return null;
                        }
                        return  wrapModel(inner);
                    }
                });
    }

    @Override
    public DisasterRecoveryPairingAuthorizationRule getByName(String resourceGroupName, String namespaceName, String pairingName, String name) {
        return getByNameAsync(resourceGroupName, namespaceName, pairingName, name).toBlocking().last();
    }

    @Override
    public DisasterRecoveryPairingAuthorizationRule getById(String id) {
        return getByIdAsync(id).toBlocking().last();
    }

    @Override
    public Observable getByIdAsync(String id) {
        ResourceId resourceId = ResourceId.fromString(id);
        return this.getByNameAsync(resourceId.resourceGroupName(),
                resourceId.parent().name(),
                resourceId.parent().parent().name(),
                resourceId.name());
    }

    @Override
    public ServiceFuture getByIdAsync(String id, ServiceCallback callback) {
        return ServiceFuture.fromBody(getByIdAsync(id), callback);
    }

    @Override
    public EventHubManager manager() {
        return this.manager;
    }

    @Override
    public DisasterRecoveryConfigsInner inner() {
        return this.manager.inner().disasterRecoveryConfigs();
    }

    @Override
    protected DisasterRecoveryPairingAuthorizationRuleImpl wrapModel(AuthorizationRuleInner inner) {
        return new DisasterRecoveryPairingAuthorizationRuleImpl(inner, manager);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy