One Atlasリソースポリシーを検証する

POST /api/atlas/v2/orgs/{orgId}/resourcePolicies:validate

組織に対して 1 つの Atlas リソース ポリシーを検証します。

Atlas リソース ポリシー

path パラメータ

  • orgId string 必須

    24プロジェクトを含む組織を識別する一意の 桁の 16 進数文字列。認証済みユーザーがアクセスできるすべての組織を取得するには、 /orgs エンドポイントを使用します。

    形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

クエリ パラメータ

  • envelope ブール値

    アプリケーションがレスポンスを envelope JSON オブジェクトにラップするかどうかを示すフラグ。一部の API クライアントは、HTTP レスポンス ヘッダーまたはステータス コードにアクセスできません。これを修正するには、クエリで envelope=true を設定します。結果のリストを返すエンドポイントは、結果オブジェクトをエンベロープとして使用します。アプリケーションは、レスポンス本体にステータス パラメータを追加します。

    デフォルト値はfalseです。

  • pretty ブール値

    レスポンス本体を pretty-print 形式にするかどうかを示すフラグ。

    デフォルト値はfalseです。

    Prettyprint
application/vnd.atlas.2024-08-05+json

body 必須

作成する Atlas リソース ポリシー。

  • 説明 string

    Atlas リソースポリシーの説明。

  • name string 必須

    Atlas リソース ポリシーを説明する、人間が判読可能なラベル。

  • policies array[オブジェクト] 必須

    Atlas リソース ポリシーを構成するポリシーのリスト。

    ポリシー属性を非表示 ポリシー属性を表示 オブジェクト
    • body string 必須

      ポリシーの権限を定義する string。使用される構文は、Cedar ポリシー言語です。

      最小長は 1 です。

応答

  • 200 application/vnd.atlas.2024-08-05+json

    Ok

    応答属性の非表示 応答属性の表示 オブジェクト
    • createdByUser オブジェクト

      Atlasリソースポリシーを最後に更新したユーザー。

      createdByUser 属性を非表示 createdByUser 属性の表示 オブジェクト
      • id string

        ユーザーを識別する一意の 24 桁の 16 進数文字列。

        形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

      • name string

        ユーザーを説明する、人間が判読可能なラベル。

    • createdDate string(date-time)

      Atlasリソースポリシーが作成された日時(UTC)。

    • 説明 string

      Atlas リソースポリシーの説明。

    • id string

      Atlasリソースポリシーを識別する一意の 24 桁の 16 進数文字列。

      形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

    • lastUpdateByUser オブジェクト

      Atlasリソースポリシーを最後に更新したユーザー。

      lastUpdateByUser 属性を非表示にする lastUpdatedByUser 属性の表示 オブジェクト
      • id string

        ユーザーを識別する一意の 24 桁の 16 進数文字列。

        形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

      • name string

        ユーザーを説明する、人間が判読可能なラベル。

    • lastUpdatedDate string(date-time)

      Atlasリソースポリシーが最後に更新された UTC の日時。

    • name string

      Atlas リソース ポリシーを説明する、人間が判読可能なラベル。

    • orgId string

      Atlasリソースポリシーが属する組織を識別する一意の 24 16 進数文字列。

      形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

    • policies array[オブジェクト]

      Atlas リソース ポリシーを構成するポリシーのリスト。

      ポリシー属性を非表示にする ポリシー属性の表示 オブジェクト
      • body string

        ポリシーの権限を定義する string。使用される構文は、Cedar ポリシー言語です。

      • id string

        ポリシーを識別する一意の 24 16 進数文字列。

        形式は次のパターンと一致する必要があります: ^([a-f0-9]{24})$

    • バージョン string

      Atlasリソースポリシーのバージョンを識別する string。

  • 400 application/vnd.atlas.2024-08-05+json

    無効なリクエストです。

    応答属性の非表示 応答属性の表示 オブジェクト
    • errorsType string

      エラーのタイプを表示する、人間が判読可能なラベル。

      値は、POLICY_PARSING_ERRORPOLICY_HAS_FAILED_VALIDATIONSPOLICY_HAS_INVALID_PRINCIPALPOLICY_HAS_BODY_EXCEEDING_MAX_SIZE、または POLICY_HAS_UNEXPECTED_ENTITIES です。

    • disabledPolicies array[オブジェクト]

      検証エラーの詳細を含む無効なポリシーのリスト。

      disabledPolicies 属性を非表示にする disabledPolicies 属性の表示 オブジェクト
      • body string

        ポリシーの権限を定義する string。使用される構文は、Cedar ポリシー言語です。

      • errors array[オブジェクト]

        検証エラーのリスト。

        属性エラーを非表示 属性エラーの表示 オブジェクト
        • 詳細 string

          検証エラーを詳細に説明する string。

  • 401 application/ JSON

    許可されていません。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 403 application/ JSON

    Forbidden.

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 404 application/ JSON

    見つかりません。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

  • 500 application/ JSON

    内部サーバーエラー。

    応答属性の非表示 応答属性の表示 オブジェクト
    • validRequestDetail オブジェクト

      無効なリクエストの詳細。

      validRequestDetail 属性を非表示にする validRequestDetail 属性の表示 オブジェクト
      • フィールド array[オブジェクト]

        クライアントリクエストにおけるすべての違反を説明します。

        フィールド属性を非表示にする フィールド属性の表示 オブジェクト
        • 説明 string 必須

          リクエスト要素が禁止されている理由の説明。

        • フィールド string 必須

          リクエスト本文内のフィールドにつながるパス。

    • 詳細 string

      各タイプのエラーの原因となる特定の条件または理由について説明します。

    • エラー integer(int32) 必須

      このエラーで返された HTTP ステータス コード。

      外部ドキュメント
    • errorCode string 必須

      このエラーで返されたアプリケーション エラー コード。

    • パラメーター array[オブジェクト]

      エラーに関する詳細情報を提供するために使用されるパラメーター。

    • 理由 string

      このエラーで返されたアプリケーション エラー メッセージ。

POST /api/atlas/v2/orgs/{orgId}/resourcePolicies:validate
atlas api resourcePolicies validateOrgResourcePolicies --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20250312001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.ValidateOrgResourcePoliciesApiParams{}
	sdkResp, httpResp, err := client.ResourcePoliciesApi.
		ValidateOrgResourcePoliciesWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/resourcePolicies:validate" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/orgs/{orgId}/resourcePolicies:validate" \
  -d '{ <Payload> }'
リクエスト例
{
  "description": "string",
  "name": "string",
  "policies": [
    {
      "body": "  forbid (\n    principal,\n    action == cloud::Action::\"cluster.createEdit\",\n    resource\n  ) when {\n   context.cluster.regions.contains(cloud::region::\"aws:us-east-1\")\n  };\n"
    }
  ]
}
応答の例(200)
{
  "createdByUser": {
    "id": "32b6e34b3d91647abb20e7b8",
    "name": "string"
  },
  "createdDate": "2025-05-04T09:42:00Z",
  "description": "string",
  "id": "32b6e34b3d91647abb20e7b8",
  "lastUpdatedByUser": {
    "id": "32b6e34b3d91647abb20e7b8",
    "name": "string"
  },
  "lastUpdatedDate": "2025-05-04T09:42:00Z",
  "name": "string",
  "orgId": "32b6e34b3d91647abb20e7b8",
  "policies": [
    {
      "body": "  forbid (\n    principal,\n    action == cloud::Action::\"cluster.createEdit\",\n    resource\n  ) when {\n   context.cluster.regions.contains(cloud::region::\"aws:us-east-1\")\n  };\n",
      "id": "32b6e34b3d91647abb20e7b8"
    }
  ],
  "version": "v1"
}
応答の例(400)
{
  "errorType": "POLICY_PARSING_ERROR",
  "invalidPolicies": [
    {
      "body": "  forbid (\n    principal,\n    action == cloud::Action::\"cluster.createEdit\",\n    resource\n  ) when {\n   context.cluster.regions.contains(cloud::region::\"aws:us-east-1\")\n  };\n",
      "errors": [
        {
          "detail": "string"
        }
      ]
    }
  ]
}
応答の例(401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
応答の例(403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
応答の例(404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
応答の例(500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}