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

package com.azure.resourcemanager.peering.fluent.models;

import com.azure.core.annotation.Immutable;
import com.fasterxml.jackson.annotation.JsonProperty;

/** The properties that define a received route. */
@Immutable
public final class PeeringReceivedRouteInner {
    /*
     * The prefix.
     */
    @JsonProperty(value = "prefix", access = JsonProperty.Access.WRITE_ONLY)
    private String prefix;

    /*
     * The next hop for the prefix.
     */
    @JsonProperty(value = "nextHop", access = JsonProperty.Access.WRITE_ONLY)
    private String nextHop;

    /*
     * The AS path for the prefix.
     */
    @JsonProperty(value = "asPath", access = JsonProperty.Access.WRITE_ONLY)
    private String asPath;

    /*
     * The origin AS change information for the prefix.
     */
    @JsonProperty(value = "originAsValidationState", access = JsonProperty.Access.WRITE_ONLY)
    private String originAsValidationState;

    /*
     * The RPKI validation state for the prefix and origin AS that's listed in the AS path.
     */
    @JsonProperty(value = "rpkiValidationState", access = JsonProperty.Access.WRITE_ONLY)
    private String rpkiValidationState;

    /*
     * The authority which holds the Route Origin Authorization record for the prefix, if any.
     */
    @JsonProperty(value = "trustAnchor", access = JsonProperty.Access.WRITE_ONLY)
    private String trustAnchor;

    /*
     * The received timestamp associated with the prefix.
     */
    @JsonProperty(value = "receivedTimestamp", access = JsonProperty.Access.WRITE_ONLY)
    private String receivedTimestamp;

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

    /**
     * Get the prefix property: The prefix.
     *
     * @return the prefix value.
     */
    public String prefix() {
        return this.prefix;
    }

    /**
     * Get the nextHop property: The next hop for the prefix.
     *
     * @return the nextHop value.
     */
    public String nextHop() {
        return this.nextHop;
    }

    /**
     * Get the asPath property: The AS path for the prefix.
     *
     * @return the asPath value.
     */
    public String asPath() {
        return this.asPath;
    }

    /**
     * Get the originAsValidationState property: The origin AS change information for the prefix.
     *
     * @return the originAsValidationState value.
     */
    public String originAsValidationState() {
        return this.originAsValidationState;
    }

    /**
     * Get the rpkiValidationState property: The RPKI validation state for the prefix and origin AS that's listed in the
     * AS path.
     *
     * @return the rpkiValidationState value.
     */
    public String rpkiValidationState() {
        return this.rpkiValidationState;
    }

    /**
     * Get the trustAnchor property: The authority which holds the Route Origin Authorization record for the prefix, if
     * any.
     *
     * @return the trustAnchor value.
     */
    public String trustAnchor() {
        return this.trustAnchor;
    }

    /**
     * Get the receivedTimestamp property: The received timestamp associated with the prefix.
     *
     * @return the receivedTimestamp value.
     */
    public String receivedTimestamp() {
        return this.receivedTimestamp;
    }

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