Skip to content

feat: map the Organizations-area response members from the 1.74.0 gap report - #417

Merged
danielabbatt merged 1 commit into
mainfrom
feat/map-organizations-members
Sep 29, 2026
Merged

danielabbatt merged 1 commit into
mainfrom
feat/map-organizations-members

Conversation

@danielabbatt

@danielabbatt danielabbatt commented Sep 9, 2026 •

Copy link
Copy Markdown
Contributor

Rebased onto main on 2026-09-29 (main builds as 1.70.147). Merges as 1.74.7.

Before merging, retarget the base to main. Base branches are not auto-deleted in this repo, so GitHub will not retarget for you, and merging into the old base leaves the work off main (what happened to #413). Merge only after #416 is on main, with a merge commit; do not squash, rebase or click Update branch.

Stacked on #416, in the chain that starts at #415

Base is fix/response-shape-defects. Merge #415 and #416 first (merge commits), then retarget this to main. Changelog label 1.74.7 assumes that order.

What

The first per-area batch from gap-report-v1.74.0.md: 30 Organizations-area members the spec documents that the models lacked, across 17 classes. Types and read/write access come from the spec; XML docs are the spec descriptions.

Kind Count Notes
Scalars on existing classes 15 LoginSecurity.EnforceLockedIpSessions, NextUpgrade.Strategy, SamlIdp.SsoLoginUrl/.VisionConsumerUrl, OrganizationDevice.Imei and others
Nested objects 9 3 reuse existing product types (FirmwareProducts.CampusGateway, both SwitchCatalyst), 6 need new classes
New classes 6 NextUpgradePredownload, NetworkStatusSummaryGroup, NetworkStatusSummaryPermissions, OrganizationAdaptivePolicyOverviewLimits, OrganizationAssuranceAlertsOverviewByTypeItemNetwork, WebhookAlertTypeExample

NextUpgrade.Strategy is a string? rather than an enum (minimizeClientDowntime / minimizeUpgradeTime) so an unlisted value can't break deserialization.

Three corrections, not just additions

The diff surfaced three models in this area that never matched the API. Reading their old members always gave defaults, so changing them is breaking only in the type-system sense:

  1. OrganizationAssuranceAlertsOverviewByTypeItem was a copy of the by-network item (AlertCount, NetworkId, NetworkName, SeverityCounts). The API sends type, categoryType, severity, count, networkCount, networks, deviceTypes, deviceTags, lastAlertedAt, lastResolvedAt. Rebuilt to that; OrganizationAssuranceAlertsOverviewByTypeItemSeverityCount is [Obsolete].
  2. WebhookAlertType had the example payload's 19 fields flattened onto the alert type. The API sends {alertTypeId, alertType, example}. The flattened ones are [Obsolete] pointing at the new Example, which also carries five fields they never had.
  3. OrganizationDevicesSyslogServersRolesByNetworkItem.AvailableRoles mapped availableRoles; the API sends available. DataMember fixed, C# name kept.

Verification

dotnet build Meraki.Api.slnx -c Debug   Build succeeded, 0 Error(s), 6 pre-existing CS0618 warnings
Meraki.Api.Test (Data namespace)        Total: 30, Errors: 0, Failed: 0   (7 new in OrganizationsMemberTests)
Meraki.Api.Test (Workflows)             Total: 12, Errors: 0, Failed: 0

All 18 edited model files kept their BOM state and CRLF. No code outside Data referenced the corrected members.

Next

Remaining areas in the report, largest first: SM (27), Appliance (25), Wireless (19), General (10), Camera (8), CellularGateway (7), Switch (7), Sensor (6), LiveTools (2), Licensing (1).

@codacy-production

codacy-production Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 9 complexity

Metric Results
Complexity 9

View in Codacy

🟢 Coverage 100.00% diff coverage · +0.64% coverage variation

Metric Results
Coverage variation ✅ +0.64% coverage variation
Diff coverage ✅ 100.00% diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (9d400ac) 7839 2719 34.69%
Head commit (ffe8209) 7838 (-1) 2769 (+50) 35.33% (+0.64%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#417) 3 3 100.00%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

AI Reviewer: run a review on demand. To trigger the first review automatically, go to your organization or repository integration settings. AI can make mistakes. Always validate suggestions.

Run reviewer

TIP This summary will be updated as you push new changes.

… report

Thirty members the v1.74.0 spec documents that the models lacked, the first
of the per-area batches. Scalars on eleven existing classes, and nested
objects backed by six new classes (NextUpgradePredownload,
NetworkStatusSummaryGroup, NetworkStatusSummaryPermissions,
OrganizationAdaptivePolicyOverviewLimits,
OrganizationAssuranceAlertsOverviewByTypeItemNetwork,
WebhookAlertTypeExample). Read-only except where the spec puts the member on
a request body.

Three models in the area never matched the API and are corrected:

  OrganizationAssuranceAlertsOverviewByTypeItem carried a copy of the
  by-network item's members; it now has the documented shape and the old
  SeverityCount type is [Obsolete].
  WebhookAlertType had the example payload's fields flattened onto the alert
  type; the API sends them under "example". They are [Obsolete] at the top
  level and available on Example.
  OrganizationDevicesSyslogServersRolesByNetworkItem mapped "availableRoles";
  the API sends "available". C# name unchanged.

OrganizationsMemberTests covers the new members and the corrected shapes.
@danielabbatt
danielabbatt force-pushed the fix/response-shape-defects branch from dcef70e to 9d400ac Compare September 29, 2026 12:56
@danielabbatt
danielabbatt force-pushed the feat/map-organizations-members branch from 6a7aa02 to ffe8209 Compare September 29, 2026 12:56

@danielabbatt danielabbatt left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed

@danielabbatt
danielabbatt changed the base branch from fix/response-shape-defects to main September 29, 2026 13:52
@danielabbatt danielabbatt reopened this Sep 29, 2026
@danielabbatt
danielabbatt merged commit 06ef653 into main Sep 29, 2026
6 checks passed
@danielabbatt
danielabbatt deleted the feat/map-organizations-members branch September 29, 2026 14:09
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.

1 participant