Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AutoPR datafactory/resource-manager] [Datafactory] Add Webhook Activity to Azure Data Factory #4140

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@
from .wait_activity_py3 import WaitActivity
from .for_each_activity_py3 import ForEachActivity
from .if_condition_activity_py3 import IfConditionActivity
from .web_hook_activity_py3 import WebHookActivity
from .execute_pipeline_activity_py3 import ExecutePipelineActivity
from .control_activity_py3 import ControlActivity
from .linked_integration_runtime_py3 import LinkedIntegrationRuntime
Expand Down Expand Up @@ -702,6 +703,7 @@
from .wait_activity import WaitActivity
from .for_each_activity import ForEachActivity
from .if_condition_activity import IfConditionActivity
from .web_hook_activity import WebHookActivity
from .execute_pipeline_activity import ExecutePipelineActivity
from .control_activity import ControlActivity
from .linked_integration_runtime import LinkedIntegrationRuntime
Expand Down Expand Up @@ -787,6 +789,7 @@
CopyBehaviorType,
PolybaseSettingsRejectType,
SapCloudForCustomerSinkWriteBehavior,
WebHookActivityMethod,
IntegrationRuntimeType,
SelfHostedIntegrationRuntimeNodeStatus,
IntegrationRuntimeUpdateResult,
Expand Down Expand Up @@ -1132,6 +1135,7 @@
'WaitActivity',
'ForEachActivity',
'IfConditionActivity',
'WebHookActivity',
'ExecutePipelineActivity',
'ControlActivity',
'LinkedIntegrationRuntime',
Expand Down Expand Up @@ -1216,6 +1220,7 @@
'CopyBehaviorType',
'PolybaseSettingsRejectType',
'SapCloudForCustomerSinkWriteBehavior',
'WebHookActivityMethod',
'IntegrationRuntimeType',
'SelfHostedIntegrationRuntimeNodeStatus',
'IntegrationRuntimeUpdateResult',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ControlActivity(Activity):
You probably want to use the sub-classes and not this class directly. Known
sub-classes are: AppendVariableActivity, SetVariableActivity,
FilterActivity, UntilActivity, WaitActivity, ForEachActivity,
IfConditionActivity, ExecutePipelineActivity
IfConditionActivity, WebHookActivity, ExecutePipelineActivity

All required parameters must be populated in order to send to Azure.

Expand Down Expand Up @@ -52,7 +52,7 @@ class ControlActivity(Activity):
}

_subtype_map = {
'type': {'AppendVariable': 'AppendVariableActivity', 'SetVariable': 'SetVariableActivity', 'Filter': 'FilterActivity', 'Until': 'UntilActivity', 'Wait': 'WaitActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'ExecutePipeline': 'ExecutePipelineActivity'}
'type': {'AppendVariable': 'AppendVariableActivity', 'SetVariable': 'SetVariableActivity', 'Filter': 'FilterActivity', 'Until': 'UntilActivity', 'Wait': 'WaitActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'WebHook': 'WebHookActivity', 'ExecutePipeline': 'ExecutePipelineActivity'}
}

def __init__(self, **kwargs):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ControlActivity(Activity):
You probably want to use the sub-classes and not this class directly. Known
sub-classes are: AppendVariableActivity, SetVariableActivity,
FilterActivity, UntilActivity, WaitActivity, ForEachActivity,
IfConditionActivity, ExecutePipelineActivity
IfConditionActivity, WebHookActivity, ExecutePipelineActivity

All required parameters must be populated in order to send to Azure.

Expand Down Expand Up @@ -52,7 +52,7 @@ class ControlActivity(Activity):
}

_subtype_map = {
'type': {'AppendVariable': 'AppendVariableActivity', 'SetVariable': 'SetVariableActivity', 'Filter': 'FilterActivity', 'Until': 'UntilActivity', 'Wait': 'WaitActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'ExecutePipeline': 'ExecutePipelineActivity'}
'type': {'AppendVariable': 'AppendVariableActivity', 'SetVariable': 'SetVariableActivity', 'Filter': 'FilterActivity', 'Until': 'UntilActivity', 'Wait': 'WaitActivity', 'ForEach': 'ForEachActivity', 'IfCondition': 'IfConditionActivity', 'WebHook': 'WebHookActivity', 'ExecutePipeline': 'ExecutePipelineActivity'}
}

def __init__(self, *, name: str, additional_properties=None, description: str=None, depends_on=None, user_properties=None, **kwargs) -> None:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,11 @@ class SapCloudForCustomerSinkWriteBehavior(str, Enum):
update = "Update"


class WebHookActivityMethod(str, Enum):

post = "POST"


class IntegrationRuntimeType(str, Enum):

managed = "Managed"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from .control_activity import ControlActivity


class WebHookActivity(ControlActivity):
"""WebHook activity.

Variables are only populated by the server, and will be ignored when
sending a request.

All required parameters must be populated in order to send to Azure.

:param additional_properties: Unmatched properties from the message are
deserialized this collection
:type additional_properties: dict[str, object]
:param name: Required. Activity name.
:type name: str
:param description: Activity description.
:type description: str
:param depends_on: Activity depends on condition.
:type depends_on: list[~azure.mgmt.datafactory.models.ActivityDependency]
:param user_properties: Activity user properties.
:type user_properties: list[~azure.mgmt.datafactory.models.UserProperty]
:param type: Required. Constant filled by server.
:type type: str
:ivar method: Required. Rest API method for target endpoint. Default
value: "POST" .
:vartype method: str
:param url: Required. WebHook activity target endpoint and path. Type:
string (or Expression with resultType string).
:type url: object
:param timeout: Specifies the timeout within which the webhook should be
called back. If there is no value specified, it takes the value of
TimeSpan.FromMinutes(10) which is 10 minutes as default. Type: string (or
Expression with resultType string), pattern:
((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
:type timeout: object
:param headers: Represents the headers that will be sent to the request.
For example, to set the language and type on a request: "headers" : {
"Accept-Language": "en-us", "Content-Type": "application/json" }. Type:
string (or Expression with resultType string).
:type headers: object
:param body: Represents the payload that will be sent to the endpoint.
Required for POST/PUT method, not allowed for GET method Type: string (or
Expression with resultType string).
:type body: object
:param authentication: Authentication method used for calling the
endpoint.
:type authentication:
~azure.mgmt.datafactory.models.WebActivityAuthentication
"""

_validation = {
'name': {'required': True},
'type': {'required': True},
'method': {'required': True, 'constant': True},
'url': {'required': True},
}

_attribute_map = {
'additional_properties': {'key': '', 'type': '{object}'},
'name': {'key': 'name', 'type': 'str'},
'description': {'key': 'description', 'type': 'str'},
'depends_on': {'key': 'dependsOn', 'type': '[ActivityDependency]'},
'user_properties': {'key': 'userProperties', 'type': '[UserProperty]'},
'type': {'key': 'type', 'type': 'str'},
'method': {'key': 'typeProperties.method', 'type': 'str'},
'url': {'key': 'typeProperties.url', 'type': 'object'},
'timeout': {'key': 'typeProperties.timeout', 'type': 'object'},
'headers': {'key': 'typeProperties.headers', 'type': 'object'},
'body': {'key': 'typeProperties.body', 'type': 'object'},
'authentication': {'key': 'typeProperties.authentication', 'type': 'WebActivityAuthentication'},
}

method = "POST"

def __init__(self, **kwargs):
super(WebHookActivity, self).__init__(**kwargs)
self.url = kwargs.get('url', None)
self.timeout = kwargs.get('timeout', None)
self.headers = kwargs.get('headers', None)
self.body = kwargs.get('body', None)
self.authentication = kwargs.get('authentication', None)
self.type = 'WebHook'
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from .control_activity_py3 import ControlActivity


class WebHookActivity(ControlActivity):
"""WebHook activity.

Variables are only populated by the server, and will be ignored when
sending a request.

All required parameters must be populated in order to send to Azure.

:param additional_properties: Unmatched properties from the message are
deserialized this collection
:type additional_properties: dict[str, object]
:param name: Required. Activity name.
:type name: str
:param description: Activity description.
:type description: str
:param depends_on: Activity depends on condition.
:type depends_on: list[~azure.mgmt.datafactory.models.ActivityDependency]
:param user_properties: Activity user properties.
:type user_properties: list[~azure.mgmt.datafactory.models.UserProperty]
:param type: Required. Constant filled by server.
:type type: str
:ivar method: Required. Rest API method for target endpoint. Default
value: "POST" .
:vartype method: str
:param url: Required. WebHook activity target endpoint and path. Type:
string (or Expression with resultType string).
:type url: object
:param timeout: Specifies the timeout within which the webhook should be
called back. If there is no value specified, it takes the value of
TimeSpan.FromMinutes(10) which is 10 minutes as default. Type: string (or
Expression with resultType string), pattern:
((\\d+)\\.)?(\\d\\d):(60|([0-5][0-9])):(60|([0-5][0-9])).
:type timeout: object
:param headers: Represents the headers that will be sent to the request.
For example, to set the language and type on a request: "headers" : {
"Accept-Language": "en-us", "Content-Type": "application/json" }. Type:
string (or Expression with resultType string).
:type headers: object
:param body: Represents the payload that will be sent to the endpoint.
Required for POST/PUT method, not allowed for GET method Type: string (or
Expression with resultType string).
:type body: object
:param authentication: Authentication method used for calling the
endpoint.
:type authentication:
~azure.mgmt.datafactory.models.WebActivityAuthentication
"""

_validation = {
'name': {'required': True},
'type': {'required': True},
'method': {'required': True, 'constant': True},
'url': {'required': True},
}

_attribute_map = {
'additional_properties': {'key': '', 'type': '{object}'},
'name': {'key': 'name', 'type': 'str'},
'description': {'key': 'description', 'type': 'str'},
'depends_on': {'key': 'dependsOn', 'type': '[ActivityDependency]'},
'user_properties': {'key': 'userProperties', 'type': '[UserProperty]'},
'type': {'key': 'type', 'type': 'str'},
'method': {'key': 'typeProperties.method', 'type': 'str'},
'url': {'key': 'typeProperties.url', 'type': 'object'},
'timeout': {'key': 'typeProperties.timeout', 'type': 'object'},
'headers': {'key': 'typeProperties.headers', 'type': 'object'},
'body': {'key': 'typeProperties.body', 'type': 'object'},
'authentication': {'key': 'typeProperties.authentication', 'type': 'WebActivityAuthentication'},
}

method = "POST"

def __init__(self, *, name: str, url, additional_properties=None, description: str=None, depends_on=None, user_properties=None, timeout=None, headers=None, body=None, authentication=None, **kwargs) -> None:
super(WebHookActivity, self).__init__(additional_properties=additional_properties, name=name, description=description, depends_on=depends_on, user_properties=user_properties, **kwargs)
self.url = url
self.timeout = timeout
self.headers = headers
self.body = body
self.authentication = authentication
self.type = 'WebHook'