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

com.microsoft.azure.management.containerregistry.v2017_10_01.implementation.WebhooksImpl 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.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 *
 */

package com.microsoft.azure.management.containerregistry.v2017_10_01.implementation;

import com.microsoft.azure.arm.model.implementation.WrapperImpl;
import com.microsoft.azure.management.containerregistry.v2017_10_01.Webhooks;
import rx.Completable;
import rx.Observable;
import rx.functions.Func1;
import com.microsoft.azure.Page;
import com.microsoft.azure.management.containerregistry.v2017_10_01.EventInfo;
import com.microsoft.azure.management.containerregistry.v2017_10_01.CallbackConfig;
import com.microsoft.azure.management.containerregistry.v2017_10_01.Event;
import com.microsoft.azure.management.containerregistry.v2017_10_01.Webhook;

class WebhooksImpl extends WrapperImpl implements Webhooks {
    private final ContainerRegistryManager manager;

    WebhooksImpl(ContainerRegistryManager manager) {
        super(manager.inner().webhooks());
        this.manager = manager;
    }

    public ContainerRegistryManager manager() {
        return this.manager;
    }

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

    private WebhookImpl wrapModel(WebhookInner inner) {
        return  new WebhookImpl(inner, manager());
    }

    private WebhookImpl wrapModel(String name) {
        return new WebhookImpl(name, this.manager());
    }

    @Override
    public Observable pingAsync(String resourceGroupName, String registryName, String webhookName) {
        WebhooksInner client = this.inner();
        return client.pingAsync(resourceGroupName, registryName, webhookName)
        .map(new Func1() {
            @Override
            public EventInfo call(EventInfoInner inner) {
                return new EventInfoImpl(inner, manager());
            }
        });
    }

    @Override
    public Observable getCallbackConfigAsync(String resourceGroupName, String registryName, String webhookName) {
        WebhooksInner client = this.inner();
        return client.getCallbackConfigAsync(resourceGroupName, registryName, webhookName)
        .map(new Func1() {
            @Override
            public CallbackConfig call(CallbackConfigInner inner) {
                return new CallbackConfigImpl(inner, manager());
            }
        });
    }

    @Override
    public Observable listEventsAsync(final String resourceGroupName, final String registryName, final String webhookName) {
        WebhooksInner client = this.inner();
        return client.listEventsAsync(resourceGroupName, registryName, webhookName)
        .flatMapIterable(new Func1, Iterable>() {
            @Override
            public Iterable call(Page page) {
                return page.items();
            }
        })
        .map(new Func1() {
            @Override
            public Event call(EventInner inner) {
                return new EventImpl(inner, manager());
            }
        });
    }

    @Override
    public Observable listAsync(final String resourceGroupName, final String registryName) {
        WebhooksInner client = this.inner();
        return client.listAsync(resourceGroupName, registryName)
        .flatMapIterable(new Func1, Iterable>() {
            @Override
            public Iterable call(Page page) {
                return page.items();
            }
        })
        .map(new Func1() {
            @Override
            public Webhook call(WebhookInner inner) {
                return wrapModel(inner);
            }
        });
    }

    @Override
    public Observable getAsync(String resourceGroupName, String registryName, String webhookName) {
        WebhooksInner client = this.inner();
        return client.getAsync(resourceGroupName, registryName, webhookName)
        .map(new Func1() {
            @Override
            public Webhook call(WebhookInner inner) {
                return wrapModel(inner);
            }
       });
    }

    @Override
    public Completable deleteAsync(String resourceGroupName, String registryName, String webhookName) {
        WebhooksInner client = this.inner();
        return client.deleteAsync(resourceGroupName, registryName, webhookName).toCompletable();
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy