omnata-plugin-runtime 0.8.2a203__py3-none-any.whl → 0.8.3a204__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -704,6 +704,7 @@ class OutboundSyncConfigurationParameters(SyncConfigurationParameters):
704
704
  """
705
705
 
706
706
  connection_method: str
707
+ target_type: Optional[str] = Field(default=None, description="The label of the OutboundTargetType selected by the user")
707
708
  connection_parameters: Optional[Dict[str, StoredConfigurationValue]] = Field(default=None)
708
709
  connection_secrets: Optional[Dict[str, StoredConfigurationValue]] = Field(default=None)
709
710
  sync_parameters: Optional[Dict[str, StoredConfigurationValue]] = Field(default=None)
@@ -111,11 +111,45 @@ class PluginManifest(SubscriptableBaseModel):
111
111
  developer_name: str
112
112
  docs_url: str
113
113
  supports_inbound: bool
114
- supported_outbound_strategies: List[OutboundSyncStrategy]
114
+ supported_outbound_strategies: List[OutboundSyncStrategy] = Field(
115
+ ...,
116
+ deprecated=True,
117
+ title="A list of sync strategies that the plugin can support. This has been replaced by OutboundTargetTypes."
118
+ )
115
119
  supported_connectivity_options: List[ConnectivityOption] = Field(
116
120
  default_factory=lambda: [ConnectivityOption.DIRECT]
117
121
  )
122
+ outbound_target_types: List[OutboundTargetType] = Field(
123
+ ...,
124
+ title="A list of target types that the plugin can support. This replaces the deprecated 'supported_outbound_strategies'."
125
+ )
118
126
 
127
+ class OutboundTargetType(BaseModel):
128
+ """
129
+ Some products have APIs that can be grouped together in ways that support different strategies and may or may not support toggling.
130
+ The label should answer the question: "What would you like to sync to?"
131
+ Examples:
132
+ - A CRM system may have "Standard objects", "Custom objects" or "Events"
133
+ - A messaging platform may have "Channels", "Users" or "Messages"
134
+ - A marketing platform may have "Customer lists", "Campaigns" or "Automations"
135
+ - An Ad platform may have "Campaigns", "Ad groups" or "Ads"
136
+ The target type cannot be changed after the sync is created.
137
+ """
138
+ label: str
139
+ supported_strategies: List[OutboundSyncStrategy]
140
+ target_toggle_field: Optional[OutboundTargetToggleField] = None
141
+
142
+ class OutboundTargetToggleField(BaseModel):
143
+ """
144
+ Accomodates testing outbound syncs in production by nominating a form field who's value stays in the branch.
145
+ For example, a messaging plugin could have a "channel" field to route messages to an alternate location.
146
+ Or, a marketing platform could have an alternate customer list name which is connected to test campaigns that don't actually send.
147
+ The field_name must match a field which will be returned by the outbound_configuration_form for this target type.
148
+ The reason this is set separately here instead of as a flag on the FormField, is so that the sync engine can know
149
+ whether or not location toggling is supported for a target type without calling the plugin.
150
+ """
151
+ field_name: str = Field(..., title="The name of the form field that toggles the location")
152
+ label: str = Field(..., title="Used in the UI when describing the location. It should completely describe the behaviour when used in a sentence like this: 'Changes will be tested against a different <label> when running in a branch.'")
119
153
 
120
154
  class SnowflakeFunctionParameter(BaseModel):
121
155
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omnata-plugin-runtime
3
- Version: 0.8.2a203
3
+ Version: 0.8.3a204
4
4
  Summary: Classes and common runtime components for building and running Omnata Plugins
5
5
  Author: James Weakley
6
6
  Author-email: james.weakley@omnata.com
@@ -1,12 +1,12 @@
1
1
  omnata_plugin_runtime/__init__.py,sha256=MS9d1whnfT_B3-ThqZ7l63QeC_8OEKTuaYV5wTwRpBA,1576
2
2
  omnata_plugin_runtime/api.py,sha256=tVi4KLL0v5N3yz3Ie0kSyFemryu572gCbtSRfWN6wBU,6523
3
- omnata_plugin_runtime/configuration.py,sha256=6JmgE4SL3F5cGlDYqt17A1vTFu6nB74yWgEpQ5qV9ho,38380
3
+ omnata_plugin_runtime/configuration.py,sha256=g6A9sFHBBaCgZPjhTM4iYcyEoZDPjB1F24QMboLteyY,38505
4
4
  omnata_plugin_runtime/forms.py,sha256=ueodN2GIMS5N9fqebpY4uNGJnjEb9HcuaVQVfWH-cGg,19838
5
5
  omnata_plugin_runtime/logging.py,sha256=WBuZt8lF9E5oFWM4KYQbE8dDJ_HctJ1pN3BHwU6rcd0,4461
6
- omnata_plugin_runtime/omnata_plugin.py,sha256=-JWudJopR-swV2b04krprpBsgnNyzbuGOIlwugG_o_c,131203
6
+ omnata_plugin_runtime/omnata_plugin.py,sha256=fs8yrPUhZ3rsU4rcl_MuXNltEufb1nKrcXV-I88MTCA,133443
7
7
  omnata_plugin_runtime/plugin_entrypoints.py,sha256=sB_h6OBEMk7lTLIjdNrNo9Sthk8UE9PnK2AUcQJPe9I,32728
8
8
  omnata_plugin_runtime/rate_limiting.py,sha256=eOWVRYWiqPlVeYzmB1exVXfXbrcpmYb7vtTi9B-4zkQ,25868
9
- omnata_plugin_runtime-0.8.2a203.dist-info/LICENSE,sha256=rGaMQG3R3F5-JGDp_-rlMKpDIkg5n0SI4kctTk8eZSI,56
10
- omnata_plugin_runtime-0.8.2a203.dist-info/METADATA,sha256=nN0eL5LHLcNqjeLik2BbZI_30noaLME0EZFYFy_xybc,2158
11
- omnata_plugin_runtime-0.8.2a203.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
12
- omnata_plugin_runtime-0.8.2a203.dist-info/RECORD,,
9
+ omnata_plugin_runtime-0.8.3a204.dist-info/LICENSE,sha256=rGaMQG3R3F5-JGDp_-rlMKpDIkg5n0SI4kctTk8eZSI,56
10
+ omnata_plugin_runtime-0.8.3a204.dist-info/METADATA,sha256=nJD4bsjd9pTQaG1pnZc-Wt_1JVEpYH9pX05uNgY06UI,2158
11
+ omnata_plugin_runtime-0.8.3a204.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
12
+ omnata_plugin_runtime-0.8.3a204.dist-info/RECORD,,