cloudcoil.models.knative-eventing


Namecloudcoil.models.knative-eventing JSON
Version 1.17.1.1 PyPI version JSON
download
home_pageNone
SummaryVersioned knative-eventing models for cloudcoil
upload_time2025-02-10 04:27:00
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseApache-2.0
keywords async cloud-native cloudcoil cloudcoil-models knative-eventing kubernetes pydantic python
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cloudcoil-models-knative-eventing

Versioned knative-eventing models for cloudcoil.
> [!WARNING]  
> This repository is auto-generated from the [cloudcoil repository](https://github.com/cloudcoil/cloudcoil/tree/main/models/knative-eventing). Please do not submit pull requests here. Instead, submit them to the main repository at https://github.com/cloudcoil/cloudcoil.

## 🔧 Installation

> [!NOTE]
> For versioning information and compatibility, see the [Versioning Guide](https://github.com/cloudcoil/cloudcoil/blob/main/VERSIONING.md).

Using [uv](https://github.com/astral-sh/uv) (recommended):

```bash
# Install with Knative Eventing support
uv add cloudcoil.models.knative-eventing
```

Using pip:

```bash
pip install cloudcoil.models.knative-eventing
```

## 💡 Examples

### Using Knative Eventing Models

```python
from cloudcoil import apimachinery
import cloudcoil.models.knative_eventing.eventing.v1 as eventing

# Create a Broker
broker = eventing.Broker(
    metadata=apimachinery.ObjectMeta(name="default"),
    spec=eventing.BrokerSpec(
        config=eventing.Config(
            kind="ConfigMap",
            name="kafka-broker-config"
        )
    )
).create()

# Create a Trigger
trigger = eventing.Trigger(
    metadata=apimachinery.ObjectMeta(name="my-service-trigger"),
    spec=eventing.TriggerSpec(
        broker="default",
        filter=eventing.Filter(
            attributes={
                "type": "dev.knative.samples.helloworld"
            }
        ),
        subscriber=eventing.Subscriber(
            ref=eventing.Ref(
                api_version="serving.knative.dev/v1",
                kind="Service",
                name="event-display"
            )
        )
    )
).create()

# List Brokers
for b in eventing.Broker.list():
    print(f"Found Broker: {b.metadata.name}")
```

### Using the Fluent Builder API

Cloudcoil provides a powerful fluent builder API for Knative Eventing resources:

```python
from cloudcoil.models.knative_eventing.eventing.v1 import Broker, Trigger

# Create a Broker using the builder
broker = (
    Broker.builder()
    .metadata(lambda m: m
        .name("default")
    )
    .spec(lambda s: s
        .config(lambda c: c
            .kind("ConfigMap")
            .name("kafka-broker-config")
        )
    )
    .build()
)

# Create a Trigger using the builder
trigger = (
    Trigger.builder()
    .metadata(lambda m: m
        .name("my-service-trigger")
    )
    .spec(lambda s: s
        .broker("default")
        .filter(lambda f: f
            .attributes({
                "type": "dev.knative.samples.helloworld"
            })
        )
        .subscriber(lambda sub: sub
            .ref(lambda r: r
                .api_version("serving.knative.dev/v1")
                .kind("Service")
                .name("event-display")
            )
        )
    )
    .build()
)
```

### Using the Context Manager Builder API

For complex eventing configurations, you can use the context manager-based builder:

```python
from cloudcoil.models.knative_eventing.eventing.v1 import Trigger

# Create a Trigger using context managers
with Trigger.new() as trigger:
    with trigger.metadata() as metadata:
        metadata.name("my-service-trigger")
    
    with trigger.spec() as spec:
        spec.broker("default")
        with spec.filter() as filter_:
            filter_.attributes({
                "type": "dev.knative.samples.helloworld"
            })
        with spec.subscriber() as subscriber:
            with subscriber.ref() as ref:
                ref.api_version("serving.knative.dev/v1")
                ref.kind("Service")
                ref.name("event-display")

final_trigger = trigger.build()
```

### Mixing Builder Styles

You can mix different builder styles based on your needs:

```python
from cloudcoil.models.knative_eventing.eventing.v1 import Trigger
from cloudcoil import apimachinery

# Create a Trigger using mixed styles
with Trigger.new() as trigger:
    # Direct object initialization
    trigger.metadata(apimachinery.ObjectMeta(
        name="my-service-trigger"
    ))
    
    with trigger.spec() as spec:    
        # Fluent style for spec
        spec.broken("default")
        spec.filter(lambda f: f
            .attributes({
                "type": "dev.knative.samples.helloworld"
            })
        )
        spec.subscriber(lambda sub: sub
            .ref(lambda r: r
                .api_version("serving.knative.dev/v1")
                .kind("Service")
                .name("event-display")
            )
        )

final_trigger = trigger.build()
```

## 📚 Documentation

For complete documentation, visit [cloudcoil.github.io/cloudcoil](https://cloudcoil.github.io/cloudcoil)

## 📜 License

Apache License, Version 2.0 - see [LICENSE](LICENSE)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "cloudcoil.models.knative-eventing",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Sambhav Kothari <sambhavs.email@gmail.com>",
    "keywords": "async, cloud-native, cloudcoil, cloudcoil-models, knative-eventing, kubernetes, pydantic, python",
    "author": null,
    "author_email": "Sambhav Kothari <sambhavs.email@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/40/e4/ca5691a13713763eaf2c4272ddbe69b6ce3d1ecbdc157f7b5e19d6b67d69/cloudcoil_models_knative_eventing-1.17.1.1.tar.gz",
    "platform": null,
    "description": "# cloudcoil-models-knative-eventing\n\nVersioned knative-eventing models for cloudcoil.\n> [!WARNING]  \n> This repository is auto-generated from the [cloudcoil repository](https://github.com/cloudcoil/cloudcoil/tree/main/models/knative-eventing). Please do not submit pull requests here. Instead, submit them to the main repository at https://github.com/cloudcoil/cloudcoil.\n\n## \ud83d\udd27 Installation\n\n> [!NOTE]\n> For versioning information and compatibility, see the [Versioning Guide](https://github.com/cloudcoil/cloudcoil/blob/main/VERSIONING.md).\n\nUsing [uv](https://github.com/astral-sh/uv) (recommended):\n\n```bash\n# Install with Knative Eventing support\nuv add cloudcoil.models.knative-eventing\n```\n\nUsing pip:\n\n```bash\npip install cloudcoil.models.knative-eventing\n```\n\n## \ud83d\udca1 Examples\n\n### Using Knative Eventing Models\n\n```python\nfrom cloudcoil import apimachinery\nimport cloudcoil.models.knative_eventing.eventing.v1 as eventing\n\n# Create a Broker\nbroker = eventing.Broker(\n    metadata=apimachinery.ObjectMeta(name=\"default\"),\n    spec=eventing.BrokerSpec(\n        config=eventing.Config(\n            kind=\"ConfigMap\",\n            name=\"kafka-broker-config\"\n        )\n    )\n).create()\n\n# Create a Trigger\ntrigger = eventing.Trigger(\n    metadata=apimachinery.ObjectMeta(name=\"my-service-trigger\"),\n    spec=eventing.TriggerSpec(\n        broker=\"default\",\n        filter=eventing.Filter(\n            attributes={\n                \"type\": \"dev.knative.samples.helloworld\"\n            }\n        ),\n        subscriber=eventing.Subscriber(\n            ref=eventing.Ref(\n                api_version=\"serving.knative.dev/v1\",\n                kind=\"Service\",\n                name=\"event-display\"\n            )\n        )\n    )\n).create()\n\n# List Brokers\nfor b in eventing.Broker.list():\n    print(f\"Found Broker: {b.metadata.name}\")\n```\n\n### Using the Fluent Builder API\n\nCloudcoil provides a powerful fluent builder API for Knative Eventing resources:\n\n```python\nfrom cloudcoil.models.knative_eventing.eventing.v1 import Broker, Trigger\n\n# Create a Broker using the builder\nbroker = (\n    Broker.builder()\n    .metadata(lambda m: m\n        .name(\"default\")\n    )\n    .spec(lambda s: s\n        .config(lambda c: c\n            .kind(\"ConfigMap\")\n            .name(\"kafka-broker-config\")\n        )\n    )\n    .build()\n)\n\n# Create a Trigger using the builder\ntrigger = (\n    Trigger.builder()\n    .metadata(lambda m: m\n        .name(\"my-service-trigger\")\n    )\n    .spec(lambda s: s\n        .broker(\"default\")\n        .filter(lambda f: f\n            .attributes({\n                \"type\": \"dev.knative.samples.helloworld\"\n            })\n        )\n        .subscriber(lambda sub: sub\n            .ref(lambda r: r\n                .api_version(\"serving.knative.dev/v1\")\n                .kind(\"Service\")\n                .name(\"event-display\")\n            )\n        )\n    )\n    .build()\n)\n```\n\n### Using the Context Manager Builder API\n\nFor complex eventing configurations, you can use the context manager-based builder:\n\n```python\nfrom cloudcoil.models.knative_eventing.eventing.v1 import Trigger\n\n# Create a Trigger using context managers\nwith Trigger.new() as trigger:\n    with trigger.metadata() as metadata:\n        metadata.name(\"my-service-trigger\")\n    \n    with trigger.spec() as spec:\n        spec.broker(\"default\")\n        with spec.filter() as filter_:\n            filter_.attributes({\n                \"type\": \"dev.knative.samples.helloworld\"\n            })\n        with spec.subscriber() as subscriber:\n            with subscriber.ref() as ref:\n                ref.api_version(\"serving.knative.dev/v1\")\n                ref.kind(\"Service\")\n                ref.name(\"event-display\")\n\nfinal_trigger = trigger.build()\n```\n\n### Mixing Builder Styles\n\nYou can mix different builder styles based on your needs:\n\n```python\nfrom cloudcoil.models.knative_eventing.eventing.v1 import Trigger\nfrom cloudcoil import apimachinery\n\n# Create a Trigger using mixed styles\nwith Trigger.new() as trigger:\n    # Direct object initialization\n    trigger.metadata(apimachinery.ObjectMeta(\n        name=\"my-service-trigger\"\n    ))\n    \n    with trigger.spec() as spec:    \n        # Fluent style for spec\n        spec.broken(\"default\")\n        spec.filter(lambda f: f\n            .attributes({\n                \"type\": \"dev.knative.samples.helloworld\"\n            })\n        )\n        spec.subscriber(lambda sub: sub\n            .ref(lambda r: r\n                .api_version(\"serving.knative.dev/v1\")\n                .kind(\"Service\")\n                .name(\"event-display\")\n            )\n        )\n\nfinal_trigger = trigger.build()\n```\n\n## \ud83d\udcda Documentation\n\nFor complete documentation, visit [cloudcoil.github.io/cloudcoil](https://cloudcoil.github.io/cloudcoil)\n\n## \ud83d\udcdc License\n\nApache License, Version 2.0 - see [LICENSE](LICENSE)\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Versioned knative-eventing models for cloudcoil",
    "version": "1.17.1.1",
    "project_urls": {
        "Changelog": "https://github.com/cloudcoil/models-knative-eventing/releases",
        "Documentation": "https://cloudcoil.github.io/cloudcoil",
        "Homepage": "https://github.com/cloudcoil/cloudcoil",
        "Issues": "https://github.com/cloudcoil/models-knative-eventing/issues",
        "Repository": "https://github.com/cloudcoil/models-knative-eventing"
    },
    "split_keywords": [
        "async",
        " cloud-native",
        " cloudcoil",
        " cloudcoil-models",
        " knative-eventing",
        " kubernetes",
        " pydantic",
        " python"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b37ab3ca06f7fb73f2cf03368e68d157e1516c25541dc086fa922f288dd52b69",
                "md5": "1f142c86a56549a33cb43eebfac0d89f",
                "sha256": "ba60ce22d5b8fdbed1ffa8519b9e506f02164fa4798301bd9858d7a91b88068d"
            },
            "downloads": -1,
            "filename": "cloudcoil_models_knative_eventing-1.17.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1f142c86a56549a33cb43eebfac0d89f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 85894,
            "upload_time": "2025-02-10T04:26:58",
            "upload_time_iso_8601": "2025-02-10T04:26:58.737003Z",
            "url": "https://files.pythonhosted.org/packages/b3/7a/b3ca06f7fb73f2cf03368e68d157e1516c25541dc086fa922f288dd52b69/cloudcoil_models_knative_eventing-1.17.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "40e4ca5691a13713763eaf2c4272ddbe69b6ce3d1ecbdc157f7b5e19d6b67d69",
                "md5": "7181825904c8c211cef9625390628a25",
                "sha256": "d50a12659439606203f2042c1f87ae2408f8fd5aab94276a1d2cba63587d3eb0"
            },
            "downloads": -1,
            "filename": "cloudcoil_models_knative_eventing-1.17.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "7181825904c8c211cef9625390628a25",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 131687,
            "upload_time": "2025-02-10T04:27:00",
            "upload_time_iso_8601": "2025-02-10T04:27:00.845115Z",
            "url": "https://files.pythonhosted.org/packages/40/e4/ca5691a13713763eaf2c4272ddbe69b6ce3d1ecbdc157f7b5e19d6b67d69/cloudcoil_models_knative_eventing-1.17.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-10 04:27:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cloudcoil",
    "github_project": "models-knative-eventing",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "cloudcoil.models.knative-eventing"
}
        
Elapsed time: 0.53073s