public interface AnomalyInjector extends EObject {
} // AnomalyInjector public interface AnotherMicroserviceMetamodelFactory extends EFactory {
	/**
	 * The singleton instance of the factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	AnotherMicroserviceMetamodelFactory eINSTANCE = microserviceMetamodel.impl.AnotherMicroserviceMetamodelFactoryImpl.init();

	/**
	 * Returns a new object of class '<em>Microservice</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Microservice</em>'.
	 * @generated
	 */
	Microservice createMicroservice();

	/**
	 * Returns a new object of class '<em>Configuration</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Configuration</em>'.
	 * @generated
	 */
	Configuration createConfiguration();

	/**
	 * Returns a new object of class '<em>Version</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Version</em>'.
	 * @generated
	 */
	Version createVersion();

	/**
	 * Returns a new object of class '<em>Endpoint</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Endpoint</em>'.
	 * @generated
	 */
	Endpoint createEndpoint();

	/**
	 * Returns a new object of class '<em>REST Operation</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>REST Operation</em>'.
	 * @generated
	 */
	RESTOperation createRESTOperation();

	/**
	 * Returns a new object of class '<em>Microservice Type</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Microservice Type</em>'.
	 * @generated
	 */
	MicroserviceType createMicroserviceType();

	/**
	 * Returns a new object of class '<em>Microservice Repository</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Microservice Repository</em>'.
	 * @generated
	 */
	MicroserviceRepository createMicroserviceRepository();

	/**
	 * Returns a new object of class '<em>Virtual Host</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Virtual Host</em>'.
	 * @generated
	 */
	VirtualHost createVirtualHost();

	/**
	 * Returns a new object of class '<em>Physical Host</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Physical Host</em>'.
	 * @generated
	 */
	PhysicalHost createPhysicalHost();

	/**
	 * Returns a new object of class '<em>Infrastructure Model</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Infrastructure Model</em>'.
	 * @generated
	 */
	InfrastructureModel createInfrastructureModel();

	/**
	 * Returns a new object of class '<em>Dependency Model</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Dependency Model</em>'.
	 * @generated
	 */
	DependencyModel createDependencyModel();

	/**
	 * Returns a new object of class '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Operation To Operation Calling Dependency</em>'.
	 * @generated
	 */
	OperationToOperationCallingDependency createOperationToOperationCallingDependency();

	/**
	 * Returns a new object of class '<em>Time Series</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Time Series</em>'.
	 * @generated
	 */
	TimeSeries createTimeSeries();

	/**
	 * Returns a new object of class '<em>Time Series Point</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Time Series Point</em>'.
	 * @generated
	 */
	TimeSeriesPoint createTimeSeriesPoint();

	/**
	 * Returns a new object of class '<em>Microservice Operation Time Series Point</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Microservice Operation Time Series Point</em>'.
	 * @generated
	 */
	MicroserviceOperationTimeSeriesPoint createMicroserviceOperationTimeSeriesPoint();

	/**
	 * Returns a new object of class '<em>Meta Model Structure</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return a new object of class '<em>Meta Model Structure</em>'.
	 * @generated
	 */
	MetaModelStructure createMetaModelStructure();

	/**
	 * Returns the package supported by this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the package supported by this factory.
	 * @generated
	 */
	AnotherMicroserviceMetamodelPackage getAnotherMicroserviceMetamodelPackage();

} //AnotherMicroserviceMetamodelFactory public interface AnotherMicroserviceMetamodelPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "anotherMicroserviceMetamodel";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.example.org/anotherMicroserviceMetamodel";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "anotherMicroserviceMetamodel";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	AnotherMicroserviceMetamodelPackage eINSTANCE = microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl.init();

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.MicroserviceImpl <em>Microservice</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.MicroserviceImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroservice()
	 * @generated
	 */
	int MICROSERVICE = 0;

	/**
	 * The feature id for the '<em><b>Environment</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE__ENVIRONMENT = 0;

	/**
	 * The feature id for the '<em><b>Endpoints</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE__ENDPOINTS = 1;

	/**
	 * The feature id for the '<em><b>Microservice Type</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE__MICROSERVICE_TYPE = 2;

	/**
	 * The feature id for the '<em><b>Version</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE__VERSION = 3;

	/**
	 * The feature id for the '<em><b>Uuid</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE__UUID = 4;

	/**
	 * The number of structural features of the '<em>Microservice</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_FEATURE_COUNT = 5;

	/**
	 * The number of operations of the '<em>Microservice</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.ConfigurationImpl <em>Configuration</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.ConfigurationImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getConfiguration()
	 * @generated
	 */
	int CONFIGURATION = 1;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONFIGURATION__MICROSERVICES = 0;

	/**
	 * The number of structural features of the '<em>Configuration</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONFIGURATION_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Configuration</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONFIGURATION_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.ExecutionEnvironmentImpl <em>Execution Environment</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.ExecutionEnvironmentImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getExecutionEnvironment()
	 * @generated
	 */
	int EXECUTION_ENVIRONMENT = 2;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXECUTION_ENVIRONMENT__MICROSERVICES = 0;

	/**
	 * The number of structural features of the '<em>Execution Environment</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXECUTION_ENVIRONMENT_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Execution Environment</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int EXECUTION_ENVIRONMENT_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.AnomalyInjector <em>Anomaly Injector</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.AnomalyInjector
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getAnomalyInjector()
	 * @generated
	 */
	int ANOMALY_INJECTOR = 3;

	/**
	 * The number of structural features of the '<em>Anomaly Injector</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ANOMALY_INJECTOR_FEATURE_COUNT = 0;

	/**
	 * The number of operations of the '<em>Anomaly Injector</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ANOMALY_INJECTOR_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.VersionImpl <em>Version</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.VersionImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getVersion()
	 * @generated
	 */
	int VERSION = 4;

	/**
	 * The feature id for the '<em><b>Version String</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VERSION__VERSION_STRING = 0;

	/**
	 * The number of structural features of the '<em>Version</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VERSION_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Version</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VERSION_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.EndpointImpl <em>Endpoint</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.EndpointImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getEndpoint()
	 * @generated
	 */
	int ENDPOINT = 5;

	/**
	 * The feature id for the '<em><b>Rest Operations</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT__REST_OPERATIONS = 0;

	/**
	 * The feature id for the '<em><b>Ip Address</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT__IP_ADDRESS = 1;

	/**
	 * The feature id for the '<em><b>Port</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT__PORT = 2;

	/**
	 * The feature id for the '<em><b>Url</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT__URL = 3;

	/**
	 * The feature id for the '<em><b>Protocol</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT__PROTOCOL = 4;

	/**
	 * The number of structural features of the '<em>Endpoint</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT_FEATURE_COUNT = 5;

	/**
	 * The number of operations of the '<em>Endpoint</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int ENDPOINT_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.RESTOperationImpl <em>REST Operation</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.RESTOperationImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getRESTOperation()
	 * @generated
	 */
	int REST_OPERATION = 6;

	/**
	 * The feature id for the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REST_OPERATION__NAME = 0;

	/**
	 * The feature id for the '<em><b>Sub Path</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REST_OPERATION__SUB_PATH = 1;

	/**
	 * The feature id for the '<em><b>Rest Verb</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REST_OPERATION__REST_VERB = 2;

	/**
	 * The number of structural features of the '<em>REST Operation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REST_OPERATION_FEATURE_COUNT = 3;

	/**
	 * The number of operations of the '<em>REST Operation</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int REST_OPERATION_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.MicroserviceTypeImpl <em>Microservice Type</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.MicroserviceTypeImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroserviceType()
	 * @generated
	 */
	int MICROSERVICE_TYPE = 7;

	/**
	 * The feature id for the '<em><b>Rest Operations</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE__REST_OPERATIONS = 0;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE__MICROSERVICES = 1;

	/**
	 * The feature id for the '<em><b>Versions</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE__VERSIONS = 2;

	/**
	 * The feature id for the '<em><b>Identifier</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE__IDENTIFIER = 3;

	/**
	 * The feature id for the '<em><b>Dependencies</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE__DEPENDENCIES = 4;

	/**
	 * The number of structural features of the '<em>Microservice Type</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE_FEATURE_COUNT = 5;

	/**
	 * The number of operations of the '<em>Microservice Type</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_TYPE_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.MicroserviceRepositoryImpl <em>Microservice Repository</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.MicroserviceRepositoryImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroserviceRepository()
	 * @generated
	 */
	int MICROSERVICE_REPOSITORY = 8;

	/**
	 * The feature id for the '<em><b>Microservice Types</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_REPOSITORY__MICROSERVICE_TYPES = 0;

	/**
	 * The number of structural features of the '<em>Microservice Repository</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_REPOSITORY_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Microservice Repository</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_REPOSITORY_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.HostImpl <em>Host</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.HostImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getHost()
	 * @generated
	 */
	int HOST = 9;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int HOST__MICROSERVICES = EXECUTION_ENVIRONMENT__MICROSERVICES;

	/**
	 * The feature id for the '<em><b>Containers</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int HOST__CONTAINERS = EXECUTION_ENVIRONMENT_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Hostname</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int HOST__HOSTNAME = EXECUTION_ENVIRONMENT_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Host</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int HOST_FEATURE_COUNT = EXECUTION_ENVIRONMENT_FEATURE_COUNT + 2;

	/**
	 * The number of operations of the '<em>Host</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int HOST_OPERATION_COUNT = EXECUTION_ENVIRONMENT_OPERATION_COUNT + 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.ContainerImpl <em>Container</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.ContainerImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getContainer()
	 * @generated
	 */
	int CONTAINER = 10;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONTAINER__MICROSERVICES = EXECUTION_ENVIRONMENT__MICROSERVICES;

	/**
	 * The feature id for the '<em><b>Host</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONTAINER__HOST = EXECUTION_ENVIRONMENT_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Container</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONTAINER_FEATURE_COUNT = EXECUTION_ENVIRONMENT_FEATURE_COUNT + 1;

	/**
	 * The number of operations of the '<em>Container</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONTAINER_OPERATION_COUNT = EXECUTION_ENVIRONMENT_OPERATION_COUNT + 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.VirtualHostImpl <em>Virtual Host</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.VirtualHostImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getVirtualHost()
	 * @generated
	 */
	int VIRTUAL_HOST = 11;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VIRTUAL_HOST__MICROSERVICES = HOST__MICROSERVICES;

	/**
	 * The feature id for the '<em><b>Containers</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VIRTUAL_HOST__CONTAINERS = HOST__CONTAINERS;

	/**
	 * The feature id for the '<em><b>Hostname</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VIRTUAL_HOST__HOSTNAME = HOST__HOSTNAME;

	/**
	 * The feature id for the '<em><b>Parent Host</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VIRTUAL_HOST__PARENT_HOST = HOST_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Virtual Host</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VIRTUAL_HOST_FEATURE_COUNT = HOST_FEATURE_COUNT + 1;

	/**
	 * The number of operations of the '<em>Virtual Host</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int VIRTUAL_HOST_OPERATION_COUNT = HOST_OPERATION_COUNT + 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.PhysicalHostImpl <em>Physical Host</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.PhysicalHostImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getPhysicalHost()
	 * @generated
	 */
	int PHYSICAL_HOST = 12;

	/**
	 * The feature id for the '<em><b>Microservices</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PHYSICAL_HOST__MICROSERVICES = HOST__MICROSERVICES;

	/**
	 * The feature id for the '<em><b>Containers</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PHYSICAL_HOST__CONTAINERS = HOST__CONTAINERS;

	/**
	 * The feature id for the '<em><b>Hostname</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PHYSICAL_HOST__HOSTNAME = HOST__HOSTNAME;

	/**
	 * The feature id for the '<em><b>Virtual Hosts</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PHYSICAL_HOST__VIRTUAL_HOSTS = HOST_FEATURE_COUNT + 0;

	/**
	 * The number of structural features of the '<em>Physical Host</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PHYSICAL_HOST_FEATURE_COUNT = HOST_FEATURE_COUNT + 1;

	/**
	 * The number of operations of the '<em>Physical Host</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int PHYSICAL_HOST_OPERATION_COUNT = HOST_OPERATION_COUNT + 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.InfrastructureModelImpl <em>Infrastructure Model</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.InfrastructureModelImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getInfrastructureModel()
	 * @generated
	 */
	int INFRASTRUCTURE_MODEL = 13;

	/**
	 * The feature id for the '<em><b>Hosts</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INFRASTRUCTURE_MODEL__HOSTS = 0;

	/**
	 * The number of structural features of the '<em>Infrastructure Model</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INFRASTRUCTURE_MODEL_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Infrastructure Model</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int INFRASTRUCTURE_MODEL_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.DependencyModelImpl <em>Dependency Model</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.DependencyModelImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getDependencyModel()
	 * @generated
	 */
	int DEPENDENCY_MODEL = 14;

	/**
	 * The feature id for the '<em><b>Operation To Operation Calling Dependencies</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DEPENDENCY_MODEL__OPERATION_TO_OPERATION_CALLING_DEPENDENCIES = 0;

	/**
	 * The number of structural features of the '<em>Dependency Model</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DEPENDENCY_MODEL_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Dependency Model</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DEPENDENCY_MODEL_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.OperationToOperationCallingDependencyImpl <em>Operation To Operation Calling Dependency</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.OperationToOperationCallingDependencyImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getOperationToOperationCallingDependency()
	 * @generated
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY = 15;

	/**
	 * The feature id for the '<em><b>Called Microservice</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_MICROSERVICE = 0;

	/**
	 * The feature id for the '<em><b>Called Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_OPERATION = 1;

	/**
	 * The feature id for the '<em><b>Calling Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_OPERATION = 2;

	/**
	 * The feature id for the '<em><b>Calling Version</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_VERSION = 3;

	/**
	 * The feature id for the '<em><b>Calling Microservice</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_MICROSERVICE = 4;

	/**
	 * The number of structural features of the '<em>Operation To Operation Calling Dependency</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY_FEATURE_COUNT = 5;

	/**
	 * The number of operations of the '<em>Operation To Operation Calling Dependency</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int OPERATION_TO_OPERATION_CALLING_DEPENDENCY_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.TimeSeriesImpl <em>Time Series</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.TimeSeriesImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getTimeSeries()
	 * @generated
	 */
	int TIME_SERIES = 16;

	/**
	 * The feature id for the '<em><b>Time Series Points</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TIME_SERIES__TIME_SERIES_POINTS = 0;

	/**
	 * The number of structural features of the '<em>Time Series</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TIME_SERIES_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Time Series</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TIME_SERIES_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.TimeSeriesPointImpl <em>Time Series Point</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.TimeSeriesPointImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getTimeSeriesPoint()
	 * @generated
	 */
	int TIME_SERIES_POINT = 17;

	/**
	 * The feature id for the '<em><b>Time Series</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TIME_SERIES_POINT__TIME_SERIES = 0;

	/**
	 * The number of structural features of the '<em>Time Series Point</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TIME_SERIES_POINT_FEATURE_COUNT = 1;

	/**
	 * The number of operations of the '<em>Time Series Point</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TIME_SERIES_POINT_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.MicroserviceOperationTimeSeriesPointImpl <em>Microservice Operation Time Series Point</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.MicroserviceOperationTimeSeriesPointImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroserviceOperationTimeSeriesPoint()
	 * @generated
	 */
	int MICROSERVICE_OPERATION_TIME_SERIES_POINT = 18;

	/**
	 * The feature id for the '<em><b>Time Series</b></em>' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_OPERATION_TIME_SERIES_POINT__TIME_SERIES = TIME_SERIES_POINT__TIME_SERIES;

	/**
	 * The feature id for the '<em><b>Endpoint</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_OPERATION_TIME_SERIES_POINT__ENDPOINT = TIME_SERIES_POINT_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Rest Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_OPERATION_TIME_SERIES_POINT__REST_OPERATION = TIME_SERIES_POINT_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Microservice Operation Time Series Point</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_OPERATION_TIME_SERIES_POINT_FEATURE_COUNT = TIME_SERIES_POINT_FEATURE_COUNT + 2;

	/**
	 * The number of operations of the '<em>Microservice Operation Time Series Point</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int MICROSERVICE_OPERATION_TIME_SERIES_POINT_OPERATION_COUNT = TIME_SERIES_POINT_OPERATION_COUNT + 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.impl.MetaModelStructureImpl <em>Meta Model Structure</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.impl.MetaModelStructureImpl
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMetaModelStructure()
	 * @generated
	 */
	int META_MODEL_STRUCTURE = 19;

	/**
	 * The feature id for the '<em><b>Infrastructure</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE__INFRASTRUCTURE = 0;

	/**
	 * The feature id for the '<em><b>Configurations</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE__CONFIGURATIONS = 1;

	/**
	 * The feature id for the '<em><b>Dependencies</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE__DEPENDENCIES = 2;

	/**
	 * The feature id for the '<em><b>Time Series</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE__TIME_SERIES = 3;

	/**
	 * The feature id for the '<em><b>Microservice Repository</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE__MICROSERVICE_REPOSITORY = 4;

	/**
	 * The number of structural features of the '<em>Meta Model Structure</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE_FEATURE_COUNT = 5;

	/**
	 * The number of operations of the '<em>Meta Model Structure</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int META_MODEL_STRUCTURE_OPERATION_COUNT = 0;

	/**
	 * The meta object id for the '{@link microserviceMetamodel.RESTVerb <em>REST Verb</em>}' enum.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see microserviceMetamodel.RESTVerb
	 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getRESTVerb()
	 * @generated
	 */
	int REST_VERB = 20;


	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.Microservice <em>Microservice</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Microservice</em>'.
	 * @see microserviceMetamodel.Microservice
	 * @generated
	 */
	EClass getMicroservice();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.Microservice#getEnvironment <em>Environment</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Environment</em>'.
	 * @see microserviceMetamodel.Microservice#getEnvironment()
	 * @see #getMicroservice()
	 * @generated
	 */
	EReference getMicroservice_Environment();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.Microservice#getEndpoints <em>Endpoints</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Endpoints</em>'.
	 * @see microserviceMetamodel.Microservice#getEndpoints()
	 * @see #getMicroservice()
	 * @generated
	 */
	EReference getMicroservice_Endpoints();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.Microservice#getMicroserviceType <em>Microservice Type</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Microservice Type</em>'.
	 * @see microserviceMetamodel.Microservice#getMicroserviceType()
	 * @see #getMicroservice()
	 * @generated
	 */
	EReference getMicroservice_MicroserviceType();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.Microservice#getVersion <em>Version</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Version</em>'.
	 * @see microserviceMetamodel.Microservice#getVersion()
	 * @see #getMicroservice()
	 * @generated
	 */
	EReference getMicroservice_Version();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Microservice#getUuid <em>Uuid</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Uuid</em>'.
	 * @see microserviceMetamodel.Microservice#getUuid()
	 * @see #getMicroservice()
	 * @generated
	 */
	EAttribute getMicroservice_Uuid();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.Configuration <em>Configuration</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Configuration</em>'.
	 * @see microserviceMetamodel.Configuration
	 * @generated
	 */
	EClass getConfiguration();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.Configuration#getMicroservices <em>Microservices</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Microservices</em>'.
	 * @see microserviceMetamodel.Configuration#getMicroservices()
	 * @see #getConfiguration()
	 * @generated
	 */
	EReference getConfiguration_Microservices();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.ExecutionEnvironment <em>Execution Environment</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Execution Environment</em>'.
	 * @see microserviceMetamodel.ExecutionEnvironment
	 * @generated
	 */
	EClass getExecutionEnvironment();

	/**
	 * Returns the meta object for the reference list '{@link microserviceMetamodel.ExecutionEnvironment#getMicroservices <em>Microservices</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Microservices</em>'.
	 * @see microserviceMetamodel.ExecutionEnvironment#getMicroservices()
	 * @see #getExecutionEnvironment()
	 * @generated
	 */
	EReference getExecutionEnvironment_Microservices();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.AnomalyInjector <em>Anomaly Injector</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Anomaly Injector</em>'.
	 * @see microserviceMetamodel.AnomalyInjector
	 * @generated
	 */
	EClass getAnomalyInjector();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.Version <em>Version</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Version</em>'.
	 * @see microserviceMetamodel.Version
	 * @generated
	 */
	EClass getVersion();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Version#getVersionString <em>Version String</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Version String</em>'.
	 * @see microserviceMetamodel.Version#getVersionString()
	 * @see #getVersion()
	 * @generated
	 */
	EAttribute getVersion_VersionString();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.Endpoint <em>Endpoint</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Endpoint</em>'.
	 * @see microserviceMetamodel.Endpoint
	 * @generated
	 */
	EClass getEndpoint();

	/**
	 * Returns the meta object for the reference list '{@link microserviceMetamodel.Endpoint#getRestOperations <em>Rest Operations</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Rest Operations</em>'.
	 * @see microserviceMetamodel.Endpoint#getRestOperations()
	 * @see #getEndpoint()
	 * @generated
	 */
	EReference getEndpoint_RestOperations();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Endpoint#getIpAddress <em>Ip Address</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Ip Address</em>'.
	 * @see microserviceMetamodel.Endpoint#getIpAddress()
	 * @see #getEndpoint()
	 * @generated
	 */
	EAttribute getEndpoint_IpAddress();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Endpoint#getPort <em>Port</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Port</em>'.
	 * @see microserviceMetamodel.Endpoint#getPort()
	 * @see #getEndpoint()
	 * @generated
	 */
	EAttribute getEndpoint_Port();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Endpoint#getUrl <em>Url</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Url</em>'.
	 * @see microserviceMetamodel.Endpoint#getUrl()
	 * @see #getEndpoint()
	 * @generated
	 */
	EAttribute getEndpoint_Url();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Endpoint#getProtocol <em>Protocol</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Protocol</em>'.
	 * @see microserviceMetamodel.Endpoint#getProtocol()
	 * @see #getEndpoint()
	 * @generated
	 */
	EAttribute getEndpoint_Protocol();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.RESTOperation <em>REST Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>REST Operation</em>'.
	 * @see microserviceMetamodel.RESTOperation
	 * @generated
	 */
	EClass getRESTOperation();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.RESTOperation#getName <em>Name</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Name</em>'.
	 * @see microserviceMetamodel.RESTOperation#getName()
	 * @see #getRESTOperation()
	 * @generated
	 */
	EAttribute getRESTOperation_Name();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.RESTOperation#getSubPath <em>Sub Path</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Sub Path</em>'.
	 * @see microserviceMetamodel.RESTOperation#getSubPath()
	 * @see #getRESTOperation()
	 * @generated
	 */
	EAttribute getRESTOperation_SubPath();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.RESTOperation#getRestVerb <em>Rest Verb</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Rest Verb</em>'.
	 * @see microserviceMetamodel.RESTOperation#getRestVerb()
	 * @see #getRESTOperation()
	 * @generated
	 */
	EAttribute getRESTOperation_RestVerb();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.MicroserviceType <em>Microservice Type</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Microservice Type</em>'.
	 * @see microserviceMetamodel.MicroserviceType
	 * @generated
	 */
	EClass getMicroserviceType();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.MicroserviceType#getRestOperations <em>Rest Operations</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Rest Operations</em>'.
	 * @see microserviceMetamodel.MicroserviceType#getRestOperations()
	 * @see #getMicroserviceType()
	 * @generated
	 */
	EReference getMicroserviceType_RestOperations();

	/**
	 * Returns the meta object for the reference list '{@link microserviceMetamodel.MicroserviceType#getMicroservices <em>Microservices</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Microservices</em>'.
	 * @see microserviceMetamodel.MicroserviceType#getMicroservices()
	 * @see #getMicroserviceType()
	 * @generated
	 */
	EReference getMicroserviceType_Microservices();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.MicroserviceType#getVersions <em>Versions</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Versions</em>'.
	 * @see microserviceMetamodel.MicroserviceType#getVersions()
	 * @see #getMicroserviceType()
	 * @generated
	 */
	EReference getMicroserviceType_Versions();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.MicroserviceType#getIdentifier <em>Identifier</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Identifier</em>'.
	 * @see microserviceMetamodel.MicroserviceType#getIdentifier()
	 * @see #getMicroserviceType()
	 * @generated
	 */
	EAttribute getMicroserviceType_Identifier();

	/**
	 * Returns the meta object for the reference list '{@link microserviceMetamodel.MicroserviceType#getDependencies <em>Dependencies</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Dependencies</em>'.
	 * @see microserviceMetamodel.MicroserviceType#getDependencies()
	 * @see #getMicroserviceType()
	 * @generated
	 */
	EReference getMicroserviceType_Dependencies();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.MicroserviceRepository <em>Microservice Repository</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Microservice Repository</em>'.
	 * @see microserviceMetamodel.MicroserviceRepository
	 * @generated
	 */
	EClass getMicroserviceRepository();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.MicroserviceRepository#getMicroserviceTypes <em>Microservice Types</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Microservice Types</em>'.
	 * @see microserviceMetamodel.MicroserviceRepository#getMicroserviceTypes()
	 * @see #getMicroserviceRepository()
	 * @generated
	 */
	EReference getMicroserviceRepository_MicroserviceTypes();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.Host <em>Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Host</em>'.
	 * @see microserviceMetamodel.Host
	 * @generated
	 */
	EClass getHost();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.Host#getContainers <em>Containers</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Containers</em>'.
	 * @see microserviceMetamodel.Host#getContainers()
	 * @see #getHost()
	 * @generated
	 */
	EReference getHost_Containers();

	/**
	 * Returns the meta object for the attribute '{@link microserviceMetamodel.Host#getHostname <em>Hostname</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Hostname</em>'.
	 * @see microserviceMetamodel.Host#getHostname()
	 * @see #getHost()
	 * @generated
	 */
	EAttribute getHost_Hostname();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.Container <em>Container</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Container</em>'.
	 * @see microserviceMetamodel.Container
	 * @generated
	 */
	EClass getContainer();

	/**
	 * Returns the meta object for the container reference '{@link microserviceMetamodel.Container#getHost <em>Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Host</em>'.
	 * @see microserviceMetamodel.Container#getHost()
	 * @see #getContainer()
	 * @generated
	 */
	EReference getContainer_Host();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.VirtualHost <em>Virtual Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Virtual Host</em>'.
	 * @see microserviceMetamodel.VirtualHost
	 * @generated
	 */
	EClass getVirtualHost();

	/**
	 * Returns the meta object for the container reference '{@link microserviceMetamodel.VirtualHost#getParentHost <em>Parent Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Parent Host</em>'.
	 * @see microserviceMetamodel.VirtualHost#getParentHost()
	 * @see #getVirtualHost()
	 * @generated
	 */
	EReference getVirtualHost_ParentHost();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.PhysicalHost <em>Physical Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Physical Host</em>'.
	 * @see microserviceMetamodel.PhysicalHost
	 * @generated
	 */
	EClass getPhysicalHost();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.PhysicalHost#getVirtualHosts <em>Virtual Hosts</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Virtual Hosts</em>'.
	 * @see microserviceMetamodel.PhysicalHost#getVirtualHosts()
	 * @see #getPhysicalHost()
	 * @generated
	 */
	EReference getPhysicalHost_VirtualHosts();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.InfrastructureModel <em>Infrastructure Model</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Infrastructure Model</em>'.
	 * @see microserviceMetamodel.InfrastructureModel
	 * @generated
	 */
	EClass getInfrastructureModel();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.InfrastructureModel#getHosts <em>Hosts</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Hosts</em>'.
	 * @see microserviceMetamodel.InfrastructureModel#getHosts()
	 * @see #getInfrastructureModel()
	 * @generated
	 */
	EReference getInfrastructureModel_Hosts();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.DependencyModel <em>Dependency Model</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Dependency Model</em>'.
	 * @see microserviceMetamodel.DependencyModel
	 * @generated
	 */
	EClass getDependencyModel();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.DependencyModel#getOperationToOperationCallingDependencies <em>Operation To Operation Calling Dependencies</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Operation To Operation Calling Dependencies</em>'.
	 * @see microserviceMetamodel.DependencyModel#getOperationToOperationCallingDependencies()
	 * @see #getDependencyModel()
	 * @generated
	 */
	EReference getDependencyModel_OperationToOperationCallingDependencies();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.OperationToOperationCallingDependency <em>Operation To Operation Calling Dependency</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Operation To Operation Calling Dependency</em>'.
	 * @see microserviceMetamodel.OperationToOperationCallingDependency
	 * @generated
	 */
	EClass getOperationToOperationCallingDependency();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingMicroservice <em>Calling Microservice</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Calling Microservice</em>'.
	 * @see microserviceMetamodel.OperationToOperationCallingDependency#getCallingMicroservice()
	 * @see #getOperationToOperationCallingDependency()
	 * @generated
	 */
	EReference getOperationToOperationCallingDependency_CallingMicroservice();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCalledMicroservice <em>Called Microservice</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Called Microservice</em>'.
	 * @see microserviceMetamodel.OperationToOperationCallingDependency#getCalledMicroservice()
	 * @see #getOperationToOperationCallingDependency()
	 * @generated
	 */
	EReference getOperationToOperationCallingDependency_CalledMicroservice();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCalledOperation <em>Called Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Called Operation</em>'.
	 * @see microserviceMetamodel.OperationToOperationCallingDependency#getCalledOperation()
	 * @see #getOperationToOperationCallingDependency()
	 * @generated
	 */
	EReference getOperationToOperationCallingDependency_CalledOperation();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingOperation <em>Calling Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Calling Operation</em>'.
	 * @see microserviceMetamodel.OperationToOperationCallingDependency#getCallingOperation()
	 * @see #getOperationToOperationCallingDependency()
	 * @generated
	 */
	EReference getOperationToOperationCallingDependency_CallingOperation();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingVersion <em>Calling Version</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Calling Version</em>'.
	 * @see microserviceMetamodel.OperationToOperationCallingDependency#getCallingVersion()
	 * @see #getOperationToOperationCallingDependency()
	 * @generated
	 */
	EReference getOperationToOperationCallingDependency_CallingVersion();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.TimeSeries <em>Time Series</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Time Series</em>'.
	 * @see microserviceMetamodel.TimeSeries
	 * @generated
	 */
	EClass getTimeSeries();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.TimeSeries#getTimeSeriesPoints <em>Time Series Points</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Time Series Points</em>'.
	 * @see microserviceMetamodel.TimeSeries#getTimeSeriesPoints()
	 * @see #getTimeSeries()
	 * @generated
	 */
	EReference getTimeSeries_TimeSeriesPoints();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.TimeSeriesPoint <em>Time Series Point</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Time Series Point</em>'.
	 * @see microserviceMetamodel.TimeSeriesPoint
	 * @generated
	 */
	EClass getTimeSeriesPoint();

	/**
	 * Returns the meta object for the container reference '{@link microserviceMetamodel.TimeSeriesPoint#getTimeSeries <em>Time Series</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the container reference '<em>Time Series</em>'.
	 * @see microserviceMetamodel.TimeSeriesPoint#getTimeSeries()
	 * @see #getTimeSeriesPoint()
	 * @generated
	 */
	EReference getTimeSeriesPoint_TimeSeries();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.MicroserviceOperationTimeSeriesPoint <em>Microservice Operation Time Series Point</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Microservice Operation Time Series Point</em>'.
	 * @see microserviceMetamodel.MicroserviceOperationTimeSeriesPoint
	 * @generated
	 */
	EClass getMicroserviceOperationTimeSeriesPoint();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.MicroserviceOperationTimeSeriesPoint#getEndpoint <em>Endpoint</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Endpoint</em>'.
	 * @see microserviceMetamodel.MicroserviceOperationTimeSeriesPoint#getEndpoint()
	 * @see #getMicroserviceOperationTimeSeriesPoint()
	 * @generated
	 */
	EReference getMicroserviceOperationTimeSeriesPoint_Endpoint();

	/**
	 * Returns the meta object for the reference '{@link microserviceMetamodel.MicroserviceOperationTimeSeriesPoint#getRestOperation <em>Rest Operation</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Rest Operation</em>'.
	 * @see microserviceMetamodel.MicroserviceOperationTimeSeriesPoint#getRestOperation()
	 * @see #getMicroserviceOperationTimeSeriesPoint()
	 * @generated
	 */
	EReference getMicroserviceOperationTimeSeriesPoint_RestOperation();

	/**
	 * Returns the meta object for class '{@link microserviceMetamodel.MetaModelStructure <em>Meta Model Structure</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Meta Model Structure</em>'.
	 * @see microserviceMetamodel.MetaModelStructure
	 * @generated
	 */
	EClass getMetaModelStructure();

	/**
	 * Returns the meta object for the containment reference '{@link microserviceMetamodel.MetaModelStructure#getInfrastructure <em>Infrastructure</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Infrastructure</em>'.
	 * @see microserviceMetamodel.MetaModelStructure#getInfrastructure()
	 * @see #getMetaModelStructure()
	 * @generated
	 */
	EReference getMetaModelStructure_Infrastructure();

	/**
	 * Returns the meta object for the containment reference list '{@link microserviceMetamodel.MetaModelStructure#getConfigurations <em>Configurations</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Configurations</em>'.
	 * @see microserviceMetamodel.MetaModelStructure#getConfigurations()
	 * @see #getMetaModelStructure()
	 * @generated
	 */
	EReference getMetaModelStructure_Configurations();

	/**
	 * Returns the meta object for the containment reference '{@link microserviceMetamodel.MetaModelStructure#getDependencies <em>Dependencies</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Dependencies</em>'.
	 * @see microserviceMetamodel.MetaModelStructure#getDependencies()
	 * @see #getMetaModelStructure()
	 * @generated
	 */
	EReference getMetaModelStructure_Dependencies();

	/**
	 * Returns the meta object for the containment reference '{@link microserviceMetamodel.MetaModelStructure#getTimeSeries <em>Time Series</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Time Series</em>'.
	 * @see microserviceMetamodel.MetaModelStructure#getTimeSeries()
	 * @see #getMetaModelStructure()
	 * @generated
	 */
	EReference getMetaModelStructure_TimeSeries();

	/**
	 * Returns the meta object for the containment reference '{@link microserviceMetamodel.MetaModelStructure#getMicroserviceRepository <em>Microservice Repository</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference '<em>Microservice Repository</em>'.
	 * @see microserviceMetamodel.MetaModelStructure#getMicroserviceRepository()
	 * @see #getMetaModelStructure()
	 * @generated
	 */
	EReference getMetaModelStructure_MicroserviceRepository();

	/**
	 * Returns the meta object for enum '{@link microserviceMetamodel.RESTVerb <em>REST Verb</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for enum '<em>REST Verb</em>'.
	 * @see microserviceMetamodel.RESTVerb
	 * @generated
	 */
	EEnum getRESTVerb();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	AnotherMicroserviceMetamodelFactory getAnotherMicroserviceMetamodelFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each operation of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.MicroserviceImpl <em>Microservice</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.MicroserviceImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroservice()
		 * @generated
		 */
		EClass MICROSERVICE = eINSTANCE.getMicroservice();

		/**
		 * The meta object literal for the '<em><b>Environment</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE__ENVIRONMENT = eINSTANCE.getMicroservice_Environment();

		/**
		 * The meta object literal for the '<em><b>Endpoints</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE__ENDPOINTS = eINSTANCE.getMicroservice_Endpoints();

		/**
		 * The meta object literal for the '<em><b>Microservice Type</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE__MICROSERVICE_TYPE = eINSTANCE.getMicroservice_MicroserviceType();

		/**
		 * The meta object literal for the '<em><b>Version</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE__VERSION = eINSTANCE.getMicroservice_Version();

		/**
		 * The meta object literal for the '<em><b>Uuid</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute MICROSERVICE__UUID = eINSTANCE.getMicroservice_Uuid();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.ConfigurationImpl <em>Configuration</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.ConfigurationImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getConfiguration()
		 * @generated
		 */
		EClass CONFIGURATION = eINSTANCE.getConfiguration();

		/**
		 * The meta object literal for the '<em><b>Microservices</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CONFIGURATION__MICROSERVICES = eINSTANCE.getConfiguration_Microservices();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.ExecutionEnvironmentImpl <em>Execution Environment</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.ExecutionEnvironmentImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getExecutionEnvironment()
		 * @generated
		 */
		EClass EXECUTION_ENVIRONMENT = eINSTANCE.getExecutionEnvironment();

		/**
		 * The meta object literal for the '<em><b>Microservices</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference EXECUTION_ENVIRONMENT__MICROSERVICES = eINSTANCE.getExecutionEnvironment_Microservices();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.AnomalyInjector <em>Anomaly Injector</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.AnomalyInjector
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getAnomalyInjector()
		 * @generated
		 */
		EClass ANOMALY_INJECTOR = eINSTANCE.getAnomalyInjector();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.VersionImpl <em>Version</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.VersionImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getVersion()
		 * @generated
		 */
		EClass VERSION = eINSTANCE.getVersion();

		/**
		 * The meta object literal for the '<em><b>Version String</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute VERSION__VERSION_STRING = eINSTANCE.getVersion_VersionString();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.EndpointImpl <em>Endpoint</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.EndpointImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getEndpoint()
		 * @generated
		 */
		EClass ENDPOINT = eINSTANCE.getEndpoint();

		/**
		 * The meta object literal for the '<em><b>Rest Operations</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference ENDPOINT__REST_OPERATIONS = eINSTANCE.getEndpoint_RestOperations();

		/**
		 * The meta object literal for the '<em><b>Ip Address</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute ENDPOINT__IP_ADDRESS = eINSTANCE.getEndpoint_IpAddress();

		/**
		 * The meta object literal for the '<em><b>Port</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute ENDPOINT__PORT = eINSTANCE.getEndpoint_Port();

		/**
		 * The meta object literal for the '<em><b>Url</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute ENDPOINT__URL = eINSTANCE.getEndpoint_Url();

		/**
		 * The meta object literal for the '<em><b>Protocol</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute ENDPOINT__PROTOCOL = eINSTANCE.getEndpoint_Protocol();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.RESTOperationImpl <em>REST Operation</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.RESTOperationImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getRESTOperation()
		 * @generated
		 */
		EClass REST_OPERATION = eINSTANCE.getRESTOperation();

		/**
		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute REST_OPERATION__NAME = eINSTANCE.getRESTOperation_Name();

		/**
		 * The meta object literal for the '<em><b>Sub Path</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute REST_OPERATION__SUB_PATH = eINSTANCE.getRESTOperation_SubPath();

		/**
		 * The meta object literal for the '<em><b>Rest Verb</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute REST_OPERATION__REST_VERB = eINSTANCE.getRESTOperation_RestVerb();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.MicroserviceTypeImpl <em>Microservice Type</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.MicroserviceTypeImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroserviceType()
		 * @generated
		 */
		EClass MICROSERVICE_TYPE = eINSTANCE.getMicroserviceType();

		/**
		 * The meta object literal for the '<em><b>Rest Operations</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_TYPE__REST_OPERATIONS = eINSTANCE.getMicroserviceType_RestOperations();

		/**
		 * The meta object literal for the '<em><b>Microservices</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_TYPE__MICROSERVICES = eINSTANCE.getMicroserviceType_Microservices();

		/**
		 * The meta object literal for the '<em><b>Versions</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_TYPE__VERSIONS = eINSTANCE.getMicroserviceType_Versions();

		/**
		 * The meta object literal for the '<em><b>Identifier</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute MICROSERVICE_TYPE__IDENTIFIER = eINSTANCE.getMicroserviceType_Identifier();

		/**
		 * The meta object literal for the '<em><b>Dependencies</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_TYPE__DEPENDENCIES = eINSTANCE.getMicroserviceType_Dependencies();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.MicroserviceRepositoryImpl <em>Microservice Repository</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.MicroserviceRepositoryImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroserviceRepository()
		 * @generated
		 */
		EClass MICROSERVICE_REPOSITORY = eINSTANCE.getMicroserviceRepository();

		/**
		 * The meta object literal for the '<em><b>Microservice Types</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_REPOSITORY__MICROSERVICE_TYPES = eINSTANCE.getMicroserviceRepository_MicroserviceTypes();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.HostImpl <em>Host</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.HostImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getHost()
		 * @generated
		 */
		EClass HOST = eINSTANCE.getHost();

		/**
		 * The meta object literal for the '<em><b>Containers</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference HOST__CONTAINERS = eINSTANCE.getHost_Containers();

		/**
		 * The meta object literal for the '<em><b>Hostname</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute HOST__HOSTNAME = eINSTANCE.getHost_Hostname();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.ContainerImpl <em>Container</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.ContainerImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getContainer()
		 * @generated
		 */
		EClass CONTAINER = eINSTANCE.getContainer();

		/**
		 * The meta object literal for the '<em><b>Host</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CONTAINER__HOST = eINSTANCE.getContainer_Host();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.VirtualHostImpl <em>Virtual Host</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.VirtualHostImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getVirtualHost()
		 * @generated
		 */
		EClass VIRTUAL_HOST = eINSTANCE.getVirtualHost();

		/**
		 * The meta object literal for the '<em><b>Parent Host</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference VIRTUAL_HOST__PARENT_HOST = eINSTANCE.getVirtualHost_ParentHost();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.PhysicalHostImpl <em>Physical Host</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.PhysicalHostImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getPhysicalHost()
		 * @generated
		 */
		EClass PHYSICAL_HOST = eINSTANCE.getPhysicalHost();

		/**
		 * The meta object literal for the '<em><b>Virtual Hosts</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference PHYSICAL_HOST__VIRTUAL_HOSTS = eINSTANCE.getPhysicalHost_VirtualHosts();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.InfrastructureModelImpl <em>Infrastructure Model</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.InfrastructureModelImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getInfrastructureModel()
		 * @generated
		 */
		EClass INFRASTRUCTURE_MODEL = eINSTANCE.getInfrastructureModel();

		/**
		 * The meta object literal for the '<em><b>Hosts</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference INFRASTRUCTURE_MODEL__HOSTS = eINSTANCE.getInfrastructureModel_Hosts();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.DependencyModelImpl <em>Dependency Model</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.DependencyModelImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getDependencyModel()
		 * @generated
		 */
		EClass DEPENDENCY_MODEL = eINSTANCE.getDependencyModel();

		/**
		 * The meta object literal for the '<em><b>Operation To Operation Calling Dependencies</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DEPENDENCY_MODEL__OPERATION_TO_OPERATION_CALLING_DEPENDENCIES = eINSTANCE.getDependencyModel_OperationToOperationCallingDependencies();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.OperationToOperationCallingDependencyImpl <em>Operation To Operation Calling Dependency</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.OperationToOperationCallingDependencyImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getOperationToOperationCallingDependency()
		 * @generated
		 */
		EClass OPERATION_TO_OPERATION_CALLING_DEPENDENCY = eINSTANCE.getOperationToOperationCallingDependency();

		/**
		 * The meta object literal for the '<em><b>Calling Microservice</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_MICROSERVICE = eINSTANCE.getOperationToOperationCallingDependency_CallingMicroservice();

		/**
		 * The meta object literal for the '<em><b>Called Microservice</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_MICROSERVICE = eINSTANCE.getOperationToOperationCallingDependency_CalledMicroservice();

		/**
		 * The meta object literal for the '<em><b>Called Operation</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_OPERATION = eINSTANCE.getOperationToOperationCallingDependency_CalledOperation();

		/**
		 * The meta object literal for the '<em><b>Calling Operation</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_OPERATION = eINSTANCE.getOperationToOperationCallingDependency_CallingOperation();

		/**
		 * The meta object literal for the '<em><b>Calling Version</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_VERSION = eINSTANCE.getOperationToOperationCallingDependency_CallingVersion();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.TimeSeriesImpl <em>Time Series</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.TimeSeriesImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getTimeSeries()
		 * @generated
		 */
		EClass TIME_SERIES = eINSTANCE.getTimeSeries();

		/**
		 * The meta object literal for the '<em><b>Time Series Points</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TIME_SERIES__TIME_SERIES_POINTS = eINSTANCE.getTimeSeries_TimeSeriesPoints();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.TimeSeriesPointImpl <em>Time Series Point</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.TimeSeriesPointImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getTimeSeriesPoint()
		 * @generated
		 */
		EClass TIME_SERIES_POINT = eINSTANCE.getTimeSeriesPoint();

		/**
		 * The meta object literal for the '<em><b>Time Series</b></em>' container reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference TIME_SERIES_POINT__TIME_SERIES = eINSTANCE.getTimeSeriesPoint_TimeSeries();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.MicroserviceOperationTimeSeriesPointImpl <em>Microservice Operation Time Series Point</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.MicroserviceOperationTimeSeriesPointImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMicroserviceOperationTimeSeriesPoint()
		 * @generated
		 */
		EClass MICROSERVICE_OPERATION_TIME_SERIES_POINT = eINSTANCE.getMicroserviceOperationTimeSeriesPoint();

		/**
		 * The meta object literal for the '<em><b>Endpoint</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_OPERATION_TIME_SERIES_POINT__ENDPOINT = eINSTANCE.getMicroserviceOperationTimeSeriesPoint_Endpoint();

		/**
		 * The meta object literal for the '<em><b>Rest Operation</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference MICROSERVICE_OPERATION_TIME_SERIES_POINT__REST_OPERATION = eINSTANCE.getMicroserviceOperationTimeSeriesPoint_RestOperation();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.impl.MetaModelStructureImpl <em>Meta Model Structure</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.impl.MetaModelStructureImpl
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getMetaModelStructure()
		 * @generated
		 */
		EClass META_MODEL_STRUCTURE = eINSTANCE.getMetaModelStructure();

		/**
		 * The meta object literal for the '<em><b>Infrastructure</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference META_MODEL_STRUCTURE__INFRASTRUCTURE = eINSTANCE.getMetaModelStructure_Infrastructure();

		/**
		 * The meta object literal for the '<em><b>Configurations</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference META_MODEL_STRUCTURE__CONFIGURATIONS = eINSTANCE.getMetaModelStructure_Configurations();

		/**
		 * The meta object literal for the '<em><b>Dependencies</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference META_MODEL_STRUCTURE__DEPENDENCIES = eINSTANCE.getMetaModelStructure_Dependencies();

		/**
		 * The meta object literal for the '<em><b>Time Series</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference META_MODEL_STRUCTURE__TIME_SERIES = eINSTANCE.getMetaModelStructure_TimeSeries();

		/**
		 * The meta object literal for the '<em><b>Microservice Repository</b></em>' containment reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference META_MODEL_STRUCTURE__MICROSERVICE_REPOSITORY = eINSTANCE.getMetaModelStructure_MicroserviceRepository();

		/**
		 * The meta object literal for the '{@link microserviceMetamodel.RESTVerb <em>REST Verb</em>}' enum.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see microserviceMetamodel.RESTVerb
		 * @see microserviceMetamodel.impl.AnotherMicroserviceMetamodelPackageImpl#getRESTVerb()
		 * @generated
		 */
		EEnum REST_VERB = eINSTANCE.getRESTVerb();

	}

} //AnotherMicroserviceMetamodelPackage public interface Configuration extends EObject {
	/**
	 * Returns the value of the '<em><b>Microservices</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.Microservice}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Microservices</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Microservices</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getConfiguration_Microservices()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<Microservice> getMicroservices();

} // Configuration public interface DependencyModel extends EObject {
	/**
	 * Returns the value of the '<em><b>Operation To Operation Calling Dependencies</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.OperationToOperationCallingDependency}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Operation To Operation Calling Dependencies</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Operation To Operation Calling Dependencies</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getDependencyModel_OperationToOperationCallingDependencies()
	 * @model containment="true"
	 * @generated
	 */
	EList<OperationToOperationCallingDependency> getOperationToOperationCallingDependencies();

} // DependencyModel public interface Endpoint extends EObject {
	/**
	 * Returns the value of the '<em><b>Rest Operations</b></em>' reference list.
	 * The list contents are of type {@link microserviceMetamodel.RESTOperation}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rest Operations</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rest Operations</em>' reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getEndpoint_RestOperations()
	 * @model required="true"
	 * @generated
	 */
	EList<RESTOperation> getRestOperations();

	/**
	 * Returns the value of the '<em><b>Ip Address</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Ip Address</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Ip Address</em>' attribute.
	 * @see #setIpAddress(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getEndpoint_IpAddress()
	 * @model required="true" derived="true"
	 * @generated
	 */
	String getIpAddress();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Endpoint#getIpAddress <em>Ip Address</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Ip Address</em>' attribute.
	 * @see #getIpAddress()
	 * @generated
	 */
	void setIpAddress(String value);

	/**
	 * Returns the value of the '<em><b>Port</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Port</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Port</em>' attribute.
	 * @see #setPort(Integer)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getEndpoint_Port()
	 * @model dataType="org.eclipse.emf.ecore.xml.type.IntObject" required="true"
	 * @generated
	 */
	Integer getPort();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Endpoint#getPort <em>Port</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Port</em>' attribute.
	 * @see #getPort()
	 * @generated
	 */
	void setPort(Integer value);

	/**
	 * Returns the value of the '<em><b>Url</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Url</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Url</em>' attribute.
	 * @see #setUrl(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getEndpoint_Url()
	 * @model
	 * @generated
	 */
	String getUrl();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Endpoint#getUrl <em>Url</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Url</em>' attribute.
	 * @see #getUrl()
	 * @generated
	 */
	void setUrl(String value);

	/**
	 * Returns the value of the '<em><b>Protocol</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Protocol</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Protocol</em>' attribute.
	 * @see #setProtocol(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getEndpoint_Protocol()
	 * @model required="true"
	 * @generated
	 */
	String getProtocol();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Endpoint#getProtocol <em>Protocol</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Protocol</em>' attribute.
	 * @see #getProtocol()
	 * @generated
	 */
	void setProtocol(String value);

} // Endpoint public interface ExecutionEnvironment extends EObject {
	/**
	 * Returns the value of the '<em><b>Microservices</b></em>' reference list.
	 * The list contents are of type {@link microserviceMetamodel.Microservice}.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.Microservice#getEnvironment <em>Environment</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Microservices</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Microservices</em>' reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getExecutionEnvironment_Microservices()
	 * @see microserviceMetamodel.Microservice#getEnvironment
	 * @model opposite="environment"
	 * @generated
	 */
	EList<Microservice> getMicroservices();

} // ExecutionEnvironment public interface Host extends ExecutionEnvironment {

	/**
	 * Returns the value of the '<em><b>Containers</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.Container}.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.Container#getHost <em>Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Containers</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Containers</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getHost_Containers()
	 * @see microserviceMetamodel.Container#getHost
	 * @model opposite="host" containment="true"
	 * @generated
	 */
	EList<Container> getContainers();

	/**
	 * Returns the value of the '<em><b>Hostname</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Hostname</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Hostname</em>' attribute.
	 * @see #setHostname(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getHost_Hostname()
	 * @model required="true"
	 * @generated
	 */
	String getHostname();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Host#getHostname <em>Hostname</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Hostname</em>' attribute.
	 * @see #getHostname()
	 * @generated
	 */
	void setHostname(String value);
} // Host public interface InfrastructureModel extends EObject {
	/**
	 * Returns the value of the '<em><b>Hosts</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.PhysicalHost}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Hosts</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Hosts</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getInfrastructureModel_Hosts()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<PhysicalHost> getHosts();

} // InfrastructureModel public interface MetaModelStructure extends EObject {
	/**
	 * Returns the value of the '<em><b>Infrastructure</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Infrastructure</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Infrastructure</em>' containment reference.
	 * @see #setInfrastructure(InfrastructureModel)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMetaModelStructure_Infrastructure()
	 * @model containment="true" required="true"
	 * @generated
	 */
	InfrastructureModel getInfrastructure();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MetaModelStructure#getInfrastructure <em>Infrastructure</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Infrastructure</em>' containment reference.
	 * @see #getInfrastructure()
	 * @generated
	 */
	void setInfrastructure(InfrastructureModel value);

	/**
	 * Returns the value of the '<em><b>Configurations</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.Configuration}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Configurations</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Configurations</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMetaModelStructure_Configurations()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<Configuration> getConfigurations();

	/**
	 * Returns the value of the '<em><b>Dependencies</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Dependencies</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Dependencies</em>' containment reference.
	 * @see #setDependencies(DependencyModel)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMetaModelStructure_Dependencies()
	 * @model containment="true" required="true"
	 * @generated
	 */
	DependencyModel getDependencies();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MetaModelStructure#getDependencies <em>Dependencies</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Dependencies</em>' containment reference.
	 * @see #getDependencies()
	 * @generated
	 */
	void setDependencies(DependencyModel value);

	/**
	 * Returns the value of the '<em><b>Time Series</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Series</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Series</em>' containment reference.
	 * @see #setTimeSeries(TimeSeries)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMetaModelStructure_TimeSeries()
	 * @model containment="true" required="true"
	 * @generated
	 */
	TimeSeries getTimeSeries();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MetaModelStructure#getTimeSeries <em>Time Series</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time Series</em>' containment reference.
	 * @see #getTimeSeries()
	 * @generated
	 */
	void setTimeSeries(TimeSeries value);

	/**
	 * Returns the value of the '<em><b>Microservice Repository</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Microservice Repository</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Microservice Repository</em>' containment reference.
	 * @see #setMicroserviceRepository(MicroserviceRepository)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMetaModelStructure_MicroserviceRepository()
	 * @model containment="true" required="true"
	 * @generated
	 */
	MicroserviceRepository getMicroserviceRepository();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MetaModelStructure#getMicroserviceRepository <em>Microservice Repository</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Microservice Repository</em>' containment reference.
	 * @see #getMicroserviceRepository()
	 * @generated
	 */
	void setMicroserviceRepository(MicroserviceRepository value);

} // MetaModelStructure public interface Microservice extends EObject {
	/**
	 * Returns the value of the '<em><b>Environment</b></em>' reference.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.ExecutionEnvironment#getMicroservices <em>Microservices</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Environment</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Environment</em>' reference.
	 * @see #setEnvironment(ExecutionEnvironment)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroservice_Environment()
	 * @see microserviceMetamodel.ExecutionEnvironment#getMicroservices
	 * @model opposite="microservices" required="true"
	 * @generated
	 */
	ExecutionEnvironment getEnvironment();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Microservice#getEnvironment <em>Environment</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Environment</em>' reference.
	 * @see #getEnvironment()
	 * @generated
	 */
	void setEnvironment(ExecutionEnvironment value);

	/**
	 * Returns the value of the '<em><b>Endpoints</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.Endpoint}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Endpoints</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Endpoints</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroservice_Endpoints()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<Endpoint> getEndpoints();

	/**
	 * Returns the value of the '<em><b>Microservice Type</b></em>' reference.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.MicroserviceType#getMicroservices <em>Microservices</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Microservice Type</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Microservice Type</em>' reference.
	 * @see #setMicroserviceType(MicroserviceType)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroservice_MicroserviceType()
	 * @see microserviceMetamodel.MicroserviceType#getMicroservices
	 * @model opposite="microservices" required="true"
	 * @generated
	 */
	MicroserviceType getMicroserviceType();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Microservice#getMicroserviceType <em>Microservice Type</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Microservice Type</em>' reference.
	 * @see #getMicroserviceType()
	 * @generated
	 */
	void setMicroserviceType(MicroserviceType value);

	/**
	 * Returns the value of the '<em><b>Version</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Version</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Version</em>' reference.
	 * @see #setVersion(Version)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroservice_Version()
	 * @model required="true"
	 * @generated
	 */
	Version getVersion();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Microservice#getVersion <em>Version</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Version</em>' reference.
	 * @see #getVersion()
	 * @generated
	 */
	void setVersion(Version value);

	/**
	 * Returns the value of the '<em><b>Uuid</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Uuid</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Uuid</em>' attribute.
	 * @see #setUuid(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroservice_Uuid()
	 * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
	 * @generated
	 */
	String getUuid();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Microservice#getUuid <em>Uuid</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Uuid</em>' attribute.
	 * @see #getUuid()
	 * @generated
	 */
	void setUuid(String value);

} // Microservice public interface MicroserviceOperationTimeSeriesPoint extends TimeSeriesPoint {
	/**
	 * Returns the value of the '<em><b>Endpoint</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Endpoint</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Endpoint</em>' reference.
	 * @see #setEndpoint(Endpoint)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceOperationTimeSeriesPoint_Endpoint()
	 * @model required="true"
	 * @generated
	 */
	Endpoint getEndpoint();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MicroserviceOperationTimeSeriesPoint#getEndpoint <em>Endpoint</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Endpoint</em>' reference.
	 * @see #getEndpoint()
	 * @generated
	 */
	void setEndpoint(Endpoint value);

	/**
	 * Returns the value of the '<em><b>Rest Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rest Operation</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rest Operation</em>' reference.
	 * @see #setRestOperation(RESTOperation)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceOperationTimeSeriesPoint_RestOperation()
	 * @model required="true"
	 * @generated
	 */
	RESTOperation getRestOperation();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MicroserviceOperationTimeSeriesPoint#getRestOperation <em>Rest Operation</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rest Operation</em>' reference.
	 * @see #getRestOperation()
	 * @generated
	 */
	void setRestOperation(RESTOperation value);

} // MicroserviceOperationTimeSeriesPoint public interface MicroserviceRepository extends EObject {
	/**
	 * Returns the value of the '<em><b>Microservice Types</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.MicroserviceType}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Microservice Types</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Microservice Types</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceRepository_MicroserviceTypes()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<MicroserviceType> getMicroserviceTypes();

} // MicroserviceRepository public interface MicroserviceType extends EObject {
	/**
	 * Returns the value of the '<em><b>Rest Operations</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.RESTOperation}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rest Operations</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rest Operations</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceType_RestOperations()
	 * @model containment="true"
	 * @generated
	 */
	EList<RESTOperation> getRestOperations();

	/**
	 * Returns the value of the '<em><b>Microservices</b></em>' reference list.
	 * The list contents are of type {@link microserviceMetamodel.Microservice}.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.Microservice#getMicroserviceType <em>Microservice Type</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Microservices</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Microservices</em>' reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceType_Microservices()
	 * @see microserviceMetamodel.Microservice#getMicroserviceType
	 * @model opposite="microserviceType"
	 * @generated
	 */
	EList<Microservice> getMicroservices();

	/**
	 * Returns the value of the '<em><b>Versions</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.Version}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Versions</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Versions</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceType_Versions()
	 * @model containment="true" required="true"
	 * @generated
	 */
	EList<Version> getVersions();

	/**
	 * Returns the value of the '<em><b>Identifier</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Identifier</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Identifier</em>' attribute.
	 * @see #setIdentifier(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceType_Identifier()
	 * @model required="true"
	 * @generated
	 */
	String getIdentifier();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.MicroserviceType#getIdentifier <em>Identifier</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Identifier</em>' attribute.
	 * @see #getIdentifier()
	 * @generated
	 */
	void setIdentifier(String value);

	/**
	 * Returns the value of the '<em><b>Dependencies</b></em>' reference list.
	 * The list contents are of type {@link microserviceMetamodel.OperationToOperationCallingDependency}.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingMicroservice <em>Calling Microservice</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Dependencies</em>' reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Dependencies</em>' reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getMicroserviceType_Dependencies()
	 * @see microserviceMetamodel.OperationToOperationCallingDependency#getCallingMicroservice
	 * @model opposite="callingMicroservice"
	 * @generated
	 */
	EList<OperationToOperationCallingDependency> getDependencies();

} // MicroserviceType public interface OperationToOperationCallingDependency extends EObject {
	/**
	 * Returns the value of the '<em><b>Calling Microservice</b></em>' reference.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.MicroserviceType#getDependencies <em>Dependencies</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Calling Microservice</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Calling Microservice</em>' reference.
	 * @see #setCallingMicroservice(MicroserviceType)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getOperationToOperationCallingDependency_CallingMicroservice()
	 * @see microserviceMetamodel.MicroserviceType#getDependencies
	 * @model opposite="dependencies" required="true"
	 * @generated
	 */
	MicroserviceType getCallingMicroservice();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingMicroservice <em>Calling Microservice</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Calling Microservice</em>' reference.
	 * @see #getCallingMicroservice()
	 * @generated
	 */
	void setCallingMicroservice(MicroserviceType value);

	/**
	 * Returns the value of the '<em><b>Called Microservice</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Called Microservice</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Called Microservice</em>' reference.
	 * @see #setCalledMicroservice(MicroserviceType)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getOperationToOperationCallingDependency_CalledMicroservice()
	 * @model required="true"
	 * @generated
	 */
	MicroserviceType getCalledMicroservice();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCalledMicroservice <em>Called Microservice</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Called Microservice</em>' reference.
	 * @see #getCalledMicroservice()
	 * @generated
	 */
	void setCalledMicroservice(MicroserviceType value);

	/**
	 * Returns the value of the '<em><b>Called Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Called Operation</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Called Operation</em>' reference.
	 * @see #setCalledOperation(RESTOperation)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getOperationToOperationCallingDependency_CalledOperation()
	 * @model required="true"
	 * @generated
	 */
	RESTOperation getCalledOperation();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCalledOperation <em>Called Operation</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Called Operation</em>' reference.
	 * @see #getCalledOperation()
	 * @generated
	 */
	void setCalledOperation(RESTOperation value);

	/**
	 * Returns the value of the '<em><b>Calling Operation</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Calling Operation</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Calling Operation</em>' reference.
	 * @see #setCallingOperation(RESTOperation)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getOperationToOperationCallingDependency_CallingOperation()
	 * @model required="true"
	 * @generated
	 */
	RESTOperation getCallingOperation();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingOperation <em>Calling Operation</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Calling Operation</em>' reference.
	 * @see #getCallingOperation()
	 * @generated
	 */
	void setCallingOperation(RESTOperation value);

	/**
	 * Returns the value of the '<em><b>Calling Version</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Calling Version</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Calling Version</em>' reference.
	 * @see #setCallingVersion(Version)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getOperationToOperationCallingDependency_CallingVersion()
	 * @model required="true"
	 * @generated
	 */
	Version getCallingVersion();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.OperationToOperationCallingDependency#getCallingVersion <em>Calling Version</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Calling Version</em>' reference.
	 * @see #getCallingVersion()
	 * @generated
	 */
	void setCallingVersion(Version value);

} // OperationToOperationCallingDependency public interface PhysicalHost extends Host {
	/**
	 * Returns the value of the '<em><b>Virtual Hosts</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.VirtualHost}.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.VirtualHost#getParentHost <em>Parent Host</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Virtual Hosts</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Virtual Hosts</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getPhysicalHost_VirtualHosts()
	 * @see microserviceMetamodel.VirtualHost#getParentHost
	 * @model opposite="parentHost" containment="true"
	 * @generated
	 */
	EList<VirtualHost> getVirtualHosts();

} // PhysicalHost public interface RESTOperation extends EObject {
	/**
	 * Returns the value of the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Name</em>' attribute.
	 * @see #setName(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getRESTOperation_Name()
	 * @model required="true"
	 * @generated
	 */
	String getName();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.RESTOperation#getName <em>Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Name</em>' attribute.
	 * @see #getName()
	 * @generated
	 */
	void setName(String value);

	/**
	 * Returns the value of the '<em><b>Sub Path</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Sub Path</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Sub Path</em>' attribute.
	 * @see #setSubPath(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getRESTOperation_SubPath()
	 * @model required="true"
	 * @generated
	 */
	String getSubPath();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.RESTOperation#getSubPath <em>Sub Path</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Sub Path</em>' attribute.
	 * @see #getSubPath()
	 * @generated
	 */
	void setSubPath(String value);

	/**
	 * Returns the value of the '<em><b>Rest Verb</b></em>' attribute.
	 * The literals are from the enumeration {@link microserviceMetamodel.RESTVerb}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Rest Verb</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Rest Verb</em>' attribute.
	 * @see microserviceMetamodel.RESTVerb
	 * @see #setRestVerb(RESTVerb)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getRESTOperation_RestVerb()
	 * @model required="true"
	 * @generated
	 */
	RESTVerb getRestVerb();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.RESTOperation#getRestVerb <em>Rest Verb</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Rest Verb</em>' attribute.
	 * @see microserviceMetamodel.RESTVerb
	 * @see #getRestVerb()
	 * @generated
	 */
	void setRestVerb(RESTVerb value);

} // RESTOperation public enum RESTVerb implements Enumerator {
	/**
	 * The '<em><b>GET</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #GET_VALUE
	 * @generated
	 * @ordered
	 */
	GET(0, "GET", "GET"),

	/**
	 * The '<em><b>PUT</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PUT_VALUE
	 * @generated
	 * @ordered
	 */
	PUT(1, "PUT", "PUT"),

	/**
	 * The '<em><b>POST</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #POST_VALUE
	 * @generated
	 * @ordered
	 */
	POST(2, "POST", "POST"),

	/**
	 * The '<em><b>DELETE</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DELETE_VALUE
	 * @generated
	 * @ordered
	 */
	DELETE(3, "DELETE", "DELETE");

	/**
	 * The '<em><b>GET</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>GET</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #GET
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int GET_VALUE = 0;

	/**
	 * The '<em><b>PUT</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PUT</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PUT
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PUT_VALUE = 1;

	/**
	 * The '<em><b>POST</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>POST</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #POST
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int POST_VALUE = 2;

	/**
	 * The '<em><b>DELETE</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>DELETE</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DELETE
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int DELETE_VALUE = 3;

	/**
	 * An array of all the '<em><b>REST Verb</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final RESTVerb[] VALUES_ARRAY =
		new RESTVerb[] {
			GET,
			PUT,
			POST,
			DELETE,
		};

	/**
	 * A public read-only list of all the '<em><b>REST Verb</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<RESTVerb> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>REST Verb</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param literal the literal.
	 * @return the matching enumerator or <code>null</code>.
	 * @generated
	 */
	public static RESTVerb get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			RESTVerb result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>REST Verb</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param name the name.
	 * @return the matching enumerator or <code>null</code>.
	 * @generated
	 */
	public static RESTVerb getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			RESTVerb result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>REST Verb</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the integer value.
	 * @return the matching enumerator or <code>null</code>.
	 * @generated
	 */
	public static RESTVerb get(int value) {
		switch (value) {
			case GET_VALUE: return GET;
			case PUT_VALUE: return PUT;
			case POST_VALUE: return POST;
			case DELETE_VALUE: return DELETE;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private RESTVerb(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //RESTVerb public interface TimeSeries extends EObject {
	/**
	 * Returns the value of the '<em><b>Time Series Points</b></em>' containment reference list.
	 * The list contents are of type {@link microserviceMetamodel.TimeSeriesPoint}.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.TimeSeriesPoint#getTimeSeries <em>Time Series</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Series Points</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Series Points</em>' containment reference list.
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getTimeSeries_TimeSeriesPoints()
	 * @see microserviceMetamodel.TimeSeriesPoint#getTimeSeries
	 * @model opposite="timeSeries" containment="true"
	 * @generated
	 */
	EList<TimeSeriesPoint> getTimeSeriesPoints();

} // TimeSeries public interface TimeSeriesPoint extends EObject {
	/**
	 * Returns the value of the '<em><b>Time Series</b></em>' container reference.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.TimeSeries#getTimeSeriesPoints <em>Time Series Points</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Time Series</em>' container reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Time Series</em>' container reference.
	 * @see #setTimeSeries(TimeSeries)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getTimeSeriesPoint_TimeSeries()
	 * @see microserviceMetamodel.TimeSeries#getTimeSeriesPoints
	 * @model opposite="timeSeriesPoints" required="true" transient="false"
	 * @generated
	 */
	TimeSeries getTimeSeries();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.TimeSeriesPoint#getTimeSeries <em>Time Series</em>}' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Time Series</em>' container reference.
	 * @see #getTimeSeries()
	 * @generated
	 */
	void setTimeSeries(TimeSeries value);

} // TimeSeriesPoint public interface Version extends EObject {
	/**
	 * Returns the value of the '<em><b>Version String</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Version String</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Version String</em>' attribute.
	 * @see #setVersionString(String)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getVersion_VersionString()
	 * @model required="true"
	 * @generated
	 */
	String getVersionString();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.Version#getVersionString <em>Version String</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Version String</em>' attribute.
	 * @see #getVersionString()
	 * @generated
	 */
	void setVersionString(String value);

} // Version public interface VirtualHost extends Host {
	/**
	 * Returns the value of the '<em><b>Parent Host</b></em>' container reference.
	 * It is bidirectional and its opposite is '{@link microserviceMetamodel.PhysicalHost#getVirtualHosts <em>Virtual Hosts</em>}'.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Parent Host</em>' container reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Parent Host</em>' container reference.
	 * @see #setParentHost(PhysicalHost)
	 * @see microserviceMetamodel.AnotherMicroserviceMetamodelPackage#getVirtualHost_ParentHost()
	 * @see microserviceMetamodel.PhysicalHost#getVirtualHosts
	 * @model opposite="virtualHosts" required="true" transient="false"
	 * @generated
	 */
	PhysicalHost getParentHost();

	/**
	 * Sets the value of the '{@link microserviceMetamodel.VirtualHost#getParentHost <em>Parent Host</em>}' container reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Parent Host</em>' container reference.
	 * @see #getParentHost()
	 * @generated
	 */
	void setParentHost(PhysicalHost value);

} // VirtualHost public class AnotherMicroserviceMetamodelValidator extends EObjectValidator {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final AnotherMicroserviceMetamodelValidator INSTANCE = new AnotherMicroserviceMetamodelValidator();

	/**
	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()
	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()
	 * @generated
	 */
	public static final String DIAGNOSTIC_SOURCE = "anotherMicroserviceMetamodel";

	/**
	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;

	/**
	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public AnotherMicroserviceMetamodelValidator() {
		super();
	}

	/**
	 * Returns the package of this validator switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EPackage getEPackage() {
	  return AnotherMicroserviceMetamodelPackage.eINSTANCE;
	}

	/**
	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
		switch (classifierID) {
			case AnotherMicroserviceMetamodelPackage.MICROSERVICE:
				return validateMicroservice((Microservice)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.CONFIGURATION:
				return validateConfiguration((Configuration)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.EXECUTION_ENVIRONMENT:
				return validateExecutionEnvironment((ExecutionEnvironment)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.ANOMALY_INJECTOR:
				return validateAnomalyInjector((AnomalyInjector)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.VERSION:
				return validateVersion((Version)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.ENDPOINT:
				return validateEndpoint((Endpoint)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.REST_OPERATION:
				return validateRESTOperation((RESTOperation)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.MICROSERVICE_TYPE:
				return validateMicroserviceType((MicroserviceType)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.MICROSERVICE_REPOSITORY:
				return validateMicroserviceRepository((MicroserviceRepository)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.HOST:
				return validateHost((Host)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.CONTAINER:
				return validateContainer((Container)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.VIRTUAL_HOST:
				return validateVirtualHost((VirtualHost)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.PHYSICAL_HOST:
				return validatePhysicalHost((PhysicalHost)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.INFRASTRUCTURE_MODEL:
				return validateInfrastructureModel((InfrastructureModel)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.DEPENDENCY_MODEL:
				return validateDependencyModel((DependencyModel)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.OPERATION_TO_OPERATION_CALLING_DEPENDENCY:
				return validateOperationToOperationCallingDependency((OperationToOperationCallingDependency)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.TIME_SERIES:
				return validateTimeSeries((TimeSeries)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.TIME_SERIES_POINT:
				return validateTimeSeriesPoint((TimeSeriesPoint)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.MICROSERVICE_OPERATION_TIME_SERIES_POINT:
				return validateMicroserviceOperationTimeSeriesPoint((MicroserviceOperationTimeSeriesPoint)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.META_MODEL_STRUCTURE:
				return validateMetaModelStructure((MetaModelStructure)value, diagnostics, context);
			case AnotherMicroserviceMetamodelPackage.REST_VERB:
				return validateRESTVerb((RESTVerb)value, diagnostics, context);
			default:
				return true;
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroservice(Microservice microservice, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(microservice, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(microservice, diagnostics, context);
		if (result || diagnostics != null) result &= validateMicroservice_typeAndVersionMatch(microservice, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the typeAndVersionMatch constraint of '<em>Microservice</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String MICROSERVICE__TYPE_AND_VERSION_MATCH__EEXPRESSION = "microserviceType.versions->select(v:Version | v = version)->notEmpty()";

	/**
	 * Validates the typeAndVersionMatch constraint of '<em>Microservice</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroservice_typeAndVersionMatch(Microservice microservice, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(AnotherMicroserviceMetamodelPackage.Literals.MICROSERVICE,
				 microservice,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
				 "typeAndVersionMatch",
				 MICROSERVICE__TYPE_AND_VERSION_MATCH__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateConfiguration(Configuration configuration, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(configuration, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateExecutionEnvironment(ExecutionEnvironment executionEnvironment, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(executionEnvironment, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAnomalyInjector(AnomalyInjector anomalyInjector, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(anomalyInjector, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateVersion(Version version, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(version, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEndpoint(Endpoint endpoint, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(endpoint, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRESTOperation(RESTOperation restOperation, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(restOperation, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroserviceType(MicroserviceType microserviceType, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(microserviceType, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroserviceRepository(MicroserviceRepository microserviceRepository, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(microserviceRepository, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateHost(Host host, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(host, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateContainer(Container container, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(container, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateVirtualHost(VirtualHost virtualHost, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(virtualHost, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validatePhysicalHost(PhysicalHost physicalHost, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(physicalHost, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateInfrastructureModel(InfrastructureModel infrastructureModel, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(infrastructureModel, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateDependencyModel(DependencyModel dependencyModel, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(dependencyModel, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOperationToOperationCallingDependency(OperationToOperationCallingDependency operationToOperationCallingDependency, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(operationToOperationCallingDependency, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validateOperationToOperationCallingDependency_calledCorrespond(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validateOperationToOperationCallingDependency_callingCorrespond(operationToOperationCallingDependency, diagnostics, context);
		if (result || diagnostics != null) result &= validateOperationToOperationCallingDependency_callingVersionFits(operationToOperationCallingDependency, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the calledCorrespond constraint of '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_CORRESPOND__EEXPRESSION = "calledMicroservice.restOperations->select(rop:RESTOperation | rop=calledOperation)->notEmpty()";

	/**
	 * Validates the calledCorrespond constraint of '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOperationToOperationCallingDependency_calledCorrespond(OperationToOperationCallingDependency operationToOperationCallingDependency, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(AnotherMicroserviceMetamodelPackage.Literals.OPERATION_TO_OPERATION_CALLING_DEPENDENCY,
				 operationToOperationCallingDependency,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
				 "calledCorrespond",
				 OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_CORRESPOND__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the callingCorrespond constraint of '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_CORRESPOND__EEXPRESSION = "callingMicroservice.restOperations->select(rop:RESTOperation | rop=callingOperation)->notEmpty()";

	/**
	 * Validates the callingCorrespond constraint of '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOperationToOperationCallingDependency_callingCorrespond(OperationToOperationCallingDependency operationToOperationCallingDependency, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(AnotherMicroserviceMetamodelPackage.Literals.OPERATION_TO_OPERATION_CALLING_DEPENDENCY,
				 operationToOperationCallingDependency,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
				 "callingCorrespond",
				 OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_CORRESPOND__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the callingVersionFits constraint of '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_VERSION_FITS__EEXPRESSION = "callingMicroservice.versions->select(ver:Version|ver=callingVersion)->notEmpty()";

	/**
	 * Validates the callingVersionFits constraint of '<em>Operation To Operation Calling Dependency</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateOperationToOperationCallingDependency_callingVersionFits(OperationToOperationCallingDependency operationToOperationCallingDependency, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(AnotherMicroserviceMetamodelPackage.Literals.OPERATION_TO_OPERATION_CALLING_DEPENDENCY,
				 operationToOperationCallingDependency,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
				 "callingVersionFits",
				 OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_VERSION_FITS__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTimeSeries(TimeSeries timeSeries, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(timeSeries, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTimeSeriesPoint(TimeSeriesPoint timeSeriesPoint, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(timeSeriesPoint, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroserviceOperationTimeSeriesPoint(MicroserviceOperationTimeSeriesPoint microserviceOperationTimeSeriesPoint, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(microserviceOperationTimeSeriesPoint, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validateMicroserviceOperationTimeSeriesPoint_nonNullReferences(microserviceOperationTimeSeriesPoint, diagnostics, context);
		if (result || diagnostics != null) result &= validateMicroserviceOperationTimeSeriesPoint_correspondingReferences(microserviceOperationTimeSeriesPoint, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the nonNullReferences constraint of '<em>Microservice Operation Time Series Point</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String MICROSERVICE_OPERATION_TIME_SERIES_POINT__NON_NULL_REFERENCES__EEXPRESSION = "endpoint <> null and restOperation <> null";

	/**
	 * Validates the nonNullReferences constraint of '<em>Microservice Operation Time Series Point</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroserviceOperationTimeSeriesPoint_nonNullReferences(MicroserviceOperationTimeSeriesPoint microserviceOperationTimeSeriesPoint, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(AnotherMicroserviceMetamodelPackage.Literals.MICROSERVICE_OPERATION_TIME_SERIES_POINT,
				 microserviceOperationTimeSeriesPoint,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
				 "nonNullReferences",
				 MICROSERVICE_OPERATION_TIME_SERIES_POINT__NON_NULL_REFERENCES__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the correspondingReferences constraint of '<em>Microservice Operation Time Series Point</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String MICROSERVICE_OPERATION_TIME_SERIES_POINT__CORRESPONDING_REFERENCES__EEXPRESSION = "endpoint.restOperations->select(rop:RESTOperation | rop = restOperation)->notEmpty()";

	/**
	 * Validates the correspondingReferences constraint of '<em>Microservice Operation Time Series Point</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMicroserviceOperationTimeSeriesPoint_correspondingReferences(MicroserviceOperationTimeSeriesPoint microserviceOperationTimeSeriesPoint, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(AnotherMicroserviceMetamodelPackage.Literals.MICROSERVICE_OPERATION_TIME_SERIES_POINT,
				 microserviceOperationTimeSeriesPoint,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot",
				 "correspondingReferences",
				 MICROSERVICE_OPERATION_TIME_SERIES_POINT__CORRESPONDING_REFERENCES__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMetaModelStructure(MetaModelStructure metaModelStructure, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(metaModelStructure, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRESTVerb(RESTVerb restVerb, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return true;
	}

	/**
	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public ResourceLocator getResourceLocator() {
		// TODO
		// Specialize this to return a resource locator for messages specific to this validator.
		// Ensure that you remove @generated or mark it @generated NOT
		return super.getResourceLocator();
	}

} //AnotherMicroserviceMetamodelValidator
import microserviceMetamodel.AnomalyInjector;
import microserviceMetamodel.AnotherMicroserviceMetamodelFactory;
import microserviceMetamodel.AnotherMicroserviceMetamodelPackage;
import microserviceMetamodel.Configuration;
import microserviceMetamodel.DependencyModel;
import microserviceMetamodel.Endpoint;
import microserviceMetamodel.ExecutionEnvironment;
import microserviceMetamodel.Host;
import microserviceMetamodel.InfrastructureModel;
import microserviceMetamodel.MetaModelStructure;
import microserviceMetamodel.Microservice;
import microserviceMetamodel.MicroserviceOperationTimeSeriesPoint;
import microserviceMetamodel.MicroserviceRepository;
import microserviceMetamodel.MicroserviceType;
import microserviceMetamodel.OperationToOperationCallingDependency;
import microserviceMetamodel.PhysicalHost;
import microserviceMetamodel.RESTOperation;
import microserviceMetamodel.RESTVerb;
import microserviceMetamodel.TimeSeries;
import microserviceMetamodel.TimeSeriesPoint;
import microserviceMetamodel.Version;
import microserviceMetamodel.VirtualHost;
import microserviceMetamodel.util.AnotherMicroserviceMetamodelValidator;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EValidator;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
		createEReference(operationToOperationCallingDependencyEClass, OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLED_OPERATION);
		createEReference(operationToOperationCallingDependencyEClass, OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_OPERATION);
		createEReference(operationToOperationCallingDependencyEClass, OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_VERSION);
		createEReference(operationToOperationCallingDependencyEClass, OPERATION_TO_OPERATION_CALLING_DEPENDENCY__CALLING_MICROSERVICE);

		timeSeriesEClass = createEClass(TIME_SERIES);
		createEReference(timeSeriesEClass, TIME_SERIES__TIME_SERIES_POINTS);

		timeSeriesPointEClass = createEClass(TIME_SERIES_POINT);
		createEReference(timeSeriesPointEClass, TIME_SERIES_POINT__TIME_SERIES);

		microserviceOperationTimeSeriesPointEClass = createEClass(MICROSERVICE_OPERATION_TIME_SERIES_POINT);
		createEReference(microserviceOperationTimeSeriesPointEClass, MICROSERVICE_OPERATION_TIME_SERIES_POINT__ENDPOINT);
		createEReference(microserviceOperationTimeSeriesPointEClass, MICROSERVICE_OPERATION_TIME_SERIES_POINT__REST_OPERATION);

		metaModelStructureEClass = createEClass(META_MODEL_STRUCTURE);
		createEReference(metaModelStructureEClass, META_MODEL_STRUCTURE__INFRASTRUCTURE);
		createEReference(metaModelStructureEClass, META_MODEL_STRUCTURE__CONFIGURATIONS);
		createEReference(metaModelStructureEClass, META_MODEL_STRUCTURE__DEPENDENCIES);
		createEReference(metaModelStructureEClass, META_MODEL_STRUCTURE__TIME_SERIES);
		createEReference(metaModelStructureEClass, META_MODEL_STRUCTURE__MICROSERVICE_REPOSITORY);

		// Create enums
		restVerbEEnum = createEEnum(REST_VERB);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Obtain other dependent packages
		XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes
		hostEClass.getESuperTypes().add(this.getExecutionEnvironment());
		containerEClass.getESuperTypes().add(this.getExecutionEnvironment());
		virtualHostEClass.getESuperTypes().add(this.getHost());
		physicalHostEClass.getESuperTypes().add(this.getHost());
		microserviceOperationTimeSeriesPointEClass.getESuperTypes().add(this.getTimeSeriesPoint());

		// Initialize classes, features, and operations; add parameters
		initEClass(microserviceEClass, Microservice.class, "Microservice", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getMicroservice_Environment(), this.getExecutionEnvironment(), this.getExecutionEnvironment_Microservices(), "environment", null, 1, 1, Microservice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMicroservice_Endpoints(), this.getEndpoint(), null, "endpoints", null, 1, -1, Microservice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMicroservice_MicroserviceType(), this.getMicroserviceType(), this.getMicroserviceType_Microservices(), "microserviceType", null, 1, 1, Microservice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMicroservice_Version(), this.getVersion(), null, "version", null, 1, 1, Microservice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getMicroservice_Uuid(), theXMLTypePackage.getString(), "uuid", null, 1, 1, Microservice.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getConfiguration_Microservices(), this.getMicroservice(), null, "microservices", null, 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(executionEnvironmentEClass, ExecutionEnvironment.class, "ExecutionEnvironment", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getExecutionEnvironment_Microservices(), this.getMicroservice(), this.getMicroservice_Environment(), "microservices", null, 0, -1, ExecutionEnvironment.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(anomalyInjectorEClass, AnomalyInjector.class, "AnomalyInjector", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);

		initEClass(versionEClass, Version.class, "Version", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getVersion_VersionString(), ecorePackage.getEString(), "versionString", null, 1, 1, Version.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(endpointEClass, Endpoint.class, "Endpoint", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEndpoint_RestOperations(), this.getRESTOperation(), null, "restOperations", null, 1, -1, Endpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getEndpoint_IpAddress(), ecorePackage.getEString(), "ipAddress", null, 1, 1, Endpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEAttribute(getEndpoint_Port(), theXMLTypePackage.getIntObject(), "port", null, 1, 1, Endpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getEndpoint_Url(), ecorePackage.getEString(), "url", null, 0, 1, Endpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getEndpoint_Protocol(), ecorePackage.getEString(), "protocol", null, 1, 1, Endpoint.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(restOperationEClass, RESTOperation.class, "RESTOperation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getRESTOperation_Name(), ecorePackage.getEString(), "name", null, 1, 1, RESTOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getRESTOperation_SubPath(), ecorePackage.getEString(), "subPath", null, 1, 1, RESTOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getRESTOperation_RestVerb(), this.getRESTVerb(), "restVerb", null, 1, 1, RESTOperation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(microserviceTypeEClass, MicroserviceType.class, "MicroserviceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getMicroserviceType_RestOperations(), this.getRESTOperation(), null, "restOperations", null, 0, -1, MicroserviceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMicroserviceType_Microservices(), this.getMicroservice(), this.getMicroservice_MicroserviceType(), "microservices", null, 0, -1, MicroserviceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMicroserviceType_Versions(), this.getVersion(), null, "versions", null, 1, -1, MicroserviceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getMicroserviceType_Identifier(), ecorePackage.getEString(), "identifier", null, 1, 1, MicroserviceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMicroserviceType_Dependencies(), this.getOperationToOperationCallingDependency(), this.getOperationToOperationCallingDependency_CallingMicroservice(), "dependencies", null, 0, -1, MicroserviceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(microserviceRepositoryEClass, MicroserviceRepository.class, "MicroserviceRepository", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getMicroserviceRepository_MicroserviceTypes(), this.getMicroserviceType(), null, "microserviceTypes", null, 1, -1, MicroserviceRepository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(hostEClass, Host.class, "Host", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getHost_Containers(), this.getContainer(), this.getContainer_Host(), "containers", null, 0, -1, Host.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getHost_Hostname(), ecorePackage.getEString(), "hostname", null, 1, 1, Host.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(containerEClass, microserviceMetamodel.Container.class, "Container", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getContainer_Host(), this.getHost(), this.getHost_Containers(), "host", null, 1, 1, microserviceMetamodel.Container.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(virtualHostEClass, VirtualHost.class, "VirtualHost", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getVirtualHost_ParentHost(), this.getPhysicalHost(), this.getPhysicalHost_VirtualHosts(), "parentHost", null, 1, 1, VirtualHost.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(physicalHostEClass, PhysicalHost.class, "PhysicalHost", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPhysicalHost_VirtualHosts(), this.getVirtualHost(), this.getVirtualHost_ParentHost(), "virtualHosts", null, 0, -1, PhysicalHost.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(infrastructureModelEClass, InfrastructureModel.class, "InfrastructureModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getInfrastructureModel_Hosts(), this.getPhysicalHost(), null, "hosts", null, 1, -1, InfrastructureModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(dependencyModelEClass, DependencyModel.class, "DependencyModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);