/scalemgmt/v3/authorization/domains/{name}: PATCH

Updates the domain for the specified name.

Availability

Available on all IBM Storage Scale editions.

Description

The PATCH authorization/domains/{name} request updates the domain for the specified name. You can overwrite the domain with the specified name for provided permissions, memberships, resource groups, and attributes. To run this request, you must have the RBAC permission for the update action on the /scalemgmt/v3/authorization/domains/{name} resource.

The following fields cannot be changed in any domain:
  • ID
  • If within the StorageScaleDomain:
    • IBM Storage Scale permissions: SecurityAdmin and administrator.
    • IBM Storage Scale resource groups: allEndpoints.
Attempting to modify these fields does not result in a failure, but the submitted domain information excludes these changes.

Request URL

https://<IP address or host name of API server>:<port>/scalemgmt/v3/authorization/domains/{name}
where
{name}
Specifies the name of the domain.

Request headers

Accept: application/json

Parameters

The following parameters can be used in the request URL to customize the request:
Table 1. List of parameters
Parameter name Description and applicable keywords Required/optional
name The name of the RBAC domain. Optional.
X-StorageScaleDomain The domain to be authorized against for the request. The default value is StorageScaleDomain. Optional.

Request data

No request data.

Response data

  • 200: A successful response.
    {
      "attributes": {},
      "id": 0,
      "memberships": {
        "additionalProp1": {
          "name": "string",
          "roles": [
            "string"
          ]
        },
        "additionalProp2": {
          "name": "string",
          "roles": [
            "string"
          ]
        },
        "additionalProp3": {
          "name": "string",
          "roles": [
            "string"
          ]
        }
      },
      "name": "string",
      "permissions": {
        "additionalProp1": {
          "policies": [
            {
              "action": "string",
              "effect": "string",
              "resource": "string"
            }
          ],
          "role": "string"
        },
        "additionalProp2": {
          "policies": [
            {
              "action": "string",
              "effect": "string",
              "resource": "string"
            }
          ],
          "role": "string"
        },
        "additionalProp3": {
          "policies": [
            {
              "action": "string",
              "effect": "string",
              "resource": "string"
            }
          ],
          "role": "string"
        }
      },
      "resource_groups": {
        "additionalProp1": {
          "name": "string",
          "resources": [
            "string"
          ]
        },
        "additionalProp2": {
          "name": "string",
          "resources": [
            "string"
          ]
        },
        "additionalProp3": {
          "name": "string",
          "resources": [
            "string"
          ]
        }
      }
    }
  • default: An unexpected error response.
    {
      "code": 0,
      "details": [
        {
          "@type": "string",
          "additionalProp1": "string",
          "additionalProp2": "string",
          "additionalProp3": "string"
        }
      ],
      "message": "string"
    }

Examples

The following example updates the domain1domain:

Request data:
curl -X 'PATCH' \
  'https://localhost:46443/scalemgmt/v3/authorization/domains/domain1' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "domain1",
  "permissions": {
    "NSDOperationRole": {
      "policies": [
        {
          "action": "create",
          "resource": "nsd",
          "effect": "allow"
        },
        {
          "action": "delete",
          "resource": "nsd",
          "effect": "allow"
        },
        {
          "action": "get",
          "resource": "nsd",
          "effect": "allow"
        }
      ]
    },
    "FS1FilesetRole": {
      "policies": [
        {
          "action": "create",
          "resource": "filesets",
          "effect": "allow"
        },
        {
          "action": "delete",
          "resource": "filesets",
          "effect": "allow"
        },
        {
          "action": "link",
          "resource": "filesets",
          "effect": "allow"
        },
        {
          "action": "unlink",
          "resource": "filesets",
          "effect": "allow"
        },
        {
          "action": "get",
          "resource": "filesets",
          "effect": "allow"
        }
      ]
    }
  },
  "memberships": {
    "user1": {
      "roles": [
        "NSDOperationRole"
      ]
    },
    "user2": {
      "roles": [
        "FS1FilesetRole"
      ]
    },
    "user3": {
      "roles": [
        "FS1Filesystem"
      ]
    }
  },
  "resource_groups": {
    "nsd": {
      "resources": [
        "/scalemgmt/v1alpha1/nsds",
        "/scalemgmt/v1alpha1/nsds/*",
        "/scalemgmt/v1alpha1/operations",
        "/scalemgmt/v1alpha1/operations/*"
      ]
    },
    "filesets": {
      "resources": [
        "/scalemgmt/v1alpha1/filesystems/fs1/filesets",
        "/scalemgmt/v1alpha1/filesystems/fs1/filesets/*"
      ]
    },
    "filesystem_fs1": {
      "resources": [
        "/scalemgmt/v1alpha1/filesystems",
        "/scalemgmt/v1alpha1/filesystems/*"
      ]
    }
  }
}' -n
Response data:
{
	"id": 2110805903,
	"name": "domain1",
	"permissions": {
		"FS1FilesetRole": {
			"role": "",
			"policies": [
				{
					"resource": "filesets",
					"action": "create",
					"effect": "allow"
				},
				{
					"resource": "filesets",
					"action": "delete",
					"effect": "allow"
				},
				{
					"resource": "filesets",
					"action": "link",
					"effect": "allow"
				},
				{
					"resource": "filesets",
					"action": "unlink",
					"effect": "allow"
				},
				{
					"resource": "filesets",
					"action": "get",
					"effect": "allow"
				}
			]
		},
		"NSDOperationRole": {
			"role": "",
			"policies": [
				{
					"resource": "nsd",
					"action": "create",
					"effect": "allow"
				},
				{
					"resource": "nsd",
					"action": "delete",
					"effect": "allow"
				},
				{
					"resource": "nsd",
					"action": "get",
					"effect": "allow"
				}
			]
		}
	},
	"memberships": {
		"user1": {
			"name": "",
			"roles": [
				"NSDOperationRole"
			]
		},
		"user2": {
			"name": "",
			"roles": [
				"FS1FilesetRole"
			]
		},
		"user3": {
			"name": "",
			"roles": [
				"FS1Filesystem"
			]
		}
	},
	"resource_groups": {
		"filesets": {
			"name": "",
			"resources": [
				"/scalemgmt/v1alpha1/filesystems/fs1/filesets",
				"/scalemgmt/v1alpha1/filesystems/fs1/filesets/*"
			]
		},
		"filesystem_fs1": {
			"name": "",
			"resources": [
				"/scalemgmt/v1alpha1/filesystems",
				"/scalemgmt/v1alpha1/filesystems/*"
			]
		},
		"nsd": {
			"name": "",
			"resources": [
				"/scalemgmt/v1alpha1/nsds",
				"/scalemgmt/v1alpha1/nsds/*",
				"/scalemgmt/v1alpha1/operations",
				"/scalemgmt/v1alpha1/operations/*"
			]
		}
	},
	"attributes": null
}