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

package com.azure.resourcemanager.paloaltonetworks.ngfw.fluent.models;

import com.azure.core.annotation.Fluent;
import com.azure.resourcemanager.paloaltonetworks.ngfw.models.BooleanEnum;
import com.fasterxml.jackson.annotation.JsonProperty;

/** Support information for the resource. */
@Fluent
public final class SupportInfoInner {
    /*
     * product SKU associated with given resource
     */
    @JsonProperty(value = "productSku")
    private String productSku;

    /*
     * product Serial associated with given resource
     */
    @JsonProperty(value = "productSerial")
    private String productSerial;

    /*
     * account registered in Customer Support Portal
     */
    @JsonProperty(value = "accountRegistered")
    private BooleanEnum accountRegistered;

    /*
     * Support account associated with given resource
     */
    @JsonProperty(value = "accountId")
    private String accountId;

    /*
     * user domain is supported in Customer Support Portal
     */
    @JsonProperty(value = "userDomainSupported")
    private BooleanEnum userDomainSupported;

    /*
     * user registered in Customer Support Portal
     */
    @JsonProperty(value = "userRegistered")
    private BooleanEnum userRegistered;

    /*
     * Product usage is in free trial period
     */
    @JsonProperty(value = "freeTrial")
    private BooleanEnum freeTrial;

    /*
     * Free trial days remaining
     */
    @JsonProperty(value = "freeTrialDaysLeft")
    private Integer freeTrialDaysLeft;

    /*
     * Free trial credit remaining
     */
    @JsonProperty(value = "freeTrialCreditLeft")
    private Integer freeTrialCreditLeft;

    /*
     * URL for paloaltonetworks live community
     */
    @JsonProperty(value = "helpURL")
    private String helpUrl;

    /*
     * URL for paloaltonetworks Customer Service Portal
     */
    @JsonProperty(value = "supportURL")
    private String supportUrl;

    /*
     * URL for registering product in paloaltonetworks Customer Service Portal
     */
    @JsonProperty(value = "registerURL")
    private String registerUrl;

    /** Creates an instance of SupportInfoInner class. */
    public SupportInfoInner() {
    }

    /**
     * Get the productSku property: product SKU associated with given resource.
     *
     * @return the productSku value.
     */
    public String productSku() {
        return this.productSku;
    }

    /**
     * Set the productSku property: product SKU associated with given resource.
     *
     * @param productSku the productSku value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withProductSku(String productSku) {
        this.productSku = productSku;
        return this;
    }

    /**
     * Get the productSerial property: product Serial associated with given resource.
     *
     * @return the productSerial value.
     */
    public String productSerial() {
        return this.productSerial;
    }

    /**
     * Set the productSerial property: product Serial associated with given resource.
     *
     * @param productSerial the productSerial value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withProductSerial(String productSerial) {
        this.productSerial = productSerial;
        return this;
    }

    /**
     * Get the accountRegistered property: account registered in Customer Support Portal.
     *
     * @return the accountRegistered value.
     */
    public BooleanEnum accountRegistered() {
        return this.accountRegistered;
    }

    /**
     * Set the accountRegistered property: account registered in Customer Support Portal.
     *
     * @param accountRegistered the accountRegistered value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withAccountRegistered(BooleanEnum accountRegistered) {
        this.accountRegistered = accountRegistered;
        return this;
    }

    /**
     * Get the accountId property: Support account associated with given resource.
     *
     * @return the accountId value.
     */
    public String accountId() {
        return this.accountId;
    }

    /**
     * Set the accountId property: Support account associated with given resource.
     *
     * @param accountId the accountId value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withAccountId(String accountId) {
        this.accountId = accountId;
        return this;
    }

    /**
     * Get the userDomainSupported property: user domain is supported in Customer Support Portal.
     *
     * @return the userDomainSupported value.
     */
    public BooleanEnum userDomainSupported() {
        return this.userDomainSupported;
    }

    /**
     * Set the userDomainSupported property: user domain is supported in Customer Support Portal.
     *
     * @param userDomainSupported the userDomainSupported value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withUserDomainSupported(BooleanEnum userDomainSupported) {
        this.userDomainSupported = userDomainSupported;
        return this;
    }

    /**
     * Get the userRegistered property: user registered in Customer Support Portal.
     *
     * @return the userRegistered value.
     */
    public BooleanEnum userRegistered() {
        return this.userRegistered;
    }

    /**
     * Set the userRegistered property: user registered in Customer Support Portal.
     *
     * @param userRegistered the userRegistered value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withUserRegistered(BooleanEnum userRegistered) {
        this.userRegistered = userRegistered;
        return this;
    }

    /**
     * Get the freeTrial property: Product usage is in free trial period.
     *
     * @return the freeTrial value.
     */
    public BooleanEnum freeTrial() {
        return this.freeTrial;
    }

    /**
     * Set the freeTrial property: Product usage is in free trial period.
     *
     * @param freeTrial the freeTrial value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withFreeTrial(BooleanEnum freeTrial) {
        this.freeTrial = freeTrial;
        return this;
    }

    /**
     * Get the freeTrialDaysLeft property: Free trial days remaining.
     *
     * @return the freeTrialDaysLeft value.
     */
    public Integer freeTrialDaysLeft() {
        return this.freeTrialDaysLeft;
    }

    /**
     * Set the freeTrialDaysLeft property: Free trial days remaining.
     *
     * @param freeTrialDaysLeft the freeTrialDaysLeft value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withFreeTrialDaysLeft(Integer freeTrialDaysLeft) {
        this.freeTrialDaysLeft = freeTrialDaysLeft;
        return this;
    }

    /**
     * Get the freeTrialCreditLeft property: Free trial credit remaining.
     *
     * @return the freeTrialCreditLeft value.
     */
    public Integer freeTrialCreditLeft() {
        return this.freeTrialCreditLeft;
    }

    /**
     * Set the freeTrialCreditLeft property: Free trial credit remaining.
     *
     * @param freeTrialCreditLeft the freeTrialCreditLeft value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withFreeTrialCreditLeft(Integer freeTrialCreditLeft) {
        this.freeTrialCreditLeft = freeTrialCreditLeft;
        return this;
    }

    /**
     * Get the helpUrl property: URL for paloaltonetworks live community.
     *
     * @return the helpUrl value.
     */
    public String helpUrl() {
        return this.helpUrl;
    }

    /**
     * Set the helpUrl property: URL for paloaltonetworks live community.
     *
     * @param helpUrl the helpUrl value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withHelpUrl(String helpUrl) {
        this.helpUrl = helpUrl;
        return this;
    }

    /**
     * Get the supportUrl property: URL for paloaltonetworks Customer Service Portal.
     *
     * @return the supportUrl value.
     */
    public String supportUrl() {
        return this.supportUrl;
    }

    /**
     * Set the supportUrl property: URL for paloaltonetworks Customer Service Portal.
     *
     * @param supportUrl the supportUrl value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withSupportUrl(String supportUrl) {
        this.supportUrl = supportUrl;
        return this;
    }

    /**
     * Get the registerUrl property: URL for registering product in paloaltonetworks Customer Service Portal.
     *
     * @return the registerUrl value.
     */
    public String registerUrl() {
        return this.registerUrl;
    }

    /**
     * Set the registerUrl property: URL for registering product in paloaltonetworks Customer Service Portal.
     *
     * @param registerUrl the registerUrl value to set.
     * @return the SupportInfoInner object itself.
     */
    public SupportInfoInner withRegisterUrl(String registerUrl) {
        this.registerUrl = registerUrl;
        return this;
    }

    /**
     * Validates the instance.
     *
     * @throws IllegalArgumentException thrown if the instance is not valid.
     */
    public void validate() {
    }
}
