Skip to content

Add missing domain classes, sub-resource methods, and utility APIs to close gap vs Xurrent REST API v1#30

Draft
Copilot wants to merge 6 commits intoDevfrom
copilot/add-missing-domain-classes
Draft

Add missing domain classes, sub-resource methods, and utility APIs to close gap vs Xurrent REST API v1#30
Copilot wants to merge 6 commits intoDevfrom
copilot/add-missing-domain-classes

Conversation

Copy link
Copy Markdown

Copilot AI commented Apr 15, 2026

The Python wrapper was missing ~10 core ITSM resource types, dozens of sub-resource traversal methods on existing classes, and several utility APIs available in the Xurrent REST API v1.

New domain classes (10)

  • Problem — predefined filters, archive/trash/restore, notes/requests/workflows sub-resources
  • ServiceInstance — cis/slas/users sub-resources; referenced widely by other resources
  • Release — archive/trash/restore, workflows/notes sub-resources
  • Project — tasks/phases/workflows/risks/notes sub-resources, archive/trash/restore
  • Contract — CI listing sub-resource
  • KnowledgeArticle — archive/trash/restore, requests/service_instances/translations sub-resources
  • Risk — archive/trash/restore, organizations/projects/services sub-resources
  • ServiceOffering — catalog/portfolio filters
  • SkillPool — enable/disable, members/effort_classes sub-resources
  • ClosureCode — basic CRUD

Sub-resource methods on existing classes (43 new methods)

  • Request: get_attachments, get_knowledge_articles, get_automation_rules, get_satisfaction_feedback, get_tags, get_watches
  • Task: get_notes, add_note, get_approvals, get_cis, get_predecessors, get_successors, get_service_instances, get_automation_rules
  • Workflow: get_notes, add_note, get_automation_rules, get_phases, get_requests, get_problems
  • Person: get_cis, get_addresses, get_contacts, get_permissions, get_ci_coverages, get_sla_coverages, get_service_coverages, get_out_of_office_periods, get_skill_pools
  • Organization: get_addresses, get_contacts, get_contracts, get_risks, get_slas, get_time_allocations
  • Service: get_workflows, get_request_templates, get_risks, get_service_instances, get_slas, get_service_offerings
  • Calendar: get_duration(start, end, time_zone), get_hours, get_holidays
  • Team: get_service_instances
  • Holiday: get_calendars

Utility APIs on XurrentApiHelper (5)

  • search(query, types) — cross-resource full-text search via GET /search
  • bulk_import(data, import_type, import_format) — CSV/TSV bulk import via POST /import
  • list_archive(queryfilter), list_trash(queryfilter) — global archive/trash listings
  • list_audit_lines(queryfilter) — global audit log query

Other

  • __init__.py updated to export all 35 modules
  • 301 unit tests (up from 148); all cross-module references use lazy imports per established convention

Copilot AI and others added 6 commits April 15, 2026 20:33
…jects, contracts, knowledge_articles, risks, service_offerings, skill_pools, closure_codes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: fasteiner <75947402+fasteiner@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: fasteiner <75947402+fasteiner@users.noreply.github.com>
- Requests: get_attachments, get_knowledge_articles, get_automation_rules,
  get_satisfaction_feedback, get_tags, get_watches
- Tasks: get_notes, add_note, get_approvals, get_cis, get_predecessors,
  get_successors, get_service_instances, get_automation_rules
- Workflows: get_notes, add_note, get_automation_rules, get_phases,
  get_requests, get_problems
- People: get_cis, get_addresses, get_contacts, get_permissions,
  get_ci_coverages, get_sla_coverages, get_service_coverages,
  get_out_of_office_periods, get_skill_pools
- Organizations: get_addresses, get_contacts, get_contracts, get_risks,
  get_slas, get_time_allocations
- Services: get_workflows, get_request_templates, get_risks,
  get_service_instances, get_slas, get_service_offerings
- Calendars: get_duration, get_hours, get_holidays
- Teams: get_service_instances
- Holidays: get_calendars

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: fasteiner <75947402+fasteiner@users.noreply.github.com>
…exports

- Add search(), bulk_import(), list_archive(), list_trash(), list_audit_lines() methods to XurrentApiHelper
- Populate __init__.py with exports for all domain classes across all modules

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: fasteiner <75947402+fasteiner@users.noreply.github.com>
…methods

- test_problems.py: Problem CRUD, notes, requests, workflows
- test_service_instances.py: ServiceInstance CRUD, CIs, users
- test_releases.py: Release CRUD, archive/trash/restore, workflows, notes
- test_projects.py: Project CRUD, archive/trash/restore, tasks/phases/workflows/notes
- test_contracts.py: Contract CRUD, CIs
- test_knowledge_articles.py: KnowledgeArticle CRUD, archive/trash/restore, requests/service_instances/translations
- test_risks.py: Risk CRUD, archive/trash/restore, organizations/projects/services
- test_service_offerings.py: ServiceOffering CRUD
- test_skill_pools.py: SkillPool CRUD, enable/disable, members/effort_classes
- test_closure_codes.py: ClosureCode CRUD
- test_new_sub_resources.py: new sub-resource methods on Request, Task, Workflow,
  Person, Organization, Service, Calendar, Holiday, Team; core search/bulk_import/
  list_archive/list_trash/list_audit_lines utilities

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: fasteiner <75947402+fasteiner@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants