# 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"
}