/*
* Copyright (c) 2015 Huawei Technologies and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.groupbasedpolicy.renderer.faas;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.SubnetId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.LogicalNetworks;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.MappedTenantsEntities;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.logical.networks.LogicalNetwork;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.logical.networks.LogicalNetworkKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedEntity;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedEntityKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedTenant;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.MappedTenantKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedContract;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedContractKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedEndpoint;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedEndpointKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedSubnet;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.faas.rev151009.mapped.tenants.entities.mapped.entity.MappedSubnetKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
public class FaasIidFactory {
public static InstanceIdentifier<LogicalNetworks> logicalNetworksIid() {
return InstanceIdentifier.builder(LogicalNetworks.class).build();
}
public static InstanceIdentifier<LogicalNetwork> logicalNetworkIid(EndpointGroupId consumerEpgId,
TenantId consumerTenantId, ContractId contractId, EndpointGroupId providerEpgId, TenantId providerTenantId) {
return InstanceIdentifier.builder(LogicalNetworks.class)
.child(LogicalNetwork.class,
new LogicalNetworkKey(consumerEpgId, consumerTenantId, contractId, providerEpgId, providerTenantId))
.build();
}
public static InstanceIdentifier<MappedTenantsEntities> mappedTenantsEntitiesIid() {
return InstanceIdentifier.builder(MappedTenantsEntities.class).build();
}
public static InstanceIdentifier<MappedSubnet> mappedSubnetIid(TenantId gbpTenantId, SubnetId subnetId) {
return InstanceIdentifier.builder(MappedTenantsEntities.class)
.child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
.child(MappedSubnet.class, new MappedSubnetKey(subnetId))
.build();
}
public static InstanceIdentifier<MappedTenant> mappedTenantIid(TenantId gbpTenantId) {
return InstanceIdentifier.builder(MappedTenantsEntities.class)
.child(MappedTenant.class, new MappedTenantKey(gbpTenantId))
.build();
}
public static InstanceIdentifier<MappedEntity> mappedEntityIid(TenantId gbpTenantId) {
return InstanceIdentifier.builder(MappedTenantsEntities.class)
.child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
.build();
}
public static InstanceIdentifier<MappedContract> mappedContractIid(TenantId gbpTenantId, ContractId contractId) {
return InstanceIdentifier.builder(MappedTenantsEntities.class)
.child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
.child(MappedContract.class, new MappedContractKey(contractId))
.build();
}
public static InstanceIdentifier<MappedEndpoint> mappedEndpointIid(TenantId gbpTenantId,
MappedEndpointKey mappedEndpointKey) {
return InstanceIdentifier.builder(MappedTenantsEntities.class)
.child(MappedEntity.class, new MappedEntityKey(gbpTenantId))
.child(MappedEndpoint.class, mappedEndpointKey)
.build();
}
}