Skip to main content

InternalVerb

Trait InternalVerb 

Source
pub trait InternalVerb: 'static {
    type Input: DeserializeOwned + Send + 'static;
    type Output: Serialize + Send + 'static;

    const ID: &'static str;
    const CATEGORY: VerbCategory;
}
Expand description

One internal verb. Implementors are zero-sized marker types (e.g. pub struct CloudVpsCreate;); the associated Input / Output types carry the wire shape.

Per W144 D1, schemas are derived from the Rust types via schemars at registration time — see [VerbDescriptor::for_verb]. The trait itself stays schema-agnostic so the crate doesn’t pull schemars unconditionally.

Example (will land in R409-T3):

ⓘ
pub struct CloudVpsCreate;

#[derive(serde::Deserialize, schemars::JsonSchema)]
pub struct CloudVpsCreateInput { /* ... */ }

#[derive(serde::Serialize, schemars::JsonSchema)]
pub struct CloudVpsCreateOutput { /* ... */ }

impl InternalVerb for CloudVpsCreate {
    type Input = CloudVpsCreateInput;
    type Output = CloudVpsCreateOutput;
    const ID: &'static str = "cloud.vps.create";
    const CATEGORY: VerbCategory = VerbCategory::Cloud;
}

Required Associated Constants§

Source

const ID: &'static str

Stable verb id, e.g. "cloud.vps.create". Must begin with Self::CATEGORY.as_str() followed by '.'.

Source

const CATEGORY: VerbCategory

Verb category — drives namespace and tool naming.

Required Associated Types§

Source

type Input: DeserializeOwned + Send + 'static

Wire input type. Typically derives Deserialize + schemars::JsonSchema.

Source

type Output: Serialize + Send + 'static

Wire output type. Typically derives Serialize + schemars::JsonSchema.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl InternalVerb for CiArtifactFetch

Source§

const ID: &'static str = "ci.artifact.fetch"

Source§

const CATEGORY: VerbCategory = VerbCategory::Ci

Source§

type Input = CiArtifactFetchInput

Source§

type Output = CiArtifactFetchOutput

Source§

impl InternalVerb for CiPipelineRun

Source§

const ID: &'static str = "ci.pipeline.run"

Source§

const CATEGORY: VerbCategory = VerbCategory::Ci

Source§

type Input = CiPipelineRunInput

Source§

type Output = CiPipelineRunOutput

Source§

impl InternalVerb for CiPipelineStatus

Source§

const ID: &'static str = "ci.pipeline.status"

Source§

const CATEGORY: VerbCategory = VerbCategory::Ci

Source§

type Input = CiPipelineStatusInput

Source§

type Output = CiPipelineStatusOutput

Source§

impl InternalVerb for CloudObjectBucketCreate

Source§

const ID: &'static str = "cloud.object.bucket.create"

Source§

const CATEGORY: VerbCategory = VerbCategory::Cloud

Source§

type Input = CloudObjectBucketCreateInput

Source§

type Output = CloudObjectBucketCreateOutput

Source§

impl InternalVerb for CloudObjectBucketDelete

Source§

const ID: &'static str = "cloud.object.bucket.delete"

Source§

const CATEGORY: VerbCategory = VerbCategory::Cloud

Source§

type Input = CloudObjectBucketDeleteInput

Source§

type Output = CloudObjectBucketDeleteOutput

Source§

impl InternalVerb for CloudObjectBucketExists

Source§

const ID: &'static str = "cloud.object.bucket.exists"

Source§

const CATEGORY: VerbCategory = VerbCategory::Cloud

Source§

type Input = CloudObjectBucketExistsInput

Source§

type Output = CloudObjectBucketExistsOutput

Source§

impl InternalVerb for CloudVpsCreate

Source§

const ID: &'static str = "cloud.vps.create"

Source§

const CATEGORY: VerbCategory = VerbCategory::Cloud

Source§

type Input = CloudVpsCreateInput

Source§

type Output = CloudVpsCreateOutput

Source§

impl InternalVerb for CloudVpsDestroy

Source§

const ID: &'static str = "cloud.vps.destroy"

Source§

const CATEGORY: VerbCategory = VerbCategory::Cloud

Source§

type Input = CloudVpsDestroyInput

Source§

type Output = CloudVpsDestroyOutput

Source§

impl InternalVerb for CloudVpsStatus

Source§

const ID: &'static str = "cloud.vps.status"

Source§

const CATEGORY: VerbCategory = VerbCategory::Cloud

Source§

type Input = CloudVpsStatusInput

Source§

type Output = CloudVpsStatusOutput

Source§

impl InternalVerb for DnsRecordDelete

Source§

const ID: &'static str = "dns.record.delete"

Source§

const CATEGORY: VerbCategory = VerbCategory::Dns

Source§

type Input = DnsRecordDeleteInput

Source§

type Output = DnsRecordDeleteOutput

Source§

impl InternalVerb for DnsRecordUpsert

Source§

const ID: &'static str = "dns.record.upsert"

Source§

const CATEGORY: VerbCategory = VerbCategory::Dns

Source§

type Input = DnsRecordUpsertInput

Source§

type Output = DnsRecordUpsertOutput

Source§

impl InternalVerb for DnsZoneList

Source§

const ID: &'static str = "dns.zone.list"

Source§

const CATEGORY: VerbCategory = VerbCategory::Dns

Source§

type Input = DnsZoneListInput

Source§

type Output = DnsZoneListOutput

Source§

impl InternalVerb for FloatingIpAssign

Source§

const ID: &'static str = "floating_ip.assign"

Source§

const CATEGORY: VerbCategory = VerbCategory::FloatingIp

Source§

type Input = FloatingIpAssignInput

Source§

type Output = FloatingIpAssignOutput

Source§

impl InternalVerb for FloatingIpStatus

Source§

const ID: &'static str = "floating_ip.status"

Source§

const CATEGORY: VerbCategory = VerbCategory::FloatingIp

Source§

type Input = FloatingIpStatusInput

Source§

type Output = FloatingIpStatusOutput

Source§

impl InternalVerb for MessagingEmailSend

Source§

const ID: &'static str = "messaging.email.send"

Source§

const CATEGORY: VerbCategory = VerbCategory::Messaging

Source§

type Input = MessagingEmailSendInput

Source§

type Output = MessagingEmailSendOutput

Source§

impl InternalVerb for MessagingSmsSend

Source§

const ID: &'static str = "messaging.sms.send"

Source§

const CATEGORY: VerbCategory = VerbCategory::Messaging

Source§

type Input = MessagingSmsSendInput

Source§

type Output = MessagingSmsSendOutput

Source§

impl InternalVerb for MessagingWebhookDispatch

Source§

const ID: &'static str = "messaging.webhook.dispatch"

Source§

const CATEGORY: VerbCategory = VerbCategory::Messaging

Source§

type Input = MessagingWebhookDispatchInput

Source§

type Output = MessagingWebhookDispatchOutput

Source§

impl InternalVerb for ObservabilityAlertAck

Source§

const ID: &'static str = "observability.alert.ack"

Source§

const CATEGORY: VerbCategory = VerbCategory::Observability

Source§

type Input = ObservabilityAlertAckInput

Source§

type Output = ObservabilityAlertAckOutput

Source§

impl InternalVerb for ObservabilityAlertList

Source§

const ID: &'static str = "observability.alert.list"

Source§

const CATEGORY: VerbCategory = VerbCategory::Observability

Source§

type Input = ObservabilityAlertListInput

Source§

type Output = ObservabilityAlertListOutput

Source§

impl InternalVerb for ObservabilityDashboardSnapshot

Source§

const ID: &'static str = "observability.dashboard.snapshot"

Source§

const CATEGORY: VerbCategory = VerbCategory::Observability

Source§

type Input = ObservabilityDashboardSnapshotInput

Source§

type Output = ObservabilityDashboardSnapshotOutput

Source§

impl InternalVerb for ObservabilityIncidentClose

Source§

const ID: &'static str = "observability.incident.close"

Source§

const CATEGORY: VerbCategory = VerbCategory::Observability

Source§

type Input = ObservabilityIncidentCloseInput

Source§

type Output = ObservabilityIncidentCloseOutput

Source§

impl InternalVerb for ObservabilityIncidentOpen

Source§

const ID: &'static str = "observability.incident.open"

Source§

const CATEGORY: VerbCategory = VerbCategory::Observability

Source§

type Input = ObservabilityIncidentOpenInput

Source§

type Output = ObservabilityIncidentOpenOutput

Source§

impl InternalVerb for PaymentsChargeCreate

Source§

const ID: &'static str = "payments.charge.create"

Source§

const CATEGORY: VerbCategory = VerbCategory::Payments

Source§

type Input = PaymentsChargeCreateInput

Source§

type Output = PaymentsChargeCreateOutput

Source§

impl InternalVerb for PaymentsSubscriptionUpsert

Source§

const ID: &'static str = "payments.subscription.upsert"

Source§

const CATEGORY: VerbCategory = VerbCategory::Payments

Source§

type Input = PaymentsSubscriptionUpsertInput

Source§

type Output = PaymentsSubscriptionUpsertOutput

Source§

impl InternalVerb for PaymentsWebhookVerify

Source§

const ID: &'static str = "payments.webhook.verify"

Source§

const CATEGORY: VerbCategory = VerbCategory::Payments

Source§

type Input = PaymentsWebhookVerifyInput

Source§

type Output = PaymentsWebhookVerifyOutput