Expand description
PCS External API client — v0.3.0.
Phantom-typed gRPC client for the PCS External Developer Platform
(chat.external package). OAuth2 JWT auth is built-in via
ppoppo-sdk-core’s TokenCache + AuthInterceptor.
§Quick start
use pcs_external::{PcsExternalClientBuilder, scopes::SendOnly};
use pcs_external::types::{Ppnum, RecipientList, TemplateId};
// Build a send-only client from environment variables.
let client = PcsExternalClientBuilder::from_env()
.ok_or_else(|| pcs_external::Error::Transport("missing env vars".into()))?
.build::<SendOnly>()
.await?;
let recipients = RecipientList::from_ppnums(vec![
Ppnum::try_new("12345678901").map_err(|e| pcs_external::Error::Transport(e.to_string()))?,
])
.map_err(|e| pcs_external::Error::Transport(e.to_string()))?;
let outcome = client.send_alert(&TemplateId::new("tmpl_v1"), &recipients, None).await?;
println!("queued: {:?}", outcome.id);§Scope sets
Construct the client with the scope set that matches your OAuth2 grant. Method availability is enforced at compile time:
| Scope set | send_alert | get_send_status |
|---|---|---|
ReadOnly | — | ✓ |
SendOnly | ✓ | — |
ReadAndSend | ✓ | ✓ |
FullAccess | ✓ | ✓ |
Re-exports§
pub use prost_types;pub use tonic;
Modules§
- scopes
- Sealed scope-set type family for
crate::PcsExternalClient<S>. - types
- Domain types for the PCS External API client hot path.
Structs§
- PcsExternal
Client - Phantom-typed gRPC client for the PCS External Developer Platform.
- PcsExternal
Client Builder - Builder for
PcsExternalClient<S>.
Enums§
- Error
- All errors returned by
crate::PcsExternalClientmethods.