Metadata-Version: 2.1
Name: serialized-data-interface
Version: 0.2.2
Summary: Serialized Data Interface for Juju Operators
Home-page: https://github.com/canonical/serialized-data-interface/
License: Apache-2.0
Author: Dominik Fleischmann
Author-email: dominik.fleischmann@canonical.com
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Dist: jsonschema (==3.2)
Requires-Dist: ops (>=1.1,<2.0)
Requires-Dist: pyyaml (==5.3)
Requires-Dist: requests (==2.25)
Project-URL: Repository, https://github.com/canonical/serialized-data-interface/
Description-Content-Type: text/markdown

# Serialized Interface Library

https://pypi.org/project/serialized-data-interface/

This libraries enables its user to create serialized and validated Juju Operator interfaces.

An interface Schema will be defined through YAML e.g:

```yaml
v1:
  provides:
    type: object
    properties:
      access-key:
        type: string
      namespace:
        type: ['string', 'null']
      port:
        type: number
      secret-key:
        type: string
      secure:
        type: boolean
      service:
        type: string
    required:
      - access-key
      - port
      - secret-key
      - secure
      - service
```

When our charms interchange data, this library will validate the data through the schema on both ends.

# Real World Example

* Minio with Provider Interface
  * https://github.com/canonical/minio-operator/
* Argo Controller with Requirer Interface:
  * https://github.com/canonical/argo-operators/

# TODO

* Currently only provides data to App relations, should also support unit relations.

