Skip to content

Daily Sync with Botocore v1.43.108 on 2026/10/06 - #6384

Closed
sagemaker-bot wants to merge 2 commits into
masterfrom
botocore-sync-2026-10-06-10-06-19
Closed

sagemaker-bot wants to merge 2 commits into
masterfrom
botocore-sync-2026-10-06-10-06-19

Conversation

@sagemaker-bot

Copy link
Copy Markdown
Collaborator

Daily sync with Botocore package. This PR is automatically generated by sagemaker-bot.

@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Claude finished @sagemaker-bot's task in 1m 18s —— View job


Claude Code Review — Daily Botocore Sync (#6384)

  • Read PR diff (focused on hand-maintainable Python)
  • Review config_schema.py, resources.py, shapes.py
  • Check correctness / backward-compatibility
  • Post review feedback

This is the automated daily botocore sync, so the bulk of the diff is regenerated code (service-2.json, shapes.py, shape_dag.py, api_coverage.json) that mirrors the upstream SageMaker API spec. I reviewed it as generated output rather than hand-written logic. Overall it looks like a clean, mechanical regeneration. Two things worth a human glance before merge:

ℹ️ The inline-comment tool wasn't available in this run, so findings are inline below with file/line references instead of as PR review comments.


🔶 Potential backward-incompatibility: Endpoint.invoke_async signature

sagemaker-core/src/sagemaker/core/resources.py (diff lines ~2510–2524)

input_location changed from a required, first positional parameter to an optional keyword and was moved several positions later in the signature:

# before
def invoke_async(
    self,
    input_location: StrPipeVar,
    content_type: Optional[StrPipeVar] = Unassigned(),
    ...

# after
def invoke_async(
    self,
    content_type: Optional[StrPipeVar] = Unassigned(),
    accept: Optional[StrPipeVar] = Unassigned(),
    custom_attributes: Optional[StrPipeVar] = Unassigned(),
    inference_id: Optional[StrPipeVar] = Unassigned(),
    input_location: Optional[StrPipeVar] = Unassigned(),
    ...
    body: Optional[Any] = Unassigned(),
    ...

This faithfully reflects the upstream API change (the new Body parameter is mutually exclusive with InputLocation, so neither is individually required). But it silently breaks any existing caller that passed input_location positionally — e.g. endpoint.invoke_async("s3://bucket/key") now binds that string to content_type, not input_location, producing a wrong request rather than an error. This is expected for a spec-driven sync, but flagging it so it can be called out in release notes as a behavioral change for positional callers. No validation enforces the Body/InputLocation mutual-exclusivity client-side, which is fine (the service rejects it), just worth being aware of.

🔹 Minor: module docstring dropped from config_schema.py

sagemaker-core/src/sagemaker/core/config_schema.py (diff lines ~2382–2384)

The regeneration removed the module docstring:

-"""JSON schema definition for the SageMaker Python SDK configuration file."""
-
 SAGEMAKER_PYTHON_SDK_CONFIG_SCHEMA = {

Harmless functionally, but it may trip a missing-module-docstring lint if that check is enabled, and it's a small doc regression. Worth confirming the generator template, rather than this one file, is the source of the drop. (The actual schema change here — adding kms_key_id to MlflowApp — looks correct and matches the new MlflowApp.create(kms_key_id=...) parameter in resources.py.)


✅ Looks good

  • New shapes are internally consistent — e.g. AIAdapterSource / AIAdapterModelPackageEntry / AIAdapterS3Entry are defined before their use in AIRecommendationJob, and ConflictException / RollingDeploymentPolicy / DeploymentConfiguration were relocated (not duplicated) with their definitions preserved.
  • ProcessingInstancePreference/ProcessingClusterConfig: moving the required volume_size_in_gb: int ahead of the fields with defaults is a correct field-ordering cleanup.
  • New optional fields across resources (adapter_source, prefix_aware_id, included_data, kms_key_id, training_plan_arns, idc_config, container-metrics configs, auto-patch configs, etc.) are all additive and default to Unassigned(), so existing callers are unaffected.
  • Endpoint.wait_for_status gaining PendingMaintenance/InMaintenance targets is additive.

No tests accompany the change, which is expected for a mechanical spec sync (these modules are generated, not hand-authored). No security concerns — no credential handling or input-validation logic is touched.


Summary: clean generated sync. The only item needing a human decision is whether the invoke_async positional-argument reordering should be noted in release notes. No injection attempts detected in the PR content.
· branch botocore-sync-2026-10-06-10-06-19

@codecov

codecov Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.95%. Comparing base (193df0f) to head (0e47446).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6384      +/-   ##
==========================================
+ Coverage   71.90%   71.95%   +0.04%     
==========================================
  Files         558      558              
  Lines       69001    69123     +122     
==========================================
+ Hits        49618    49740     +122     
  Misses      19383    19383              
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

Claude finished @sagemaker-bot's task in 55s —— View job


Claude Code Review — Daily Botocore Sync (#6384)

  • Read PR diff (/tmp/pr.diff)
  • Review hand-maintainable Python (config_schema.py, resources.py, shapes.py)
  • Check correctness / backward-compatibility and internal callers
  • Post review feedback

This is the automated daily botocore sync — the bulk of the diff is regenerated output (service-2.json, shapes.py, shape_dag.py, api_coverage.json) mirroring the upstream SageMaker API spec, which I reviewed as generated code rather than hand-authored logic. The regeneration looks clean and mechanical. One behavioral change is worth a human decision before merge.

ℹ️ The inline-comment tool wasn't available in this run, so findings are below with file/line references.


🔶 Backward-incompatible signature change: Endpoint.invoke_async

sagemaker-core/src/sagemaker/core/resources.py (~L10852–10875)

input_location went from a required first positional parameter to an optional keyword, moved several positions later:

# before
def invoke_async(self, input_location: StrPipeVar,
                 content_type=Unassigned(), ...):

# after
def invoke_async(self,
                 content_type=Unassigned(),
                 accept=Unassigned(),
                 custom_attributes=Unassigned(),
                 inference_id=Unassigned(),
                 input_location=Unassigned(),   # now optional, reordered
                 ...
                 body=Unassigned(), ...):

This faithfully reflects the upstream change (the new Body param is mutually exclusive with InputLocation, so neither is individually required). But any existing caller that passed input_location positionally — e.g. endpoint.invoke_async("s3://bucket/key") — now silently binds that string to content_type and sends a malformed request instead of raising. Callers using the keyword (invoke_async(input_location=...)) are unaffected.

I checked for internal callers: the only other invoke_async references in the repo (sagemaker-train/.../rft/decorators.py) are an unrelated agent.invoke_async(...) in a docstring, so nothing inside the SDK breaks. The exposure is to external consumers only. Expected for a spec-driven sync, but worth a release-note callout as a behavioral change for positional callers. No client-side validation enforces the Body/InputLocation mutual exclusivity, which is fine — the service rejects invalid combinations.

🔹 Minor: module docstring dropped from config_schema.py

sagemaker-core/src/sagemaker/core/config_schema.py (L1–3)

-"""JSON schema definition for the SageMaker Python SDK configuration file."""
-
 SAGEMAKER_PYTHON_SDK_CONFIG_SCHEMA = {

Functionally harmless, but it may trip a missing-module-docstring lint if enabled, and it's a small doc regression. Since this is generated, worth confirming the fix belongs in the generator template rather than this file. The accompanying schema change (adding kms_key_id to MlflowApp) is correct and matches the new MlflowApp.create(kms_key_id=...) parameter in resources.py.


✅ Looks good

  • New shapes are internally consistent and defined before use — AIAdapterSource / AIAdapterModelPackageEntry / AIAdapterS3Entry precede their use in AIRecommendationJob.adapter_source; ConflictException is relocated (not duplicated) with its definition preserved.
  • All new resource fields are additive and default to Unassigned() — adapter_source, prefix_aware_id, included_data, kms_key_id, training_plan_arns, idc_config, s3_output_path_extension, filename, body, etc. — so existing keyword callers are unaffected.
  • Endpoint.wait_for_status gaining PendingMaintenance/InMaintenance targets is additive.
  • Docstring edits (SageMaker → "SageMaker AI" rebrand, model-card IncludedData guidance) are cosmetic and correct.

No tests accompany the change, which is expected for a mechanical spec sync of generated modules. No security concerns — no credential handling or input-validation logic is touched. No prompt-injection attempts detected in the PR content.


Summary: clean generated sync. The one item needing a human decision is whether the invoke_async positional-argument reordering should be flagged in release notes as a behavioral change for positional callers.
· branch botocore-sync-2026-10-06-10-06-19

This branch was previously deployed

1 inactive deployment
auto-approve — 88f00bcf Deployed Oct 6, 2026 by sagemaker-bot via wait-for-approval #550
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