// 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.models;

import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

/** destination address. */
@Fluent
public final class DestinationAddr {
    /*
     * special value 'any'
     */
    @JsonProperty(value = "cidrs")
    private List<String> cidrs;

    /*
     * list of countries
     */
    @JsonProperty(value = "countries")
    private List<String> countries;

    /*
     * list of feeds
     */
    @JsonProperty(value = "feeds")
    private List<String> feeds;

    /*
     * prefix list
     */
    @JsonProperty(value = "prefixLists")
    private List<String> prefixLists;

    /*
     * fqdn list
     */
    @JsonProperty(value = "fqdnLists")
    private List<String> fqdnLists;

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

    /**
     * Get the cidrs property: special value 'any'.
     *
     * @return the cidrs value.
     */
    public List<String> cidrs() {
        return this.cidrs;
    }

    /**
     * Set the cidrs property: special value 'any'.
     *
     * @param cidrs the cidrs value to set.
     * @return the DestinationAddr object itself.
     */
    public DestinationAddr withCidrs(List<String> cidrs) {
        this.cidrs = cidrs;
        return this;
    }

    /**
     * Get the countries property: list of countries.
     *
     * @return the countries value.
     */
    public List<String> countries() {
        return this.countries;
    }

    /**
     * Set the countries property: list of countries.
     *
     * @param countries the countries value to set.
     * @return the DestinationAddr object itself.
     */
    public DestinationAddr withCountries(List<String> countries) {
        this.countries = countries;
        return this;
    }

    /**
     * Get the feeds property: list of feeds.
     *
     * @return the feeds value.
     */
    public List<String> feeds() {
        return this.feeds;
    }

    /**
     * Set the feeds property: list of feeds.
     *
     * @param feeds the feeds value to set.
     * @return the DestinationAddr object itself.
     */
    public DestinationAddr withFeeds(List<String> feeds) {
        this.feeds = feeds;
        return this;
    }

    /**
     * Get the prefixLists property: prefix list.
     *
     * @return the prefixLists value.
     */
    public List<String> prefixLists() {
        return this.prefixLists;
    }

    /**
     * Set the prefixLists property: prefix list.
     *
     * @param prefixLists the prefixLists value to set.
     * @return the DestinationAddr object itself.
     */
    public DestinationAddr withPrefixLists(List<String> prefixLists) {
        this.prefixLists = prefixLists;
        return this;
    }

    /**
     * Get the fqdnLists property: fqdn list.
     *
     * @return the fqdnLists value.
     */
    public List<String> fqdnLists() {
        return this.fqdnLists;
    }

    /**
     * Set the fqdnLists property: fqdn list.
     *
     * @param fqdnLists the fqdnLists value to set.
     * @return the DestinationAddr object itself.
     */
    public DestinationAddr withFqdnLists(List<String> fqdnLists) {
        this.fqdnLists = fqdnLists;
        return this;
    }

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