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

com.azure.resourcemanager.billing.implementation.BillingAccountsImpl Maven / Gradle / Ivy

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

package com.azure.resourcemanager.billing.implementation;

import com.azure.core.http.rest.PagedIterable;
import com.azure.core.http.rest.Response;
import com.azure.core.http.rest.SimpleResponse;
import com.azure.core.util.Context;
import com.azure.core.util.logging.ClientLogger;
import com.azure.resourcemanager.billing.fluent.BillingAccountsClient;
import com.azure.resourcemanager.billing.fluent.models.BillingAccountInner;
import com.azure.resourcemanager.billing.fluent.models.InvoiceSectionWithCreateSubPermissionInner;
import com.azure.resourcemanager.billing.fluent.models.PaymentTermsEligibilityResultInner;
import com.azure.resourcemanager.billing.fluent.models.TransitionDetailsInner;
import com.azure.resourcemanager.billing.models.BillingAccount;
import com.azure.resourcemanager.billing.models.BillingAccountPatch;
import com.azure.resourcemanager.billing.models.BillingAccounts;
import com.azure.resourcemanager.billing.models.InvoiceSectionWithCreateSubPermission;
import com.azure.resourcemanager.billing.models.PaymentTerm;
import com.azure.resourcemanager.billing.models.PaymentTermsEligibilityResult;
import com.azure.resourcemanager.billing.models.TransitionDetails;
import java.time.OffsetDateTime;
import java.util.List;

public final class BillingAccountsImpl implements BillingAccounts {
    private static final ClientLogger LOGGER = new ClientLogger(BillingAccountsImpl.class);

    private final BillingAccountsClient innerClient;

    private final com.azure.resourcemanager.billing.BillingManager serviceManager;

    public BillingAccountsImpl(BillingAccountsClient innerClient,
        com.azure.resourcemanager.billing.BillingManager serviceManager) {
        this.innerClient = innerClient;
        this.serviceManager = serviceManager;
    }

    public BillingAccount addPaymentTerms(String billingAccountName, List parameters) {
        BillingAccountInner inner = this.serviceClient().addPaymentTerms(billingAccountName, parameters);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public BillingAccount addPaymentTerms(String billingAccountName, List parameters, Context context) {
        BillingAccountInner inner = this.serviceClient().addPaymentTerms(billingAccountName, parameters, context);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public BillingAccount cancelPaymentTerms(String billingAccountName, OffsetDateTime parameters) {
        BillingAccountInner inner = this.serviceClient().cancelPaymentTerms(billingAccountName, parameters);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public BillingAccount cancelPaymentTerms(String billingAccountName, OffsetDateTime parameters, Context context) {
        BillingAccountInner inner = this.serviceClient().cancelPaymentTerms(billingAccountName, parameters, context);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public Response confirmTransitionWithResponse(String billingAccountName, Context context) {
        Response inner
            = this.serviceClient().confirmTransitionWithResponse(billingAccountName, context);
        if (inner != null) {
            return new SimpleResponse<>(inner.getRequest(), inner.getStatusCode(), inner.getHeaders(),
                new TransitionDetailsImpl(inner.getValue(), this.manager()));
        } else {
            return null;
        }
    }

    public TransitionDetails confirmTransition(String billingAccountName) {
        TransitionDetailsInner inner = this.serviceClient().confirmTransition(billingAccountName);
        if (inner != null) {
            return new TransitionDetailsImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public PagedIterable
        listInvoiceSectionsByCreateSubscriptionPermission(String billingAccountName) {
        PagedIterable inner
            = this.serviceClient().listInvoiceSectionsByCreateSubscriptionPermission(billingAccountName);
        return ResourceManagerUtils.mapPage(inner,
            inner1 -> new InvoiceSectionWithCreateSubPermissionImpl(inner1, this.manager()));
    }

    public PagedIterable
        listInvoiceSectionsByCreateSubscriptionPermission(String billingAccountName, String filter, Context context) {
        PagedIterable inner = this.serviceClient()
            .listInvoiceSectionsByCreateSubscriptionPermission(billingAccountName, filter, context);
        return ResourceManagerUtils.mapPage(inner,
            inner1 -> new InvoiceSectionWithCreateSubPermissionImpl(inner1, this.manager()));
    }

    public Response validatePaymentTermsWithResponse(String billingAccountName,
        List parameters, Context context) {
        Response inner
            = this.serviceClient().validatePaymentTermsWithResponse(billingAccountName, parameters, context);
        if (inner != null) {
            return new SimpleResponse<>(inner.getRequest(), inner.getStatusCode(), inner.getHeaders(),
                new PaymentTermsEligibilityResultImpl(inner.getValue(), this.manager()));
        } else {
            return null;
        }
    }

    public PaymentTermsEligibilityResult validatePaymentTerms(String billingAccountName, List parameters) {
        PaymentTermsEligibilityResultInner inner
            = this.serviceClient().validatePaymentTerms(billingAccountName, parameters);
        if (inner != null) {
            return new PaymentTermsEligibilityResultImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public Response getWithResponse(String billingAccountName, Context context) {
        Response inner = this.serviceClient().getWithResponse(billingAccountName, context);
        if (inner != null) {
            return new SimpleResponse<>(inner.getRequest(), inner.getStatusCode(), inner.getHeaders(),
                new BillingAccountImpl(inner.getValue(), this.manager()));
        } else {
            return null;
        }
    }

    public BillingAccount get(String billingAccountName) {
        BillingAccountInner inner = this.serviceClient().get(billingAccountName);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public BillingAccount update(String billingAccountName, BillingAccountPatch parameters) {
        BillingAccountInner inner = this.serviceClient().update(billingAccountName, parameters);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public BillingAccount update(String billingAccountName, BillingAccountPatch parameters, Context context) {
        BillingAccountInner inner = this.serviceClient().update(billingAccountName, parameters, context);
        if (inner != null) {
            return new BillingAccountImpl(inner, this.manager());
        } else {
            return null;
        }
    }

    public PagedIterable list() {
        PagedIterable inner = this.serviceClient().list();
        return ResourceManagerUtils.mapPage(inner, inner1 -> new BillingAccountImpl(inner1, this.manager()));
    }

    public PagedIterable list(Boolean includeAll, Boolean includeAllWithoutBillingProfiles,
        Boolean includeDeleted, Boolean includePendingAgreement, Boolean includeResellee, String legalOwnerTid,
        String legalOwnerOid, String filter, String expand, Long top, Long skip, String search, Context context) {
        PagedIterable inner = this.serviceClient()
            .list(includeAll, includeAllWithoutBillingProfiles, includeDeleted, includePendingAgreement,
                includeResellee, legalOwnerTid, legalOwnerOid, filter, expand, top, skip, search, context);
        return ResourceManagerUtils.mapPage(inner, inner1 -> new BillingAccountImpl(inner1, this.manager()));
    }

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

    private com.azure.resourcemanager.billing.BillingManager manager() {
        return this.serviceManager;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy