UNPKG

@stackone/ai

Version:

Tools for agents to perform actions on your SaaS

1,589 lines 97.6 kB
//#region src/openapi/generated/iam.ts const iamSpec = { openapi: "3.1.0", paths: { "/unified/iam/users": { get: { operationId: "iam_list_users", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,first_name,last_name,name,primary_email_address,username,roles,groups,status,avatar,is_bot_user,last_active_at,last_login_at,created_at,updated_at,multi_factor_enabled", type: "string" } }, { name: "filter", required: false, in: "query", description: "Filter parameters that allow greater customisation of the list response", explode: true, style: "deepObject", schema: { properties: { updated_after: { description: "Use a string with a date to only select results updated after that given date", example: "2020-01-01T00:00:00.000Z", type: "string", format: "date-time", nullable: true, additionalProperties: false } }, nullable: true, type: "object" } }, { name: "page", required: false, in: "query", description: "The page number of the results to fetch", deprecated: true, schema: { nullable: true, type: "string" } }, { name: "page_size", required: false, in: "query", description: "The number of results per page (default value is 25)", schema: { nullable: true, type: "string" } }, { name: "next", required: false, in: "query", description: "The unified cursor", schema: { nullable: true, type: "string" } }, { name: "updated_after", required: false, in: "query", description: "Use a string with a date to only select results updated after that given date", deprecated: true, schema: { format: "date-time", nullable: true, example: "2020-01-01T00:00:00.000Z", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "roles,groups", type: "string" } } ], responses: { "200": { description: "The list of users was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamUsersPaginated" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "List Users", tags: ["Users"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "list_users", "x-speakeasy-pagination": { type: "cursor", inputs: [{ name: "next", in: "parameters", type: "cursor" }], outputs: { nextCursor: "$.next" } }, "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/users/{id}": { get: { operationId: "iam_get_user", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "id", required: true, in: "path", schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,first_name,last_name,name,primary_email_address,username,roles,groups,status,avatar,is_bot_user,last_active_at,last_login_at,created_at,updated_at,multi_factor_enabled", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "roles,groups", type: "string" } } ], responses: { "200": { description: "The user with the given identifier was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamUserResult" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "Get User", tags: ["Users"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "get_user", "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } }, patch: { operationId: "iam_update_user", parameters: [{ name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "id", required: true, in: "path", schema: { type: "string" } }], requestBody: { required: true, content: { "application/json": { schema: { $ref: "#/components/schemas/IamUpdateUserRequestDto" } } } }, responses: { "200": { description: "Record updated successfully.", content: { "application/json": { schema: { $ref: "#/components/schemas/UpdateResult" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "Update User", tags: ["Users"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "update_user", "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } }, delete: { operationId: "iam_delete_user", parameters: [{ name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "id", required: true, in: "path", schema: { type: "string" } }], responses: { "200": { description: "The user was deleted successfully.", content: { "application/json": { schema: { $ref: "#/components/schemas/DeleteResult" } } } }, "204": { description: "The user was deleted successfully but no content was returned." }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "Delete User", tags: ["Users"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "delete_user", "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/roles": { get: { operationId: "iam_list_roles", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,name,type,policies,description,created_at,updated_at", type: "string" } }, { name: "filter", required: false, in: "query", description: "Filter parameters that allow greater customisation of the list response", explode: true, style: "deepObject", schema: { properties: { updated_after: { description: "Use a string with a date to only select results updated after that given date", example: "2020-01-01T00:00:00.000Z", type: "string", format: "date-time", nullable: true, additionalProperties: false } }, nullable: true, type: "object" } }, { name: "page", required: false, in: "query", description: "The page number of the results to fetch", deprecated: true, schema: { nullable: true, type: "string" } }, { name: "page_size", required: false, in: "query", description: "The number of results per page (default value is 25)", schema: { nullable: true, type: "string" } }, { name: "next", required: false, in: "query", description: "The unified cursor", schema: { nullable: true, type: "string" } }, { name: "updated_after", required: false, in: "query", description: "Use a string with a date to only select results updated after that given date", deprecated: true, schema: { format: "date-time", nullable: true, example: "2020-01-01T00:00:00.000Z", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "policies", type: "string" } } ], responses: { "200": { description: "The list of roles was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamRolesPaginated" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "List Roles", tags: ["Roles"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "list_roles", "x-speakeasy-pagination": { type: "cursor", inputs: [{ name: "next", in: "parameters", type: "cursor" }], outputs: { nextCursor: "$.next" } }, "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/roles/{id}": { get: { operationId: "iam_get_role", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "id", required: true, in: "path", schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,name,type,policies,description,created_at,updated_at", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "policies", type: "string" } } ], responses: { "200": { description: "The role with the given identifier was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamRoleResult" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "Get Role", tags: ["Roles"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "get_role", "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/groups": { get: { operationId: "iam_list_groups", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,parent_id,remote_parent_id,name,description,roles,type,created_at,updated_at", type: "string" } }, { name: "filter", required: false, in: "query", description: "Filter parameters that allow greater customisation of the list response", explode: true, style: "deepObject", schema: { properties: { updated_after: { description: "Use a string with a date to only select results updated after that given date", example: "2020-01-01T00:00:00.000Z", type: "string", format: "date-time", nullable: true, additionalProperties: false } }, nullable: true, type: "object" } }, { name: "page", required: false, in: "query", description: "The page number of the results to fetch", deprecated: true, schema: { nullable: true, type: "string" } }, { name: "page_size", required: false, in: "query", description: "The number of results per page (default value is 25)", schema: { nullable: true, type: "string" } }, { name: "next", required: false, in: "query", description: "The unified cursor", schema: { nullable: true, type: "string" } }, { name: "updated_after", required: false, in: "query", description: "Use a string with a date to only select results updated after that given date", deprecated: true, schema: { format: "date-time", nullable: true, example: "2020-01-01T00:00:00.000Z", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "roles", type: "string" } } ], responses: { "200": { description: "The list of groups was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamGroupsPaginated" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "List Groups", tags: ["Groups"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "list_groups", "x-speakeasy-pagination": { type: "cursor", inputs: [{ name: "next", in: "parameters", type: "cursor" }], outputs: { nextCursor: "$.next" } }, "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/groups/{id}": { get: { operationId: "iam_get_group", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "id", required: true, in: "path", schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,parent_id,remote_parent_id,name,description,roles,type,created_at,updated_at", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "roles", type: "string" } } ], responses: { "200": { description: "The group with the given identifier was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamGroupResult" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "Get Group", tags: ["Groups"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "get_group", "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/policies": { get: { operationId: "iam_list_policies", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,name,permissions,description,created_at,updated_at", type: "string" } }, { name: "filter", required: false, in: "query", description: "Filter parameters that allow greater customisation of the list response", explode: true, style: "deepObject", schema: { properties: { updated_after: { description: "Use a string with a date to only select results updated after that given date", example: "2020-01-01T00:00:00.000Z", type: "string", format: "date-time", nullable: true, additionalProperties: false } }, nullable: true, type: "object" } }, { name: "page", required: false, in: "query", description: "The page number of the results to fetch", deprecated: true, schema: { nullable: true, type: "string" } }, { name: "page_size", required: false, in: "query", description: "The number of results per page (default value is 25)", schema: { nullable: true, type: "string" } }, { name: "next", required: false, in: "query", description: "The unified cursor", schema: { nullable: true, type: "string" } }, { name: "updated_after", required: false, in: "query", description: "Use a string with a date to only select results updated after that given date", deprecated: true, schema: { format: "date-time", nullable: true, example: "2020-01-01T00:00:00.000Z", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "permissions", type: "string" } } ], responses: { "200": { description: "The list of policies was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamPoliciesPaginated" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "List Policies", tags: ["Policies"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "list_policies", "x-speakeasy-pagination": { type: "cursor", inputs: [{ name: "next", in: "parameters", type: "cursor" }], outputs: { nextCursor: "$.next" } }, "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } }, "/unified/iam/policies/{id}": { get: { operationId: "iam_get_policy", parameters: [ { name: "x-account-id", in: "header", description: "The account identifier", required: true, schema: { type: "string" } }, { name: "id", required: true, in: "path", schema: { type: "string" } }, { name: "raw", required: false, in: "query", description: "Indicates that the raw request result should be returned in addition to the mapped result (default value is false)", schema: { nullable: true, type: "boolean" } }, { name: "proxy", required: false, in: "query", description: "Query parameters that can be used to pass through parameters to the underlying provider request by surrounding them with 'proxy' key", style: "deepObject", explode: true, schema: { additionalProperties: true, nullable: true, type: "object" } }, { name: "fields", required: false, in: "query", description: "The comma separated list of fields that will be returned in the response (if empty, all fields are returned)", schema: { nullable: true, example: "id,remote_id,name,permissions,description,created_at,updated_at", type: "string" } }, { name: "expand", required: false, in: "query", description: "The comma separated list of fields that will be expanded in the response", schema: { nullable: true, example: "permissions", type: "string" } } ], responses: { "200": { description: "The policy with the given identifier was retrieved.", content: { "application/json": { schema: { $ref: "#/components/schemas/IamPolicyResult" } } } }, "400": { description: "Invalid request.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadRequestResponse" } } } }, "401": { description: "Unauthorized access.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnauthorizedResponse" } } } }, "403": { description: "Forbidden.", content: { "application/json": { schema: { $ref: "#/components/schemas/ForbiddenResponse" } } } }, "404": { description: "Resource not found.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotFoundResponse" } } } }, "408": { description: "The request has timed out.", headers: { "Retry-After": { description: "A time in seconds after which the request can be retried.", schema: { type: "string" } } }, content: { "application/json": { schema: { $ref: "#/components/schemas/RequestTimedOutResponse" } } } }, "409": { description: "Conflict with current state.", content: { "application/json": { schema: { $ref: "#/components/schemas/ConflictResponse" } } } }, "412": { description: "Precondition failed: linked account belongs to a disabled integration.", content: { "application/json": { schema: { $ref: "#/components/schemas/PreconditionFailedResponse" } } } }, "422": { description: "Validation error.", content: { "application/json": { schema: { $ref: "#/components/schemas/UnprocessableEntityResponse" } } } }, "429": { description: "Too many requests.", content: { "application/json": { schema: { $ref: "#/components/schemas/TooManyRequestsResponse" } } } }, "500": { description: "Server error while executing the request.", content: { "application/json": { schema: { $ref: "#/components/schemas/InternalServerErrorResponse" } } } }, "501": { description: "This functionality is not implemented.", content: { "application/json": { schema: { $ref: "#/components/schemas/NotImplementedResponse" } } } }, "502": { description: "Bad gateway error.", content: { "application/json": { schema: { $ref: "#/components/schemas/BadGatewayResponse" } } } } }, security: [{ basic: [] }], summary: "Get Policy", tags: ["Policies"], "x-speakeasy-group": "iam", "x-speakeasy-name-override": "get_policy", "x-speakeasy-retries": { statusCodes: [429, 408], strategy: "backoff" } } } }, info: { title: "IAM", description: "The documentation for the StackOne Unified API - IAM", version: "1.0.0", contact: {} }, tags: [ { name: "Users", description: "People or accounts with access to the system." }, { name: "Roles", description: "Roles assigned to users for access control." }, { name: "Groups", description: "Groups for organizing users." }, { name: "Policies", description: "Security and access policies." }, { name: "Permissions", description: "Specific permissions granted to users or roles." }, { name: "Resources", description: "Resources that can be accessed or managed." } ], servers: [{ url: "https://api.stackone.com" }], components: { securitySchemes: { basic: { type: "http", scheme: "basic" } }, schemas: { BadGatewayResponse: { type: "object", properties: { statusCode: { type: "number", description: "HTTP status code", example: 502 }, message: { type: "string", description: "Error message", example: "Bad Gateway" }, timestamp: { type: "string", description: "Timestamp when the error occurred", example: "2023-05-30T00:00:00.000Z", format: "date-time" } }, required: [ "statusCode", "message", "timestamp" ] }, BadRequestResponse: { type: "object", properties: { statusCode: { type: "number", description: "HTTP status code", example: 400 }, message: { type: "string", description: "Error message", example: "Bad Request" }, timestamp: { type: "string", description: "Timestamp when the error occurred", example: "2023-05-30T00:00:00.000Z", format: "date-time" }, data: { description: "Error details", nullable: true, allOf: [{ $ref: "#/components/schemas/UnifiedError" }] }, provider_errors: { description: "List of provider-specific errors", nullable: true, type: "array", items: { $ref: "#/components/schemas/ProviderError" } } }, required: [ "statusCode", "message", "timestamp" ] }, ConflictResponse: { type: "object", prope