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

com.microsoft.azure.management.monitor.implementation.DiagnosticSettingsImpl Maven / Gradle / Ivy

There is a newer version: 1.41.4
Show newest version
/**
 * 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.monitor.implementation;

import com.microsoft.azure.PagedList;
import com.microsoft.azure.management.apigeneration.LangDefinition;
import com.microsoft.azure.management.monitor.DiagnosticSetting;
import com.microsoft.azure.management.monitor.DiagnosticSettings;
import com.microsoft.azure.management.monitor.DiagnosticSettingsCategory;
import com.microsoft.azure.management.resources.fluentcore.arm.collection.implementation.CreatableResourcesImpl;
import com.microsoft.azure.management.resources.fluentcore.utils.RXMapper;
import com.microsoft.rest.ServiceCallback;
import com.microsoft.rest.ServiceFuture;
import rx.Completable;
import rx.Observable;
import rx.functions.Func1;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

/**
 *  Implementation for DiagnosticSettings.
 */
@LangDefinition
class DiagnosticSettingsImpl
    extends CreatableResourcesImpl
    implements DiagnosticSettings {

    private final MonitorManager manager;

    DiagnosticSettingsImpl(final MonitorManager manager) {
        this.manager = manager;
    }

    @Override
    public DiagnosticSettingImpl define(String name) {
        return wrapModel(name);
    }

    // Fluent model create helpers

    @Override
    protected DiagnosticSettingImpl wrapModel(String name) {
        DiagnosticSettingsResourceInner inner = new DiagnosticSettingsResourceInner();

        return new DiagnosticSettingImpl(name, inner, this.manager());
    }

    @Override
    protected DiagnosticSettingImpl wrapModel(DiagnosticSettingsResourceInner inner) {
        if (inner == null) {
            return null;
        }
        return new DiagnosticSettingImpl(inner.name(), inner, this.manager());
    }

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

    @Override
    public DiagnosticSettingsInner inner() {
        return this.manager().inner().diagnosticSettings();
    }

    @Override
    public List listCategoriesByResource(String resourceId) {
        List categories = new ArrayList<>();
        DiagnosticSettingsCategoryResourceCollectionInner collection = this.manager().inner().diagnosticSettingsCategorys().list(resourceId);
        if (collection != null) {
            for (DiagnosticSettingsCategoryResourceInner category : collection.value()) {
                categories.add(new DiagnosticSettingsCategoryImpl(category));
            }
        }
        return categories;
    }

    @Override
    public Observable listCategoriesByResourceAsync(String resourceId) {
        return this.manager().inner().diagnosticSettingsCategorys().listAsync(resourceId)
                .flatMap(new Func1>() {
                    @Override
                    public Observable call(DiagnosticSettingsCategoryResourceCollectionInner diagnosticSettingsCategoryResourceCollectionInner) {
                        return Observable.from(diagnosticSettingsCategoryResourceCollectionInner.value());
                    }
                }).map(new Func1() {
                    @Override
                    public DiagnosticSettingsCategory call(DiagnosticSettingsCategoryResourceInner diagnosticSettingsCategoryInner) {
                        return new DiagnosticSettingsCategoryImpl(diagnosticSettingsCategoryInner);
                    }
                });
    }

    @Override
    public DiagnosticSettingsCategory getCategory(String resourceId, String name) {
        return new DiagnosticSettingsCategoryImpl(this.manager().inner().diagnosticSettingsCategorys().get(resourceId, name));
    }

    @Override
    public Observable getCategoryAsync(String resourceId, String name) {
        return this.manager().inner().diagnosticSettingsCategorys().getAsync(resourceId, name)
                .map(new Func1() {
                    @Override
                    public DiagnosticSettingsCategory call(DiagnosticSettingsCategoryResourceInner diagnosticSettingsCategoryResourceInner) {
                        return new DiagnosticSettingsCategoryImpl(diagnosticSettingsCategoryResourceInner);
                    }
                });
    }

    @Override
    public PagedList listByResource(String resourceId) {
        DiagnosticSettingsResourceCollectionInner result = this.manager().inner().diagnosticSettings().list(resourceId);
        if (result == null) {
            return null;
        }
        return wrapList(result.value());
    }

    @Override
    public Observable listByResourceAsync(String resourceId) {
        final DiagnosticSettingsImpl self = this;
        return this.manager().inner().diagnosticSettings().listAsync(resourceId)
                .flatMap(new Func1>() {
                    @Override
                    public Observable call(DiagnosticSettingsResourceCollectionInner diagnosticSettingsResourceCollectionInner) {
                        return Observable.from(diagnosticSettingsResourceCollectionInner.value());
                    }
                }).map(new Func1() {
                    @Override
                    public DiagnosticSetting call(DiagnosticSettingsResourceInner diagnosticSettingInner) {
                        return new DiagnosticSettingImpl(diagnosticSettingInner.name(), diagnosticSettingInner, self.manager());
                    }
                });
    }

    @Override
    public void delete(String resourceId, String name) {
        this.manager().inner().diagnosticSettings().delete(resourceId, name);
    }

    @Override
    public ServiceFuture deleteAsync(String resourceId, String name, ServiceCallback callback) {
        return this.manager().inner().diagnosticSettings().deleteAsync(resourceId, name, callback);
    }

    @Override
    public Completable deleteAsync(String resourceId, String name) {
        return this.manager().inner().diagnosticSettings().deleteAsync(resourceId, name).toCompletable();
    }

    @Override
    public DiagnosticSetting get(String resourceId, String name) {
        return wrapModel(this.manager().inner().diagnosticSettings().get(resourceId, name));
    }

    @Override
    public Observable getAsync(String resourceId, String name) {
        return this.manager().inner().diagnosticSettings().getAsync(resourceId, name)
                .map(new Func1() {
                    @Override
                    public DiagnosticSetting call(DiagnosticSettingsResourceInner diagnosticSettingsResourceInner) {
                        return wrapModel(diagnosticSettingsResourceInner);
                    }
                });
    }

    @Override
    public Completable deleteByIdAsync(String id) {
        return this.manager().inner().diagnosticSettings().deleteAsync(getResourceIdFromSettingsId(id), getNameFromSettingsId(id)).toCompletable();
    }

    @Override
    public Observable deleteByIdsAsync(Collection ids) {
        if (ids == null || ids.isEmpty()) {
            return Observable.empty();
        }

        Collection> observables = new ArrayList<>();
        for (String id : ids) {
            final String resourceGroupName = getResourceIdFromSettingsId(id);
            final String name = getNameFromSettingsId(id);
            Observable o = RXMapper.map(this.inner().deleteAsync(resourceGroupName, name), id);
            observables.add(o);
        }

        return Observable.mergeDelayError(observables);
    }

    @Override
    public Observable deleteByIdsAsync(String... ids) {
        return this.deleteByIdsAsync(new ArrayList(Arrays.asList(ids)));
    }

    @Override
    public void deleteByIds(Collection ids) {
        if (ids != null && !ids.isEmpty()) {
            this.deleteByIdsAsync(ids).toBlocking().last();
        }
    }

    @Override
    public void deleteByIds(String... ids) {
        this.deleteByIds(new ArrayList(Arrays.asList(ids)));
    }

    @Override
    public DiagnosticSetting getById(String id) {
        return wrapModel(this.inner().get(getResourceIdFromSettingsId(id), getNameFromSettingsId(id)));
    }

    @Override
    public Observable getByIdAsync(String id) {
        return this.inner().getAsync(getResourceIdFromSettingsId(id), getNameFromSettingsId(id))
                .map(new Func1() {
                    @Override
                    public DiagnosticSetting call(DiagnosticSettingsResourceInner diagnosticSettingsResourceInner) {
                        return wrapModel(diagnosticSettingsResourceInner);
                    }
                });
    }

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

    private String getResourceIdFromSettingsId(String diagnosticSettingId) {
        if (diagnosticSettingId == null) {
            throw new IllegalArgumentException("Parameter 'resourceId' is required and cannot be null.");
        }
        int dsIdx = diagnosticSettingId.lastIndexOf(DiagnosticSettingImpl.DIAGNOSTIC_SETTINGS_URI);
        if (dsIdx == -1) {
            throw new IllegalArgumentException("Parameter 'resourceId' does not represent a valid Diagnostic Settings resource Id [" + diagnosticSettingId + "].");
        }

        return diagnosticSettingId.substring(0, dsIdx);
    }

    private String getNameFromSettingsId(String diagnosticSettingId) {
        String resourceId = getResourceIdFromSettingsId(diagnosticSettingId);
        return diagnosticSettingId.substring(resourceId.length() + DiagnosticSettingImpl.DIAGNOSTIC_SETTINGS_URI.length());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy