Reference
GlassFlow Python Client to interact with GlassFlow API
GlassFlowClient ¶
Bases: APIClient
GlassFlow Client to interact with GlassFlow API and manage pipelines and other resources
Attributes:
Name | Type | Description |
---|---|---|
client |
Session
|
Session object to make HTTP requests to GlassFlow API |
glassflow_config |
GlassFlowConfig
|
GlassFlow config object to store configuration |
organization_id |
str
|
Organization ID of the user. If not provided, the default organization will be used |
Parameters:
Name | Type | Description | Default |
---|---|---|---|
personal_access_token |
str
|
GlassFlow Personal Access Token |
None
|
organization_id |
str
|
Organization ID of the user. If not provided, the default organization will be used |
None
|
Source code in src/glassflow/client.py
get_pipeline ¶
Gets a Pipeline object from the GlassFlow API
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pipeline_id |
str
|
UUID of the pipeline |
required |
Returns:
Name | Type | Description |
---|---|---|
Pipeline |
Pipeline
|
Pipeline object from the GlassFlow API |
Raises:
Type | Description |
---|---|
PipelineNotFoundError
|
Pipeline does not exist |
PipelineUnauthorizedError
|
User does not have permission to perform the requested operation |
ClientError
|
GlassFlow Client Error |
Source code in src/glassflow/client.py
create_pipeline ¶
create_pipeline(name: str, space_id: str, transformation_file: str = None, requirements: str = None, source_kind: str = None, source_config: dict = None, sink_kind: str = None, sink_config: dict = None, env_vars: list[dict[str, str]] = None, state: str = 'running', metadata: dict = None) -> Pipeline
Creates a new GlassFlow pipeline
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
Name of the pipeline |
required |
space_id |
str
|
ID of the GlassFlow Space you want to create the pipeline in |
required |
transformation_file |
str
|
Path to file with transformation function of the pipeline. |
None
|
requirements |
str
|
Requirements.txt of the pipeline |
None
|
source_kind |
str
|
Kind of source for the pipeline. If no source is provided, the default source will be SDK |
None
|
source_config |
dict
|
Configuration of the pipeline's source |
None
|
sink_kind |
str
|
Kind of sink for the pipeline. If no sink is provided, the default sink will be SDK |
None
|
sink_config |
dict
|
Configuration of the pipeline's sink |
None
|
env_vars |
list[dict[str, str]]
|
Environment variables to pass to the pipeline |
None
|
state |
str
|
State of the pipeline after creation. It can be either "running" or "paused" |
'running'
|
metadata |
dict
|
Metadata of the pipeline |
None
|
Returns:
Name | Type | Description |
---|---|---|
Pipeline |
Pipeline
|
New pipeline |
Raises:
Type | Description |
---|---|
PipelineUnauthorizedError
|
User does not have permission to perform the requested operation |
Source code in src/glassflow/client.py
list_pipelines ¶
list_pipelines(space_ids: list[str] = None) -> ListPipelinesResponse
Lists all pipelines in the GlassFlow API
Parameters:
Name | Type | Description | Default |
---|---|---|---|
space_ids |
list[str]
|
List of Space IDs of the pipelines to list. If not specified, all the pipelines will be listed. |
None
|
Returns:
Type | Description |
---|---|
ListPipelinesResponse
|
responses.ListPipelinesResponse: Response object with the pipelines listed |
Raises:
Type | Description |
---|---|
PipelineUnauthorizedError
|
User does not have permission to perform the requested operation |
Source code in src/glassflow/client.py
create_space ¶
Creates a new Space
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
Name of the Space |
required |
Returns:
Name | Type | Description |
---|---|---|
Space |
Space
|
New space |
Raises:
Type | Description |
---|---|
SpaceUnauthorizedError
|
User does not have permission to perform the requested operation |
Source code in src/glassflow/client.py
list_spaces ¶
list_spaces() -> ListSpacesResponse
Lists all GlassFlow spaces in the GlassFlow API
Returns:
Type | Description |
---|---|
ListSpacesResponse
|
response.ListSpacesResponse: Response object with the spaces listed |
Raises:
Type | Description |
---|---|
SpaceUnauthorizedError
|
User does not have permission to perform the requested operation |
Source code in src/glassflow/client.py
create_secret ¶
Creates a new secret
Parameters:
Name | Type | Description | Default |
---|---|---|---|
key |
str
|
Secret key (must be unique in your organization) |
required |
value |
str
|
Secret value |
required |
Returns:
Name | Type | Description |
---|---|---|
Secret |
Secret
|
New secret |
Raises:
Type | Description |
---|---|
SecretUnauthorizedError
|
User does not have permission to perform the requested operation |
Source code in src/glassflow/client.py
list_secrets ¶
list_secrets() -> ListSecretsResponse
Lists all GlassFlow secrets in the GlassFlow API
Returns:
Type | Description |
---|---|
ListSecretsResponse
|
responses.ListSecretsResponse: Response object with the secrets listed |
Raises:
Type | Description |
---|---|
SecretUnauthorizedError
|
User does not have permission to perform the requested operation |
Source code in src/glassflow/client.py
Pipeline ¶
Pipeline(personal_access_token: str, name: str | None = None, space_id: str | None = None, id: str | None = None, source_kind: str | None = None, source_config: dict | None = None, sink_kind: str | None = None, sink_config: dict | None = None, requirements: str | None = None, transformation_file: str | None = None, env_vars: list[dict[str, str]] | None = None, state: str = 'running', organization_id: str | None = None, metadata: dict | None = None, created_at: str | None = None)
Bases: APIClient
Parameters:
Name | Type | Description | Default |
---|---|---|---|
personal_access_token |
str
|
The personal access token to authenticate against GlassFlow |
required |
id |
str | None
|
Pipeline ID |
None
|
name |
str | None
|
Name of the pipeline |
None
|
space_id |
str | None
|
ID of the GlassFlow Space you want to create the pipeline in |
None
|
transformation_file |
str | None
|
Path to file with transformation function of the pipeline. |
None
|
requirements |
str | None
|
Requirements.txt of the pipeline |
None
|
source_kind |
str | None
|
Kind of source for the pipeline. If no source is provided, the default source will be SDK |
None
|
source_config |
dict | None
|
Configuration of the pipeline's source |
None
|
sink_kind |
str | None
|
Kind of sink for the pipeline. If no sink is provided, the default sink will be SDK |
None
|
sink_config |
dict | None
|
Configuration of the pipeline's sink |
None
|
env_vars |
list[dict[str, str]] | None
|
Environment variables to pass to the pipeline |
None
|
state |
str
|
State of the pipeline after creation. It can be either "running" or "paused" |
'running'
|
metadata |
dict | None
|
Metadata of the pipeline |
None
|
created_at |
str | None
|
Timestamp when the pipeline was created |
None
|
Raises:
Type | Description |
---|---|
FileNotFoundError
|
If the transformation file is provided and does not exist |
Source code in src/glassflow/pipeline.py
fetch ¶
fetch() -> Pipeline
Fetches pipeline information from the GlassFlow API
Returns:
Type | Description |
---|---|
Pipeline
|
Pipeline object |
Raises:
Type | Description |
---|---|
ValueError
|
If ID is not provided in the constructor |
PipelineNotFoundError
|
If ID provided does not match any existing pipeline in GlassFlow |
PipelineUnauthorizedError
|
If the Personal Access Token is not provider or is invalid |
Source code in src/glassflow/pipeline.py
create ¶
create() -> Pipeline
Creates a new GlassFlow pipeline
Returns:
Type | Description |
---|---|
Pipeline
|
Pipeline object |
Raises:
Type | Description |
---|---|
ValueError
|
If name is not provided in the constructor |
ValueError
|
If space_id is not provided in the constructor |
ValueError
|
If transformation_file is not provided in the constructor |
Source code in src/glassflow/pipeline.py
update ¶
update(name: str | None = None, state: str | None = None, transformation_file: str | None = None, requirements: str | None = None, metadata: dict | None = None, source_kind: str | None = None, source_config: dict | None = None, sink_kind: str | None = None, sink_config: dict | None = None, env_vars: list[dict[str, str]] | None = None) -> Pipeline
Updates a GlassFlow pipeline
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str | None
|
Name of the pipeline |
None
|
state |
str | None
|
State of the pipeline after creation. It can be either "running" or "paused" |
None
|
transformation_file |
str | None
|
Path to file with transformation function of the pipeline. |
None
|
requirements |
str | None
|
Requirements.txt of the pipeline |
None
|
source_kind |
str | None
|
Kind of source for the pipeline. If no source is provided, the default source will be SDK |
None
|
source_config |
dict | None
|
Configuration of the pipeline's source |
None
|
sink_kind |
str | None
|
Kind of sink for the pipeline. If no sink is provided, the default sink will be SDK |
None
|
sink_config |
dict | None
|
Configuration of the pipeline's sink |
None
|
env_vars |
list[dict[str, str]] | None
|
Environment variables to pass to the pipeline |
None
|
metadata |
dict | None
|
Metadata of the pipeline |
None
|
Returns:
Type | Description |
---|---|
Pipeline
|
Updated pipeline |
Source code in src/glassflow/pipeline.py
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 |
|
delete ¶
Deletes a GlassFlow pipeline
Raises:
Type | Description |
---|---|
ValueError
|
If ID is not provided in the constructor |
PipelineNotFoundError
|
If ID provided does not match any existing pipeline in GlassFlow |
PipelineUnauthorizedError
|
If the Personal Access Token is not provided or is invalid |
Source code in src/glassflow/pipeline.py
get_logs ¶
get_logs(page_size: int = 50, page_token: str | None = None, severity_code: int = 100, start_time: str | None = None, end_time: str | None = None) -> FunctionLogsResponse
Get the pipeline's logs
Parameters:
Name | Type | Description | Default |
---|---|---|---|
page_size |
int
|
Pagination size |
50
|
page_token |
str | None
|
Page token filter (use for pagination) |
None
|
severity_code |
int
|
Severity code filter (100, 200, 300, 400, 500) |
100
|
start_time |
str | None
|
Start time filter |
None
|
end_time |
str | None
|
End time filter |
None
|
Returns:
Type | Description |
---|---|
FunctionLogsResponse
|
Response with the logs |
Source code in src/glassflow/pipeline.py
get_source ¶
get_source(pipeline_access_token_name: str | None = None) -> PipelineDataSource
Get source client to publish data to the pipeline
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pipeline_access_token_name |
str | None
|
Name of the pipeline access token to use. If not specified, the default token will be used |
None
|
Returns:
Type | Description |
---|---|
PipelineDataSource
|
Source client to publish data to the pipeline |
Raises:
Type | Description |
---|---|
ValueError
|
If pipeline id is not provided in the constructor |
Source code in src/glassflow/pipeline.py
get_sink ¶
get_sink(pipeline_access_token_name: str | None = None) -> PipelineDataSink
Get sink client to consume data from the pipeline
Parameters:
Name | Type | Description | Default |
---|---|---|---|
pipeline_access_token_name |
str | None
|
Name of the pipeline access token to use. If not specified, the default token will be used |
None
|
Returns:
Type | Description |
---|---|
PipelineDataSink
|
Sink client to consume data from the pipeline |
Raises:
Type | Description |
---|---|
ValueError
|
If pipeline id is not provided in the constructor |
Source code in src/glassflow/pipeline.py
test ¶
test(data: dict) -> TestFunctionResponse
Test a pipeline's function with a sample input JSON
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data |
dict
|
Input JSON |
required |
Returns:
Type | Description |
---|---|
TestFunctionResponse
|
Test function response |
Source code in src/glassflow/pipeline.py
PipelineDataClient ¶
Bases: APIClient
Base Client object to publish and consume events from the given pipeline.
Attributes:
Name | Type | Description |
---|---|---|
glassflow_config |
GlassFlowConfig
|
GlassFlowConfig object to interact with GlassFlow API |
pipeline_id |
str
|
The pipeline id to interact with |
pipeline_access_token |
str
|
The access token to access the pipeline |
Source code in src/glassflow/pipeline_data.py
validate_credentials ¶
Check if the pipeline credentials are valid and raise an error if not
Source code in src/glassflow/pipeline_data.py
PipelineDataSource ¶
Bases: PipelineDataClient
Source code in src/glassflow/pipeline_data.py
publish ¶
publish(request_body: dict) -> PublishEventResponse
Push a new message into the pipeline
Parameters:
Name | Type | Description | Default |
---|---|---|---|
request_body |
dict
|
The message to be published into the pipeline |
required |
Returns:
Type | Description |
---|---|
PublishEventResponse
|
Response object containing the status code and the raw response |
Raises:
Type | Description |
---|---|
ClientError
|
If an error occurred while publishing the event |
Source code in src/glassflow/pipeline_data.py
PipelineDataSink ¶
Bases: PipelineDataClient
Source code in src/glassflow/pipeline_data.py
consume ¶
consume() -> ConsumeEventResponse
Consume the last message from the pipeline
Returns:
Type | Description |
---|---|
ConsumeEventResponse
|
Response object containing the status code and the raw response |
Raises:
Type | Description |
---|---|
ClientError
|
If an error occurred while consuming the event |
Source code in src/glassflow/pipeline_data.py
consume_failed ¶
consume_failed() -> ConsumeFailedResponse
Consume the failed message from the pipeline
Returns:
Type | Description |
---|---|
ConsumeFailedResponse
|
Response object containing the status code and the raw response |
Raises:
Type | Description |
---|---|
ClientError
|
If an error occurred while consuming the event |
Source code in src/glassflow/pipeline_data.py
Secret ¶
Secret(personal_access_token: str, key: str | None = None, value: str | None = None, organization_id: str | None = None)
Bases: APIClient
Parameters:
Name | Type | Description | Default |
---|---|---|---|
personal_access_token |
str
|
The personal access token to authenticate against GlassFlow |
required |
key |
str | None
|
Name of the secret. It must start with a letter, and it can only contain characters in a-zA-Z0-9_ |
None
|
value |
str | None
|
Value of the secret to store |
None
|
Raises:
Type | Description |
---|---|
SecretInvalidKeyError
|
If secret key is invalid |
Source code in src/glassflow/secret.py
create ¶
create() -> Secret
Creates a new Glassflow Secret
Returns:
Type | Description |
---|---|
Secret
|
Secret object |
Raises:
Type | Description |
---|---|
ValueError
|
If secret key or value are not set in the constructor |
SecretUnauthorizedError
|
If personal access token is invalid |
Source code in src/glassflow/secret.py
delete ¶
Deletes a Glassflow Secret.
Raises:
Type | Description |
---|---|
SecretUnauthorizedError
|
If personal access token is invalid |
SecretNotFoundError
|
If secret key does not exist |
ValueError
|
If secret key is not set in the constructor |
Source code in src/glassflow/secret.py
Space ¶
Space(personal_access_token: str, name: str | None = None, id: str | None = None, created_at: datetime | None = None, organization_id: str | None = None)
Bases: APIClient
Parameters:
Name | Type | Description | Default |
---|---|---|---|
personal_access_token |
str
|
The personal access token to authenticate against GlassFlow |
required |
name |
str | None
|
Name of the space |
None
|
id |
str | None
|
ID of the GlassFlow Space you want to create the pipeline in |
None
|
created_at |
datetime | None
|
Timestamp when the space was created |
None
|
Source code in src/glassflow/space.py
create ¶
create() -> Space
Creates a new GlassFlow space
Returns:
Type | Description |
---|---|
Space
|
Space object |
Raises:
Type | Description |
---|---|
ValueError
|
If name is not provided in the constructor |
Source code in src/glassflow/space.py
delete ¶
Deletes a GlassFlow space
Raises:
Type | Description |
---|---|
ValueError
|
If ID is not provided in the constructor |
SpaceNotFoundError
|
If ID provided does not match any existing space in GlassFlow |
SpaceUnauthorizedError
|
If the Personal Access Token is not provided or is invalid |
SpaceIsNotEmptyError
|
If the Space is not empty |
Source code in src/glassflow/space.py
ClientError ¶
Bases: Exception
Represents an error returned by the API.
Attributes:
Name | Type | Description |
---|---|---|
detail |
str
|
A message describing the error |
status_code |
int
|
The status code of the response |
body |
str
|
The response body |
raw_response |
Response
|
The raw response object |
Parameters:
Name | Type | Description | Default |
---|---|---|---|
detail |
str
|
A message describing the error |
required |
status_code |
int
|
The status code of the response |
required |
body |
str
|
The response body |
required |
raw_response |
Response
|
The raw response object |
required |
Source code in src/glassflow/models/errors/clienterror.py
UnauthorizedError ¶
UnauthorizedError(raw_response: Response)
Bases: ClientError
Error caused by a user not authorized.
Source code in src/glassflow/models/errors/clienterror.py
UnknownContentTypeError ¶
UnknownContentTypeError(raw_response: Response)
Bases: ClientError
Error caused by an unknown content type response.
Source code in src/glassflow/models/errors/clienterror.py
UnknownError ¶
UnknownError(raw_response: Response)
Bases: ClientError
Error caused by an unknown error.
Source code in src/glassflow/models/errors/clienterror.py
Error ¶
ConnectorConfigValueError ¶
ConnectorConfigValueError(connector_type: str)
Bases: Exception
Value error for missing connector settings.
Source code in src/glassflow/models/errors/pipeline.py
PipelineAccessTokenInvalidError ¶
Bases: ClientError
Error caused by invalid access token.
Source code in src/glassflow/models/errors/pipeline.py
PipelineArtifactStillInProgressError ¶
PipelineArtifactStillInProgressError(pipeline_id: str, raw_response: Response)
Bases: ClientError
Error returned when the pipeline artifact is still being processed.
Source code in src/glassflow/models/errors/pipeline.py
PipelineNotFoundError ¶
PipelineNotFoundError(pipeline_id: str, raw_response: Response)
Bases: ClientError
Error caused by a pipeline ID not found.
Source code in src/glassflow/models/errors/pipeline.py
PipelineTooManyRequestsError ¶
Bases: ClientError
Error caused by too many requests to a pipeline.
Source code in src/glassflow/models/errors/pipeline.py
PipelineUnauthorizedError ¶
PipelineUnauthorizedError(pipeline_id: str, raw_response: Response)
Bases: ClientError
Pipeline operation not authorized, invalid Personal Access Token
Source code in src/glassflow/models/errors/pipeline.py
SecretInvalidKeyError ¶
SecretInvalidKeyError(secret_key: str)
Bases: Exception
Error caused by a Secret Key has invalid format.
Source code in src/glassflow/models/errors/secret.py
SecretNotFoundError ¶
SecretNotFoundError(secret_key: str, raw_response: Response)
Bases: ClientError
Error caused by a Secret Key not found.
Source code in src/glassflow/models/errors/secret.py
SecretUnauthorizedError ¶
SecretUnauthorizedError(secret_key: str, raw_response: Response)
Bases: ClientError
Secret operation not authorized, invalid Personal Access Token
Source code in src/glassflow/models/errors/secret.py
SpaceIsNotEmptyError ¶
Bases: ClientError
Error caused by trying to delete a space that is not empty.
Source code in src/glassflow/models/errors/space.py
SpaceNotFoundError ¶
SpaceNotFoundError(space_id: str, raw_response: Response)
Bases: ClientError
Error caused by a space ID not found.
Source code in src/glassflow/models/errors/space.py
SpaceUnauthorizedError ¶
SpaceUnauthorizedError(space_id: str, raw_response: Response)
Bases: ClientError
Space operation not authorized, invalid Personal Access Token
Source code in src/glassflow/models/errors/space.py
AccessToken ¶
ConsumeEventResponse ¶
Bases: BaseModel
Response from consume event
Attributes:
Name | Type | Description |
---|---|---|
status_code |
int
|
HTTP status code |
body |
ConsumeOutputEvent
|
Body of the response |
ConsumeFailedResponse ¶
Bases: BaseModel
Response from consuming failed event
Attributes:
Name | Type | Description |
---|---|---|
status_code |
int
|
HTTP status code |
body |
ConsumeOutputEvent | None
|
ConsumeOutputEvent |
ConsumeOutputEvent ¶
FunctionLogEntry ¶
FunctionLogsResponse ¶
Bases: BaseModel
Response for a function's logs endpoint.
Attributes:
Name | Type | Description |
---|---|---|
logs |
list[FunctionLogEntry]
|
list of logs |
next |
str
|
ID used to retrieve next page of logs |
ListAccessTokensResponse ¶
Bases: BaseModel
Response for listing access tokens endpoint.
Attributes:
Name | Type | Description |
---|---|---|
total_amount |
int
|
Total amount of access tokens. |
access_tokens |
list[AccessToken]
|
List of access tokens. |