Claude Platform Docs

Perbarui Aturan Federasi

$client->organization->federation->rules->update(string federationRuleID, ?bool appliesToAllWorkspaces, ?string description, ?FederationRuleMatch match, ?string name, ?string oauthScope, ?ServiceAccountTarget target, ?int tokenLifetimeSeconds, ?string workspaceID): FederationRule
POST/v1/organizations/federation_rules/{federation_rule_id}

Memerlukan token akses OAuth dengan scope org:admin, dari ant auth login --scope org:admin atau aturan workload identity federation; kunci Admin API tidak diterima. Lihat Mengelola WIF dengan Admin API.

Perbarui sebagian aturan federasi.

issuer_id tidak dapat diubah. match dan target diganti sebagai objek utuh saat ditetapkan. Akun layanan dan workspace yang direferensikan harus ada di organisasi Anda; referensi yang tidak valid ditolak dengan error 400. Aturan yang diarsipkan tidak dapat diperbarui; ini mengembalikan 400. Buat aturan baru sebagai gantinya. Aturan pada penerbit bersama yang umum dikenal (GitHub Actions, GitLab, Buildkite, Terraform Cloud, Google) harus membatasi identitas tenant melalui klaim yang membawa identitas, prefiks subjek yang mengunci tenant (seperti repo:YOUR_ORG/...), atau kondisi CEL yang mereferensikan salah satu klaim identitas tersebut (mis. claims.repository_owner). Pada penerbit ini, persyaratan tersebut diperiksa ulang pada setiap pembaruan; jika match tersimpan dari aturan yang ada belum membatasi identitas tenant, setiap pembaruan (bahkan penggantian nama atau perubahan deskripsi) juga harus menyertakan match yang sesuai dalam permintaan yang sama. Pemanggil OAuth hanya dapat mengelola aturan yang oauth_scope-nya adalah workspace:developer atau workspace:inference; scope lain memerlukan sesi Console.

Parameters
federationRuleID: string⁠Path parameter

ID of the federation rule to update.

appliesToAllWorkspaces?: optional bool

When true, enables this rule for every workspace in the org (including workspaces created later). Setting false is rejected with 400 if no workspace would remain enabled; a rule with only a legacy workspace_id binding continues to mint.

description?: optional string

Replaces the description. Omit to leave unchanged; send null to clear (the field is stored as an empty string).

match?: optional FederationRuleMatch

Replaces the entire match object. All populated matcher fields must pass.

name?: optional string

Replaces the slug identifier (lowercase, digits, hyphens). Unique within the organization; a duplicate name returns 409.

oauthScope?: optional string

Replaces the space-separated OAuth scopes granted on minted tokens. OAuth callers may only set workspace:developer or workspace:inference; other scopes (such as org:admin) require a Console session.

target?: optional ServiceAccountTarget

Replaces the entire target object. Currently always a service_account target.

tokenLifetimeSeconds?: optional int

Replaces the lifetime in seconds for access tokens minted via this rule (60-86400). Minted tokens are capped at max(60, min(this value, 2 × remaining assertion validity)) seconds.

workspaceID?: optional string

Replaces the existing single workspace enablement (the previous one is removed). Rejected with 400 if the rule is enabled for more than one workspace; use the /federation_rules/{federation_rule_id}/workspaces sub-resource instead.

Returns
class FederationRule { $type = 'federation_rule'; $id; $appliesToAllWorkspaces; /* 15 more */ }
Perbarui Aturan Federasi
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Anthropic\Client;

$client = new Client(apiKey: 'my-anthropic-api-key');

$federationRule = $client->organization->federation->rules->update(
  'federation_rule_id',
  appliesToAllWorkspaces: true,
  description: 'description',
  match: [
    'audience' => 'audience',
    'claims' => ['foo' => 'string'],
    'condition' => 'condition',
    'subjectPrefix' => 'subject_prefix',
  ],
  name: 'x',
  oauthScope: 'x',
  target: [
    'serviceAccountID' => 'svac_01SDCCSbTxrXDpWc1phhtcfK',
    'type' => 'service_account',
    'serviceAccountName' => 'service_account_name',
  ],
  tokenLifetimeSeconds: 60,
  workspaceID: 'workspace_id',
);

var_dump($federationRule);
Returns Examples
Response 200
{
  "id": "fdrl_01SDCCSbTxrXDpWc1phhtcfK",
  "applies_to_all_workspaces": true,
  "archived_at": "2019-12-27T18:11:19.117Z",
  "archived_by_actor_id": "archived_by_actor_id",
  "attributes": {
    "foo": "string"
  },
  "created_at": "2024-10-30T23:58:27.427722Z",
  "created_by_actor_id": "created_by_actor_id",
  "description": "description",
  "issuer_id": "issuer_id",
  "issuer_name": "issuer_name",
  "match": {
    "audience": "audience",
    "claims": {
      "foo": "string"
    },
    "condition": "condition",
    "subject_prefix": "subject_prefix"
  },
  "name": "prod-deploy-pipeline",
  "oauth_scope": "oauth_scope",
  "target": {
    "service_account_id": "svac_01SDCCSbTxrXDpWc1phhtcfK",
    "type": "service_account",
    "service_account_name": "service_account_name"
  },
  "token_lifetime_seconds": 0,
  "type": "federation_rule",
  "updated_at": "2024-10-30T23:58:27.427722Z",
  "updated_by_actor_id": "updated_by_actor_id",
  "workspace_id": "workspace_id",
  "workspace_ids": [
    "string"
  ]
}