Metadata-Version: 2.4
Name: chainlink-apimatic-sdk
Version: 0.0.2
Summary: SDKs for streaming APIs
Author-email: Muhammad Rafay <muhammad.rafay@apimatic.io>
Project-URL: Documentation, https://docs.chain.link/
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: apimatic-core>=0.2.24,~=0.2.0
Requires-Dist: apimatic-core-interfaces>=0.1.8,~=0.1.0
Requires-Dist: apimatic-requests-client-adapter>=0.1.10,~=0.1.0
Requires-Dist: python-dotenv<2.0,>=0.21
Provides-Extra: testutils
Requires-Dist: pytest>=7.2.2; extra == "testutils"
Dynamic: license-file


# Getting Started with CCIP directory and configuration REST API (v1)

## Introduction

**Deprecation:** This CCIP Directory and configuration REST API (v1), including `/api/ccip/v1/*` on docs.chain.link, is **planned for deprecation soon**. Timelines and migration guidance will be published in the [CCIP Tools documentation](https://docs.chain.link/ccip/tools/). For new integrations, prefer the [CCIP Tools REST API (v2)](https://docs.chain.link/ccip/tools/api/) where it meets your needs.

REST API for CCIP supported chains, tokens, lanes, and related configuration on docs.chain.link. This is distinct from the CCIP Tools REST API (v2), which covers messages, lane latency, intents, and related tooling (https://docs.chain.link/ccip/tools/api/). For on-chain Solidity, Move, SVM, and TON interfaces, see https://docs.chain.link/ccip/api-reference.

To get started quickly, you can download our [Postman Collection](/api/ccip/v1/postman-collection.json) which includes all endpoints and example requests.

## Install the Package

The package is compatible with Python versions `3.7+`.
Install the package from PyPi using the following pip command:

```bash
pip install chainlink-apimatic-sdk==0.0.2
```

You can also view the package at:
https://pypi.python.org/pypi/chainlink-apimatic-sdk/0.0.2

## Initialize the API Client

**_Note:_** Documentation for the client can be found [here.](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/client.md)

The following parameters are configurable for the API Client:

| Parameter | Type | Description |
|  --- | --- | --- |
| environment | [`Environment`](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/README.md#environments) | The API environment. <br> **Default: `Environment.PRODUCTION`** |
| http_client_instance | `Union[Session, HttpClientProvider]` | The Http Client passed from the sdk user for making requests |
| override_http_client_configuration | `bool` | The value which determines to override properties of the passed Http Client from the sdk user |
| http_call_back | `HttpCallBack` | The callback value that is invoked before and after an HTTP call is made to an endpoint |
| timeout | `float` | The value to use for connection timeout. <br> **Default: 30** |
| max_retries | `int` | The number of times to retry an endpoint call if it fails. <br> **Default: 0** |
| backoff_factor | `float` | A backoff factor to apply between attempts after the second try. <br> **Default: 2** |
| retry_statuses | `Array of int` | The http statuses on which retry is to be done. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
| retry_methods | `Array of string` | The http methods on which retry is to be done. <br> **Default: ["GET", "PUT"]** |
| proxy_settings | [`ProxySettings`](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/proxy-settings.md) | Optional proxy configuration to route HTTP requests through a proxy server. |
| logging_configuration | [`LoggingConfiguration`](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/logging-configuration.md) | The SDK logging configuration for API calls |

The API client can be initialized as follows:

### Code-Based Client Initialization

```python
import logging

from ccipdirectoryandconfigurationrestapiv1.ccipdirectoryandconfigurationrestapiv_1_client import Ccipdirectoryandconfigurationrestapiv1Client
from ccipdirectoryandconfigurationrestapiv1.configuration import Environment
from ccipdirectoryandconfigurationrestapiv1.logging.configuration.api_logging_configuration import LoggingConfiguration
from ccipdirectoryandconfigurationrestapiv1.logging.configuration.api_logging_configuration import RequestLoggingConfiguration
from ccipdirectoryandconfigurationrestapiv1.logging.configuration.api_logging_configuration import ResponseLoggingConfiguration

client = Ccipdirectoryandconfigurationrestapiv1Client(
    environment=Environment.PRODUCTION,
    logging_configuration=LoggingConfiguration(
        log_level=logging.INFO,
        request_logging_config=RequestLoggingConfiguration(
            log_body=True
        ),
        response_logging_config=ResponseLoggingConfiguration(
            log_headers=True
        )
    )
)
```

### Environment-Based Client Initialization

```python
from ccipdirectoryandconfigurationrestapiv1.ccipdirectoryandconfigurationrestapiv_1_client import Ccipdirectoryandconfigurationrestapiv1Client

# Specify the path to your .env file if it’s located outside the project’s root directory.
client = Ccipdirectoryandconfigurationrestapiv1Client.from_environment(dotenv_path='/path/to/.env')
```

See the [Environment-Based Client Initialization](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/environment-based-client-initialization.md) section for details.

## Environments

The SDK can be configured to use a different environment for making API calls. Available environments are:

### Fields

| Name | Description |
|  --- | --- |
| PRODUCTION | **Default** Production server |
| ENVIRONMENT2 | Development server |

## List of APIs

* [Chains](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/controllers/chains.md)
* [Tokens](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/controllers/tokens.md)
* [Lanes](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/controllers/lanes.md)

## SDK Infrastructure

### Configuration

* [ProxySettings](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/proxy-settings.md)
* [Environment-Based Client Initialization](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/environment-based-client-initialization.md)
* [AbstractLogger](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/abstract-logger.md)
* [LoggingConfiguration](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/logging-configuration.md)
* [RequestLoggingConfiguration](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/request-logging-configuration.md)
* [ResponseLoggingConfiguration](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/response-logging-configuration.md)

### HTTP

* [HttpResponse](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/http-response.md)
* [HttpRequest](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/http-request.md)

### Utilities

* [ApiResponse](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/api-response.md)
* [ApiHelper](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/api-helper.md)
* [HttpDateTime](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/http-date-time.md)
* [RFC3339DateTime](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/rfc3339-date-time.md)
* [UnixDateTime](https://www.github.com/sdks-io/chainlink-apimatic-python-sdk/tree/0.0.2/doc/unix-date-time.md)

