Organizations
Learn about creating and managing organizations (orgs) via the DNAnexus Platform API.
An organization (or org) is a DNAnexus entity that associates a group of users. The administrators of an org manage account creation, configure permissions in the context of the org as well as the projects owned by the org, and oversee billing. All storage and compute costs associated with an org are invoiced to a single billing account chosen by the org administrators. Data objects and projects can be shared with orgs as an entity.
Org Membership Status
A user may be a member of an org with one of two membership statuses:
ADMIN
MEMBER
An org ADMIN is granted all standard org permissions and may perform org administrative functions such as adding or removing users, or modifying org policies. An org MEMBER, however, is granted only a subset of the possible permissions in the org and does not have standard org-admin capabilities such as user management or org policy changes by default.
Org Permission Flags
Org permission flags, configurable by user, specify the allowable actions for each user in an org. The following permission flags exist:
allowBillableActivitiesboolean Whether the user can perform certain activities that incur charges for the org. Users with this flag set to true may create projects and apps billed to the org and download files while billing the data transfer costs to the org. They may also view the org's pricing model (and view the cost of any projects or jobs billed to the org).projectAccessstring The maximum project permission granted to the user for projects shared with the org.Must be one of
"ADMINISTER","CONTRIBUTE","UPLOAD","VIEW", or"NONE".
appAccessboolean Whether the user can access and run apps shared with the org.treManagementboolean Whether the user can create and manage Trusted Research Environments (TREs) for the org. In the UI, this permission appears as Research Environment Management.
The following flags are custom role permissions that delegate specific administrative capabilities to org MEMBERs. Org ADMINs always have these permissions implicitly set to true. Only org ADMINs can grant these permissions to MEMBERs.
archivalManagementboolean Whether the user can execute archive and unarchive operations org-wide, including use of theallCopiesflag on/project-xxxx/archive,/project-xxxx/unarchive, and thearchivalInfoForOrgoption on/class-xxxx/listProjects, regardless of project membership. Defaults tofalsefor MEMBERs.projectMemberDemotionboolean Whether the user can call/project-xxxx/decreasePermissionson any org project without being a project member or project admin, and can use thememberfilter on/org-xxxx/findProjectsto audit another member's project access. Defaults tofalsefor MEMBERs.dataDeletionboolean Whether the user can call/class-xxxx/removeObjectswithoverrideProjectAccess: trueto delete objects from projects and containers billed to the org, regardless of project or container membership. Defaults tofalsefor MEMBERs.dataSearchboolean Whether the user can call/class-xxxx/listProjectswithallCopiesForOrg: <org-id>to discover all copies of an object across the entire organization, regardless of project membership. Defaults tofalsefor MEMBERs.
Org ADMINs have all available org permissions. Custom role permissions (archivalManagement, projectMemberDemotion, dataDeletion, dataSearch) are always true for org ADMINs.
Org members, by default, receive the following set of permission flags:
Any org ADMIN can configure permission flags for org MEMBERs using /org-xxxx/setMemberAccess.
Org Policies
Org policies, configurable by org, dictate many different behaviors when the org interacts with other entities. The following policies exist:
memberListVisibilitystring (default"ADMIN"in/org/new) The org membership status required to be able to view the membership status and permission flags in effect for any other member of the org (via/org-xxxx/findMembers). Must be one of"ADMIN","MEMBER", or"PUBLIC". If"PUBLIC", then any DNAnexus user may view the membership status and permission flags in effect for any member of the org.restrictProjectTransferstring (default"MEMBER"in/org/new) The org membership status required to change the billing account of a project billed to this org. Must be one of"ADMIN"or"MEMBER". If"ADMIN", only org admins can change the billing account of an org-billed project. If"MEMBER", any org member can do so.restrictProjectSharingstring (default"MEMBER"in/org/new) The org membership status required to invite the org to be a member of a project. Must be one of"ADMIN"or"MEMBER". If set to"MEMBER"any member of the org can invite the org to a project. When set to"ADMIN", only org admins can invite the org to a project.jobReuseboolean (defaultfalsein/org/new) Enables reuse of outputs from jobs that share the same executable and input IDs. For more information, see Smart Reuse. This feature is only available for licensed customers.detailedJobMetricsCollectDefaultboolean (defaultfalsein/org/new) If set to true, more frequent, detailed job metrics (tracking CPU, memory, network, disk, and related resources) are collected by default for all jobs launched in all projects billed to this org. This setting can be overridden when launching an execution. This field is only applicable to orgs with adetailedJobMetricslicense.allowInstanceUpgradeOnJobRestartboolean (defaultfalsein/org/new) Controls whether the platform automatically retries a job on a larger instance type when the job fails withAppInsufficientResourceError(out of memory or out of storage).When set to
trueand a job restart is triggered, the platform upgrades the instance one step within the same instance family (based on the system instance upgrade mapping).When set to
false(the default) and a job restart is triggered,AppInsufficientResourceErrorbehaves likeAppInternalError, the platform reuses the original instance (no instance upgrade occurs).AppInsufficientResourceErrorinherits theAppInternalErrorrestart counts. If arestartOnpolicy forAppInsufficientResourceErroris not specified in the executable's execution policy or in the job's runtime configuration, but arestartOnpolicy forAppInternalErroris specified,AppInsufficientResourceErroruses the existingAppInternalErrorrestartOnpolicy.
maximumPreauthenticatedDurationinteger (optional) Maximum number of seconds that a preauthenticated file download URL is valid for. If set to 0, preauthenticated URLs are disabled for the whole organization. Defaults to43200(12 hours). Must be no more than86400(24 hours).The security of preauthenticated URLs (also known as pre-signed URLs) is the responsibility of the client. DNAnexus does not revoke preauthenticated URLs once generated. Take care with longer-lived URLs, as they remain valid for their full duration.
Setting
maximumPreauthenticatedDurationbelow a minimum threshold of 300 seconds (5 minutes) can cause dependent functionality to break. For example, File Viewers and some automated tools require URLs to be valid for 3-5 minutes to complete downloads or viewing sessions. Ensure the duration meets all intended use cases.
A license is required to set the following Monthly Project Spending Limit for Computing and Egress policies. Contact DNAnexus Sales for more information.
monthlyProjectComputeLimitDefaultinteger (optional, nullable) Default dollar values of project level spending limits for compute in currency. This limit does not apply to DBCluster-related charges. Defaults tonullin/org/new.monthlyProjectEgressBytesLimitDefaultinteger (optional, nullable) Default values of project level spending limits for egress in bytes. Defaults tonullin/org/new.monthlyProjectStorageLimitDefaultnumber (optional, nullable) Default dollar values of project level spending limits for storage in currency. This limit does not apply to DBCluster-related charges. Defaults tonullin/org/new.enforceTerminationForProjectComputeLimitboolean (optional) Whether to enforce termination behaviors when the project compute spending limit is exceeded. Defaults tofalsein/org/new.enforceTerminationForProjectEgressBytesLimitboolean (optional) Whether to enforce termination behaviors when the project egress spending limit is exceeded. Defaults tofalsein/org/new.enforceTerminationForProjectStorageLimitboolean (optional) Whether to enforce termination behaviors when the project storage spending limit is exceeded. Not Changeable. Defaults tofalsein/org/new.projectSpendingLimitNotificationThresholdinteger (optional) Percent threshold for sending out the warning notification for the monthly project spending budget. When the available monthly project spending budget drops below the threshold, the system sends email notifications to the admins of the affected project. Defaults to90in/org/new. Must be between 1 and 99.
API Method Specifications
API Method: /org/new
/org/newSpecification
Creates a new non-billable organization. After creation, the requesting user receives sole ADMIN rights of the organization. The organization's handle and name remain visible to the public. The org functions as an alias for a group of users, but does not allow billable activities (such as creation of projects or uploading of data). Contact DNAnexus Sales to create a billable org.
Inputs
handlestring (required) A case-insensitive unique handle for the org. The chosen handle must not be in use by any other user or org. The lowercase ofhandleappends to "org-" to form the ID of this org. An org handle:must start with an alpha character (uppercase or lowercase)
must be at least 3 characters long
may contain alphanumeric characters (uppercase and lowercase), periods, and underscores
must be no longer than 33 characters
namestring (required) A descriptive name for the organization.policiesmapping (optional) A set of organization policies to override the corresponding default policies. Policies that are not included inherit the system default policies. See org policies for more information.noncestring (optional) Unique identifier for this request. Ensures that even if multiple requests fail and are retried, only a single org is created. For more information, see Nonces.
Outputs
idstring ID of the newly created organization ("org-" +handle).
Errors
InvalidInput
A
noncewas reused in a request but other inputs had changed signifying a new and different requestA
noncemay not exceed 128 bytes
InvalidState
The
handleof the org case-insensitively matches that of an existing org or user, or of a previously destroyed org
PermissionDenied
The requesting user does not have a full scope token
User cannot set the following
policies:monthlyProjectComputeLimitDefaultmonthlyProjectEgressBytesLimitDefaultmonthlyProjectStorageLimitDefaultenforceTerminationForProjectComputeLimitenforceTerminationForProjectEgressBytesLimitenforceTerminationForProjectStorageLimitprojectSpendingLimitNotificationThreshold
Licenses are required to use both the Monthly Project Spending Limit for Computing and Egress, and Monthly Project Spending Limit for Storage features. Contact DNAnexus Sales for more information.
API Method: /org-xxxx/describe
/org-xxxx/describeSpecification
Describes an organization. The output may be restricted if this is invoked by a non-member user. The exact subset of fields that is returned is defined by the organization's policies.
Inputs
defaultFieldsboolean (optional) Includes the default set of fields in the output (see "Outputs" section). Fields named explicitly infieldsoverride these selections.Defaults to
falseiffieldsis provided,trueotherwise.
fieldsmapping (optional) Specifies fields to include or exclude from the output. These selections overridedefaultFieldssettings.key — Output field to include or exclude (see the "Outputs" section for valid values).
value boolean — Whether to include the field.
The following options are deprecated (and are not respected if fields is present):
pendingTransfersboolean (optional) If true, returns a list of project IDs which the org has been invited to be the billing account for. Defaults tofalse.
Outputs
idstring The organization ID.
The following fields are included by default (but can be disabled using fields or defaultFields):
classstring The string "org".handlestring The organization handle, as originally provided to/org/new.namestring The descriptive name of the organization.tremapping TRE association details. Only present when the org is associated with a Trusted Research Environment.treIdstring ID of the TRE.
The following field (included by default) is available if the org's memberListVisibility policy is set to 'PUBLIC', or if the policy is any other value and the requesting user is a MEMBER of the org with a full-scope token.
adminsarray of strings The IDs of users who are admins of the organization.
The remaining keys are only available if a full scope token is supplied.
The following fields (included by default) are available if the requesting user is a member of the org:
levelstring Membership level of the requesting user in the org.allowBillableActivitiesboolean Whether the requesting user can perform billable activities on behalf of the org (see Organization permission flags for more information).projectAccessstring The maximum project permission the requesting user is granted via the org to projects explicitly shared with the org (see Organization permission flags for more information).appAccessboolean Whether the requesting user can access and run apps shared with the org (see Organization permission flags for more information).treManagementboolean Whether the requesting user can create and manage Trusted Research Environments (TREs) for the org (see Organization permission flags for more information).archivalManagementboolean Whether the requesting user can perform org-wide archive and unarchive operations (see Organization permission flags for more information).projectMemberDemotionboolean Whether the requesting user can decrease project member permissions on any org project without being a project member (see Organization permission flags for more information).dataDeletionboolean Whether the requesting user can remove objects from any org project or container regardless of membership (see Organization permission flags for more information).dataSearchboolean Whether the requesting user can list all copies of objects across the entire organization (see Organization permission flags for more information).policiesmapping Organization-wide policies.pendingBillingInformationmapping (nullable) A mapping containing billing information that goes into effect once the accounts payable contact agrees to and confirms the billing information, ornullif there is no pending billing information.estSpendingLimitLeftnumber (nullable) The estimated number of dollars remaining before new activities billed to the org are locked down. A value ofnullindicates that no spending limit is imposed on the account. This value may be negative, which indicates that the org has exceeded the spending limit. The value may continue to decrease if jobs are still running or if projects with nonzero storage amounts are still billed to the org.phiFeaturesEnabledboolean Whether PHI features have been enabled for the account.defaultRegionstring The default region in which newly created projects billed to this org reside (may be overridden at project creation time). For more information about regions, see Regions.permittedRegionsarray of strings The regions in which this org can create projects. For more information about regions, see Regions.memberLimitinteger (nullable) The maximum number of members that may belong to this org. A value ofnullindicates that no member limit is set. This field can only be set by DNAnexus Platform admins.
The following fields (included by default) are available if the requesting user is a MEMBER of the org and billing information has been confirmed for this billing account:
billingInformationmapping The confirmed billing contact information to which invoices are sent.
The following fields (included by default) are available if the requesting user is a member of the org with allowBillableActivities permission:
computeChargesnumber Running total of compute charges (in dollars) for the account.computeChargesReflectedUntiltimestamp Last date for whichcomputeChargeswere calculated.computeChargesComputedAttimestamp Time whencomputeChargeswere updated in the system.storageChargesnumber Running total of storage charges (in dollars) for the account.storageChargesReflectedUntiltimestamp Last date for whichstorageChargeswere calculated.storageChargesComputedAttimestamp Time thatstorageChargeswere last updated in the system.dataEgressChargesnumber Running total of data egress charges (in dollars) for the account.dataEgressChargesReflectedUntiltimestamp Last date for whichdataEgressChargeswere calculated.dataEgressChargesComputedAttimestamp Time thatdataEgressChargeswere last updated in the system.dearchivalChargesnumber Running total of data dearchival charges (in dollars) for the account.dearchivalChargesReflectedUntiltimestamp Last date for whichdearchivalChargeswere calculated.dearchivalChargesComputedAttimestamp Time thatdearchivalChargeswere last updated in the system.dbclusterChargesnumber Running total of DB cluster charges (in dollars) for the account.dbclusterChargesReflectedUntiltimestamp Last date for whichdbclusterChargeswere calculated.dbclusterChargesComputedAttimestamp Time thatdbclusterChargeswere last updated in the system.
The following fields are only returned if the corresponding field in the fields input is set to true, the user is a member of the org with allowBillableActivities permission, and billing information has been confirmed for this billing account:
pricingModelsByRegionmapping Contains information about the pricing models that are in effect for the org (applied to projects whosebillTois this org). This mapping has one entry for each region in thepermittedRegionsof the org:key — The region ID (for example,
aws:us-east-1).value mapping — The pricing model that is applied in this region:
storageRatePerGBMonthnumber Storage rate (in dollars per GB-month) for ordinary (non-archival) storage in this region.computeRatesPerHourmapping Contains compute rates for each instance type the account can use in this region. For a list of available instance types, see: Instance Types.key — Instance type name.
value number — Rate (in dollars per instance-hour).
ipRatesmapping Rate for data leaving DNAnexus from this region to specific destination IP ranges (specified in CIDR notation). If an IP is in more than one specified range, the rate is given by the most specific matching IP range. The mapping includes the predefined key "0.0.0.0/0" with the default rate.key — IP range (specified in CIDR notation).
value number — Rate (in dollars per GB) leaving DNAnexus to that IP range.
publicIPv4AddressRatePerHournumber Per-hour charge (in currency units) for using IPv4 addresses for workers in this region.
The following field is present only if the org has the
phiFeaturesEnabledfield set to true:computeRatesPerHourPHImapping Contains compute rates for each instance type the account can use in this region, applied only to projects that have thecontainsPHIflag set.key — Instance type name.
value number — Rate (in dollars per instance-hour) for this instance type.
The following fields are present only if the org has the Relational Database Service enabled:
dbclusterStorageRatePerGBMonthnumber Storage rate (in dollars per GB-month) for storage used by DBCluster, in this region.dbclusterBackupPerGBMonthnumber Backup storage rate (in dollars per GB-month) for storage used by DBCluster, in this region.dbclusterIORequestsPer1Mnumber The rate (in dollars) charged per million of I/O requests made to the DBCluster billed to this org. See AWS Aurora FAQ on I/O operations for more details.dbclusterInstanceRatesPerHourmapping Contains compute rates (in dollars) for each instance type used for DBCluster, that the account can use in this region.dbclusterInstanceCpuBurstRatesPerHourmapping Contains CPU Burst rates (in dollars) for each bursting DBCluster instance type that the account can use in this region.db_std1instances may incur CPU Burst charges similar to AWS T3 Db instances described in AWS RDS instance types documentation.db_std1_x1has 2 cores. Regular hourly charges for this instance type are based on 1 core, CPU Burst charges are based on 2 cores.
The following fields are only returned if the corresponding field in the fields input is set to true and the requesting user is an ADMIN of the org:
expiresAttimestamp The date when the organization expires and all associated data is permanently deleted. Organization expiration dates are typically set for temporary organizations.Only present when the organization has an expiration date.
pendingTransfersarray of strings List of project IDs which the org has been invited to be the billing account for.userCreationFeaturesEnabledboolean Whether admins of this org may provision a new account for another user.
A license is required to enable org admins to provision accounts for other users. Contact DNAnexus Sales for more information.
The following fields are only returned if the requesting user is an ADMIN of the org:
auditLogProjectIdstring The ID of the project that stores audit logs.Only present when Audit Trail is enabled for the org.
monthlyReportsProjectIdstring The ID of the project that stores monthly project usage reports.Only present when Per-Project Usage Report is enabled for the org.
usageReportingPoliciesmapping Configuration for monthly project usage reports. Contains the following key:Only present when the
detailedUsageReportProjectLevelfeature is enabled for the org.projectIdstring The ID of the project where monthly project-level usage reports are delivered.
jobLogsForwardingmapping Job logs forwarding settings for the org, ornullif job logs forwarding has not been configured for the org or if the org does not have a job logs forwarding license. This mapping may contain the following keys:urlstring The URL of the Splunk endpoint.Only present when the org is configured to send job logs to Splunk.
tokenSignaturestring The sha256 of the Splunk token supplied to/org-xxxx/update.Only present when the org is configured to send job logs to Splunk.
updatedinteger The timestamp when this configuration was last updated.updatedBystring The user id that issued the last configuration update.
A license is required to use the Forwarding Job Logs to a customer's Splunk feature. Contact DNAnexus Sales for more information.
The following keys in policies (included by default) are available if the requesting user is a member of the org and if the org has the Monthly Project Spending Limit feature enabled:
monthlyProjectComputeLimitDefault(see Org Policies for details)monthlyProjectEgressBytesLimitDefault(see Org Policies for details)monthlyProjectStorageLimitDefault(see Org Policies for details)enforceTerminationForProjectComputeLimit(see Org Policies for details)enforceTerminationForProjectEgressBytesLimit(see Org Policies for details)enforceTerminationForProjectStorageLimit(see Org Policies for details)projectSpendingLimitNotificationThreshold(see Org Policies for details)
A license is required to use the Monthly Project Spending Limit for Storage feature. Contact DNAnexus Sales for more information.
Errors
PermissionDenied
jobLogsForwardingfield can only be explicitly requested by an org ADMIN with a full scope token
API Method: /org-xxxx/update
/org-xxxx/updateSpecification
Updates information about an organization. The requesting user must be an ADMIN of the organization.
Inputs
namestring (optional) A descriptive name for the organization.policiesmapping (optional) A set of organization policies to override the existing policies. Policies that are not included in the mapping are not updated. See org policies for more information.defaultRegionstring (optional) The default region in which all newly created projects billed to this org reside (may be overridden at project creation time). For more information about regions, see Regions.jobLogsForwardingmapping (optional) Configuration to enable or disable the forwarding of job logs billed to this org to a customer's Splunk instance. See Forwarding Job Logs to a customer's Splunk for more information. Supplying an empty mapping disables job logs forwarding. If job logs forwarding is already disabled, the operation succeeds without updating the org'sjobLogsForwardingconfiguration. Otherwise, the mapping requires the following keys:urlstring (required) The URL of the Splunk HEC endpoint to receive forwarded job logs. Must start with"https://". For example:https://http-inputs-examplecompany.splunkcloud.com/services/collector/eventtokenstring (required) The Splunk HEC token string for forwarding job logs to Splunk.Enabling job logs forwarding prints the following message to the configured Splunk instance:
user-xxxx, an admin of org-yyyy is enabling DNAnexus job logs forwarding with these parameters{"url": "<url>","tokenSignature": "<sha256OfSplunkToken>"}
A license is required to use the Forwarding Job Logs to a Customer's Splunk feature. Contact DNAnexus Sales for more information.
Outputs
idstring ID of the organization.
Errors
InvalidInput
defaultRegionis not in the org'spermittedRegions.If
monthlyProjectComputeLimitDefaultinpoliciesis not an integer and notnull, or not larger than or equal to zero.If
monthlyProjectEgressBytesLimitDefaultinpoliciesis not an integer and notnull, or not larger than or equal to zero.If
monthlyProjectStorageLimitDefaultinpoliciesis not a number and notnull, or not larger than or equal to zero.If
enforceTerminationForProjectComputeLimitinpoliciesis not a boolean.If
enforceTerminationForProjectEgressBytesLimitinpoliciesis not a boolean.If
projectSpendingLimitNotificationThresholdinpoliciesis not an integer, or not a value between 1 and 99.detailedJobMetricsCollectDefaultinpoliciesinput must be a boolean.jobLogsForwarding.urlmust start withhttps://.jobLogsForwarding.urlmust not exceed 1024 characters.jobLogsForwardingmust be an empty hash or a hash withjobLogsForwarding.urlandjobLogsForwarding.tokenfields.Attempt to upload to
<Splunk HEC URL>failed with<Splunk upload error code> '<Splunk upload error message>'.jobLogsForwardingcannot be updated together with other org attributes.
InvalidState
The organization has reached the maximum number of members allowed. Applicable only to orgs with Omics Data Catalog enabled.
PermissionDenied
The requesting user is not an ADMIN of the organization.
The requesting user does not have a full scope token.
If
monthlyProjectSpendingLimitis not enabled for the org but the following fields are provided forpolicies:monthlyProjectComputeLimitDefaultmonthlyProjectEgressBytesLimitDefaultenforceTerminationForProjectComputeLimitenforceTerminationForProjectEgressBytesLimitprojectSpendingLimitNotificationThreshold
If
monthlyProjectStorageSpendingLimitis not enabled for the org but the following fields are provided forpolicies:monthlyProjectStorageLimitDefault
If the Detailed Job Metrics feature is not enabled for the org, the following fields are provided for
policies:detailedJobMetricsCollectDefault
If the Job Logs Forwarding feature is not enabled for the org, but the following fields are provided:
jobLogsForwarding
Licenses are required to use the Monthly Project Spending Limit for Computing and Egress, Monthly Project Spending Limit for Storage, and Job Logs Forwarding features. Contact DNAnexus Sales for more information.
API Method: /org-xxxx/invite
/org-xxxx/inviteSpecification
Invites a user to become a member of the organization. Sends the invitation to an existing user or email address.
Inputs
inviteestring (required) User ID or email address of the user that is invited to the organization with a membership status oflevel.treManagementboolean (optional) If true, grants the invitee thetreManagementpermission flag whenlevelis"MEMBER". Defaults tofalse.levelstring (optional) Membership status that the invitee receives. Defaults to"MEMBER".Must be one of
"MEMBER"or"ADMIN".
messagestring (optional) A message to the recipientinvitee.suppressEmailNotificationboolean (optional) If true, does not send an email notification to theinvitee. Defaults tofalse.
If level is "MEMBER", then the following optional org permission flags (see Org Permission Flags for more information) may be included:
allowBillableActivitiesboolean (optional) Whether theinviteecan perform billable activities on behalf of the org. Defaults tofalse.appAccessboolean (optional) Whether the user can access and run apps shared with the org. Defaults totrue.projectAccessstring (optional) The maximum project permission theinviteeis granted via the org to projects explicitly shared with the org. Defaults to"CONTRIBUTE".Must be one of
"ADMINISTER","CONTRIBUTE","UPLOAD","VIEW", or"NONE".
The following custom role permission flags (see Org Permission Flags for more information) may also be included. Only org ADMINs can set these flags.
archivalManagementboolean (optional) Whether theinviteecan perform org-wide archive and unarchive operations. Defaults tofalse.projectMemberDemotionboolean (optional) Whether theinviteecan decrease project member permissions on any org project without being a project member. Defaults tofalse.dataDeletionboolean (optional) Whether theinviteecan remove objects from any org project or container regardless of membership. Defaults tofalse.dataSearchboolean (optional) Whether theinviteecan list all copies of objects across the entire organization. Defaults tofalse.
Outputs
idstring Invite ID, ornullif the invite did not need to be created. This happens when the invitee already has at least the requested permission.statestring State of the invite.
Errors
ResourceNotFound
inviteeis not an existing user or is not a valid email address
InvalidState
The organization has reached the maximum number of members allowed. Applicable only to orgs with Omics Data Catalog enabled.
PermissionDenied
The requesting user is not an ADMIN of the organization
The requesting user does not have a full scope token.
The requesting user does not have the
treManagementpermission but attempted to settreManagementtotruefor the inviteeThe requesting user is not an ADMIN of the organization but attempted to set any of
archivalManagement,projectMemberDemotion,dataDeletion, ordataSearchtotruefor the invitee
API Method: /org-xxxx/setMemberAccess
/org-xxxx/setMemberAccessSpecification
Modifies the organization membership statuses or permission flags for members of the organization. To add new users to the organization, refer to /org-xxxx/invite.
When upgrading a user's membership status from "MEMBER" to "ADMIN", all custom role permission flags (archivalManagement, projectMemberDemotion, dataDeletion, dataSearch) are implicitly set to true. When downgrading a user's membership status from "ADMIN" to "MEMBER", all custom role permission flags default to false. If any permission flag is explicitly provided during a downgrade, the provided value takes precedence.
For an existing user who is a "MEMBER" and remains a "MEMBER", the specified permission flags are set, and those that are unspecified are unaffected.
When changing a user's membership status from "MEMBER" to "ADMIN", permission flags cannot be specified.
This method attempts to make all possible modifications. If some modifications fail because users in the input are not members of the organization, the method applies changes to all remaining users and throws an InvalidState error. This behavior does not apply to other errors.
Inputs
The input to
/org-xxxx/setMemberAccessis a mapping with the following key-value pairs:key — User ID.
value mapping — A mapping of organization membership status and permission flags to set for the corresponding user. Includes the following key-value pairs:
treManagementboolean (optional) Whether the corresponding user can manage Trusted Research Environments (TREs) for the org whenlevelis"MEMBER".levelstring The membership status to set for the user. Must be one of"MEMBER"or"ADMIN".Permission flags are prohibited if
levelis"ADMIN"and optional otherwise.
allowBillableActivitiesboolean (optional) Whether the corresponding user can perform billable activities on behalf of the org.appAccessboolean (optional) Whether the corresponding user can access or run apps shared with the org.projectAccessstring (optional) The maximum project permission the corresponding user is granted via the org to projects explicitly shared with the org. Must be one of"ADMINISTER","CONTRIBUTE","UPLOAD","VIEW", or"NONE".archivalManagementboolean (optional) Whether the corresponding user can perform org-wide archive and unarchive operations. Only org ADMINs can set this flag totrue.projectMemberDemotionboolean (optional) Whether the corresponding user can decrease project member permissions on any org project without being a project member. Only org ADMINs can set this flag totrue.dataDeletionboolean (optional) Whether the corresponding user can remove objects from any org project or container regardless of membership. Only org ADMINs can set this flag totrue.dataSearchboolean (optional) Whether the corresponding user can list all copies of objects across the entire organization. Only org ADMINs can set this flag totrue.
Outputs
idstring ID of the organization.
Errors
InvalidInput
The requesting user specified themselves in the input
treManagementis provided but is not a boolean
InvalidState
At least one of the users is neither a MEMBER nor an ADMIN of the organization
PermissionDenied
The requesting user is not an ADMIN of the organization
The requesting user does not have a full scope token
The requesting user does not have the
treManagementpermission but attempted to settreManagementtotruefor the specified user IDThe requesting user is not an ADMIN of the organization but attempted to set any of
archivalManagement,projectMemberDemotion,dataDeletion, ordataSearchtotruefor the specified user ID
API Method: /org-xxxx/findProjects
/org-xxxx/findProjectsSpecification
Lists projects that are billed to the org (and optionally describes those projects). Only ADMINs of the org are permitted to perform this operation in general. MEMBERs may use the member filter to query their own user ID, or to query another member's project access if they have the projectMemberDemotion permission.
Projects are ordered by:
Last modified time stamp (descending), then
ID (ascending)
This behaves similarly to /system/findProjects.
Inputs
memberstring (optional) If specified, limits results to projects that the given user ID has access to within the organization. Requires the requesting user to be an org ADMIN, or to be a MEMBER who is querying their own user ID or hasprojectMemberDemotion: true.namestring or mapping (optional) If a string, then the exact case-sensitive name that the resulting projects must have. If a mapping, then may include any subset of the following key-value pairs:regexpstring (mutually exclusive withglob, required ifglobis not present) A PCRE regular expression that must be matched by the name of all resulting projects.flagsstring (optional ifregexpis present, prohibited otherwise) This field can only have value"i"to enable case-insensitive matching for the regular expression.globstring (mutually exclusive withregexp, required ifregexpis not present) A wildcard pattern that must be matched by the name of all resulting projects. The valid wildcard patterns are'*'(0 or more characters) and '?' (1 character).
idarray of strings (optional) If specified, the resulting projects must have project IDs among this list of IDs. The array may contain no more than 1000 elements.tagsstring or mapping (optional) Specifies the tags that all resulting projects must have. Can be provided in the following ways:A string to match a single tag exactly, for example,
"production".An AND condition requiring all specified tags to match, for example,
{"$and": ["production", "validated"]}.An OR condition requiring at least one specified tag to match, for example,
{"$or": ["production", "development"]}.Complex nested conditions:
{"$or": ["production", {"$and": ["validated", "reviewed"]}]}.
propertiesmapping (optional) Specifies the properties that matching projects must have. Can be provided in the following ways:A mapping of key-value pairs where each key is a property name and each value can be:
A string: The property must have exactly this value, for example,
{"department": "genomics"}.A boolean
true: The property must exist with any value, for example,{"confidential": true}.
An AND condition requiring all specified property constraints to match, for example,
{"$and": [{"department": "genomics"}, {"confidential": true}]}.An OR condition requiring at least one specified property constraint to match, for example,
{"$or": [{"department": "genomics"}, {"department": "proteomics"}]}.Complex nested conditions:
{"$or": [{"department": "genomics"}, {"$and": [{"confidential": true}, {"status": "active"}]}]}.
cloudAccountstring (optional) If specified, limits results to projects associated with the provided cloud account ID.providerstring (optional) If specified, the resulting set contains only projects that are associated with the provider ID.regionstring or array of strings (optional) For a string value, limits results to projects matching the specifiedregion. For an array, limits results to projects withregionmatching any of the specified strings.publicboolean (optional) If true, includes only public projects in the result set. If false, excludes all public projects.createdmapping (optional) If at least one of the following keys exists, limits results to projects created in the specified time period. Without these keys, no creation time constraints apply. An error occurs if acreatedhash lacks at least one key.describeboolean or mapping (optional) Controls whether extra metadata is retrieved with results. Defaults tofalse.If a mapping, provides input for
/project-xxxx/describecalls on each returned project.Allows the following keys:
monthlyComputeLimitcurrentMonthComputeUsagecurrentMonthComputeAvailableBudgetmonthlyEgressBytesLimitcurrentMonthEgressBytesUsagecurrentMonthEgressBytesAvailableBudgetmonthlyStorageLimitcurrentMonthExpectedStorageUsagecurrentMonthStorageAvailableBudget
startingstring (optional) Continue a previous query that had reached its limit. Provide the value that was returned asnextin the previous query's output.limitinteger (optional) Maximum number of projects that are returned. Defaults to1000.Must be no more than
1000.
containsPHIboolean (optional) If set to true, only projects that contain PHI data are retrieved. If set to false, only projects that do not contain PHI data are retrieved.
Outputs
resultsarray of mappings List of results, each with the following fields:idstring ID of the resulting project.publicboolean Whether the project is public.levelstring The explicit project permission the requesting user has to the corresponding project. May be "NONE".tremapping TRE association details for the project. Only present when the project is associated with a Trusted Research Environment.treIdstring ID of the TRE.treApplicationIdstring ID of the Data Access Request used to create the project.workspaceTypestring The TRE workspace classification of the project. Defaults to"restricted".
describemapping The output of the corresponding project's describe method if the inputdescribewas true or a mapping. This mapping may contain the keylevelwith a corresponding value of "NONE", unlike the output of/system/findProjects.
nextstring (nullable) Pagination cursor, ornullif all results are included inresults. If a string, supply this value tostartingin a subsequent query to retrieve more results.
Errors
PermissionDenied
The requesting user is not an ADMIN of the organization and no
memberfilter is providedThe requesting user does not have a full scope token
The requesting user is a MEMBER without
projectMemberDemotionand attempted to use thememberfilter
API Method: /org-xxxx/findApps
/org-xxxx/findAppsSpecification
Lists all apps that are billed to the org. The ordering of results is arbitrary. Only admins of the org are allowed to perform this operation.
This operation behaves similarly to /system/findApps, except that, by default, it returns all apps billed to the org, regardless of whether the app has been published, or whether the requesting user is either a developer or on the authorized users list.
Org admins can call /app-xxxx/addDeveloper on any app returned by this API method.
Inputs
namestring or mapping (optional) If a string, the exact case-sensitive name that the results must have. If a mapping, then it can have a subset of the following fields:regexpstring (mutually exclusive withglob, required ifglobis not present) A PCRE regular expression that the name of all results must match.flagsstring (optional, can only be present ifregexpis present) This field can only have value"i"to enable case-insensitive matching for the regular expression.globstring (mutually exclusive withregexp, required ifregexpis not present) A wildcard pattern that the name of all results must match. The valid wildcard characters are"*"(0 or more characters) and"?"(1 character).
categorystring or mapping (optional) Specifies the category or categories that matching apps must have. Can be provided in the following ways:A string to match a single category exactly, for example,
"Alignment".An AND condition requiring all specified categories to match, for example,
{"$and": ["Alignment", "NGS"]}.An OR condition requiring at least one specified category to match, for example,
{"$or": ["Alignment", "Variant Calling"]}.Complex nested conditions:
{"$or": ["Alignment", {"$and": ["NGS", "RNA-Seq"]}]}.
allVersionsboolean (optional) Set to true to include all app versions, not only those tagged with "default". Defaults tofalse.publishedboolean (optional) Set to true for published apps only, false for unpublished apps only. If omitted, returns both published and unpublished apps.createdBystring (optional) ID of the user who created the app.developerstring (optional) ID of a developer the app must have.authorizedUserstring (optional) One of a userID, an orgID, or the string "PUBLIC", that must exist in each app'sauthorizedUserslist.modifiedmapping (optional) If at least one of the following keys is specified, the resulting apps must have been last modified in the indicated time period. If not specified, there is no constraint on when the app was last modified. If amodifiedhash does not contain at least one of the following keys, an error is thrown.createdmapping (optional) If at least one of the following keys is specified, the resulting apps must have been created in the indicated time period. If not specified, there is no constraint on app creation time. If acreatedhash does not contain at least one of the following keys, an error is thrown.describeboolean or mapping (optional) Controls whether extra metadata is retrieved with the results. Defaults tofalse.If a mapping, represents the input for calling
/app-xxxx/describeon each of the returned results.
startingmapping (optional) Continue a previous query that had reached its limit. Provide the value that was returned asnextin the query's output.limitinteger (optional) Maximum number of results to return. Defaults to1000. Must be between 1 and 1000.
Outputs
resultsarray of mappings List of results, each with the following fields:idstring ID of the app.describemapping The output of the result's corresponding describe method ifdescribewas set to true or a mapping.
nextmapping (nullable) Pagination cursor, ornullif all results were reported inresults. If a mapping, pass this value directly tostartingin a subsequent query if you need more results.
Errors
PermissionDenied
The requesting user is not an ADMIN of the organization
The requesting user does not have a full scope token
API Method: /org-xxxx/removeMember
/org-xxxx/removeMemberSpecification
Removes the specified user from the org. The requesting user may remove any org member, including themselves, from the org. By default, this operation also revokes all permissions that the specified user has to projects or apps that are billed to the org. On completion, the specified user may no longer perform any action that can incur charges to the org.
The requesting user must be an ADMIN of the org, but does not need ADMINISTER permission to projects or developer access to apps whose permissions may be modified by this operation.
When removing another member from the org, the requesting user may receive elevated permissions to projects or apps to prevent orphaned resources. For example, the requesting user receives ADMINISTER permission to a project only if the specified user is the sole user with ADMINISTER permission. Similarly, the requesting user receives developer access to an app only if the specified user is the sole developer. The requesting user receives no elevated permissions when removing themselves from the org.
If the specified user is not a member of the org at invocation time, their permissions to projects or apps billed to the org remain unchanged.
Inputs
userstring (required) ID of the user to remove from the org.revokeProjectPermissionsboolean (optional) whether to revoke all explicit permissions granted touserfor projects billed to the org. The requesting ADMIN does not need to have ADMINISTER permission to projects billed to the org that are modified because of this operation. Defaults totrue.revokeAppPermissionsboolean (optional) whether to revoke all explicit developer and authorized accesses granted touserfor apps billed to the org. The requesting ADMIN does not need to have developer access to apps billed to the org that are modified because of this operation. Defaults totrue.
Outputs
idstring ID of the manipulated org.projectsmapping Mapping with the following key-value pairs:key — ID of the project from which the specified user's explicit permission was revoked.
value boolean — whether the requesting administrator was granted ADMINISTER permission to the corresponding project.
appsmapping Mapping with the following key-value pairs:key — name of the app from which the specified user's explicit accesses were revoked.
value boolean — whether the requesting administrator was granted developer access to the corresponding app.
Errors
InvalidState
The requesting user may not remove themselves if they are the only ADMIN in the org
PermissionDenied
Must have full scope auth token
Must be an ADMIN of the org
API Method: /org-xxxx/findMembers
/org-xxxx/findMembersSpecification
Finds all members of the org, subject to the constraints specified by the requesting user.
The requesting user may be required to have a certain minimum org membership level to perform this operation. To bypass the minimum org membership level restriction and view the membership information of oneself, invoke /org-xxxx/describe.
The ordering of the returned members is ascending by ID.
Inputs
levelstring (optional) Restrict results to members with the specified membership level.Must be one of
"MEMBER"or"ADMIN".
idarray of strings (optional) If specified, the resulting list of members must have user IDs among this list of IDs. The array may contain no more than 1000 elements.describeboolean or mapping (optional) Controls whether extra metadata is retrieved with results. Defaults tofalse.If a mapping, represents the input for describing each member in the result set. See
/user-xxxx/describefor more information.
startingmapping (optional) Continue a previous query that had reached its limit. Provide the non-null value that was returned asnextin that query's output.limitinteger (optional) Maximum number of members that may be returned. Defaults to1000.Must be no more than
1000.
Outputs
resultsarray of mappings List of results, each with the following fields:idstring ID of the org member.levelstring Membership level of the member in this org.allowBillableActivitiesboolean Whether the corresponding member can perform billable activities on behalf of the org (see org permission flags for more information).projectAccessstring The maximum project permission the corresponding member is granted via the org to projects explicitly shared with this org.appAccessboolean Whether the corresponding member can access and run apps shared with this org.treManagementboolean Whether the corresponding member can manage Trusted Research Environments (TREs) for this org.archivalManagementboolean Whether the corresponding member can perform org-wide archive and unarchive operations.projectMemberDemotionboolean Whether the corresponding member can decrease project member permissions on any org project without being a project member.dataDeletionboolean Whether the corresponding member can remove objects from any org project or container regardless of membership.dataSearchboolean Whether the corresponding member can list all copies of objects across the entire organization.describemapping Metadata about the org member ifdescribewas true or a mapping. The output is equivalent to that of/user-xxxx/describe, with the exception that the extra keys are not present if the requesting user is also the member being described. The mapping contains a subset of the following keys:idclassfirstlastmiddlehandle
nextmapping (nullable) Pagination cursor, ornullif all results were reported inresults. If a mapping, pass this value directly tostartingin a subsequent query if you need more results.
Errors
PermissionDenied
The requesting user does not have a sufficient org membership level. See memberListVisibility for more information.
/org-xxxx/describemay be invoked to view the requesting user's own org membership information.Must have full scope auth token
API Method: /org-xxxx/destroy
/org-xxxx/destroySpecification
Destroys the specified org. All members are removed from the organization. Any project or app permissions granted to the org are revoked.
Inputs
None
Outputs
idstring ID of the organization.
Errors
InvalidState
Existing projects or apps are billed to this org
PermissionDenied
The requesting user must be an ADMIN of the org
Must have full scope auth token
API Method: /org-xxxx/bulkUpdateProjectLimit
/org-xxxx/bulkUpdateProjectLimitSpecification
Updates project-level spending limits for one or more projects billed to the org.
Inputs
projectsarray of strings (required) One or more project IDs to update. The array may contain no more than 1000 elements.monthlyComputeLimitinteger (optional, nullable) The project-level compute spending limit.monthlyStorageLimitnumber (optional, nullable) The project-level storage spending limit.monthlyEgressBytesLimitinteger (optional, nullable) The project-level egress spending limit.dryRunboolean (optional) If set to true, the final update call is not performed. Defaults tofalse.
Outputs
updatedCountinteger The number of projects that were updated (or the number of projects eligible for update ifdryRunis true).
Errors
InvalidInput
If neither
monthlyComputeLimitnormonthlyEgressBytesLimitnormonthlyStorageLimitis provided.If
monthlyComputeLimitis not an integer ornullor is not larger than or equal to zero.If
monthlyEgressBytesLimitis not an integer ornullor is not larger than or equal to zero.If
monthlyStorageLimitis not a number ornullor is not larger than or equal to zero.dryRunis not a boolean.If any project does not belong to the org.
If there are more than 1000 project IDs.
ResourceNotFound
If a
projectIdis not found.
PermissionDenied
If
licenseFeature.monthlyProjectSpendingLimitis not enabled.If the requesting user is not an org ADMIN.
The requesting user does not have a full-scope token.
Licenses are required to use both the Monthly Project Spending Limit for Computing and Egress and Monthly Project Spending Limit for Storage features. Contact DNAnexus Sales for more information.
Last updated
Was this helpful?