├── .editorconfig
├── .github
├── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── pull_request_template.md
└── workflows
│ ├── build.yml
│ ├── release-patch.yml
│ └── release.yml
├── .gitignore
├── .mvn
└── wrapper
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── EG-MASTER-MIGRATION.md
├── LICENSE
├── README.md
├── app
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── StreamRegistryApp.java
│ └── resources
│ ├── application.yaml
│ └── logback.xml
├── bom
└── pom.xml
├── core
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── core
│ │ ├── handlers
│ │ ├── HandlerService.java
│ │ └── IdentityHandler.java
│ │ ├── services
│ │ ├── ConsumerBindingService.java
│ │ ├── ConsumerService.java
│ │ ├── DomainService.java
│ │ ├── InfrastructureService.java
│ │ ├── ProcessBindingService.java
│ │ ├── ProcessService.java
│ │ ├── ProducerBindingService.java
│ │ ├── ProducerService.java
│ │ ├── SchemaService.java
│ │ ├── StreamBindingService.java
│ │ ├── StreamService.java
│ │ └── ZoneService.java
│ │ ├── validators
│ │ ├── ConsumerBindingValidator.java
│ │ ├── ConsumerValidator.java
│ │ ├── DomainValidator.java
│ │ ├── InfrastructureValidator.java
│ │ ├── ProcessBindingValidator.java
│ │ ├── ProcessValidator.java
│ │ ├── ProducerBindingValidator.java
│ │ ├── ProducerValidator.java
│ │ ├── RegexValidator.java
│ │ ├── SchemaValidator.java
│ │ ├── SnakeCaseValidator.java
│ │ ├── SpecificationValidator.java
│ │ ├── StreamBindingValidator.java
│ │ ├── StreamValidator.java
│ │ ├── ValidationException.java
│ │ ├── Validator.java
│ │ ├── VersionValidator.java
│ │ ├── ZoneValidator.java
│ │ └── key
│ │ │ ├── ConsumerBindingKeyValidator.java
│ │ │ ├── ConsumerKeyValidator.java
│ │ │ ├── DomainKeyValidator.java
│ │ │ ├── InfrastructureKeyValidator.java
│ │ │ ├── KeyValidator.java
│ │ │ ├── ProcessBindingKeyValidator.java
│ │ │ ├── ProcessKeyValidator.java
│ │ │ ├── ProducerBindingKeyValidator.java
│ │ │ ├── ProducerKeyValidator.java
│ │ │ ├── SchemaKeyValidator.java
│ │ │ ├── StreamBindingKeyValidator.java
│ │ │ ├── StreamKeyValidator.java
│ │ │ └── ZoneKeyValidator.java
│ │ └── views
│ │ ├── ConsumerBindingView.java
│ │ ├── ConsumerView.java
│ │ ├── DomainView.java
│ │ ├── InfrastructureView.java
│ │ ├── ProcessBindingView.java
│ │ ├── ProcessView.java
│ │ ├── ProducerBindingView.java
│ │ ├── ProducerView.java
│ │ ├── SchemaView.java
│ │ ├── StreamBindingView.java
│ │ ├── StreamView.java
│ │ └── ZoneView.java
│ └── test
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── core
│ │ ├── services
│ │ ├── ConsumerBindingServiceTest.java
│ │ ├── ConsumerServiceTest.java
│ │ ├── DomainServiceTest.java
│ │ ├── InfrastructureServiceTest.java
│ │ ├── ProcessBindingServiceTest.java
│ │ ├── ProcessServiceTest.java
│ │ ├── ProducerBindingServiceTest.java
│ │ ├── ProducerServiceTest.java
│ │ ├── SchemaServiceTest.java
│ │ ├── StreamBindingServiceTest.java
│ │ ├── StreamServiceTest.java
│ │ └── ZoneServiceTest.java
│ │ └── validators
│ │ ├── ConsumerValidatorTest.java
│ │ ├── ProcessBindingValidatorTest.java
│ │ ├── ProcessValidatorTest.java
│ │ ├── ProducerValidatorTest.java
│ │ └── SnakeCaseValidatorTest.java
│ └── resources
│ └── logback-test.xml
├── docs
├── .gitignore
├── README.md
├── docs
│ ├── architecture
│ │ ├── MTSchemaRegistry.png
│ │ ├── SR-logo.svg
│ │ ├── SR-provider-plugin.svg
│ │ ├── SR-usecases.png
│ │ ├── StreamRegistryArchitecture.png
│ │ ├── StreamRegistryGeneralArch.png
│ │ ├── StreamSink.png
│ │ ├── StreamSource.png
│ │ ├── index.md
│ │ └── stream-relocation.gif
│ ├── css
│ │ ├── custom_tasklist.css
│ │ ├── details.css
│ │ ├── progress_bar.css
│ │ └── tasklist.css
│ ├── index.md
│ ├── js
│ │ ├── details.js
│ │ └── flowchart-loader.js
│ └── usage
│ │ └── index.md
└── mkdocs.yml
├── graphql
├── api
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── expediagroup
│ │ │ │ └── streamplatform
│ │ │ │ └── streamregistry
│ │ │ │ └── graphql
│ │ │ │ ├── GraphQLApiType.java
│ │ │ │ ├── GraphQLBeanPostProcessor.java
│ │ │ │ ├── GraphQLConfiguration.java
│ │ │ │ ├── GraphQLMetricHandler.java
│ │ │ │ ├── StateHelper.java
│ │ │ │ ├── filters
│ │ │ │ ├── ConsumerBindingFilter.java
│ │ │ │ ├── ConsumerFilter.java
│ │ │ │ ├── DomainFilter.java
│ │ │ │ ├── FilterUtility.java
│ │ │ │ ├── InfrastructureFilter.java
│ │ │ │ ├── ProcessBindingFilter.java
│ │ │ │ ├── ProcessFilter.java
│ │ │ │ ├── ProducerBindingFilter.java
│ │ │ │ ├── ProducerFilter.java
│ │ │ │ ├── SchemaFilter.java
│ │ │ │ ├── SecurityMatchUtility.java
│ │ │ │ ├── StreamBindingFilter.java
│ │ │ │ ├── StreamFilter.java
│ │ │ │ ├── TagMatchUtility.java
│ │ │ │ └── ZoneFilter.java
│ │ │ │ ├── model
│ │ │ │ ├── inputs
│ │ │ │ │ ├── ConsumerBindingKeyInput.java
│ │ │ │ │ ├── ConsumerKeyInput.java
│ │ │ │ │ ├── DomainKeyInput.java
│ │ │ │ │ ├── InfrastructureKeyInput.java
│ │ │ │ │ ├── PrincipalInput.java
│ │ │ │ │ ├── ProcessBindingKeyInput.java
│ │ │ │ │ ├── ProcessInputStreamBindingInput.java
│ │ │ │ │ ├── ProcessInputStreamInput.java
│ │ │ │ │ ├── ProcessKeyInput.java
│ │ │ │ │ ├── ProcessOutputStreamBindingInput.java
│ │ │ │ │ ├── ProcessOutputStreamInput.java
│ │ │ │ │ ├── ProducerBindingKeyInput.java
│ │ │ │ │ ├── ProducerKeyInput.java
│ │ │ │ │ ├── SchemaKeyInput.java
│ │ │ │ │ ├── SecurityInput.java
│ │ │ │ │ ├── SpecificationInput.java
│ │ │ │ │ ├── StatusInput.java
│ │ │ │ │ ├── StreamBindingKeyInput.java
│ │ │ │ │ ├── StreamKeyInput.java
│ │ │ │ │ ├── TagInput.java
│ │ │ │ │ └── ZoneKeyInput.java
│ │ │ │ └── queries
│ │ │ │ │ ├── ConsumerBindingKeyQuery.java
│ │ │ │ │ ├── ConsumerKeyQuery.java
│ │ │ │ │ ├── DomainKeyQuery.java
│ │ │ │ │ ├── InfrastructureKeyQuery.java
│ │ │ │ │ ├── ProcessBindingKeyQuery.java
│ │ │ │ │ ├── ProcessKeyQuery.java
│ │ │ │ │ ├── ProducerBindingKeyQuery.java
│ │ │ │ │ ├── ProducerKeyQuery.java
│ │ │ │ │ ├── SchemaKeyQuery.java
│ │ │ │ │ ├── SecurityQuery.java
│ │ │ │ │ ├── SpecificationQuery.java
│ │ │ │ │ ├── StreamBindingKeyQuery.java
│ │ │ │ │ ├── StreamKeyQuery.java
│ │ │ │ │ ├── TagQuery.java
│ │ │ │ │ └── ZoneKeyQuery.java
│ │ │ │ ├── mutation
│ │ │ │ ├── ConsumerBindingMutation.java
│ │ │ │ ├── ConsumerMutation.java
│ │ │ │ ├── DomainMutation.java
│ │ │ │ ├── InfrastructureMutation.java
│ │ │ │ ├── Mutation.java
│ │ │ │ ├── ProcessBindingMutation.java
│ │ │ │ ├── ProcessMutation.java
│ │ │ │ ├── ProducerBindingMutation.java
│ │ │ │ ├── ProducerMutation.java
│ │ │ │ ├── SchemaMutation.java
│ │ │ │ ├── StreamBindingMutation.java
│ │ │ │ ├── StreamMutation.java
│ │ │ │ ├── ZoneMutation.java
│ │ │ │ └── impl
│ │ │ │ │ ├── ConsumerBindingMutationImpl.java
│ │ │ │ │ ├── ConsumerMutationImpl.java
│ │ │ │ │ ├── DomainMutationImpl.java
│ │ │ │ │ ├── InfrastructureMutationImpl.java
│ │ │ │ │ ├── ProcessBindingMutationImpl.java
│ │ │ │ │ ├── ProcessMutationImpl.java
│ │ │ │ │ ├── ProducerBindingMutationImpl.java
│ │ │ │ │ ├── ProducerMutationImpl.java
│ │ │ │ │ ├── SchemaMutationImpl.java
│ │ │ │ │ ├── StreamBindingMutationImpl.java
│ │ │ │ │ ├── StreamMutationImpl.java
│ │ │ │ │ └── ZoneMutationImpl.java
│ │ │ │ ├── query
│ │ │ │ ├── ConsumerBindingQuery.java
│ │ │ │ ├── ConsumerQuery.java
│ │ │ │ ├── DomainQuery.java
│ │ │ │ ├── InfrastructureQuery.java
│ │ │ │ ├── ProcessBindingQuery.java
│ │ │ │ ├── ProcessQuery.java
│ │ │ │ ├── ProducerBindingQuery.java
│ │ │ │ ├── ProducerQuery.java
│ │ │ │ ├── Query.java
│ │ │ │ ├── SchemaQuery.java
│ │ │ │ ├── StreamBindingQuery.java
│ │ │ │ ├── StreamQuery.java
│ │ │ │ ├── ZoneQuery.java
│ │ │ │ └── impl
│ │ │ │ │ ├── ConsumerBindingQueryImpl.java
│ │ │ │ │ ├── ConsumerQueryImpl.java
│ │ │ │ │ ├── DomainQueryImpl.java
│ │ │ │ │ ├── InfrastructureQueryImpl.java
│ │ │ │ │ ├── ProcessBindingQueryImpl.java
│ │ │ │ │ ├── ProcessQueryImpl.java
│ │ │ │ │ ├── ProducerBindingQueryImpl.java
│ │ │ │ │ ├── ProducerQueryImpl.java
│ │ │ │ │ ├── SchemaQueryImpl.java
│ │ │ │ │ ├── StreamBindingQueryImpl.java
│ │ │ │ │ ├── StreamQueryImpl.java
│ │ │ │ │ └── ZoneQueryImpl.java
│ │ │ │ └── resolvers
│ │ │ │ ├── ConsumerBindingResolver.java
│ │ │ │ ├── ConsumerResolver.java
│ │ │ │ ├── DomainResolver.java
│ │ │ │ ├── InfrastructureResolver.java
│ │ │ │ ├── ProcessBindingResolver.java
│ │ │ │ ├── ProcessResolver.java
│ │ │ │ ├── ProducerBindingResolver.java
│ │ │ │ ├── ProducerResolver.java
│ │ │ │ ├── Resolvers.java
│ │ │ │ ├── SchemaResolver.java
│ │ │ │ ├── StatusResolver.java
│ │ │ │ ├── StreamBindingResolver.java
│ │ │ │ ├── StreamResolver.java
│ │ │ │ └── ZoneResolver.java
│ │ └── resources
│ │ │ ├── application-graphql.yaml
│ │ │ └── stream-registry.graphql
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── graphql
│ │ ├── GraphQLBeanPostProcessorTest.java
│ │ ├── GraphQLMetricHandlerTest.java
│ │ ├── filters
│ │ ├── ConsumerBindingFilterTest.java
│ │ ├── FilterUtilityTest.java
│ │ ├── ProcessBindingFilterTest.java
│ │ ├── ProcessFilterTest.java
│ │ ├── ProducerBindingFilterTest.java
│ │ ├── SchemaFilterTest.java
│ │ ├── SecurityMatchUtilityTest.java
│ │ ├── StreamFilterTest.java
│ │ └── TagMatchUtilityTest.java
│ │ ├── model
│ │ └── inputs
│ │ │ └── SpecificationInputTest.java
│ │ └── mutation
│ │ └── impl
│ │ ├── ConsumerBindingMutationImplTest.java
│ │ ├── ConsumerMutationImplTest.java
│ │ ├── ProducerBindingMutationImplTest.java
│ │ ├── ProducerMutationImplTest.java
│ │ ├── StreamBindingMutationImplTest.java
│ │ └── StreamMutationImplTest.java
├── maven-plugin
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── expediagroup
│ │ │ │ └── streamplatform
│ │ │ │ └── streamregistry
│ │ │ │ └── graphql
│ │ │ │ ├── GraphQLIntrospectionFileGenerator.java
│ │ │ │ └── GraphQLIntrospectionFileGeneratorMojo.java
│ │ └── resources
│ │ │ └── introspection.query
│ │ └── test
│ │ ├── java
│ │ └── com
│ │ │ └── expediagroup
│ │ │ └── streamplatform
│ │ │ └── streamregistry
│ │ │ └── graphql
│ │ │ ├── GraphQLIntrospectionFileGeneratorMojoTest.java
│ │ │ └── GraphQLIntrospectionFileGeneratorTest.java
│ │ └── resources
│ │ ├── logback-test.xml
│ │ └── test.graphql.txt
└── scalars
│ ├── pom.xml
│ └── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── graphql
│ │ └── type
│ │ ├── BaseCoercing.java
│ │ ├── JsonCoercingUtil.java
│ │ ├── ObjectNodeCoercing.java
│ │ └── Scalars.java
│ └── test
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── graphql
│ └── type
│ ├── JsonCoercingUtilTest.java
│ └── ObjectNodeCoercingTest.java
├── handler-spi
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── handler
│ └── Handler.java
├── it
├── pom.xml
└── src
│ └── test
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── it
│ │ ├── ConsumerBindingTestStage.java
│ │ ├── ConsumerTestStage.java
│ │ ├── DomainTestStage.java
│ │ ├── InfrastructureTestStage.java
│ │ ├── ProcessBindingTestStage.java
│ │ ├── ProcessTestStage.java
│ │ ├── ProducerBindingTestStage.java
│ │ ├── ProducerTestStage.java
│ │ ├── SchemaTestStage.java
│ │ ├── StreamBindingTestStage.java
│ │ ├── StreamRegistryIT.java
│ │ ├── StreamTestStage.java
│ │ ├── ZoneTestStage.java
│ │ └── helpers
│ │ ├── AbstractTestStage.java
│ │ ├── ITestClient.java
│ │ ├── ITestDataFactory.java
│ │ └── StreamRegistryClient.java
│ └── resources
│ ├── client.graphql
│ └── logback-test.xml
├── lombok.config
├── model
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── model
│ ├── Consumer.java
│ ├── ConsumerBinding.java
│ ├── Domain.java
│ ├── Entity.java
│ ├── Infrastructure.java
│ ├── Principal.java
│ ├── Process.java
│ ├── ProcessBinding.java
│ ├── ProcessInputStream.java
│ ├── ProcessInputStreamBinding.java
│ ├── ProcessOutputStream.java
│ ├── ProcessOutputStreamBinding.java
│ ├── Producer.java
│ ├── ProducerBinding.java
│ ├── Schema.java
│ ├── Security.java
│ ├── Specification.java
│ ├── Specified.java
│ ├── Stated.java
│ ├── Status.java
│ ├── Stream.java
│ ├── StreamBinding.java
│ ├── Tag.java
│ ├── Zone.java
│ └── keys
│ ├── ConsumerBindingKey.java
│ ├── ConsumerKey.java
│ ├── DomainKey.java
│ ├── InfrastructureKey.java
│ ├── ProcessBindingKey.java
│ ├── ProcessKey.java
│ ├── ProducerBindingKey.java
│ ├── ProducerKey.java
│ ├── SchemaKey.java
│ ├── StreamBindingKey.java
│ ├── StreamKey.java
│ └── ZoneKey.java
├── mvnw
├── mvnw.cmd
├── pom.xml
├── repository
├── api
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── repository
│ │ ├── ConsumerBindingRepository.java
│ │ ├── ConsumerRepository.java
│ │ ├── DomainRepository.java
│ │ ├── InfrastructureRepository.java
│ │ ├── ProcessBindingRepository.java
│ │ ├── ProcessRepository.java
│ │ ├── ProducerBindingRepository.java
│ │ ├── ProducerRepository.java
│ │ ├── Repository.java
│ │ ├── SchemaRepository.java
│ │ ├── StreamBindingRepository.java
│ │ ├── StreamRepository.java
│ │ └── ZoneRepository.java
└── kafka
│ ├── pom.xml
│ └── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── repository
│ │ └── kafka
│ │ ├── ConsumerBindingRepository.java
│ │ ├── ConsumerRepository.java
│ │ ├── Converter.java
│ │ ├── DefaultRepository.java
│ │ ├── DomainRepository.java
│ │ ├── InfrastructureRepository.java
│ │ ├── KafkaConfiguration.java
│ │ ├── ProcessBindingRepository.java
│ │ ├── ProcessRepository.java
│ │ ├── ProducerBindingRepository.java
│ │ ├── ProducerRepository.java
│ │ ├── PurgingEntityViewListener.java
│ │ ├── SchemaRepository.java
│ │ ├── StreamBindingRepository.java
│ │ ├── StreamRepository.java
│ │ └── ZoneRepository.java
│ └── test
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── repository
│ └── kafka
│ ├── ConsumerBindingRepositoryTest.java
│ ├── ConverterTest.java
│ ├── DefaultRepositoryTest.java
│ ├── ProducerBindingRepositoryTest.java
│ ├── PurgingEntityViewListenerTest.java
│ ├── SampleModel.java
│ └── SampleState.java
├── spring-boot-starter
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── StreamRegistryAutoConfiguration.java
│ └── resources
│ └── META-INF
│ ├── spring.factories
│ └── spring
│ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports
└── state
├── api
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── state
│ ├── Configurator.java
│ ├── EntityView.java
│ ├── EntityViewListener.java
│ ├── EventReceiver.java
│ ├── EventReceiverListener.java
│ ├── EventSender.java
│ ├── internal
│ └── EventCorrelator.java
│ └── model
│ ├── Entity.java
│ ├── event
│ ├── Event.java
│ ├── SpecificationDeletionEvent.java
│ ├── SpecificationEvent.java
│ ├── StatusDeletionEvent.java
│ └── StatusEvent.java
│ ├── specification
│ ├── DefaultSpecification.java
│ ├── Principal.java
│ ├── ProcessBindingSpecification.java
│ ├── ProcessInputStream.java
│ ├── ProcessInputStreamBinding.java
│ ├── ProcessOutputStream.java
│ ├── ProcessOutputStreamBinding.java
│ ├── ProcessSpecification.java
│ ├── Specification.java
│ ├── StreamSpecification.java
│ └── Tag.java
│ └── status
│ ├── DefaultStatus.java
│ ├── Status.java
│ └── StatusEntry.java
├── avro
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── expediagroup
│ │ │ └── streamplatform
│ │ │ └── streamregistry
│ │ │ └── state
│ │ │ └── avro
│ │ │ ├── AvroConverter.java
│ │ │ ├── AvroObjectDeserializer.java
│ │ │ ├── AvroObjectModule.java
│ │ │ └── AvroObjectSerializer.java
│ └── resources
│ │ └── avro
│ │ └── stream-registry.avdl
│ └── test
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── state
│ │ └── avro
│ │ ├── AvroConverterTest.java
│ │ └── AvroObjectModuleTest.java
│ └── resources
│ └── logback-test.xml
├── core
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── expediagroup
│ │ │ └── streamplatform
│ │ │ └── streamregistry
│ │ │ └── state
│ │ │ ├── DefaultEntityView.java
│ │ │ ├── DefaultEntityViewUpdater.java
│ │ │ ├── DefaultEventCorrelator.java
│ │ │ ├── EntityViewUpdater.java
│ │ │ ├── EntityViews.java
│ │ │ └── StateValue.java
│ └── resources
│ │ ├── logback.xml
│ │ ├── stream-registry-state-correlator.puml
│ │ └── stream-registry-state.puml
│ └── test
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── state
│ ├── DefaultEntityViewTest.java
│ ├── DefaultEntityViewUpdaterTest.java
│ ├── DefaultEventCorrelatorTest.java
│ ├── EntityViewUpdaterTest.java
│ ├── MeteredEntityViewUpdaterTest.java
│ └── SampleEntities.java
├── example
├── pom.xml
└── src
│ └── main
│ └── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── state
│ └── example
│ ├── ExampleAgent.java
│ └── ExampleAgentApp.java
├── graphql-sender
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── com
│ │ │ └── expediagroup
│ │ │ └── streamplatform
│ │ │ └── streamregistry
│ │ │ └── state
│ │ │ └── graphql
│ │ │ ├── ApolloClientFactory.java
│ │ │ ├── ApolloExecutor.java
│ │ │ ├── ApolloResponseException.java
│ │ │ ├── Credentials.java
│ │ │ ├── DefaultApolloClientFactory.java
│ │ │ ├── GraphQLConverter.java
│ │ │ ├── GraphQLEventSender.java
│ │ │ └── ObjectNodeTypeAdapter.java
│ └── resources
│ │ └── client.graphql
│ └── test
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── state
│ │ └── graphql
│ │ ├── ApolloExecutorTest.java
│ │ ├── DefaultApolloClientFactoryTest.java
│ │ ├── GraphQLConverterTest.java
│ │ ├── GraphQLEventSenderTest.java
│ │ └── ObjectNodeTypeAdapterTest.java
│ └── resources
│ └── mockito-extensions
│ └── org.mockito.plugins.MockMaker
├── it
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── TestUtils.java
│ └── test
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── state
│ │ ├── AgentData.java
│ │ └── it
│ │ ├── AgentIT.java
│ │ └── StateIT.java
│ └── resources
│ └── logback-test.xml
├── kafka-receiver
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── state
│ │ └── kafka
│ │ └── KafkaEventReceiver.java
│ └── test
│ ├── java
│ └── com
│ │ └── expediagroup
│ │ └── streamplatform
│ │ └── streamregistry
│ │ └── state
│ │ └── kafka
│ │ └── KafkaEventReceiverTest.java
│ └── resources
│ ├── logback-test.xml
│ └── mockito-extensions
│ └── org.mockito.plugins.MockMaker
└── kafka-sender
├── pom.xml
└── src
├── main
└── java
│ └── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── state
│ └── kafka
│ └── KafkaEventSender.java
└── test
├── java
└── com
│ └── expediagroup
│ └── streamplatform
│ └── streamregistry
│ └── state
│ └── kafka
│ └── KafkaEventSenderTest.java
└── resources
├── logback-test.xml
└── mockito-extensions
└── org.mockito.plugins.MockMaker
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.java]
2 | wildcard_import_limit=999 # don't use wildcard for Java imports
3 | indent_size=2
4 | indent_style=space
5 | continuation_indent_size=2
6 | trim_trailing_whitespace=true
7 | insert_final_newline=true
8 | end_of_line=lf
9 | max_line_length=140
10 | charset=utf-8
11 | ij_kotlin_name_count_to_use_star_import = 999
12 | ij_kotlin_name_count_to_use_star_import_for_members = 999
13 | ij_yaml_indent_sequence_value=false
14 | ij_yaml_keep_indents_on_empty_lines=false
15 | ij_yaml_space_before_colon=false
16 | ij_yaml_spaces_within_braces=true
17 | ij_yaml_spaces_within_brackets=true
18 | ij_yaml_sequence_on_new_line=false
19 | ij_yaml_block_mapping_on_new_line=false
20 |
21 | [*.xml]
22 | indent_size=2
23 | indent_style=space
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve stream-registry
4 | title: ''
5 | labels: bug
6 | assignees: ''
7 |
8 | ---
9 |
10 | # Expected Behavior
11 |
12 | Please describe the expected behavior of stream-registry.
13 |
14 | # Actual Behavior
15 |
16 | Please describe what the project is doing _instead_ of the
17 | expected behavior.
18 |
19 | # Steps to Reproduce
20 |
21 | Please include a numbered list of steps that other people can
22 | use to recreate the "Actual Behavior."
23 |
24 | 1. First Step
25 | 2. Second Step
26 | 3. Third Step
27 |
28 | # Additional Information
29 |
30 | Provide any additional information that might be helpful,
31 | such as steps you've tried to resolve the issue,
32 | or observations made about the bug.
33 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: enhancement
6 | assignees: ''
7 |
8 | ---
9 |
10 | # Desired Behavior
11 |
12 | Please describe the new behavior stream-registry project should have.
13 |
14 | # Benefits
15 |
16 | Please list the benefits of updating the stream-registry project
17 | to have the new behavior. E.g.:
18 |
19 | * Builds more quickly
20 | * Enable compatibility with a new platform
21 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | # stream-registry PR
2 |
3 | _<High level description of the PR>_
4 |
5 | ### Added
6 | * _<detail item of what was added>_
7 | * _<describe functionality added>_
8 |
9 | ### Changed
10 | * _<detail item of what was changed>_
11 | * _<describe functionality that was changed>
12 | * _<in particular, describe BACKWARD INCOMPATIBLE changes>
13 |
14 | ### Deleted
15 | * _<detail item of what was removed>_
16 |
17 |
18 | # PR Checklist Forms
19 |
20 | - [ ] CHANGELOG.md updated
21 | - [ ] Reviewer assigned
22 | - [ ] PR assigned (presumably to submitter)
23 | - [ ] Labels added (enhancement, bug, documentation)
24 |
--------------------------------------------------------------------------------
/.github/workflows/build.yml:
--------------------------------------------------------------------------------
1 | name: Build
2 |
3 | on: [push, pull_request]
4 |
5 | jobs:
6 | build:
7 | name: Build the project
8 | runs-on: ubuntu-20.04
9 | steps:
10 | - name: Checkout
11 | uses: actions/checkout@v2
12 | with:
13 | fetch-depth: 2
14 | - name: Setup JDK
15 | uses: actions/setup-java@v1
16 | with:
17 | java-version: 17
18 | - name: Cache local Maven repository
19 | uses: actions/cache@v2
20 | with:
21 | path: ~/.m2/repository
22 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
23 | restore-keys: |
24 | ${{ runner.os }}-maven-
25 | - name: mvn build
26 | run: ./mvnw clean install -Djib.skip -B
27 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
3 | .classpath
4 | .project
5 | .settings
6 | target/
7 |
8 | *dependency-reduced-pom.xml
9 |
10 | logs/
11 | *.log
12 | *.iml
13 | .idea
14 | *.ipr
15 | *.iws
16 |
17 | !core/src/main/docker/bin/
18 |
19 | # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
20 | !/.mvn/wrapper/maven-wrapper.jar
21 | charts/charts/
22 | charts/requirements.lock
23 | pom.xml.versionsBackup
24 |
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/.mvn/wrapper/maven-wrapper.jar
--------------------------------------------------------------------------------
/.mvn/wrapper/maven-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
2 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | ## Bugs
2 | We use Github Issues for our bug reporting. Please make sure the bug isn't already listed before
3 | opening a new issue.
4 |
5 | ## Enhancement Requests
6 | If there is a feature that you would like added, please open an issue in GitHub and follow the respective
7 | template.
8 |
9 | ## Development
10 | All work on stream-registry happens directly on Github. Project leadership will review opened
11 | pull requests. See README.md for instructions on how to build, test and document your PR.
12 |
13 | ## Contributing to Documentation
14 | To contribute to documentation, you can directly modify the corresponding .md files in the
15 | docs directory. Please submit a pull request. Once your PR is merged, the documentation is
16 | automatically built and momentarily deployed to [stream registry documentation].
17 |
18 | ## License
19 | By contributing to stream-registry, you agree that your contributions will be licensed
20 | under its Apache License.
21 |
22 | [stream registry documentation]: https://expediagroup.github.io/stream-registry
23 |
--------------------------------------------------------------------------------
/EG-MASTER-MIGRATION.md:
--------------------------------------------------------------------------------
1 | # `eg-master` Migration
2 |
3 | This file is to document major work that will be necessary in migration from `master` to `eg-master`.
4 |
5 | # Lifecycle
6 |
7 | The intended lifecycle of this document should exactly match the lifecycle of `eg-master` branch.
8 | In other words, this document should start when `eg-master` starts,
9 | and should be removed when `eg-master` becomes the new master.
10 |
11 | # Migration tasks/notes
12 |
13 | ##### - avdl change to `com.expediagroup`([#175](https://github.com/ExpediaGroup/stream-registry/pull/175))
14 |
15 | This will result in an internal data migration of the schemas.
16 |
17 | ###### Mitigation
18 |
19 | One way to mitigate would be to export the old metadata into an external datastore.
20 | Scripts could be made available to import from the external datastore into the new schemas.
21 | At some level, this could be an MVP for a disaster recovery tool which arguably should be available anyway.
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/resources/application.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | spring.profiles.active: default,graphql
3 | endpoints.prometheus.enabled: true
4 | management.endpoints.web.exposure.include: info,health,prometheus
5 |
--------------------------------------------------------------------------------
/app/src/main/resources/logback.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 | %d [%thread] %-5level %logger{35} - %msg%n
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/RegexValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators;
17 |
18 | import java.util.regex.Pattern;
19 |
20 | public class RegexValidator {
21 |
22 | public static void validate(String name, Pattern pattern) throws ValidationException {
23 | if (!pattern.matcher(name).matches()) {
24 | throw new ValidationException(String.format("Invalid name '%s'. Names must conform to pattern %s", name, pattern.pattern()));
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/SnakeCaseValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators;
17 |
18 | import java.util.regex.Pattern;
19 |
20 | public class SnakeCaseValidator {
21 | private static final Pattern snakeCasePattern = Pattern.compile("^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$");
22 |
23 | public static void validate(String name) throws ValidationException {
24 | RegexValidator.validate(name, snakeCasePattern);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/ValidationException.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators;
17 |
18 | public class ValidationException extends RuntimeException {
19 | public ValidationException(String message) {
20 | super(message);
21 | }
22 |
23 | public ValidationException(Exception e) {
24 | super(e);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/Validator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators;
17 |
18 | public interface Validator {
19 |
20 | void validateForCreate(T type) throws ValidationException;
21 |
22 | void validateForUpdate(T type, T existing) throws ValidationException;
23 | }
24 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/VersionValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators;
17 |
18 | public class VersionValidator {
19 |
20 | public static void validate(Integer version, int min, int max) throws ValidationException {
21 | if (version >= min && version <= max) {
22 | return;
23 | }
24 | throw new ValidationException(String.format("Invalid version '%d'. Please ensure version >= %d and version <= %d.", version, min, max));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/DomainKeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
21 | import com.expediagroup.streamplatform.streamregistry.model.Domain;
22 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey;
23 |
24 | public class DomainKeyValidator implements KeyValidator {
25 | @Override
26 | public void validateKey(Domain entity) throws ValidationException {
27 | DomainKey key = entity.getKey();
28 | validate(key.getName());
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/InfrastructureKeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
21 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure;
22 | import com.expediagroup.streamplatform.streamregistry.model.keys.InfrastructureKey;
23 |
24 | public class InfrastructureKeyValidator implements KeyValidator{
25 | @Override
26 | public void validateKey(Infrastructure entity) throws ValidationException {
27 | InfrastructureKey key = entity.getKey();
28 | validate(key.getZone());
29 | validate(key.getName());
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/KeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
19 | import com.expediagroup.streamplatform.streamregistry.model.Entity;
20 |
21 | public interface KeyValidator {
22 | void validateKey(T entity) throws ValidationException;
23 | }
24 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/ProcessBindingKeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
21 | import com.expediagroup.streamplatform.streamregistry.model.ProcessBinding;
22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessBindingKey;
23 |
24 | public class ProcessBindingKeyValidator implements KeyValidator {
25 | @Override
26 | public void validateKey(ProcessBinding entity) throws ValidationException {
27 | ProcessBindingKey key = entity.getKey();
28 | validate(key.getDomainName());
29 | validate(key.getInfrastructureZone());
30 | validate(key.getProcessName());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/ProcessKeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
21 | import com.expediagroup.streamplatform.streamregistry.model.Process;
22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessKey;
23 |
24 | public class ProcessKeyValidator implements KeyValidator {
25 |
26 | @Override
27 | public void validateKey(Process entity) throws ValidationException {
28 | ProcessKey key = entity.getKey();
29 | validate(key.getDomain());
30 | validate(key.getName());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/SchemaKeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
21 | import com.expediagroup.streamplatform.streamregistry.model.Schema;
22 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey;
23 |
24 | public class SchemaKeyValidator implements KeyValidator {
25 | @Override
26 | public void validateKey(Schema entity) throws ValidationException {
27 | SchemaKey key = entity.getKey();
28 | validate(key.getDomain());
29 | validate(key.getName());
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/ZoneKeyValidator.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key;
17 |
18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException;
21 | import com.expediagroup.streamplatform.streamregistry.model.Zone;
22 |
23 | public class ZoneKeyValidator implements KeyValidator {
24 | @Override
25 | public void validateKey(Zone entity) throws ValidationException {
26 | validate(entity.getKey().getName());
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/views/DomainView.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.views;
17 |
18 | import java.util.Optional;
19 |
20 | import lombok.RequiredArgsConstructor;
21 |
22 | import org.springframework.stereotype.Component;
23 |
24 | import com.expediagroup.streamplatform.streamregistry.model.Domain;
25 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey;
26 | import com.expediagroup.streamplatform.streamregistry.repository.DomainRepository;
27 |
28 | @Component
29 | @RequiredArgsConstructor
30 | public class DomainView {
31 | private final DomainRepository domainRepository;
32 |
33 | public Optional get(DomainKey key) {
34 | return domainRepository.findById(key);
35 | }
36 |
37 | public boolean exists(DomainKey key) {
38 | return get(key).isPresent();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/views/ZoneView.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.core.views;
17 |
18 | import java.util.Optional;
19 |
20 | import lombok.RequiredArgsConstructor;
21 |
22 | import org.springframework.stereotype.Component;
23 |
24 | import com.expediagroup.streamplatform.streamregistry.model.Zone;
25 | import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey;
26 | import com.expediagroup.streamplatform.streamregistry.repository.ZoneRepository;
27 |
28 | @Component
29 | @RequiredArgsConstructor
30 | public class ZoneView {
31 | private final ZoneRepository zoneRepository;
32 |
33 | public Optional get(ZoneKey key) {
34 | return zoneRepository.findById(key);
35 | }
36 |
37 | public boolean exists(ZoneKey key) {
38 | return get(key).isPresent();
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/docs/.gitignore:
--------------------------------------------------------------------------------
1 | site/
2 |
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Long Documentation
2 |
3 |
4 | # Mkdocs
5 |
6 | ## Initial Setup
7 | * Setup a Python Virtual Environment
8 | * ``` pip install mkdocs pymdown-extensions pygments mkdocs-material```
9 |
10 | ## Developer Setup
11 | * Perform initial setup
12 | * Modify a file
13 | * Run mkdocs serve in the level with the .yml file, view on 127.0.0.1:8000
14 |
--------------------------------------------------------------------------------
/docs/docs/architecture/MTSchemaRegistry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/MTSchemaRegistry.png
--------------------------------------------------------------------------------
/docs/docs/architecture/SR-usecases.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/SR-usecases.png
--------------------------------------------------------------------------------
/docs/docs/architecture/StreamRegistryArchitecture.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamRegistryArchitecture.png
--------------------------------------------------------------------------------
/docs/docs/architecture/StreamRegistryGeneralArch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamRegistryGeneralArch.png
--------------------------------------------------------------------------------
/docs/docs/architecture/StreamSink.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamSink.png
--------------------------------------------------------------------------------
/docs/docs/architecture/StreamSource.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamSource.png
--------------------------------------------------------------------------------
/docs/docs/architecture/stream-relocation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/stream-relocation.gif
--------------------------------------------------------------------------------
/docs/docs/css/custom_tasklist.css:
--------------------------------------------------------------------------------
1 | .markdown-body .task-list-item {
2 | list-style-type: none !important;
3 | }
4 |
5 | .markdown-body .task-list-item input[type="checkbox"] {
6 | margin: 0 4px 0.25em -20px;
7 | vertical-align: middle;
8 | }
9 |
10 | .markdown-body .task-list-control {
11 | display: inline; /* Ensure label is inline incase theme sets it to block.*/
12 | }
13 |
14 | .markdown-body .task-list-control {
15 | position: relative;
16 | display: inline-block;
17 | color: #555;
18 | cursor: pointer;
19 | }
20 |
21 | .markdown-body .task-list-control input[type="checkbox"] {
22 | position: absolute;
23 | opacity: 0;
24 | z-index: -1; /* Put the input behind the label so it doesn't overlay text */
25 | }
26 |
27 | .markdown-body .task-list-indicator {
28 | position: absolute;
29 | top: -8px;
30 | left: -18px;
31 | display: block;
32 | width: 14px;
33 | height: 14px;
34 | color: #eee;
35 | background-color: #eee;
36 | border-radius: .25rem;
37 | }
38 |
39 | .markdown-body .task-list-control input[type="checkbox"]:checked + .task-list-indicator::before {
40 | display: block;
41 | margin-top: -4px;
42 | margin-left: 2px;
43 | font-size: 16px;
44 | line-height: 1;
45 | content: "✔";
46 | color: #1EBB52;
47 | }
48 |
--------------------------------------------------------------------------------
/docs/docs/css/details.css:
--------------------------------------------------------------------------------
1 | details {
2 | display: block;
3 | }
4 |
5 | details[open] > summary::before {
6 | content: "\25BC";
7 | }
8 |
9 | details summary {
10 | display: block;
11 | cursor: pointer;
12 | }
13 |
14 | details summary:focus {
15 | outline: none;
16 | }
17 |
18 | details summary::before {
19 | content: "\25B6";
20 | padding-right: 0.5em;
21 | }
22 |
23 | details summary::-webkit-details-marker {
24 | display: none;
25 | }
26 |
27 | /* Attach the "no-details" class to details tags
28 | in browsers that do not support them to get
29 | open/show functionality. */
30 | details.no-details:not([open]) > * {
31 | display: none;
32 | }
33 |
34 | details.no-details:not([open]) summary {
35 | display: block;
36 | }
37 |
--------------------------------------------------------------------------------
/docs/docs/css/progress_bar.css:
--------------------------------------------------------------------------------
1 | .progress-label {
2 | position: absolute;
3 | text-align: center;
4 | font-weight: 700;
5 | width: 100%;
6 | margin: 0;
7 | line-height: 1.2rem;
8 | white-space: nowrap;
9 | overflow: hidden;
10 | }
11 |
12 | .progress-bar {
13 | height: 1.2rem;
14 | float: left;
15 | background-color: #2979ff;
16 | }
17 |
18 | .progress {
19 | display: block;
20 | width: 100%;
21 | margin: 0.5rem 0;
22 | height: 1.2rem;
23 | background-color: #eeeeee;
24 | position: relative;
25 | }
26 |
27 | .progress.thin {
28 | margin-top: 0.9rem;
29 | height: 0.4rem;
30 | }
31 |
32 | .progress.thin .progress-label {
33 | margin-top: -0.4rem;
34 | }
35 |
36 | .progress.thin .progress-bar {
37 | height: 0.4rem;
38 | }
39 |
40 | .progress-100plus .progress-bar {
41 | background-color: #00e676;
42 | }
43 |
44 | .progress-80plus .progress-bar {
45 | background-color: #fbc02d;
46 | }
47 |
48 | .progress-60plus .progress-bar {
49 | background-color: #ff9100;
50 | }
51 |
52 | .progress-40plus .progress-bar {
53 | background-color: #ff5252;
54 | }
55 |
56 | .progress-20plus .progress-bar {
57 | background-color: #ff1744;
58 | }
59 |
60 | .progress-0plus .progress-bar {
61 | background-color: #f50057;
62 | }
63 |
--------------------------------------------------------------------------------
/docs/docs/css/tasklist.css:
--------------------------------------------------------------------------------
1 | .markdown-body .task-list-item {
2 | list-style-type: none !important;
3 | }
4 |
5 | .markdown-body .task-list-item input[type="checkbox"] {
6 | margin: 0 4px 0.25em -20px;
7 | vertical-align: middle;
8 | }
9 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/GraphQLApiType.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql;
17 |
18 | public interface GraphQLApiType {}
19 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/GraphQLConfiguration.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql;
17 |
18 | import org.springframework.context.annotation.Bean;
19 | import org.springframework.context.annotation.Configuration;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.graphql.type.Scalars;
22 | import graphql.schema.GraphQLScalarType;
23 |
24 | @Configuration
25 | public class GraphQLConfiguration {
26 | @Bean
27 | public GraphQLScalarType objectNodeScalar() {
28 | return Scalars.objectNodeScalar();
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ConsumerBindingKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerBindingKey;
22 |
23 | @Value
24 | @Builder
25 | public class ConsumerBindingKeyInput {
26 | String streamDomain;
27 | String streamName;
28 | Integer streamVersion;
29 | String infrastructureZone;
30 | String infrastructureName;
31 | String consumerName;
32 |
33 | public ConsumerBindingKey asConsumerBindingKey() {
34 | return new ConsumerBindingKey(
35 | streamDomain,
36 | streamName,
37 | streamVersion,
38 | infrastructureZone,
39 | infrastructureName,
40 | consumerName
41 | );
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ConsumerKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerKey;
22 |
23 | @Value
24 | @Builder
25 | public class ConsumerKeyInput {
26 | String streamDomain;
27 | String streamName;
28 | Integer streamVersion;
29 | String zone;
30 | String name;
31 |
32 | public ConsumerKey asConsumerKey() {
33 | return new ConsumerKey(
34 | streamDomain,
35 | streamName,
36 | streamVersion,
37 | zone,
38 | name
39 | );
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/DomainKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey;
22 |
23 | @Value
24 | @Builder
25 | public class DomainKeyInput {
26 | String name;
27 |
28 | public DomainKey asDomainKey() {
29 | return new DomainKey(name);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/InfrastructureKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.InfrastructureKey;
22 |
23 | @Value
24 | @Builder
25 | public class InfrastructureKeyInput {
26 | String zone;
27 | String name;
28 |
29 | public InfrastructureKey asInfrastructureKey() {
30 | return new InfrastructureKey(
31 | zone,
32 | name
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/PrincipalInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class PrincipalInput {
24 | String name;
25 | }
26 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessBindingKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessBindingKey;
22 |
23 | @Value
24 | @Builder
25 | public class ProcessBindingKeyInput {
26 | String domainName;
27 | String infrastructureZone;
28 | String processName;
29 |
30 | public ProcessBindingKey asProcessBindingKey() {
31 | return new ProcessBindingKey(domainName, infrastructureZone, processName);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessInputStreamBindingInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.fasterxml.jackson.databind.node.ObjectNode;
22 |
23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessInputStreamBinding;
24 |
25 | @Value
26 | @Builder
27 | public class ProcessInputStreamBindingInput {
28 | StreamBindingKeyInput streamBindingKey;
29 | ObjectNode configuration;
30 |
31 | public ProcessInputStreamBinding asProcessInputStreamBinding() {
32 | return new ProcessInputStreamBinding(streamBindingKey.asStreamBindingKey(), configuration);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessInputStreamInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2023 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.fasterxml.jackson.databind.node.ObjectNode;
22 |
23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessInputStream;
24 |
25 | @Value
26 | @Builder
27 | public class ProcessInputStreamInput {
28 | StreamKeyInput stream;
29 | ObjectNode configuration;
30 |
31 | public ProcessInputStream asProcessInputStream() {
32 | return new ProcessInputStream(stream.asStreamKey(), configuration);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessKey;
22 |
23 | @Value
24 | @Builder
25 | public class ProcessKeyInput {
26 | String domain;
27 | String name;
28 |
29 | public ProcessKey asProcessKey() {
30 | return new ProcessKey(domain, name);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessOutputStreamBindingInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.fasterxml.jackson.databind.node.ObjectNode;
22 |
23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessOutputStreamBinding;
24 |
25 | @Value
26 | @Builder
27 | public class ProcessOutputStreamBindingInput {
28 | StreamBindingKeyInput streamBindingKey;
29 | ObjectNode configuration;
30 |
31 | public ProcessOutputStreamBinding asProcessOutputStreamBinding() {
32 | return new ProcessOutputStreamBinding(streamBindingKey.asStreamBindingKey(), configuration);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessOutputStreamInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2023 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.fasterxml.jackson.databind.node.ObjectNode;
22 |
23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessOutputStream;
24 |
25 | @Value
26 | @Builder
27 | public class ProcessOutputStreamInput {
28 | StreamKeyInput stream;
29 | ObjectNode configuration;
30 |
31 | public ProcessOutputStream asProcessOutputStream() {
32 | return new ProcessOutputStream(stream.asStreamKey(), configuration);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProducerBindingKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerBindingKey;
22 |
23 | @Value
24 | @Builder
25 | public class ProducerBindingKeyInput {
26 | String streamDomain;
27 | String streamName;
28 | Integer streamVersion;
29 | String infrastructureZone;
30 | String infrastructureName;
31 | String producerName;
32 |
33 | public ProducerBindingKey asProducerBindingKey() {
34 | return new ProducerBindingKey(
35 | streamDomain,
36 | streamName,
37 | streamVersion,
38 | infrastructureZone,
39 | infrastructureName,
40 | producerName
41 | );
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProducerKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerKey;
22 |
23 | @Value
24 | @Builder
25 | public class ProducerKeyInput {
26 | String streamDomain;
27 | String streamName;
28 | Integer streamVersion;
29 | String zone;
30 | String name;
31 |
32 | public ProducerKey asProducerKey() {
33 | return new ProducerKey(
34 | streamDomain,
35 | streamName,
36 | streamVersion,
37 | zone,
38 | name
39 | );
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/SchemaKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey;
22 |
23 | @Value
24 | @Builder
25 | public class SchemaKeyInput {
26 | String domain;
27 | String name;
28 |
29 | public SchemaKey asSchemaKey() {
30 | return new SchemaKey(
31 | domain,
32 | name
33 | );
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/SecurityInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import java.util.List;
19 |
20 | import lombok.Builder;
21 | import lombok.Value;
22 |
23 | @Value
24 | @Builder
25 | public class SecurityInput {
26 | String role;
27 | List principals;
28 | }
29 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/StatusInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.fasterxml.jackson.databind.node.ObjectNode;
22 |
23 | import com.expediagroup.streamplatform.streamregistry.model.Status;
24 |
25 | @Value
26 | @Builder
27 | public class StatusInput {
28 | ObjectNode agentStatus;
29 |
30 | public Status asStatus() {
31 | return new Status(agentStatus);
32 | }
33 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/StreamBindingKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamBindingKey;
22 |
23 | @Value
24 | @Builder
25 | public class StreamBindingKeyInput {
26 | String streamDomain;
27 | String streamName;
28 | Integer streamVersion;
29 | String infrastructureZone;
30 | String infrastructureName;
31 |
32 | public StreamBindingKey asStreamBindingKey() {
33 | return new StreamBindingKey(
34 | streamDomain,
35 | streamName,
36 | streamVersion,
37 | infrastructureZone,
38 | infrastructureName
39 | );
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/StreamKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamKey;
22 |
23 | @Value
24 | @Builder
25 | public class StreamKeyInput {
26 | String domain;
27 | String name;
28 | Integer version;
29 |
30 | public StreamKey asStreamKey() {
31 | return new StreamKey(
32 | domain,
33 | name,
34 | version
35 | );
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/TagInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.Tag;
22 |
23 | @Value
24 | @Builder
25 | public class TagInput {
26 | String name;
27 | String value;
28 |
29 | public Tag asTag() {
30 | return new Tag(name, value);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ZoneKeyInput.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey;
22 |
23 | @Value
24 | @Builder
25 | public class ZoneKeyInput {
26 | String name;
27 |
28 | public ZoneKey asZoneKey() {
29 | return new ZoneKey(
30 | name
31 | );
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ConsumerBindingKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ConsumerBindingKeyQuery {
24 | String streamDomainRegex;
25 | String streamNameRegex;
26 | Integer streamVersion;
27 | String infrastructureZoneRegex;
28 | String infrastructureNameRegex;
29 | String consumerNameRegex;
30 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ConsumerKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ConsumerKeyQuery {
24 | String streamDomainRegex;
25 | String streamNameRegex;
26 | Integer streamVersion;
27 | String zoneRegex;
28 | String nameRegex;
29 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/DomainKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class DomainKeyQuery {
24 | String nameRegex;
25 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/InfrastructureKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class InfrastructureKeyQuery {
24 | String zoneRegex;
25 | String nameRegex;
26 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProcessBindingKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ProcessBindingKeyQuery {
24 | String domainNameRegex;
25 | String infrastructureZoneRegex;
26 | String processNameRegex;
27 | }
28 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProcessKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ProcessKeyQuery {
24 | String domainRegex;
25 | String nameRegex;
26 | }
27 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProducerBindingKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ProducerBindingKeyQuery {
24 | String streamDomainRegex;
25 | String streamNameRegex;
26 | Integer streamVersion;
27 | String infrastructureZoneRegex;
28 | String infrastructureNameRegex;
29 | String producerNameRegex;
30 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProducerKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ProducerKeyQuery {
24 | String streamDomainRegex;
25 | String streamNameRegex;
26 | Integer streamVersion;
27 | String zoneRegex;
28 | String nameRegex;
29 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/SchemaKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class SchemaKeyQuery {
24 | String domainRegex;
25 | String nameRegex;
26 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/SecurityQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class SecurityQuery {
24 | String roleRegex;
25 | String principalRegex;
26 | }
27 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/SpecificationQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import java.util.List;
19 |
20 | import lombok.Builder;
21 | import lombok.Value;
22 |
23 | @Value
24 | @Builder
25 | public class SpecificationQuery {
26 | String descriptionRegex;
27 | List tags;
28 | String typeRegex;
29 | List security;
30 | String functionRegex;
31 | }
32 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/StreamBindingKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class StreamBindingKeyQuery {
24 | String streamDomainRegex;
25 | String streamNameRegex;
26 | Integer streamVersion;
27 | String infrastructureZoneRegex;
28 | String infrastructureNameRegex;
29 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/StreamKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class StreamKeyQuery {
24 | String domainRegex;
25 | String nameRegex;
26 | Integer version;
27 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/TagQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class TagQuery {
24 | String nameRegex;
25 | String valueRegex;
26 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ZoneKeyQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries;
17 |
18 | import lombok.Builder;
19 | import lombok.Value;
20 |
21 | @Value
22 | @Builder
23 | public class ZoneKeyQuery {
24 | String nameRegex;
25 | }
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ConsumerBindingQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ConsumerBindingKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ConsumerBindingKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.ConsumerBinding;
25 |
26 | public interface ConsumerBindingQuery extends GraphQLApiType {
27 | Optional byKey(ConsumerBindingKeyInput key);
28 |
29 | Iterable byQuery(ConsumerBindingKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ConsumerQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ConsumerKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ConsumerKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.Consumer;
25 |
26 | public interface ConsumerQuery extends GraphQLApiType {
27 | Optional byKey(ConsumerKeyInput key);
28 |
29 | Iterable byQuery(ConsumerKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/DomainQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.DomainKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.DomainKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.Domain;
25 |
26 | public interface DomainQuery extends GraphQLApiType {
27 | Optional byKey(DomainKeyInput key);
28 |
29 | Iterable byQuery(DomainKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/InfrastructureQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.InfrastructureKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.InfrastructureKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure;
25 |
26 | public interface InfrastructureQuery extends GraphQLApiType {
27 | Optional byKey(InfrastructureKeyInput key);
28 |
29 | Iterable byQuery(InfrastructureKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ProducerBindingQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ProducerBindingKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ProducerBindingKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.ProducerBinding;
25 |
26 | public interface ProducerBindingQuery extends GraphQLApiType {
27 | Optional byKey(ProducerBindingKeyInput key);
28 |
29 | Iterable byQuery(ProducerBindingKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ProducerQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ProducerKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ProducerKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.Producer;
25 |
26 | public interface ProducerQuery extends GraphQLApiType {
27 | Optional byKey(ProducerKeyInput key);
28 |
29 | Iterable byQuery(ProducerKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/SchemaQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.SchemaKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SchemaKeyQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.Schema;
25 |
26 | public interface SchemaQuery extends GraphQLApiType {
27 | Optional byKey(SchemaKeyInput key);
28 |
29 | Iterable byQuery(SchemaKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/StreamBindingQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.StreamBindingKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.StreamBindingKeyQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.StreamBinding;
25 |
26 | public interface StreamBindingQuery extends GraphQLApiType {
27 | Optional byKey(StreamBindingKeyInput key);
28 |
29 | Iterable byQuery(StreamBindingKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ZoneQuery.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.query;
17 |
18 | import java.util.Optional;
19 |
20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType;
21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ZoneKeyInput;
22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery;
23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ZoneKeyQuery;
24 | import com.expediagroup.streamplatform.streamregistry.model.Zone;
25 |
26 | public interface ZoneQuery extends GraphQLApiType {
27 | Optional byKey(ZoneKeyInput key);
28 |
29 | Iterable byQuery(ZoneKeyQuery key, SpecificationQuery specification);
30 | }
31 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/DomainResolver.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
17 |
18 | import java.util.List;
19 |
20 | import lombok.RequiredArgsConstructor;
21 |
22 | import org.springframework.stereotype.Component;
23 |
24 | import com.expediagroup.streamplatform.streamregistry.core.services.SchemaService;
25 | import com.expediagroup.streamplatform.streamregistry.model.Domain;
26 | import com.expediagroup.streamplatform.streamregistry.model.Schema;
27 |
28 | @Component
29 | @RequiredArgsConstructor
30 | public class DomainResolver implements Resolvers.DomainResolver {
31 | private final SchemaService schemaService;
32 |
33 | public List schemas(Domain domain) {
34 | throw new UnsupportedOperationException("schemaService.find(domain.getKey())");
35 | //return schemaService.find(domain.getKey());
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/InfrastructureResolver.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
17 |
18 | import lombok.RequiredArgsConstructor;
19 |
20 | import org.springframework.stereotype.Component;
21 |
22 | import com.expediagroup.streamplatform.streamregistry.core.services.ZoneService;
23 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure;
24 | import com.expediagroup.streamplatform.streamregistry.model.Zone;
25 |
26 | @Component
27 | @RequiredArgsConstructor
28 | public class InfrastructureResolver implements Resolvers.InfrastructureResolver {
29 | private final ZoneService zoneService;
30 |
31 | public Zone zone(Infrastructure infrastructure) {
32 | return zoneService.get(infrastructure.getKey().getZoneKey()).orElse(null);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/ProcessResolver.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2021 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
17 |
18 | import lombok.RequiredArgsConstructor;
19 |
20 | import org.springframework.stereotype.Component;
21 |
22 | import com.expediagroup.streamplatform.streamregistry.core.services.DomainService;
23 | import com.expediagroup.streamplatform.streamregistry.model.Domain;
24 | import com.expediagroup.streamplatform.streamregistry.model.Process;
25 |
26 | @Component
27 | @RequiredArgsConstructor
28 | public class ProcessResolver implements Resolvers.ProcessResolver {
29 | private final DomainService domainService;
30 |
31 | public Domain domain(Process process) {
32 | return domainService.get(process.getKey().getDomainKey()).orElse(null);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/SchemaResolver.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
17 |
18 | import lombok.RequiredArgsConstructor;
19 |
20 | import org.springframework.stereotype.Component;
21 |
22 | import com.expediagroup.streamplatform.streamregistry.core.services.DomainService;
23 | import com.expediagroup.streamplatform.streamregistry.model.Domain;
24 | import com.expediagroup.streamplatform.streamregistry.model.Schema;
25 |
26 | @Component
27 | @RequiredArgsConstructor
28 | public class SchemaResolver implements Resolvers.SchemaResolver {
29 | private final DomainService domainService;
30 |
31 | public Domain domain(Schema schema) {
32 | return domainService.get(schema.getKey().getDomainKey()).orElse(null);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/StatusResolver.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
17 |
18 | import com.fasterxml.jackson.databind.node.ObjectNode;
19 |
20 | import org.springframework.stereotype.Component;
21 |
22 | import com.expediagroup.streamplatform.streamregistry.model.Status;
23 |
24 | @Component
25 | public class StatusResolver implements Resolvers.StatusResolver {
26 | public ObjectNode getAgentStatus(Status status) {
27 | return status.getObjectNode();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/ZoneResolver.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers;
17 |
18 | import lombok.RequiredArgsConstructor;
19 |
20 | import org.springframework.stereotype.Component;
21 |
22 | @Component
23 | @RequiredArgsConstructor
24 | public class ZoneResolver implements Resolvers.ZoneResolver {}
25 |
--------------------------------------------------------------------------------
/graphql/api/src/main/resources/application-graphql.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | graphql:
3 | tools:
4 | schema-location-pattern: "**/*.graphql"
5 | servlet:
6 | exception-handlers-enabled: true
7 | actuator-metrics: true
8 |
--------------------------------------------------------------------------------
/graphql/maven-plugin/src/main/resources/introspection.query:
--------------------------------------------------------------------------------
1 | query IntrospectionQuery {
2 | __schema {
3 | queryType { name }
4 | mutationType { name }
5 | types {
6 | ...FullType
7 | }
8 | directives {
9 | name
10 | description
11 | args {
12 | ...InputValue
13 | }
14 | }
15 | }
16 | }
17 |
18 | fragment FullType on __Type {
19 | kind
20 | name
21 | description
22 | fields {
23 | name
24 | description
25 | args {
26 | ...InputValue
27 | }
28 | type {
29 | ...TypeRef
30 | }
31 | isDeprecated
32 | deprecationReason
33 | }
34 | inputFields {
35 | ...InputValue
36 | }
37 | interfaces {
38 | ...TypeRef
39 | }
40 | enumValues {
41 | name
42 | description
43 | isDeprecated
44 | deprecationReason
45 | }
46 | possibleTypes {
47 | ...TypeRef
48 | }
49 | }
50 |
51 | fragment InputValue on __InputValue {
52 | name
53 | description
54 | type { ...TypeRef }
55 | defaultValue
56 | }
57 |
58 | fragment TypeRef on __Type {
59 | kind
60 | name
61 | ofType {
62 | kind
63 | name
64 | ofType {
65 | kind
66 | name
67 | ofType {
68 | kind
69 | name
70 | }
71 | }
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/graphql/maven-plugin/src/test/resources/logback-test.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/graphql/maven-plugin/src/test/resources/test.graphql.txt:
--------------------------------------------------------------------------------
1 | type Query {
2 | foo: String!
3 | }
4 |
--------------------------------------------------------------------------------
/graphql/scalars/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/type/BaseCoercing.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2020 Expedia, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.expediagroup.streamplatform.streamregistry.graphql.type;
17 |
18 | import static java.util.Collections.emptyMap;
19 |
20 | import graphql.schema.Coercing;
21 | import graphql.schema.CoercingParseLiteralException;
22 |
23 | abstract class BaseCoercing implements Coercing