Skip to content

Instantly share code, notes, and snippets.

@yuanzhou
Last active March 11, 2025 11:44
Show Gist options
  • Select an option

  • Save yuanzhou/e0d0cb702ed703e83baf5b2f921caede to your computer and use it in GitHub Desktop.

Select an option

Save yuanzhou/e0d0cb702ed703e83baf5b2f921caede to your computer and use it in GitHub Desktop.
Stainless config yaml
# yaml-language-server: $schema=https://app.stainless.com/config.schema.json
organization:
# Name of your organization or company, used to determine the name of the client
# and headings.
name: entity-python-sdk
docs: https://docs.hubmapconsortium.org/
contact: [email protected]
# `targets` define the output targets and their customization options, such as
# whether to emit the Node SDK and what it's package name should be.
targets:
python:
package_name: entity_python_sdk
production_repo: hubmapconsortium/entity-python-sdk
publish:
pypi: false
project_name: entity_python_sdk
# `environments` are a map of the name of the environment (e.g. "sandbox",
# "production") to the corresponding url to use.
environments:
production: https://entity.api.hubmapconsortium.org
# `resources` define the structure and organziation for your API, such as how
# methods and models are grouped together and accessed. See the [configuration
# guide] for more information.
#
# [configuration guide]: https://app.stainless.com/docs/guides/configure#resources
resources:
entities:
# Configure the methods defined in this resource. Each key in the object is the
# name of the method and the value is either an endpoint (for example, `get /foo`)
# or an object with more detail.
#
# [reference]: https://app.stainless.com/docs/reference/config#method
# Configure the models--named types--defined in the resource. Each key in the
# object is the name of the model and the value is either the name of a schema in
# `#/components/schemas` or an object with more detail.
#
# [reference]: https://app.stainless.com/docs/reference/config#model
models:
upload: '#/components/schemas/Upload'
collection: '#/components/schemas/Collection'
methods:
retrieve: get /entities/{id}
update: put /entities/{id}
list_siblings: get /entities/{id}/siblings
list_tuplets: get /entities/{id}/tuplets
list_collections: get /entities/{id}/collections
list_uploads: get /entities/{id}/uploads
retrieve_provenance: get /entities/{id}/provenance
is_instance_of: get /entities/{id}/instanceof/{type}
list_ancestor_organs: get /entities/{id}/ancestor-organs
create_multiple_samples: post /entities/multiple-samples/{count}
list_entity_types: get /entity-types
get_globus_url: get /entities/{id}/globus-url
# Subresources define resources that are nested within another for more powerful
# logical groupings, e.g. `cards.payments`.
subresources:
type:
methods:
is_instance_of: get /entities/type/{type_a}/instanceof/{type_b}
ancestors:
methods:
retrieve: get /ancestors/{id}
descendants:
methods:
retrieve: get /descendants/{id}
children:
methods:
retrieve: get /children/{id}
parents:
methods:
retrieve: get /parents/{id}
doi:
methods:
redirect: get /doi/redirect/{id}
datasets:
models:
dataset: '#/components/schemas/Dataset'
methods:
retrieve_prov_metadata: get /datasets/{id}/prov-metadata
retrieve_latest_revision: get /datasets/{id}/latest-revision
retrieve_revision: get /datasets/{id}/revision
retrieve_multi_revisions: get /datasets/{id}/multi-revisions
retrieve_revisions: get /datasets/{id}/revisions
list_organs: get /datasets/{id}/organs
list_samples: get /datasets/{id}/samples
list_donors: get /datasets/{id}/donors
retract: put /datasets/{id}/retract
retrieve_sankey_data: get /datasets/sankey_data
bulk_update: put /datasets
list_unpublished: get /datasets/unpublished
retrieve_paired_dataset: get /datasets/{id}/paired-dataset
create_components: post /datasets/components
subresources:
prov_info:
methods:
list_all: get /datasets/prov-info
retrieve: get /datasets/{id}/prov-info
uploads:
methods:
update_bulk: put /uploads
samples:
methods:
retrieve_prov_info: get /samples/prov-info
settings:
# All generated integration tests that hit the prism mock http server are marked
# as skipped. Removing this setting or setting it to false enables tests, but
# doing so may result in test failures due to bugs in the test server.
#
# [prism mock http server]: https://stoplight.io/open-source/prism
disable_mock_tests: true
license: MIT
# `client_settings` define settings for the API client, such as extra constructor
# arguments (used for authentication), retry behavior, idempotency, etc.
client_settings:
# ISO8601 or number of milliseconds.
# 29 seconds to align with AWS API Gateway timeout
default_timeout: PT29S
opts:
bearer_token:
type: string
nullable: true
auth:
security_scheme: bearerAuth
description: Globus bearer token to authorize requests. Have to use apiKey to pass AWS API Gateway import validation
read_env: HUBMAP_GLOBUS_BEARER_TOKEN
# `readme` is used to configure the code snippets that will be rendered in the
# README.md of various SDKs. In particular, you can change the `headline`
# snippet's endpoint and the arguments to call it with.
readme:
example_requests:
default:
type: request
endpoint: get /entities/{id}
params:
id: uuid or hubmap_id
headline:
type: request
endpoint: get /entities/{id}
params:
id: uuid or hubmap_id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment