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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,,