ExpressRouteCrossConnectionPeeringInner.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.
package com.azure.resourcemanager.network.fluent.models;
import com.azure.core.annotation.Fluent;
import com.azure.core.annotation.JsonFlatten;
import com.azure.core.management.SubResource;
import com.azure.core.util.logging.ClientLogger;
import com.azure.resourcemanager.network.models.ExpressRouteCircuitPeeringConfig;
import com.azure.resourcemanager.network.models.ExpressRoutePeeringState;
import com.azure.resourcemanager.network.models.ExpressRoutePeeringType;
import com.azure.resourcemanager.network.models.Ipv6ExpressRouteCircuitPeeringConfig;
import com.azure.resourcemanager.network.models.ProvisioningState;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
/** Peering in an ExpressRoute Cross Connection resource. */
@JsonFlatten
@Fluent
public class ExpressRouteCrossConnectionPeeringInner extends SubResource {
@JsonIgnore private final ClientLogger logger = new ClientLogger(ExpressRouteCrossConnectionPeeringInner.class);
/*
* The name of the resource that is unique within a resource group. This
* name can be used to access the resource.
*/
@JsonProperty(value = "name")
private String name;
/*
* A unique read-only string that changes whenever the resource is updated.
*/
@JsonProperty(value = "etag", access = JsonProperty.Access.WRITE_ONLY)
private String etag;
/*
* The peering type.
*/
@JsonProperty(value = "properties.peeringType")
private ExpressRoutePeeringType peeringType;
/*
* The peering state.
*/
@JsonProperty(value = "properties.state")
private ExpressRoutePeeringState state;
/*
* The Azure ASN.
*/
@JsonProperty(value = "properties.azureASN", access = JsonProperty.Access.WRITE_ONLY)
private Integer azureAsn;
/*
* The peer ASN.
*/
@JsonProperty(value = "properties.peerASN")
private Long peerAsn;
/*
* The primary address prefix.
*/
@JsonProperty(value = "properties.primaryPeerAddressPrefix")
private String primaryPeerAddressPrefix;
/*
* The secondary address prefix.
*/
@JsonProperty(value = "properties.secondaryPeerAddressPrefix")
private String secondaryPeerAddressPrefix;
/*
* The primary port.
*/
@JsonProperty(value = "properties.primaryAzurePort", access = JsonProperty.Access.WRITE_ONLY)
private String primaryAzurePort;
/*
* The secondary port.
*/
@JsonProperty(value = "properties.secondaryAzurePort", access = JsonProperty.Access.WRITE_ONLY)
private String secondaryAzurePort;
/*
* The shared key.
*/
@JsonProperty(value = "properties.sharedKey")
private String sharedKey;
/*
* The VLAN ID.
*/
@JsonProperty(value = "properties.vlanId")
private Integer vlanId;
/*
* The Microsoft peering configuration.
*/
@JsonProperty(value = "properties.microsoftPeeringConfig")
private ExpressRouteCircuitPeeringConfig microsoftPeeringConfig;
/*
* The provisioning state of the express route cross connection peering
* resource.
*/
@JsonProperty(value = "properties.provisioningState", access = JsonProperty.Access.WRITE_ONLY)
private ProvisioningState provisioningState;
/*
* The GatewayManager Etag.
*/
@JsonProperty(value = "properties.gatewayManagerEtag")
private String gatewayManagerEtag;
/*
* Who was the last to modify the peering.
*/
@JsonProperty(value = "properties.lastModifiedBy", access = JsonProperty.Access.WRITE_ONLY)
private String lastModifiedBy;
/*
* The IPv6 peering configuration.
*/
@JsonProperty(value = "properties.ipv6PeeringConfig")
private Ipv6ExpressRouteCircuitPeeringConfig ipv6PeeringConfig;
/**
* Get the name property: The name of the resource that is unique within a resource group. This name can be used to
* access the resource.
*
* @return the name value.
*/
public String name() {
return this.name;
}
/**
* Set the name property: The name of the resource that is unique within a resource group. This name can be used to
* access the resource.
*
* @param name the name value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withName(String name) {
this.name = name;
return this;
}
/**
* Get the etag property: A unique read-only string that changes whenever the resource is updated.
*
* @return the etag value.
*/
public String etag() {
return this.etag;
}
/**
* Get the peeringType property: The peering type.
*
* @return the peeringType value.
*/
public ExpressRoutePeeringType peeringType() {
return this.peeringType;
}
/**
* Set the peeringType property: The peering type.
*
* @param peeringType the peeringType value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withPeeringType(ExpressRoutePeeringType peeringType) {
this.peeringType = peeringType;
return this;
}
/**
* Get the state property: The peering state.
*
* @return the state value.
*/
public ExpressRoutePeeringState state() {
return this.state;
}
/**
* Set the state property: The peering state.
*
* @param state the state value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withState(ExpressRoutePeeringState state) {
this.state = state;
return this;
}
/**
* Get the azureAsn property: The Azure ASN.
*
* @return the azureAsn value.
*/
public Integer azureAsn() {
return this.azureAsn;
}
/**
* Get the peerAsn property: The peer ASN.
*
* @return the peerAsn value.
*/
public Long peerAsn() {
return this.peerAsn;
}
/**
* Set the peerAsn property: The peer ASN.
*
* @param peerAsn the peerAsn value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withPeerAsn(Long peerAsn) {
this.peerAsn = peerAsn;
return this;
}
/**
* Get the primaryPeerAddressPrefix property: The primary address prefix.
*
* @return the primaryPeerAddressPrefix value.
*/
public String primaryPeerAddressPrefix() {
return this.primaryPeerAddressPrefix;
}
/**
* Set the primaryPeerAddressPrefix property: The primary address prefix.
*
* @param primaryPeerAddressPrefix the primaryPeerAddressPrefix value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withPrimaryPeerAddressPrefix(String primaryPeerAddressPrefix) {
this.primaryPeerAddressPrefix = primaryPeerAddressPrefix;
return this;
}
/**
* Get the secondaryPeerAddressPrefix property: The secondary address prefix.
*
* @return the secondaryPeerAddressPrefix value.
*/
public String secondaryPeerAddressPrefix() {
return this.secondaryPeerAddressPrefix;
}
/**
* Set the secondaryPeerAddressPrefix property: The secondary address prefix.
*
* @param secondaryPeerAddressPrefix the secondaryPeerAddressPrefix value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withSecondaryPeerAddressPrefix(String secondaryPeerAddressPrefix) {
this.secondaryPeerAddressPrefix = secondaryPeerAddressPrefix;
return this;
}
/**
* Get the primaryAzurePort property: The primary port.
*
* @return the primaryAzurePort value.
*/
public String primaryAzurePort() {
return this.primaryAzurePort;
}
/**
* Get the secondaryAzurePort property: The secondary port.
*
* @return the secondaryAzurePort value.
*/
public String secondaryAzurePort() {
return this.secondaryAzurePort;
}
/**
* Get the sharedKey property: The shared key.
*
* @return the sharedKey value.
*/
public String sharedKey() {
return this.sharedKey;
}
/**
* Set the sharedKey property: The shared key.
*
* @param sharedKey the sharedKey value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withSharedKey(String sharedKey) {
this.sharedKey = sharedKey;
return this;
}
/**
* Get the vlanId property: The VLAN ID.
*
* @return the vlanId value.
*/
public Integer vlanId() {
return this.vlanId;
}
/**
* Set the vlanId property: The VLAN ID.
*
* @param vlanId the vlanId value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withVlanId(Integer vlanId) {
this.vlanId = vlanId;
return this;
}
/**
* Get the microsoftPeeringConfig property: The Microsoft peering configuration.
*
* @return the microsoftPeeringConfig value.
*/
public ExpressRouteCircuitPeeringConfig microsoftPeeringConfig() {
return this.microsoftPeeringConfig;
}
/**
* Set the microsoftPeeringConfig property: The Microsoft peering configuration.
*
* @param microsoftPeeringConfig the microsoftPeeringConfig value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withMicrosoftPeeringConfig(
ExpressRouteCircuitPeeringConfig microsoftPeeringConfig) {
this.microsoftPeeringConfig = microsoftPeeringConfig;
return this;
}
/**
* Get the provisioningState property: The provisioning state of the express route cross connection peering
* resource.
*
* @return the provisioningState value.
*/
public ProvisioningState provisioningState() {
return this.provisioningState;
}
/**
* Get the gatewayManagerEtag property: The GatewayManager Etag.
*
* @return the gatewayManagerEtag value.
*/
public String gatewayManagerEtag() {
return this.gatewayManagerEtag;
}
/**
* Set the gatewayManagerEtag property: The GatewayManager Etag.
*
* @param gatewayManagerEtag the gatewayManagerEtag value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withGatewayManagerEtag(String gatewayManagerEtag) {
this.gatewayManagerEtag = gatewayManagerEtag;
return this;
}
/**
* Get the lastModifiedBy property: Who was the last to modify the peering.
*
* @return the lastModifiedBy value.
*/
public String lastModifiedBy() {
return this.lastModifiedBy;
}
/**
* Get the ipv6PeeringConfig property: The IPv6 peering configuration.
*
* @return the ipv6PeeringConfig value.
*/
public Ipv6ExpressRouteCircuitPeeringConfig ipv6PeeringConfig() {
return this.ipv6PeeringConfig;
}
/**
* Set the ipv6PeeringConfig property: The IPv6 peering configuration.
*
* @param ipv6PeeringConfig the ipv6PeeringConfig value to set.
* @return the ExpressRouteCrossConnectionPeeringInner object itself.
*/
public ExpressRouteCrossConnectionPeeringInner withIpv6PeeringConfig(
Ipv6ExpressRouteCircuitPeeringConfig ipv6PeeringConfig) {
this.ipv6PeeringConfig = ipv6PeeringConfig;
return this;
}
/**
* Validates the instance.
*
* @throws IllegalArgumentException thrown if the instance is not valid.
*/
public void validate() {
if (microsoftPeeringConfig() != null) {
microsoftPeeringConfig().validate();
}
if (ipv6PeeringConfig() != null) {
ipv6PeeringConfig().validate();
}
}
}