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.0.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.0.tar.gz.

File metadata

File hashes

Hashes for cloudcoil_models_knative_eventing-1.17.1.0.tar.gz
Algorithm Hash digest
SHA256 de0e35d4dac2a3fd065df1cfb6464d1b358c23ac6da0e48687e2cf6098afd176
MD5 3abfde1924f34eaad07b3328b874823f
BLAKE2b-256 c93a90e8b4453030d41cdf513ed66c3cd720766337699f70b5a95a391c27f236

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloudcoil_models_knative_eventing-1.17.1.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cloudcoil_models_knative_eventing-1.17.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e60fe53e328e0b2f2206693230a6d60ceb3bd704b25a88f9f85f9a7a8a4121b7
MD5 771b550276d477c66491078cacedd01c
BLAKE2b-256 201482d1e4cd5dea8ff441897d25729b74f75432a1f8b55e3cf22a5948eeacf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for cloudcoil_models_knative_eventing-1.17.1.0-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