Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Introduction

Zuora is a subscription billing and finance solution. It is designed to automate recurring billing, collections, quoting, revenue recognition, and subscription metrics.

User Storie(s)

  • As a pipeline developer, I would like to pull data from an object in Zuora in a streaming pipeline, so that I can transform, enrich and synthesize it in a data pipeline.
  • As a pipeline developer, I would like to post data to an object in Zuora in a batch or streaming pipeline, so that I can update Zuora with my enriched data.
  • As a pipeline developer, I would like to pull data from an object in Zuora in a batch pipeline, so that I can transform, enrich and synthesize it in a data pipeline.
  • As a pipeline developer, for both batch and streaming sources, I would like the schema to be auto-populated based on the selected objects.
  • As a pipeline developer, for all interactions with Zuora, I would like Zuora API limits to be handled by the framework, so that I do not have to worry about them. (https://knowledgecenter.zuora.com/BB_Introducing_Z_Business/Policies/Concurrent_Request_Limits)

Plugin Type

  •  Batch Source
  •  Batch Sink 
  •  Real-time Source
  •  Real-time Sink
  •  Action
  •  Post-Run Action
  •  Aggregate
  •  Join
  •  Spark Model
  •  Spark Compute

Configurables

Batch source - single object

Should automatically populate schema for the selected object

SectionUser Facing NameTypeDescriptionOptional?DefaultConstraints
AuthenticationAuthentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

BasicObject to pullselectThe Zuora object to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Batch source - multi object

Should generate records for every object, with a field in every record that identifies the object.

SectionUser Facing NameTypeDescriptionOptional?DefaultConstraints
AuthenticationAuthentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

BasicObject(s) to pullmulti-selectThe Zuora objects to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Streaming source

Should automatically populate schema for the selected object

SectionUser Facing NameTypeDescriptionOptional?DefaultConstraints
AuthenticationAuthentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

BasicObject to pullselectThe Zuora object to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Batch sink

Writes data to the selected object in Zuora

User Facing NameTypeDescriptionOptional?DefaultConstraints
Authentication Typeradio buttonThe Authentication type to use, either OAuth2 or Password or Authorization Cookie. Defaults to OAuth2.NoOAuth2
Access Key IDStringThe Zuora ID to use to make request. Only required when authentication type is password.Yes

Secret KeypasswordThe Zuora password. Only required when authentication type is password.Yes

Client IdStringThe Client ID of the OAuth2 client. Only required when Authentication Type is OAuth2Yes

Client SecretpasswordThe Client Secret that was displayed when the OAuth2 client was created. Only required when Authentication Type is OAuth2Yes

Authorization CookiepasswordThe authorization cookie to use for session authentication. Only required when authentication type is Authorization Cookie.Yes

Object to write toselectThe Zuora objects to pull from the list at https://www.zuora.com/developer/api-reference/#section/Zuora-Object-ModelNoAccount

Design / Implementation Tips

  • Tip #1
  • Tip #2

Design

Approach(s)

Properties

Security

Limitation(s)

Future Work

  • Some future work – HYDRATOR-99999
  • Another future work – HYDRATOR-99999

Test Case(s)

  • Test case #1
  • Test case #2

Sample Pipeline

Please attach one or more sample pipeline(s) and associated data. 

Pipeline #1

Pipeline #2



Table of Contents

Table of Contents
stylecircle

Checklist

  •  User stories documented 
  •  User stories reviewed 
  •  Design documented 
  •  Design reviewed 
  •  Feature merged 
  •  Examples and guides 
  •  Integration tests 
  •  Documentation for feature 
  •  Short video demonstrating the feature