Gremlin sharedAssets API
Used for sharing agent assets (eg. K8s Namespaces) between teams
Used for sharing agent assets (eg. K8s Namespaces) between teams
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/gremlin-sharedassets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Gremlin agents Shared Assets API
description: The API for interacting with the Gremlin Failure-as-a-Service platform
termsOfService: https://www.gremlin.com/terms_of_service_2017_03_24
contact:
name: Gremlin Support
email: support@gremlin.com
license:
name: Gremlin License
url: https://www.gremlin.com/license_2017_03_24
version: '1.0'
servers:
- url: https://api.gremlin.com/v1
description: Gremlin API v1
tags:
- name: sharedAssets
description: Used for sharing agent assets (eg. K8s Namespaces) between teams
paths:
/sharedAssets/requests/{requestId}/approve:
post:
tags:
- sharedAssets
summary: Approves a sharing request to a resource you own
description: 'The {requestId} parameter _must_ be urlencoded
Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: approveAccess
parameters:
- name: requestId
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAsset'
'403':
description: 'User requires privilege for target team: CLIENTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_WRITE
/sharedAssets/requests/approve:
post:
tags:
- sharedAssets
summary: Approves a sharing request to a resource you own
description: Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: approveAccessRequests
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAllRequests'
required: true
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAssetUpdate'
'403':
description: 'User requires privilege for target team: CLIENTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_WRITE
/sharedAssets/requests/delete:
post:
tags:
- sharedAssets
summary: Deletes a sharing request your team has made to an asset you don't control
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: deleteAccessRequests
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAllRequests'
required: true
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAssetUpdate'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets/requests/{requestId}:
delete:
tags:
- sharedAssets
summary: Deletes an existing request for Access
description: 'The {requestId} parameter _must_ be urlencoded
Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: deleteRequest
parameters:
- name: requestId
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAsset'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets/requests/{requestId}/deny:
post:
tags:
- sharedAssets
summary: Denies or Revokes a sharing request to a resource you own
description: 'The {requestId} parameter _must_ be urlencoded
Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: denyAccess
parameters:
- name: requestId
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAsset'
'403':
description: 'User requires privilege for target team: CLIENTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_WRITE
/sharedAssets/requests/deny:
post:
tags:
- sharedAssets
summary: Denies or Revokes a sharing request to a resource you own
description: Requires the privilege [`CLIENTS_WRITE`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: denyAccessRequests
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAllRequests'
required: true
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAssetUpdate'
'403':
description: 'User requires privilege for target team: CLIENTS_WRITE'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_WRITE
/sharedAssets/withMe:
get:
tags:
- sharedAssets
summary: List assets currently shared with your team
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: listAssetsSharedWithMe
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAssetUpdate'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets:
get:
tags:
- sharedAssets
summary: List available assets for sharing and all incoming and outgoing requests
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: listAvailableAssetsWithRequests
parameters:
- name: assetId
in: query
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharableAssetsWithRequestsResponse'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets/requests:
get:
tags:
- sharedAssets
summary: List my requests for assets to be shared with my team
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: listMyRequests
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/OutstandingRequests'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
post:
tags:
- sharedAssets
summary: Request access to a given asset
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: requestAccess
parameters:
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewRequestRequest'
required: true
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAssetUpdate'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets/requests/toMe:
get:
tags:
- sharedAssets
summary: List other team's requests to my team for sharing assets my team controls
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: listRequestsToMe
parameters:
- name: assetId
in: query
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/OutstandingRequests'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets/requests/{requestId}/delete:
post:
tags:
- sharedAssets
summary: Deletes an existing request for Access
description: 'The {requestId} parameter _must_ be urlencoded
Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)'
operationId: postDeleteRequest
parameters:
- name: requestId
in: path
required: true
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAsset'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
/sharedAssets/{owningTeam}/{assetId}:
post:
tags:
- sharedAssets
summary: Request access to a given asset owned by another team
description: Requires the privilege [`CLIENTS_READ`](https://www.gremlin.com/docs/user-management/access-control/#privileges)
operationId: requestAccessToAsset
parameters:
- name: owningTeam
in: path
required: true
schema:
type: string
- name: assetId
in: path
required: true
schema:
type: string
- name: namespace
in: query
schema:
type: string
- name: teamId
in: query
description: Required when using company session token.
required: true
schema:
type: string
responses:
default:
description: default response
content:
application/json:
schema:
$ref: '#/components/schemas/SharedAsset'
'403':
description: 'User requires privilege for target team: CLIENTS_READ'
'401':
description: Authorization header missing or malformed. Please provide proper credentials in the authorization header.
security:
- privilege:
- CLIENTS_READ
components:
schemas:
SemanticVersion:
type: object
properties:
major:
type: integer
format: int32
minor:
type: integer
format: int32
patch:
type: integer
format: int32
NewRequestRequest:
required:
- newRequests
type: object
properties:
newRequests:
type: array
items:
$ref: '#/components/schemas/AccessRequest'
AvailableClusterResponse:
type: object
properties:
assetId:
type: string
clusterName:
type: string
owningTeamId:
type: string
availableNamespaces:
type: array
items:
type: string
currentlySharedNamespaces:
type: array
items:
type: string
semanticVersion:
$ref: '#/components/schemas/SemanticVersion'
isOutdated:
type: boolean
lastAttacked:
type: string
format: date-time
owningTeamName:
type: string
requests:
type: array
items:
$ref: '#/components/schemas/MyRequest'
AccessRequest:
type: object
properties:
owningTeamId:
type: string
assetId:
type: string
namespace:
type: string
teamToShareWith:
type: string
OutstandingRequests:
type: object
properties:
assetToRequestMap:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SharedAsset'
idToTeamMapping:
type: object
additionalProperties:
$ref: '#/components/schemas/SharedTeam'
SharedAsset:
type: object
properties:
companyId:
type: string
owningTeamId:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
approver:
type: string
requester:
type: string
assetName:
type: string
currentStatus:
type: string
enum:
- REQUESTED
- APPROVED
- DENIED
- REVOKED
- DELETED
assetId:
type: string
sharedTeam:
type: string
namespace:
type: string
requestId:
type: string
TheirRequest:
type: object
properties:
id:
type: string
teamId:
type: string
teamName:
type: string
namespace:
type: string
currentStatus:
type: string
enum:
- REQUESTED
- APPROVED
- DENIED
- REVOKED
- DELETED
requester:
type: string
approver:
type: string
MyClusterResponse:
type: object
properties:
assetId:
type: string
clusterName:
type: string
owningTeamId:
type: string
availableNamespaces:
type: array
items:
type: string
currentlySharedNamespaces:
type: array
items:
type: string
semanticVersion:
$ref: '#/components/schemas/SemanticVersion'
isOutdated:
type: boolean
lastAttacked:
type: string
format: date-time
requests:
type: array
items:
$ref: '#/components/schemas/TheirRequest'
SharableAssetsWithRequestsResponse:
type: object
properties:
availableClusters:
type: array
items:
$ref: '#/components/schemas/AvailableClusterResponse'
myClusters:
type: array
items:
$ref: '#/components/schemas/MyClusterResponse'
SharedAssetUpdate:
type: object
properties:
assetToRequestMap:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/SharedAsset'
SharedTeam:
type: object
properties:
identifier:
type: string
name:
type: string
usersCount:
type: integer
format: int64
MyRequest:
type: object
properties:
requestId:
type: string
namespace:
type: string
currentStatus:
type: string
enum:
- REQUESTED
- APPROVED
- DENIED
- REVOKED
- DELETED
requester:
type: string
approver:
type: string
UpdateAllRequests:
required:
- requestIds
type: object
properties:
requestIds:
type: array
items:
type: string