Skip to content

Commit 495f407

Browse files
committed
regenerate pdfco, include docuware, signinghub
1 parent 4297ffa commit 495f407

13 files changed

Lines changed: 10655 additions & 7 deletions

File tree

.github/skills/connection-setup/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Remove-Item $tempFile -ErrorAction SilentlyContinue
6565
6666
### Step 2: Create Connection
6767
68-
Supported SDK connector names: `arm`, `azureautomation`, `azuredatafactory`, `azuredigitaltwins`, `azuremonitorlogs`, `azuread`, `azureblob`, `box`, `azurequeues`, `azuretables`, `azurevm`, `commondataservice`, `documentdb`, `dropbox`, `docusign`, `eventhubs`, `excelonline`, `excelonlinebusiness`, `ftp`, `github`, `googlecalendar`, `googledrive`, `googletasks`, `jira`, `keyvault`, `kusto`, `microsoftbookings`, `microsoftforms`, `mq`, `msgraphgroupsanduser`, `office365`, `office365groups`, `office365groupsmail`, `office365users`, `onedrive`, `onedriveforbusiness`, `onenote`, `outlook`, `planner`, `powerbi`, `rss`, `salesforce`, `servicebus`, `sharepointonline`, `shifts`, `slack`, `smtp`, `teams`, `todo`, `universalprint`, `azureeventgrid`, `azureiotcentral`, `cloudmersiveconvert`, `dynamicsax`, `pdfco`, `plumsail`, `sql`, `wdatp`, `wordonlinebusiness`, `yammer`, `zendesk`, `pipedrive` (and any `Microsoft.Web/connections` connector name).
68+
Supported SDK connector names: `arm`, `azureautomation`, `azuredatafactory`, `azuredigitaltwins`, `azuremonitorlogs`, `azuread`, `azureblob`, `box`, `azurequeues`, `azuretables`, `azurevm`, `commondataservice`, `documentdb`, `dropbox`, `docusign`, `eventhubs`, `excelonline`, `excelonlinebusiness`, `ftp`, `github`, `googlecalendar`, `googledrive`, `googletasks`, `jira`, `keyvault`, `kusto`, `microsoftbookings`, `microsoftforms`, `mq`, `msgraphgroupsanduser`, `office365`, `office365groups`, `office365groupsmail`, `office365users`, `onedrive`, `onedriveforbusiness`, `onenote`, `outlook`, `planner`, `powerbi`, `rss`, `salesforce`, `servicebus`, `sharepointonline`, `shifts`, `slack`, `smtp`, `teams`, `todo`, `universalprint`, `azureeventgrid`, `azureiotcentral`, `cloudmersiveconvert`, `dynamicsax`, `pdfco`, `plumsail`, `sql`, `wdatp`, `wordonlinebusiness`, `yammer`, `zendesk`, `pipedrive`, `docuware`, `signinghub` (and any `Microsoft.Web/connections` connector name).
6969
7070
```powershell
7171
$connectorName = "<connector-name>" # e.g., "azureblob", "kusto", "mq", "msgraphgroupsanduser", "office365", "office365users", "sharepointonline", "teams"

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- **DocuWare** (`docuware.py`) connector client with unit tests and samples
13+
- **SigningHub** (`signinghub.py`) connector client with unit tests and samples
1214
- **Pipedrive** (`pipedrive.py`) connector client with unit tests and samples
1315
- **Zendesk** (`zendesk.py`) connector client with unit tests and samples
1416
- **SQL Server** (`sql.py`) connector client with unit tests and samples

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,10 @@ The following connectors have been generated and validated with comprehensive te
216216
| **Yammer** | `azure.connectors.yammer` | ✅ Complete | 🔄 SDK Generated |
217217
| **Zendesk** | `azure.connectors.zendesk` | ✅ Complete | 🔄 SDK Generated |
218218
| **Pipedrive** | `azure.connectors.pipedrive` | ✅ Complete | 🔄 SDK Generated |
219+
| **DocuWare** | `azure.connectors.docuware` | ✅ Complete | 🔄 SDK Generated |
220+
| **SigningHub** | `azure.connectors.signinghub` | ✅ Complete | 🔄 SDK Generated |
219221

220-
**Total:** 62 connectors supported
222+
**Total:** 64 connectors supported
221223

222224
See [ROADMAP.md](ROADMAP.md) for planned connector additions and [tests/README.md](tests/README.md) for detailed test coverage.
223225

samples/sample_connector_usage/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ python sample_connector_usage_<connector>.py
8080
| `sample_connector_usage_sql.py` | SQL Server | `SQL_CONNECTION_URL` |
8181
| `sample_connector_usage_zendesk.py` | Zendesk | `ZENDESK_CONNECTION_URL` |
8282
| `sample_connector_usage_pipedrive.py` | Pipedrive | `PIPEDRIVE_CONNECTION_URL` |
83+
| `sample_connector_usage_docuware.py` | DocuWare | `DOCUWARE_CONNECTION_URL` |
84+
| `sample_connector_usage_signinghub.py` | SigningHub | `SIGNINGHUB_CONNECTION_URL` |
8385

8486
Set the appropriate environment variable to your connection runtime URL before running:
8587

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
3+
"""
4+
DocuWare Connector SDK Sample
5+
6+
This sample demonstrates how to use the DocuWare connector SDK.
7+
8+
Prerequisites:
9+
1. Azure subscription with a DocuWare connection
10+
2. DocuWare connection in Connector Namespaces
11+
3. Connection runtime URL from Azure Portal
12+
13+
Installation:
14+
pip install azure-connectors
15+
16+
Usage:
17+
Set environment variable:
18+
$env:DOCUWARE_CONNECTION_URL =
19+
"https://[region].azure-apihub.net/apim/docuware/[connection-id]"
20+
21+
python sample_connector_usage_docuware.py
22+
"""
23+
24+
import asyncio
25+
import os
26+
27+
from azure.identity.aio import DefaultAzureCredential
28+
29+
from azure.connectors import ConnectorException
30+
from azure.connectors.docuware import (
31+
DocuwareClient,
32+
SearchForDocumentsInFileCabinetInput,
33+
)
34+
35+
# Connection runtime URL format:
36+
# https://[region].azure-apihub.net/apim/docuware/[connection-id]
37+
CONNECTION_RUNTIME_URL = os.environ.get("DOCUWARE_CONNECTION_URL", "")
38+
39+
40+
async def example_1_get_file_cabinets():
41+
"""Example 1: List available file cabinets and document trays."""
42+
print("\n=== Example 1: Get file cabinets ===")
43+
44+
credential = DefaultAzureCredential()
45+
46+
async with DocuwareClient(CONNECTION_RUNTIME_URL, credential) as client:
47+
try:
48+
result = await client.get_file_cabinets_async(
49+
file_cabinet_type=None,
50+
)
51+
52+
print(f"File cabinets result: {result}")
53+
54+
except ConnectorException as ex:
55+
print(f"Connector error: {ex}")
56+
except Exception as ex:
57+
print(f"Error: {ex}")
58+
59+
60+
async def example_2_search_documents():
61+
"""Example 2: Search a file cabinet for matching documents."""
62+
print("\n=== Example 2: Search documents in file cabinet ===")
63+
64+
credential = DefaultAzureCredential()
65+
66+
async with DocuwareClient(CONNECTION_RUNTIME_URL, credential) as client:
67+
try:
68+
request = SearchForDocumentsInFileCabinetInput()
69+
70+
result = await client.search_for_documents_in_file_cabinet_async(
71+
input=request,
72+
file_cabinet="<file-cabinet-id>",
73+
search_dialog_id=None,
74+
)
75+
76+
print(f"Search result: {result}")
77+
78+
except ConnectorException as ex:
79+
print(f"Connector error: {ex}")
80+
except Exception as ex:
81+
print(f"Error: {ex}")
82+
83+
84+
async def main():
85+
"""Run all examples."""
86+
if not CONNECTION_RUNTIME_URL:
87+
print("Error: DOCUWARE_CONNECTION_URL environment variable not set.")
88+
print("Set it to your connection runtime URL from Azure Portal.")
89+
return
90+
91+
print(f"Using connection URL: {CONNECTION_RUNTIME_URL[:50]}...")
92+
93+
await example_1_get_file_cabinets()
94+
await example_2_search_documents()
95+
96+
print("\n=== All examples completed ===")
97+
98+
99+
if __name__ == "__main__":
100+
asyncio.run(main())
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
# Copyright (c) Microsoft Corporation. All rights reserved.
2+
3+
"""
4+
SigningHub Connector SDK Sample
5+
6+
This sample demonstrates how to use the SigningHub connector SDK.
7+
8+
Prerequisites:
9+
1. Azure subscription with a SigningHub connection
10+
2. SigningHub connection in Connector Namespaces
11+
3. Connection runtime URL from Azure Portal
12+
13+
Installation:
14+
pip install azure-connectors
15+
16+
Usage:
17+
Set environment variable:
18+
$env:SIGNINGHUB_CONNECTION_URL =
19+
"https://[region].azure-apihub.net/apim/signinghub/[connection-id]"
20+
21+
python sample_connector_usage_signinghub.py
22+
"""
23+
24+
import asyncio
25+
import os
26+
27+
from azure.identity.aio import DefaultAzureCredential
28+
29+
from azure.connectors import ConnectorException
30+
from azure.connectors.signinghub import (
31+
SigninghubClient,
32+
CheckBoxFieldRequest,
33+
)
34+
35+
# Connection runtime URL format:
36+
# https://[region].azure-apihub.net/apim/signinghub/[connection-id]
37+
CONNECTION_RUNTIME_URL = os.environ.get("SIGNINGHUB_CONNECTION_URL", "")
38+
39+
40+
async def example_1_get_contacts():
41+
"""Example 1: Retrieve contacts for the current user."""
42+
print("\n=== Example 1: Get Contacts ===")
43+
44+
credential = DefaultAzureCredential()
45+
46+
async with SigninghubClient(CONNECTION_RUNTIME_URL, credential) as client:
47+
try:
48+
result = await client.contacts_get_async(
49+
record_per_page="10",
50+
page_no="1",
51+
)
52+
53+
print(f"Contacts result: {result}")
54+
55+
except ConnectorException as ex:
56+
print(f"Connector error: {ex}")
57+
except Exception as ex:
58+
print(f"Error: {ex}")
59+
60+
61+
async def example_2_add_check_box_field():
62+
"""Example 2: Add a checkbox field to a document in a package."""
63+
print("\n=== Example 2: Add CheckBox Field ===")
64+
65+
credential = DefaultAzureCredential()
66+
67+
async with SigninghubClient(CONNECTION_RUNTIME_URL, credential) as client:
68+
try:
69+
request = CheckBoxFieldRequest()
70+
71+
result = await client.checkbox_add_check_box_async(
72+
input=request,
73+
package_id="<package-id>",
74+
document_id="<document-id>",
75+
)
76+
77+
print(f"Add checkbox result: {result}")
78+
79+
except ConnectorException as ex:
80+
print(f"Connector error: {ex}")
81+
except Exception as ex:
82+
print(f"Error: {ex}")
83+
84+
85+
async def example_3_delete_attachment():
86+
"""Example 3: Delete an attachment from a document."""
87+
print("\n=== Example 3: Delete Attachment ===")
88+
89+
credential = DefaultAzureCredential()
90+
91+
async with SigninghubClient(CONNECTION_RUNTIME_URL, credential) as client:
92+
try:
93+
await client.attachment_delete_attachment_async(
94+
package_id="<package-id>",
95+
document_id="<document-id>",
96+
attachment_id="<attachment-id>",
97+
)
98+
99+
print("Attachment deleted successfully")
100+
101+
except ConnectorException as ex:
102+
print(f"Connector error: {ex}")
103+
except Exception as ex:
104+
print(f"Error: {ex}")
105+
106+
107+
async def main():
108+
"""Run all examples."""
109+
if not CONNECTION_RUNTIME_URL:
110+
print("Error: SIGNINGHUB_CONNECTION_URL environment variable not set.")
111+
print("Set it to your connection runtime URL from Azure Portal.")
112+
return
113+
114+
print(f"Using connection URL: {CONNECTION_RUNTIME_URL[:50]}...")
115+
116+
await example_1_get_contacts()
117+
await example_2_add_check_box_field()
118+
await example_3_delete_attachment()
119+
120+
print("\n=== All examples completed ===")
121+
122+
123+
if __name__ == "__main__":
124+
asyncio.run(main())

src/azure/connectors/__init__.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,16 @@
296296
except (ImportError, NameError):
297297
PipedriveClient = None # type: ignore[assignment,misc]
298298

299+
try:
300+
from .docuware import DocuwareClient
301+
except (ImportError, NameError):
302+
DocuwareClient = None # type: ignore[assignment,misc]
303+
304+
try:
305+
from .signinghub import SigninghubClient
306+
except (ImportError, NameError):
307+
SigninghubClient = None # type: ignore[assignment,misc]
308+
299309
__version__ = '0.3.0b2'
300310

301311
__all__ = [
@@ -370,4 +380,6 @@
370380
"SqlClient",
371381
"ZendeskClient",
372382
"PipedriveClient",
383+
"DocuwareClient",
384+
"SigninghubClient",
373385
]

0 commit comments

Comments
 (0)