// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.storagecache.implementation;

import com.azure.core.util.Context;
import com.azure.core.util.logging.ClientLogger;
import com.azure.resourcemanager.storagecache.fluent.StorageTargetOperationsClient;
import com.azure.resourcemanager.storagecache.models.StorageTargetOperations;

public final class StorageTargetOperationsImpl implements StorageTargetOperations {
    private static final ClientLogger LOGGER = new ClientLogger(StorageTargetOperationsImpl.class);

    private final StorageTargetOperationsClient innerClient;

    private final com.azure.resourcemanager.storagecache.StorageCacheManager serviceManager;

    public StorageTargetOperationsImpl(
        StorageTargetOperationsClient innerClient,
        com.azure.resourcemanager.storagecache.StorageCacheManager serviceManager) {
        this.innerClient = innerClient;
        this.serviceManager = serviceManager;
    }

    public void flush(String resourceGroupName, String cacheName, String storageTargetName) {
        this.serviceClient().flush(resourceGroupName, cacheName, storageTargetName);
    }

    public void flush(String resourceGroupName, String cacheName, String storageTargetName, Context context) {
        this.serviceClient().flush(resourceGroupName, cacheName, storageTargetName, context);
    }

    public void suspend(String resourceGroupName, String cacheName, String storageTargetName) {
        this.serviceClient().suspend(resourceGroupName, cacheName, storageTargetName);
    }

    public void suspend(String resourceGroupName, String cacheName, String storageTargetName, Context context) {
        this.serviceClient().suspend(resourceGroupName, cacheName, storageTargetName, context);
    }

    public void resume(String resourceGroupName, String cacheName, String storageTargetName) {
        this.serviceClient().resume(resourceGroupName, cacheName, storageTargetName);
    }

    public void resume(String resourceGroupName, String cacheName, String storageTargetName, Context context) {
        this.serviceClient().resume(resourceGroupName, cacheName, storageTargetName, context);
    }

    public void invalidate(String resourceGroupName, String cacheName, String storageTargetName) {
        this.serviceClient().invalidate(resourceGroupName, cacheName, storageTargetName);
    }

    public void invalidate(String resourceGroupName, String cacheName, String storageTargetName, Context context) {
        this.serviceClient().invalidate(resourceGroupName, cacheName, storageTargetName, context);
    }

    private StorageTargetOperationsClient serviceClient() {
        return this.innerClient;
    }

    private com.azure.resourcemanager.storagecache.StorageCacheManager manager() {
        return this.serviceManager;
    }
}
