Skip to main content

Versioned knative-eventing models for cloudcoil

Project description

cloudcoil-models-knative-eventing

Versioned knative-eventing models for cloudcoil.

[!WARNING]
This repository is auto-generated from the cloudcoil repository. 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.

Using uv (recommended):

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

Using pip:

pip install cloudcoil.models.knative-eventing

💡 Examples

Using Knative Eventing Models

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:

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:

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:

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

📜 License

Apache License, Version 2.0 - see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudcoil_models_knative_eventing-1.17.1.1.tar.gz (131.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file cloudcoil_models_knative_eventing-1.17.1.1.tar.gz.

File metadata

File hashes

Hashes for cloudcoil_models_knative_eventing-1.17.1.1.tar.gz
Algorithm Hash digest
SHA256 d50a12659439606203f2042c1f87ae2408f8fd5aab94276a1d2cba63587d3eb0
MD5 7181825904c8c211cef9625390628a25
BLAKE2b-256 40e4ca5691a13713763eaf2c4272ddbe69b6ce3d1ecbdc157f7b5e19d6b67d69

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloudcoil_models_knative_eventing-1.17.1.1.tar.gz:

Publisher: pypi_publish.yml on cloudcoil/models-knative-eventing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cloudcoil_models_knative_eventing-1.17.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for cloudcoil_models_knative_eventing-1.17.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ba60ce22d5b8fdbed1ffa8519b9e506f02164fa4798301bd9858d7a91b88068d
MD5 1f142c86a56549a33cb43eebfac0d89f
BLAKE2b-256 b37ab3ca06f7fb73f2cf03368e68d157e1516c25541dc086fa922f288dd52b69

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloudcoil_models_knative_eventing-1.17.1.1-py3-none-any.whl:

Publisher: pypi_publish.yml on cloudcoil/models-knative-eventing

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page