| Interface | Description | 
|---|---|
| ExpandingInputDescriptorProvider<StreamExpanderType> | Interface for advanced  SystemDescriptors that constrain the type of returnedInputDescriptors to
 their ownStreamExpanderfunction result types. | 
| InputTransformer<OM> | Transforms an  IncomingMessageEnvelopewith deserialized key and message to a message of typeOMwhich is delivered to theMessageStream. | 
| OutputDescriptorProvider | Interface for simple  SystemDescriptorsthat returnOutputDescriptorsparameterized by the type of
 the provided stream level serde. | 
| SimpleInputDescriptorProvider | Interface for simple  SystemDescriptorsthat returnInputDescriptorsparameterized by the type of
 the provided stream level serde. | 
| StreamExpander<OM> | Expands the provided  InputDescriptorto a sub-DAG of one or more operators on theStreamApplicationDescriptor, and returns a newMessageStreamwith the combined results. | 
| TransformingInputDescriptorProvider<InputTransformerType> | Interface for advanced  SystemDescriptors that constrain the type of returnedInputDescriptors to
 their ownInputTransformerfunction result types. | 
| Class | Description | 
|---|---|
| GenericInputDescriptor<StreamMessageType> | A  GenericInputDescriptorcan be used for specifying Samza and system-specific properties of
 input streams. | 
| GenericOutputDescriptor<StreamMessageType> | A  GenericOutputDescriptorcan be used for specifying Samza and system-specific properties of
 output streams. | 
| GenericSystemDescriptor | A  GenericSystemDescriptorcan be used for specifying Samza and system-specific properties of an
 input/output system. | 
| InputDescriptor<StreamMessageType,SubClass extends InputDescriptor<StreamMessageType,SubClass>> | An  InputDescriptorcan be used for specifying Samza and system-specific properties of input streams. | 
| OutputDescriptor<StreamMessageType,SubClass extends OutputDescriptor<StreamMessageType,SubClass>> | An  OutputDescriptorcan be used for specifying Samza and system-specific properties of output streams. | 
| StreamDescriptor<StreamMessageType,SubClass extends StreamDescriptor<StreamMessageType,SubClass>> | A  StreamDescriptorcan be used for specifying Samza and system-specific properties of input/output streams. | 
| SystemDescriptor<SubClass extends SystemDescriptor<SubClass>> | A  SystemDescriptorcan be used for specifying Samza and system-specific properties of an input/output system. |