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

com.amazonaws.services.ec2.model.IpamResourceCidr Maven / Gradle / Ivy

/*
 * Copyright 2017-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.ec2.model;

import java.io.Serializable;
import javax.annotation.Generated;

/**
 * 

* The CIDR for an IPAM resource. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class IpamResourceCidr implements Serializable, Cloneable { /** *

* The IPAM ID for an IPAM resource. *

*/ private String ipamId; /** *

* The scope ID for an IPAM resource. *

*/ private String ipamScopeId; /** *

* The pool ID for an IPAM resource. *

*/ private String ipamPoolId; /** *

* The Amazon Web Services Region for an IPAM resource. *

*/ private String resourceRegion; /** *

* The Amazon Web Services account number of the owner of an IPAM resource. *

*/ private String resourceOwnerId; /** *

* The ID of an IPAM resource. *

*/ private String resourceId; /** *

* The name of an IPAM resource. *

*/ private String resourceName; /** *

* The CIDR for an IPAM resource. *

*/ private String resourceCidr; /** *

* The type of IPAM resource. *

*/ private String resourceType; /** *

* The tags for an IPAM resource. *

*/ private com.amazonaws.internal.SdkInternalList resourceTags; /** *

* The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a percentage, * multiply the decimal by 100. *

*/ private Double ipUsage; /** *

* The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

*/ private String complianceStatus; /** *

* The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

*/ private String managementState; /** *

* The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with * another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

*/ private String overlapStatus; /** *

* The ID of a VPC. *

*/ private String vpcId; /** *

* The IPAM ID for an IPAM resource. *

* * @param ipamId * The IPAM ID for an IPAM resource. */ public void setIpamId(String ipamId) { this.ipamId = ipamId; } /** *

* The IPAM ID for an IPAM resource. *

* * @return The IPAM ID for an IPAM resource. */ public String getIpamId() { return this.ipamId; } /** *

* The IPAM ID for an IPAM resource. *

* * @param ipamId * The IPAM ID for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withIpamId(String ipamId) { setIpamId(ipamId); return this; } /** *

* The scope ID for an IPAM resource. *

* * @param ipamScopeId * The scope ID for an IPAM resource. */ public void setIpamScopeId(String ipamScopeId) { this.ipamScopeId = ipamScopeId; } /** *

* The scope ID for an IPAM resource. *

* * @return The scope ID for an IPAM resource. */ public String getIpamScopeId() { return this.ipamScopeId; } /** *

* The scope ID for an IPAM resource. *

* * @param ipamScopeId * The scope ID for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withIpamScopeId(String ipamScopeId) { setIpamScopeId(ipamScopeId); return this; } /** *

* The pool ID for an IPAM resource. *

* * @param ipamPoolId * The pool ID for an IPAM resource. */ public void setIpamPoolId(String ipamPoolId) { this.ipamPoolId = ipamPoolId; } /** *

* The pool ID for an IPAM resource. *

* * @return The pool ID for an IPAM resource. */ public String getIpamPoolId() { return this.ipamPoolId; } /** *

* The pool ID for an IPAM resource. *

* * @param ipamPoolId * The pool ID for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withIpamPoolId(String ipamPoolId) { setIpamPoolId(ipamPoolId); return this; } /** *

* The Amazon Web Services Region for an IPAM resource. *

* * @param resourceRegion * The Amazon Web Services Region for an IPAM resource. */ public void setResourceRegion(String resourceRegion) { this.resourceRegion = resourceRegion; } /** *

* The Amazon Web Services Region for an IPAM resource. *

* * @return The Amazon Web Services Region for an IPAM resource. */ public String getResourceRegion() { return this.resourceRegion; } /** *

* The Amazon Web Services Region for an IPAM resource. *

* * @param resourceRegion * The Amazon Web Services Region for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceRegion(String resourceRegion) { setResourceRegion(resourceRegion); return this; } /** *

* The Amazon Web Services account number of the owner of an IPAM resource. *

* * @param resourceOwnerId * The Amazon Web Services account number of the owner of an IPAM resource. */ public void setResourceOwnerId(String resourceOwnerId) { this.resourceOwnerId = resourceOwnerId; } /** *

* The Amazon Web Services account number of the owner of an IPAM resource. *

* * @return The Amazon Web Services account number of the owner of an IPAM resource. */ public String getResourceOwnerId() { return this.resourceOwnerId; } /** *

* The Amazon Web Services account number of the owner of an IPAM resource. *

* * @param resourceOwnerId * The Amazon Web Services account number of the owner of an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceOwnerId(String resourceOwnerId) { setResourceOwnerId(resourceOwnerId); return this; } /** *

* The ID of an IPAM resource. *

* * @param resourceId * The ID of an IPAM resource. */ public void setResourceId(String resourceId) { this.resourceId = resourceId; } /** *

* The ID of an IPAM resource. *

* * @return The ID of an IPAM resource. */ public String getResourceId() { return this.resourceId; } /** *

* The ID of an IPAM resource. *

* * @param resourceId * The ID of an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceId(String resourceId) { setResourceId(resourceId); return this; } /** *

* The name of an IPAM resource. *

* * @param resourceName * The name of an IPAM resource. */ public void setResourceName(String resourceName) { this.resourceName = resourceName; } /** *

* The name of an IPAM resource. *

* * @return The name of an IPAM resource. */ public String getResourceName() { return this.resourceName; } /** *

* The name of an IPAM resource. *

* * @param resourceName * The name of an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceName(String resourceName) { setResourceName(resourceName); return this; } /** *

* The CIDR for an IPAM resource. *

* * @param resourceCidr * The CIDR for an IPAM resource. */ public void setResourceCidr(String resourceCidr) { this.resourceCidr = resourceCidr; } /** *

* The CIDR for an IPAM resource. *

* * @return The CIDR for an IPAM resource. */ public String getResourceCidr() { return this.resourceCidr; } /** *

* The CIDR for an IPAM resource. *

* * @param resourceCidr * The CIDR for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceCidr(String resourceCidr) { setResourceCidr(resourceCidr); return this; } /** *

* The type of IPAM resource. *

* * @param resourceType * The type of IPAM resource. * @see IpamResourceType */ public void setResourceType(String resourceType) { this.resourceType = resourceType; } /** *

* The type of IPAM resource. *

* * @return The type of IPAM resource. * @see IpamResourceType */ public String getResourceType() { return this.resourceType; } /** *

* The type of IPAM resource. *

* * @param resourceType * The type of IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamResourceType */ public IpamResourceCidr withResourceType(String resourceType) { setResourceType(resourceType); return this; } /** *

* The type of IPAM resource. *

* * @param resourceType * The type of IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamResourceType */ public IpamResourceCidr withResourceType(IpamResourceType resourceType) { this.resourceType = resourceType.toString(); return this; } /** *

* The tags for an IPAM resource. *

* * @return The tags for an IPAM resource. */ public java.util.List getResourceTags() { if (resourceTags == null) { resourceTags = new com.amazonaws.internal.SdkInternalList(); } return resourceTags; } /** *

* The tags for an IPAM resource. *

* * @param resourceTags * The tags for an IPAM resource. */ public void setResourceTags(java.util.Collection resourceTags) { if (resourceTags == null) { this.resourceTags = null; return; } this.resourceTags = new com.amazonaws.internal.SdkInternalList(resourceTags); } /** *

* The tags for an IPAM resource. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setResourceTags(java.util.Collection)} or {@link #withResourceTags(java.util.Collection)} if you want to * override the existing values. *

* * @param resourceTags * The tags for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceTags(IpamResourceTag... resourceTags) { if (this.resourceTags == null) { setResourceTags(new com.amazonaws.internal.SdkInternalList(resourceTags.length)); } for (IpamResourceTag ele : resourceTags) { this.resourceTags.add(ele); } return this; } /** *

* The tags for an IPAM resource. *

* * @param resourceTags * The tags for an IPAM resource. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withResourceTags(java.util.Collection resourceTags) { setResourceTags(resourceTags); return this; } /** *

* The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a percentage, * multiply the decimal by 100. *

* * @param ipUsage * The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a * percentage, multiply the decimal by 100. */ public void setIpUsage(Double ipUsage) { this.ipUsage = ipUsage; } /** *

* The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a percentage, * multiply the decimal by 100. *

* * @return The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a * percentage, multiply the decimal by 100. */ public Double getIpUsage() { return this.ipUsage; } /** *

* The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a percentage, * multiply the decimal by 100. *

* * @param ipUsage * The IP address space in the IPAM pool that is allocated to this resource. To convert the decimal to a * percentage, multiply the decimal by 100. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withIpUsage(Double ipUsage) { setIpUsage(ipUsage); return this; } /** *

* The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param complianceStatus * The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @see IpamComplianceStatus */ public void setComplianceStatus(String complianceStatus) { this.complianceStatus = complianceStatus; } /** *

* The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @return The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @see IpamComplianceStatus */ public String getComplianceStatus() { return this.complianceStatus; } /** *

* The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param complianceStatus * The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamComplianceStatus */ public IpamResourceCidr withComplianceStatus(String complianceStatus) { setComplianceStatus(complianceStatus); return this; } /** *

* The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param complianceStatus * The compliance status of the IPAM resource. For more information on compliance statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamComplianceStatus */ public IpamResourceCidr withComplianceStatus(IpamComplianceStatus complianceStatus) { this.complianceStatus = complianceStatus.toString(); return this; } /** *

* The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param managementState * The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @see IpamManagementState */ public void setManagementState(String managementState) { this.managementState = managementState; } /** *

* The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @return The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @see IpamManagementState */ public String getManagementState() { return this.managementState; } /** *

* The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param managementState * The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamManagementState */ public IpamResourceCidr withManagementState(String managementState) { setManagementState(managementState); return this; } /** *

* The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param managementState * The management state of the resource. For more information about management states, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamManagementState */ public IpamResourceCidr withManagementState(IpamManagementState managementState) { this.managementState = managementState.toString(); return this; } /** *

* The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with * another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param overlapStatus * The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps * with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @see IpamOverlapStatus */ public void setOverlapStatus(String overlapStatus) { this.overlapStatus = overlapStatus; } /** *

* The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with * another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @return The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps * with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @see IpamOverlapStatus */ public String getOverlapStatus() { return this.overlapStatus; } /** *

* The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with * another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param overlapStatus * The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps * with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamOverlapStatus */ public IpamResourceCidr withOverlapStatus(String overlapStatus) { setOverlapStatus(overlapStatus); return this; } /** *

* The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps with * another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the Amazon VPC * IPAM User Guide. *

* * @param overlapStatus * The overlap status of an IPAM resource. The overlap status tells you if the CIDR for a resource overlaps * with another CIDR in the scope. For more information on overlap statuses, see Monitor CIDR usage by resource in the * Amazon VPC IPAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. * @see IpamOverlapStatus */ public IpamResourceCidr withOverlapStatus(IpamOverlapStatus overlapStatus) { this.overlapStatus = overlapStatus.toString(); return this; } /** *

* The ID of a VPC. *

* * @param vpcId * The ID of a VPC. */ public void setVpcId(String vpcId) { this.vpcId = vpcId; } /** *

* The ID of a VPC. *

* * @return The ID of a VPC. */ public String getVpcId() { return this.vpcId; } /** *

* The ID of a VPC. *

* * @param vpcId * The ID of a VPC. * @return Returns a reference to this object so that method calls can be chained together. */ public IpamResourceCidr withVpcId(String vpcId) { setVpcId(vpcId); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getIpamId() != null) sb.append("IpamId: ").append(getIpamId()).append(","); if (getIpamScopeId() != null) sb.append("IpamScopeId: ").append(getIpamScopeId()).append(","); if (getIpamPoolId() != null) sb.append("IpamPoolId: ").append(getIpamPoolId()).append(","); if (getResourceRegion() != null) sb.append("ResourceRegion: ").append(getResourceRegion()).append(","); if (getResourceOwnerId() != null) sb.append("ResourceOwnerId: ").append(getResourceOwnerId()).append(","); if (getResourceId() != null) sb.append("ResourceId: ").append(getResourceId()).append(","); if (getResourceName() != null) sb.append("ResourceName: ").append(getResourceName()).append(","); if (getResourceCidr() != null) sb.append("ResourceCidr: ").append(getResourceCidr()).append(","); if (getResourceType() != null) sb.append("ResourceType: ").append(getResourceType()).append(","); if (getResourceTags() != null) sb.append("ResourceTags: ").append(getResourceTags()).append(","); if (getIpUsage() != null) sb.append("IpUsage: ").append(getIpUsage()).append(","); if (getComplianceStatus() != null) sb.append("ComplianceStatus: ").append(getComplianceStatus()).append(","); if (getManagementState() != null) sb.append("ManagementState: ").append(getManagementState()).append(","); if (getOverlapStatus() != null) sb.append("OverlapStatus: ").append(getOverlapStatus()).append(","); if (getVpcId() != null) sb.append("VpcId: ").append(getVpcId()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof IpamResourceCidr == false) return false; IpamResourceCidr other = (IpamResourceCidr) obj; if (other.getIpamId() == null ^ this.getIpamId() == null) return false; if (other.getIpamId() != null && other.getIpamId().equals(this.getIpamId()) == false) return false; if (other.getIpamScopeId() == null ^ this.getIpamScopeId() == null) return false; if (other.getIpamScopeId() != null && other.getIpamScopeId().equals(this.getIpamScopeId()) == false) return false; if (other.getIpamPoolId() == null ^ this.getIpamPoolId() == null) return false; if (other.getIpamPoolId() != null && other.getIpamPoolId().equals(this.getIpamPoolId()) == false) return false; if (other.getResourceRegion() == null ^ this.getResourceRegion() == null) return false; if (other.getResourceRegion() != null && other.getResourceRegion().equals(this.getResourceRegion()) == false) return false; if (other.getResourceOwnerId() == null ^ this.getResourceOwnerId() == null) return false; if (other.getResourceOwnerId() != null && other.getResourceOwnerId().equals(this.getResourceOwnerId()) == false) return false; if (other.getResourceId() == null ^ this.getResourceId() == null) return false; if (other.getResourceId() != null && other.getResourceId().equals(this.getResourceId()) == false) return false; if (other.getResourceName() == null ^ this.getResourceName() == null) return false; if (other.getResourceName() != null && other.getResourceName().equals(this.getResourceName()) == false) return false; if (other.getResourceCidr() == null ^ this.getResourceCidr() == null) return false; if (other.getResourceCidr() != null && other.getResourceCidr().equals(this.getResourceCidr()) == false) return false; if (other.getResourceType() == null ^ this.getResourceType() == null) return false; if (other.getResourceType() != null && other.getResourceType().equals(this.getResourceType()) == false) return false; if (other.getResourceTags() == null ^ this.getResourceTags() == null) return false; if (other.getResourceTags() != null && other.getResourceTags().equals(this.getResourceTags()) == false) return false; if (other.getIpUsage() == null ^ this.getIpUsage() == null) return false; if (other.getIpUsage() != null && other.getIpUsage().equals(this.getIpUsage()) == false) return false; if (other.getComplianceStatus() == null ^ this.getComplianceStatus() == null) return false; if (other.getComplianceStatus() != null && other.getComplianceStatus().equals(this.getComplianceStatus()) == false) return false; if (other.getManagementState() == null ^ this.getManagementState() == null) return false; if (other.getManagementState() != null && other.getManagementState().equals(this.getManagementState()) == false) return false; if (other.getOverlapStatus() == null ^ this.getOverlapStatus() == null) return false; if (other.getOverlapStatus() != null && other.getOverlapStatus().equals(this.getOverlapStatus()) == false) return false; if (other.getVpcId() == null ^ this.getVpcId() == null) return false; if (other.getVpcId() != null && other.getVpcId().equals(this.getVpcId()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getIpamId() == null) ? 0 : getIpamId().hashCode()); hashCode = prime * hashCode + ((getIpamScopeId() == null) ? 0 : getIpamScopeId().hashCode()); hashCode = prime * hashCode + ((getIpamPoolId() == null) ? 0 : getIpamPoolId().hashCode()); hashCode = prime * hashCode + ((getResourceRegion() == null) ? 0 : getResourceRegion().hashCode()); hashCode = prime * hashCode + ((getResourceOwnerId() == null) ? 0 : getResourceOwnerId().hashCode()); hashCode = prime * hashCode + ((getResourceId() == null) ? 0 : getResourceId().hashCode()); hashCode = prime * hashCode + ((getResourceName() == null) ? 0 : getResourceName().hashCode()); hashCode = prime * hashCode + ((getResourceCidr() == null) ? 0 : getResourceCidr().hashCode()); hashCode = prime * hashCode + ((getResourceType() == null) ? 0 : getResourceType().hashCode()); hashCode = prime * hashCode + ((getResourceTags() == null) ? 0 : getResourceTags().hashCode()); hashCode = prime * hashCode + ((getIpUsage() == null) ? 0 : getIpUsage().hashCode()); hashCode = prime * hashCode + ((getComplianceStatus() == null) ? 0 : getComplianceStatus().hashCode()); hashCode = prime * hashCode + ((getManagementState() == null) ? 0 : getManagementState().hashCode()); hashCode = prime * hashCode + ((getOverlapStatus() == null) ? 0 : getOverlapStatus().hashCode()); hashCode = prime * hashCode + ((getVpcId() == null) ? 0 : getVpcId().hashCode()); return hashCode; } @Override public IpamResourceCidr clone() { try { return (IpamResourceCidr) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy