openapi: 3.0.1
info:
title: FlashArray REST Active Directory Object Store Roles API
version: '2.52'
description: 'Active Directory configuration authenticates users for NFS using Kerberos or SMB using Kerberos
or New Technology LAN Manager (NTLM). Active Directory is also used to authorize users by
mapping identities across the NFS and SMB protocols by using LDAP queries.
'
servers:
- url: /
tags:
- name: Object Store Roles
description: Manages the roles assumable by external federated entity. Each role is assigned a trust policy that determines which identity provider authorizes the entities and how.
paths:
/api/2.26/object-store-roles:
get:
tags:
- Object Store Roles
summary: Pure Storage GET Object-store-roles
description: List object store roles and their attributes.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreRoleGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreRoleGetResponse'
post:
tags:
- Object Store Roles
summary: Pure Storage POST Object-store-roles
description: Create new object store roles.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names_required'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreRolePost'
required: true
x-codegen-request-body-name: object-store-role
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreRoleResponse'
x-codegen-request-body-name: object-store-role
delete:
tags:
- Object Store Roles
summary: Pure Storage DELETE Object-store-roles
description: Delete existing object store roles.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
responses:
'200':
description: OK
content: {}
patch:
tags:
- Object Store Roles
summary: Pure Storage PATCH Object-store-roles
description: Modify existing object store roles.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Ids'
- $ref: '#/components/parameters/Names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreRole'
required: true
x-codegen-request-body-name: object-store-role
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreRoleResponse'
x-codegen-request-body-name: object-store-role
/api/2.26/object-store-roles/object-store-access-policies:
get:
tags:
- Object Store Roles
summary: Pure Storage GET Object-store-roles/object-store-access-policies
description: List object store roles and their access policies.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberContextGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberContextGetResponse'
post:
tags:
- Object Store Roles
summary: Pure Storage POST Object-store-roles/object-store-access-policies
description: Grant access policies to an object store role.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyMemberContextResponse'
delete:
tags:
- Object Store Roles
summary: Pure Storage DELETE Object-store-roles/object-store-access-policies
description: Revoke an object store role's access policy.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Member_ids'
- $ref: '#/components/parameters/Member_names'
- $ref: '#/components/parameters/Policy_ids'
- $ref: '#/components/parameters/Policy_names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content: {}
/api/2.26/object-store-roles/object-store-trust-policies:
get:
tags:
- Object Store Roles
summary: Pure Storage GET Object-store-roles/object-store-trust-policies
description: List object store roles and their trust policies.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyGetResponse'
/api/2.26/object-store-roles/object-store-trust-policies/download:
get:
tags:
- Object Store Roles
summary: Pure Storage GET Object-store-roles/object-store-trust-policies/download
description: Download object store roles and their trust policies in native AWS format.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyIam'
/api/2.26/object-store-roles/object-store-trust-policies/upload:
patch:
tags:
- Object Store Roles
summary: Pure Storage PATCH Object-store-roles/object-store-trust-policies/upload
description: Upload object store roles and their trust policies in native AWS format.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
requestBody:
description: The trust policy document to upload.
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyIam'
required: true
x-codegen-request-body-name: policy_document
responses:
'200':
description: OK
headers:
X-Request-ID:
description: Supplied by client during request or generated by server.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyResponse'
x-codegen-request-body-name: policy_document
/api/2.26/object-store-roles/object-store-trust-policies/rules:
get:
tags:
- Object Store Roles
summary: Pure Storage GET Object-store-roles/object-store-trust-policies/rules
description: List trust policy rules and their attributes.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Allow_errors'
- $ref: '#/components/parameters/Context_names_get'
- $ref: '#/components/parameters/Continuation_token'
- $ref: '#/components/parameters/Filter'
- $ref: '#/components/parameters/Indices'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Offset'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
- $ref: '#/components/parameters/Sort'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyRuleGetResponse'
'207':
description: 'Partial success. Some resources were returned, but there
were also errors possibly preventing some resources from
being returned.
'
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyRuleGetResponse'
post:
tags:
- Object Store Roles
summary: Pure Storage POST Object-store-roles/object-store-trust-policies/rules
description: Create a new trust policy rule.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TrustPolicyRulePost'
required: true
x-codegen-request-body-name: rule
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyRuleResponse'
x-codegen-request-body-name: rule
delete:
tags:
- Object Store Roles
summary: Pure Storage DELETE Object-store-roles/object-store-trust-policies/rules
description: Delete one or more trust policy rules.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Indices'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
responses:
'200':
description: OK
content: {}
patch:
tags:
- Object Store Roles
summary: Pure Storage PATCH Object-store-roles/object-store-trust-policies/rules
description: Modify a trust policy rule's attributes.
parameters:
- $ref: '#/components/parameters/XRequestId'
- $ref: '#/components/parameters/Context_names'
- $ref: '#/components/parameters/Indices'
- $ref: '#/components/parameters/Names'
- $ref: '#/components/parameters/Policy_names'
- $ref: '#/components/parameters/Object_store_role_ids'
- $ref: '#/components/parameters/Object_store_role_names'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TrustPolicyRulePost'
required: true
x-codegen-request-body-name: rule
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ObjectStoreTrustPolicyRuleResponse'
x-codegen-request-body-name: rule
components:
schemas:
_referenceWithoutType:
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
name:
description: 'The resource name, such as volume name, pod name,
snapshot name, and so on.
'
type: string
_builtInNoId:
type: object
properties:
name:
description: Name of the object (e.g., a file system or snapshot).
type: string
readOnly: true
PolicyMember:
type: object
properties:
member:
description: Reference to the resource the policy is applied to.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
policy:
description: Reference to the policy.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
_errorContextResponseErrors:
type: object
properties:
context:
description: 'Contains information relating to the cause of this error,
or the name of the object that was being processed when the error was encountered.
This may be `null` for more general errors.
'
type: string
location_context:
description: 'Contains information relating to the context in which the request was executing
when the error occurred.
For example, this may be the name of an array in the same fleet.
This may be `null` for more general errors, or if no explicit `context` parameter
was provided with the request.
'
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
message:
description: A description of the error which occurred.
type: string
example: Resource does not exist.
_errorContextResponse:
type: object
properties:
errors:
description: The list of errors encountered when attempting to perform an operation.
type: array
readOnly: true
items:
$ref: '#/components/schemas/_errorContextResponseErrors'
TrustPolicyRulePost:
type: object
properties:
actions:
description: 'The list of role-assumption actions granted by this rule to the respective role.
Currently we support `sts:AssumeRoleWithSAML` and `sts:AssumeRoleWithWebIdentity` actions.
'
type: array
items:
type: string
example:
- sts:AssumeRoleWithSAML
conditions:
description: 'Conditions used to limit the scope which this rule applies to.
'
type: array
items:
$ref: '#/components/schemas/_trustPolicyRuleCondition'
effect:
description: 'Effect of this rule.
When `allow`, the rule allows the given actions to be performed on the
given resources, subject to the given conditions.
Valid values include `allow`.
'
type: string
readOnly: true
example: allow
policy:
description: The policy to which this rule belongs.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
principals:
description: List of Identity Providers
type: array
items:
$ref: '#/components/schemas/_referenceWritable'
PolicyBase:
allOf:
- $ref: '#/components/schemas/PolicyBaseRenameable'
PolicyMemberContextGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/PolicyMemberContextResponse'
- $ref: '#/components/schemas/_errorContextResponse'
_resource:
description: 'An ordinary (as opposed to built-in) resource that can be created, named,
renamed or deleted by the user. This might be a virtual resource (e.g., a
file system), or correspond to something in the environment, like a host or a
server.
'
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified and cannot refer to another resource.
'
type: string
readOnly: true
name:
description: 'A user-specified name.
The name must be locally unique and can be changed.
'
type: string
_fixedReferenceWithoutType:
type: object
properties:
id:
description: 'A globally unique, system-generated ID.
The ID cannot be modified.
'
type: string
readOnly: true
name:
description: 'The resource name, such as volume name, file system name,
snapshot name, and so on.
'
type: string
readOnly: true
x-readOnly: true
ObjectStoreTrustPolicyGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/_errorContextResponse'
- $ref: '#/components/schemas/ObjectStoreTrustPolicyResponse'
_referenceWritable:
allOf:
- $ref: '#/components/schemas/_referenceWithoutType'
- type: object
properties:
resource_type:
description: 'Type of the object (full name of the endpoint).
Valid values are `hosts`, `host-groups`, `network-interfaces`, `pods`,
`ports`, `pod-replica-links`, `subnets`, `volumes`, `volume-snapshots`,
`volume-groups`, `directories`, `policies/nfs`, `policies/smb`, `policies/snapshot`, etc.
'
type: string
x-aliases:
- _reference
ObjectStoreRole:
allOf:
- $ref: '#/components/schemas/_builtIn'
- $ref: '#/components/schemas/_context'
- type: object
properties:
account:
description: Reference of the associated account.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
created:
description: Creation timestamp of the object.
type: integer
format: int64
readOnly: true
max_session_duration:
description: 'The maximum session duration for the role in milliseconds
'
type: integer
prn:
description: Pure Resource Name of the role
type: string
readOnly: true
example: prn::iam:array-id/local:obj-account-id/123456789101112:role/myrole
trusted_entities:
description: List of trusted entities
type: array
readOnly: true
items:
$ref: '#/components/schemas/_fixedReference'
ObjectStoreRolePost:
type: object
properties:
max_session_duration:
description: 'Maximum session duration in milliseconds.
If not provided when creating the role, defaults to 1h, minimum is 1h, maximum is 12h.
'
type: integer
_trustPolicyRuleCondition:
description: 'Identity-provider-specific condition that specifies who can assume the role.
'
type: object
properties:
key:
description: 'Key from the context of the role assuming request that will have its
value compared based on the operator specified in this condition to the
values provided in this condition.
'
type: string
example: saml:sub
operator:
description: 'Operator specifying the comparison to be done between the values from
the request context and the values provided in this condition.
Valid values: `StringEquals`.
'
type: string
example: StringEquals
values:
description: 'Values to be compared with the values in the role assuming request
context identified by the key. If multiple values are specified, it''s
sufficient if just one matches.
'
type: array
items:
type: string
example:
- something
- anything
PolicyMemberContextResponse:
type: object
properties:
items:
description: A list of members for policies.
type: array
items:
$ref: '#/components/schemas/PolicyMemberContext'
_builtIn:
type: object
properties:
id:
description: 'A non-modifiable, globally unique ID chosen by the system.
'
type: string
readOnly: true
name:
description: Name of the object (e.g., a file system or snapshot).
type: string
readOnly: true
ObjectStoreTrustPolicyIam:
description: Trust policy document in the AWS IAM format.
type: string
example: "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRoleWithSAML\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Federated\": \"arn:aws:iam:::saml-provider/example\"\n },\n \"Condition\": {\n \"StringEquals\": {\n \"saml:aud\": \"engineers\"\n }\n }\n }]\n}"
ObjectStoreTrustPolicyRuleGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/_errorContextResponse'
- $ref: '#/components/schemas/ObjectStoreTrustPolicyRuleResponse'
ObjectStoreTrustPolicyRuleResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/TrustPolicyRuleWithContext'
ObjectStoreRoleResponse:
type: object
properties:
items:
description: A list of object store roles.
type: array
items:
$ref: '#/components/schemas/ObjectStoreRole'
_context:
type: object
properties:
context:
description: 'The context in which the operation was performed.
Valid values include a reference to any array which is a member of the same fleet
or to the fleet itself.
Other parameters provided with the request, such as names of volumes or snapshots,
are resolved relative to the provided `context`.
'
readOnly: true
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
TrustPolicyRuleWithContext:
allOf:
- $ref: '#/components/schemas/TrustPolicyRule'
- $ref: '#/components/schemas/_context'
PolicyBaseRenameable:
allOf:
- $ref: '#/components/schemas/_resource'
- $ref: '#/components/schemas/_realmsReference'
- type: object
properties:
enabled:
description: 'If `true`, the policy is enabled. If not specified, defaults to `true`.
'
type: boolean
is_local:
description: Whether the policy is defined on the local array.
type: boolean
readOnly: true
location:
description: Reference to the array where the policy is defined.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
policy_type:
description: 'Type of the policy. Valid values include `alert`, `audit`, `bucket-access`,
`cross-origin-resource-sharing`, `network-access`, `nfs`, `object-access`,
`s3-export`, smb-client`, `smb-share`, `ssh-certificate-authority`, and
`telemetry-metrics`.
'
type: string
readOnly: true
_index:
type: object
properties:
index:
description: Index of the object in the containing array.
type: integer
readOnly: true
ObjectStoreTrustPolicyResponse:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/ObjectStoreTrustPolicy'
TrustPolicyRule:
allOf:
- $ref: '#/components/schemas/_builtInNoId'
- $ref: '#/components/schemas/_index'
- $ref: '#/components/schemas/TrustPolicyRulePost'
ObjectStoreRoleGetResponse:
allOf:
- $ref: '#/components/schemas/PageInfo'
- $ref: '#/components/schemas/_errorContextResponse'
- $ref: '#/components/schemas/ObjectStoreRoleResponse'
_realmsReference:
type: object
properties:
realms:
description: 'Reference to the realms this resource belongs to.
The value is set to empty array when the resource
lives outside of a realm.
'
type: array
readOnly: true
items:
$ref: '#/components/schemas/_fixedReference'
_fixedReference:
allOf:
- $ref: '#/components/schemas/_fixedReferenceWithoutType'
- type: object
properties:
resource_type:
description: 'Type of the object (full name of the endpoint).
Valid values are the unique part of the resource''s REST endpoint.
For example, a reference to a file system would have a
`resource_type` of `file-systems`.
'
type: string
readOnly: true
PageInfo:
type: object
properties:
continuation_token:
description: 'Continuation token that can be provided in the `continuation_token` query
param to get the next page of data.
If you use the `continuation_token` to page through data you
are guaranteed to get all items exactly once regardless of
how items are modified. If an item is added or deleted during
the pagination then it may or may not be returned.
The `continuation_token` is generated if the `limit` is less
than the remaining number of items, and the default sort is used
(no sort is specified).
'
type: string
total_item_count:
description: Total number of items after applying `filter` params.
type: integer
format: int32
ObjectStoreTrustPolicy:
allOf:
- $ref: '#/components/schemas/PolicyBase'
- $ref: '#/components/schemas/_context'
- type: object
properties:
enabled:
description: 'If `true`, the policy is enabled. If not specified, defaults to `true`.
'
type: boolean
readOnly: true
role:
description: Object Store Role to which the Trust Policy applies.
title: FixedReference
allOf:
- $ref: '#/components/schemas/_fixedReference'
rules:
description: List of rules establishing the trust policy
type: array
items:
$ref: '#/components/schemas/TrustPolicyRule'
PolicyMemberContext:
allOf:
- $ref: '#/components/schemas/PolicyMember'
- $ref: '#/components/schemas/_context'
parameters:
Filter:
name: filter
in: query
description: 'Narrows down the results to only the response objects
that satisfy the filter criteria.
'
schema:
type: string
Offset:
name: offset
in: query
description: 'The offset of the first resource to return from a collection.
'
schema:
type: integer
format: int32
minimum: 0
example: 10
Allow_errors:
name: allow_errors
in: query
description: 'If set to `true`, the API will allow the operation to continue even if there are errors.
Any errors will be returned in the `errors` field of the response.
If set to `false`, the operation will fail if there are any errors.
'
schema:
type: boolean
default: false
Policy_ids:
name: policy_ids
in: query
description: 'A comma-separated list of policy IDs.
If after filtering, there is not at least one resource that matches
each of the elements of `policy_ids`, then an error is returned.
This cannot be provided together with the `policy_names` query parameter.
'
style: form
explode: false
schema:
type: array
items:
type: string
Continuation_token:
name: continuation_token
in: query
description: 'A token used to retriev
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pure-storage/refs/heads/main/openapi/pure-storage-object-store-roles-api-openapi.yml