@whooshbang/contracts 1.0.0-rc.20 → 1.0.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/contract-manifest.json +46 -32
  3. package/dist/generated/artifact-index.d.ts +34 -34
  4. package/dist/generated/artifact-index.js +46 -32
  5. package/dist/generated/artifact-index.js.map +1 -1
  6. package/dist/generated/validators-standalone.d.ts +384 -254
  7. package/dist/generated/validators-standalone.js +25492 -15741
  8. package/dist/generated/validators-standalone.js.map +1 -1
  9. package/dist/generated/validators.d.ts +11 -1
  10. package/dist/generated/validators.js +62 -17
  11. package/dist/generated/validators.js.map +1 -1
  12. package/dist/generated/whooshbang-v1.d.ts +809 -5
  13. package/dist/index.d.ts +6 -2
  14. package/dist/index.js +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/fixtures/core-v1/fixture-index.json +110 -1
  17. package/fixtures/core-v1/problems/credential-account-mismatch.json +9 -0
  18. package/fixtures/core-v1/requests/create-account-credential.json +4 -0
  19. package/fixtures/core-v1/requests/create-connection-test.json +3 -0
  20. package/fixtures/core-v1/requests/rotate-account-credential.json +3 -0
  21. package/fixtures/core-v1/scenarios/api-credential-invalid-indistinguishable.json +1 -1
  22. package/fixtures/core-v1/scenarios/api-credential-one-time-reveal.json +1 -1
  23. package/fixtures/core-v1/scenarios/api-credential-revocation-replay.json +1 -1
  24. package/fixtures/core-v1/scenarios/api-credential-rotation-overlap.json +1 -1
  25. package/fixtures/core-v1/scenarios/cancellation-too-late.json +1 -1
  26. package/fixtures/core-v1/scenarios/cross-account-project.json +1 -1
  27. package/fixtures/core-v1/scenarios/cross-project-resource.json +1 -1
  28. package/fixtures/core-v1/scenarios/environment-mismatch.json +1 -1
  29. package/fixtures/core-v1/scenarios/idempotency-conflict.json +1 -1
  30. package/fixtures/core-v1/scenarios/idempotency-equivalent-replay.json +1 -1
  31. package/fixtures/core-v1/scenarios/malformed-bearer.json +1 -1
  32. package/fixtures/core-v1/scenarios/metadata-overrun.json +1 -1
  33. package/fixtures/core-v1/scenarios/missing-scope.json +1 -1
  34. package/fixtures/core-v1/scenarios/project-create-equivalent-replay.json +1 -1
  35. package/fixtures/core-v1/scenarios/project-slug-conflict.json +1 -1
  36. package/fixtures/core-v1/scenarios/provider-outcome-unknown.json +1 -1
  37. package/fixtures/core-v1/scenarios/subscription-activation-replay.json +1 -1
  38. package/fixtures/core-v1/scenarios/subscription-authorization-capability-opacity.json +1 -1
  39. package/fixtures/core-v1/scenarios/subscription-cross-connection-callback-rejected.json +1 -1
  40. package/fixtures/core-v1/scenarios/subscription-expired-replay.json +1 -1
  41. package/fixtures/core-v1/scenarios/subscription-selected-connection-replay.json +1 -1
  42. package/fixtures/core-v1/success/account-credential-collection.json +17 -0
  43. package/fixtures/core-v1/success/account-credential-created.json +12 -0
  44. package/fixtures/core-v1/success/account-credential-revoked.json +11 -0
  45. package/fixtures/core-v1/success/account-credential-rotated.json +25 -0
  46. package/fixtures/core-v1/success/channel-connection-slack-customer-active.json +31 -0
  47. package/fixtures/core-v1/success/channel-connection-slack-customer-pending.json +36 -0
  48. package/fixtures/core-v1/success/connection-test-collection.json +39 -0
  49. package/fixtures/core-v1/success/connection-test-pending.json +16 -0
  50. package/fixtures/core-v1/success/connection-test-succeeded.json +20 -0
  51. package/fixtures/core-v1/success/customer-owned-slack-app-manifest.json +53 -0
  52. package/fixtures/interaction-machine-v1/scenarios/ack-conflict.json +1 -1
  53. package/fixtures/interaction-machine-v1/scenarios/ack-cross-machine.json +1 -1
  54. package/fixtures/interaction-machine-v1/scenarios/ack-out-of-order.json +1 -1
  55. package/fixtures/interaction-machine-v1/scenarios/ack-replay.json +1 -1
  56. package/fixtures/interaction-machine-v1/scenarios/ambiguous-free-text.json +1 -1
  57. package/fixtures/interaction-machine-v1/scenarios/callback-token-opacity.json +1 -1
  58. package/fixtures/interaction-machine-v1/scenarios/credential-registration-conflict.json +1 -1
  59. package/fixtures/interaction-machine-v1/scenarios/credential-registration-replay.json +1 -1
  60. package/fixtures/interaction-machine-v1/scenarios/credential-revocation-replay.json +1 -1
  61. package/fixtures/interaction-machine-v1/scenarios/credential-rotation.json +1 -1
  62. package/fixtures/interaction-machine-v1/scenarios/first-credential-activates.json +1 -1
  63. package/fixtures/interaction-machine-v1/scenarios/interaction-duplicate.json +1 -1
  64. package/fixtures/interaction-machine-v1/scenarios/interaction-expired.json +1 -1
  65. package/fixtures/interaction-machine-v1/scenarios/interaction-mismatch.json +1 -1
  66. package/fixtures/interaction-machine-v1/scenarios/interaction-retired.json +1 -1
  67. package/fixtures/interaction-machine-v1/scenarios/interaction-stale.json +1 -1
  68. package/fixtures/interaction-machine-v1/scenarios/machine-admin-denied.json +1 -1
  69. package/fixtures/interaction-machine-v1/scenarios/machine-bound-message-create.json +1 -1
  70. package/fixtures/interaction-machine-v1/scenarios/machine-cancel-denied.json +1 -1
  71. package/fixtures/interaction-machine-v1/scenarios/machine-crash-before-ack.json +1 -1
  72. package/fixtures/interaction-machine-v1/scenarios/machine-notifier-mismatch.json +1 -1
  73. package/fixtures/interaction-machine-v1/scenarios/machine-other-message-read.json +1 -1
  74. package/fixtures/interaction-machine-v1/scenarios/machine-owned-message-read.json +1 -1
  75. package/fixtures/interaction-machine-v1/scenarios/machine-subscriber-mismatch.json +1 -1
  76. package/fixtures/interaction-machine-v1/scenarios/poll-uncommitted-cursor-rejected.json +1 -1
  77. package/fixtures/interaction-machine-v1/scenarios/project-credential-machine-endpoint-denied.json +1 -1
  78. package/fixtures/interaction-machine-v1/scenarios/quarantine-integrity-rejected.json +1 -1
  79. package/fixtures/interaction-machine-v1/scenarios/quarantine-signature-rejected.json +1 -1
  80. package/fixtures/interaction-machine-v1/scenarios/quarantine-valid.json +1 -1
  81. package/fixtures/interaction-machine-v1/scenarios/revoked-machine-credential.json +1 -1
  82. package/fixtures/recipient-experience-v1/scenarios/membership-broadcast-snapshot.json +1 -1
  83. package/fixtures/recipient-experience-v1/scenarios/preferred-binding-resolution.json +1 -1
  84. package/fixtures/recipient-experience-v1/scenarios/recipient-session-security.json +1 -1
  85. package/fixtures/recipient-experience-v1/scenarios/subscriber-initial-groups-transaction.json +1 -1
  86. package/openapi/generated/whooshbang-v1.bundle.json +1581 -93
  87. package/openapi/whooshbang-v1.yaml +667 -10
  88. package/package.json +1 -1
  89. package/schemas/core-scenario.schema.json +1 -1
  90. package/schemas/events/agent-binding-degraded-v1.schema.json +1 -1
  91. package/schemas/events/interaction-expired-v1.schema.json +1 -1
  92. package/schemas/events/interaction-received-v1.schema.json +1 -1
  93. package/schemas/events/message-delivered-v1.schema.json +1 -1
  94. package/schemas/events/message-expired-v1.schema.json +1 -1
  95. package/schemas/events/message-failed-v1.schema.json +1 -1
  96. package/schemas/events/message-provider-accepted-v1.schema.json +1 -1
  97. package/schemas/events/subscription-activated-v1.schema.json +1 -1
  98. package/schemas/events/subscription-revoked-v1.schema.json +1 -1
  99. package/schemas/events/whooshbang-event-v1.schema.json +1 -1
  100. package/schemas/fixture-index.schema.json +1 -1
  101. package/schemas/interaction-machine-scenario.schema.json +1 -1
  102. package/schemas/interaction-v1.schema.json +1 -1
  103. package/schemas/machine-v1.schema.json +1 -1
  104. package/schemas/provider-capabilities-v1.schema.json +1 -1
  105. package/schemas/webhooks/webhook-delivery-case-v1.schema.json +1 -1
  106. package/schemas/webhooks/webhook-signing-vector-v1.schema.json +1 -1
  107. package/schemas/whooshbang-v1.schema.json +811 -23
package/dist/index.d.ts CHANGED
@@ -15,16 +15,20 @@ export type { MachineCredentialCrypto, MachineCredentialMaterial, MachineCredent
15
15
  export type { RejectedWebhookSignature, VerifiedWebhookSignature, VerifyWebhookSignatureOptions, WebhookCrypto, WebhookHeaderEntry, WebhookHeaderRecord, WebhookHeaders, WebhookSignatureVerification, WebhookVerificationFailureReason, } from "./webhook-signature.js";
16
16
  export type { ConsumeVerifiedWebhookOptions, DuplicateWebhookConsumption, ProcessedWebhookConsumption, RejectedWebhookConsumption, WebhookConsumptionResult, WebhookConsumerRejectionReason, WebhookDeduplicationInput, WebhookDeduplicationOutcome, WebhookDeduplicationStore, } from "./webhook-consumer.js";
17
17
  export type { AcceptedWebhookDelivery, ClassifyWebhookDeliveryOptions, HttpDeliveryOutcome, NetworkFailureOutcome, RetryWebhookDelivery, TerminalWebhookDelivery, WebhookDeliveryClassification, WebhookDeliveryOutcome, WebhookDeliveryRetryReason, WebhookDeliveryTerminalReason, } from "./webhook-delivery.js";
18
- export { contractValidationErrors, validateAccountProjection, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateBindingSummary, validateCreateApiCredentialRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateCreateChannelConnectionRequest, validateUpdateChannelConnectionRequest, validateRotateChannelConnectionCredentialRequest, validateAttachNotifierConnectionRequest, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateRecipientHandoffCompletion, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateCreateRecipientGroupRequest, validateUpdateRecipientGroupRequest, validateRecipientGroup, validateRecipientGroupCollection, validateRecipientGroupMembership, validateRecipientGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateCustomerEndpointRequest, validateCreateProjectRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCreateSubscriptionLinkRequest, validateDeliveryAttemptSummary, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateCustomerEndpointVerificationChallenge, validateIdempotencyKey, validateAgentBindingDegradedEvent, validateInteractionEvent, validateInteractionExpiredEvent, validateInteractionReceivedEvent, validateInteractionRequest, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineCredentialBearer, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateMessageDeliveredEvent, validateMessageExpiredEvent, validateMessageFailedEvent, validateMessageProviderAcceptedEvent, validateWhooshBangEvent, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCallbackToken, validateProviderCapabilities, validateProviderCapabilitiesCollection, validateRegisterMachineCredentialRequest, validateRotateApiCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionActivatedEvent, validateSubscriptionLink, validateSubscriptionRevokedEvent, validateUpdateRecipientCopyOverrideRequest, validateWebhookDeliveryCaseSet, validateWebhookSigningVectorSet, } from "./generated/validators.js";
18
+ export { contractValidationErrors, validateAccountCredential, validateAccountCredentialCollection, validateAccountCredentialRotation, validateAccountCredentialSecretReveal, validateAccountProjection, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateBindingSummary, validateCreateAccountCredentialRequest, validateCreateApiCredentialRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateCreateChannelConnectionRequest, validateUpdateChannelConnectionRequest, validateRotateChannelConnectionCredentialRequest, validateConnectionTest, validateConnectionTestCollection, validateCreateConnectionTestRequest, validateCustomerOwnedSlackAppManifest, validateAttachNotifierConnectionRequest, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateRecipientHandoffCompletion, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateCreateRecipientGroupRequest, validateUpdateRecipientGroupRequest, validateRecipientGroup, validateRecipientGroupCollection, validateRecipientGroupMembership, validateRecipientGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateCustomerEndpointRequest, validateCreateProjectRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCreateSubscriptionLinkRequest, validateDeliveryAttemptSummary, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateCustomerEndpointVerificationChallenge, validateIdempotencyKey, validateAgentBindingDegradedEvent, validateInteractionEvent, validateInteractionExpiredEvent, validateInteractionReceivedEvent, validateInteractionRequest, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineCredentialBearer, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateMessageDeliveredEvent, validateMessageExpiredEvent, validateMessageFailedEvent, validateMessageProviderAcceptedEvent, validateWhooshBangEvent, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCallbackToken, validateProviderCapabilities, validateProviderCapabilitiesCollection, validateRegisterMachineCredentialRequest, validateRotateAccountCredentialRequest, validateRotateApiCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionActivatedEvent, validateSubscriptionLink, validateSubscriptionRevokedEvent, validateUpdateRecipientCopyOverrideRequest, validateWebhookDeliveryCaseSet, validateWebhookSigningVectorSet, } from "./generated/validators.js";
19
19
  export type { Artifact, ContractManifest, FixtureSet, GeneratedArtifact, } from "./generated/contract-manifest.js";
20
20
  export type { AgentBindingDegradedData, AgentBindingDegradedEvent, ConfirmInteractionResponse as CustomerEventConfirmInteractionResponse, InteractionExpiredData, InteractionExpiredEvent, InteractionReceivedData, InteractionReceivedEvent, InteractionResponse as CustomerEventInteractionResponse, MessageDeliveredData, MessageDeliveredEvent, MessageExpiredData, MessageExpiredEvent, MessageFailedData, MessageFailedEvent, MessageProviderAcceptedData, MessageProviderAcceptedEvent, WhooshBangEventV1ContractDocument, SelectInteractionResponse as CustomerEventSelectInteractionResponse, SubscriptionActivatedData, SubscriptionActivatedEvent, SubscriptionRevokedData, SubscriptionRevokedEvent, InputInteractionResponse as CustomerEventInputInteractionResponse, } from "./generated/whooshbang-event-v1.js";
21
21
  export type { WebhookDeliveryCaseSetV1, DeliveryCase as WebhookDeliveryFixtureCase, } from "./generated/webhook-delivery-case-v1.js";
22
22
  export type { WebhookSigningVectorSetV1, VerificationCase as WebhookSigningVerificationCase, } from "./generated/webhook-signing-vector-v1.js";
23
- export type { AccountMembershipSummary, AccountProjection, AccountRole, ApiCredential, ApiCredentialCollection, ApiCredentialId, ApiCredentialPrefix, ApiCredentialRotation, ApiCredentialScope, ApiCredentialScopeSet, ApiCredentialSecret, ApiCredentialSecretReveal, BindingSummary, Channel, ClassifiedError, CreateApiCredentialRequest, ChannelConnection, ChannelConnectionCollection, ChannelConnectionSetup, ChannelConnectionSetupStatus, ChannelConnectionStatus, ConnectionLifecycleOperation, ConnectionProvider, ConnectionProviderCollection, CreateChannelConnectionRequest, AttachNotifierConnectionRequest, NotifierConnectionCollection, NotifierConnectionRoute, ProjectRecipientExperience, RecipientBrandAssetId, RecipientBrandLogoAsset, RecipientBrandLogoUpload, NotificationImage, NotificationImageAsset, NotificationImageAssetId, UpdateProjectRecipientExperienceRequest, EnvironmentRecipientExperience, UpdateEnvironmentRecipientExperienceRequest, RecipientBrand, ReturnDestination, CreateRecipientSessionRequest, CreateRecipientSessionResponse, RecipientSession, RecipientPanelCopyOverrides, RecipientSessionCapability, RecipientSessionCapabilityPrefix, RecipientSessionOperation, RecipientChannelSummary, CreateProviderHandoffRequest, ProviderHandoff, ProviderHandoffCompletionMode, RecipientHandoffCompletion, SetPreferredBindingRequest, PreferredBinding, CreateSubscriberRequest, Subscriber, DeveloperKey, CreateRecipientGroupRequest, UpdateRecipientGroupRequest, RecipientGroup, RecipientGroupCollection, RecipientGroupMembership, RecipientGroupMembershipCollection, CreateGroupBroadcastRequest, BroadcastAggregate, GroupBroadcast, BroadcastMessageProvenance, ProviderHealthState, ProviderFailure, ProviderInstallationStatus, ProviderInstallationSummary, RotateChannelConnectionCredentialRequest, SharedProviderIdentity, SuggestedBotUsername, UpdateChannelConnectionRequest, CreateCustomerEndpointRequest, CreateMessageRequest, CreateProjectRequest, DefaultNotifierSummary, CreateSubscriptionLinkRequest, DeliveryAttemptSummary, CustomerEndpoint, CustomerEndpointAttemptCollection, CustomerEndpointAttemptDiagnostic, CustomerEndpointCollection, CustomerEndpointFailure, CustomerEndpointMutationResult, CustomerEndpointSecret, CustomerEndpointStatus, CustomerEndpointVerificationChallenge, CustomerEventType, Environment, IdempotencyKey, Message, MessageState, WhooshBangV1ContractDocument, Problem, ProblemCode, Project, ProjectCollection, ProjectEnvironment, ProviderCapabilitiesCollection, RecipientCopyKey, RecipientCopyOverride, RecipientCopyOverrideCollection, RecipientCopyOverrideValue, RecipientLanguage, TimeZone, RotateApiCredentialRequest, RotateCustomerEndpointRequest, SubscriptionLink, UpdateRecipientCopyOverrideRequest, } from "./generated/whooshbang-v1.js";
23
+ export type { AccountCredential, AccountCredentialCollection, AccountCredentialId, AccountCredentialPrefix, AccountCredentialRotation, AccountCredentialScope, AccountCredentialScopeSet, AccountCredentialSecret, AccountCredentialSecretReveal, AccountMembershipSummary, AccountProjection, AccountRole, ApiCredential, ApiCredentialCollection, ApiCredentialId, ApiCredentialPrefix, ApiCredentialRotation, ApiCredentialScope, ApiCredentialScopeSet, ApiCredentialSecret, ApiCredentialSecretReveal, BindingSummary, Channel, ClassifiedError, CreateAccountCredentialRequest, CreateApiCredentialRequest, ChannelConnection, ChannelConnectionCollection, ChannelConnectionSetup, ChannelConnectionSetupStatus, ChannelConnectionStatus, ConnectionLifecycleOperation, ConnectionProvider, ConnectionProviderCollection, CreateChannelConnectionRequest, AttachNotifierConnectionRequest, NotifierConnectionCollection, NotifierConnectionRoute, ProjectRecipientExperience, RecipientBrandAssetId, RecipientBrandLogoAsset, RecipientBrandLogoUpload, NotificationImage, NotificationImageAsset, NotificationImageAssetId, UpdateProjectRecipientExperienceRequest, EnvironmentRecipientExperience, UpdateEnvironmentRecipientExperienceRequest, RecipientBrand, ReturnDestination, CreateRecipientSessionRequest, CreateRecipientSessionResponse, RecipientSession, RecipientPanelCopyOverrides, RecipientSessionCapability, RecipientSessionCapabilityPrefix, RecipientSessionOperation, RecipientChannelSummary, CreateProviderHandoffRequest, ProviderHandoff, ProviderHandoffCompletionMode, RecipientHandoffCompletion, SetPreferredBindingRequest, PreferredBinding, CreateSubscriberRequest, Subscriber, DeveloperKey, CreateRecipientGroupRequest, UpdateRecipientGroupRequest, RecipientGroup, RecipientGroupCollection, RecipientGroupMembership, RecipientGroupMembershipCollection, CreateGroupBroadcastRequest, BroadcastAggregate, GroupBroadcast, BroadcastMessageProvenance, ProviderHealthState, ProviderFailure, ProviderInstallationStatus, ProviderInstallationSummary, RotateChannelConnectionCredentialRequest, ConnectionTest, ConnectionTestCollection, ConnectionTestEvidence, ConnectionTestFailureCode, ConnectionTestKind, ConnectionTestStatus, CreateConnectionTestRequest, CustomerOwnedSlackAppManifest, SharedProviderIdentity, SuggestedBotUsername, UpdateChannelConnectionRequest, CreateCustomerEndpointRequest, CreateMessageRequest, CreateProjectRequest, DefaultNotifierSummary, CreateSubscriptionLinkRequest, DeliveryAttemptSummary, CustomerEndpoint, CustomerEndpointAttemptCollection, CustomerEndpointAttemptDiagnostic, CustomerEndpointCollection, CustomerEndpointFailure, CustomerEndpointMutationResult, CustomerEndpointSecret, CustomerEndpointStatus, CustomerEndpointVerificationChallenge, CustomerEventType, Environment, IdempotencyKey, Message, MessageState, WhooshBangV1ContractDocument, Problem, ProblemCode, Project, ProjectCollection, ProjectEnvironment, ProviderCapabilitiesCollection, RecipientCopyKey, RecipientCopyOverride, RecipientCopyOverrideCollection, RecipientCopyOverrideValue, RecipientLanguage, TimeZone, RotateAccountCredentialRequest, RotateApiCredentialRequest, RotateCustomerEndpointRequest, SubscriptionLink, UpdateRecipientCopyOverrideRequest, } from "./generated/whooshbang-v1.js";
24
24
  export type HostedChannelConnectionSetup = NonNullable<import("./generated/whooshbang-v1.js").HostedChannelConnection["authorization_setup"]>;
25
25
  export type ChannelConnectionMode = import("./generated/whooshbang-v1.js").ChannelConnection["mode"];
26
26
  export type ChannelConnectionProvider = import("./generated/whooshbang-v1.js").ChannelConnection["provider"];
27
27
  export type HostedChannelConnectionSetupStatus = HostedChannelConnectionSetup["status"];
28
+ export type CustomerOwnedSlackChannelConnection = import("./generated/whooshbang-v1.js").CustomerOwnedSlackChannelConnection;
29
+ export type CustomerOwnedSlackConnectionSetup = NonNullable<import("./generated/whooshbang-v1.js").CustomerOwnedSlackChannelConnection["app_setup"]>;
30
+ export type CustomerOwnedSlackSetupStatus = CustomerOwnedSlackConnectionSetup["status"];
31
+ export type CustomerOwnedSlackAppAuthority = import("./generated/whooshbang-v1.js").CustomerOwnedSlackAppAuthority;
28
32
  export type ProviderFailureCode = import("./generated/whooshbang-v1.js").ProviderFailure["code"];
29
33
  export type ProviderFailureOperation = import("./generated/whooshbang-v1.js").ProviderFailure["operation"];
30
34
  export type SubscriptionConnectionSummary = NonNullable<import("./generated/whooshbang-v1.js").SubscriptionLink["connection"]>;
package/dist/index.js CHANGED
@@ -8,5 +8,5 @@ export { RECIPIENT_BRAND_DEFAULT_ACCENT_COLOR } from "./recipient-brand.js";
8
8
  export { normalizeNotificationImage, NOTIFICATION_IMAGE_CONTENT_TYPE, NOTIFICATION_IMAGE_MAX_BYTES, NOTIFICATION_IMAGE_MAX_DIMENSION, NOTIFICATION_IMAGE_MAX_PIXELS, NotificationImageError, } from "./notification-image.js";
9
9
  export { canonicalIanaTimeZone } from "./time-zone.js";
10
10
  export { CUSTOMIZABLE_RECIPIENT_COPY_KEYS, CUSTOMIZABLE_RECIPIENT_PANEL_COPY_KEYS, isCustomizableRecipientCopyKey, recipientCopyOverrideIssues, recipientCopyOverrideMaximumLength, RECIPIENT_COPY_OVERRIDE_HOSTED_ACTION_MAX_LENGTH, RECIPIENT_COPY_OVERRIDE_MAX_LENGTH, } from "./recipient-copy-policy.js";
11
- export { contractValidationErrors, validateAccountProjection, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateBindingSummary, validateCreateApiCredentialRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateCreateChannelConnectionRequest, validateUpdateChannelConnectionRequest, validateRotateChannelConnectionCredentialRequest, validateAttachNotifierConnectionRequest, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateRecipientHandoffCompletion, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateCreateRecipientGroupRequest, validateUpdateRecipientGroupRequest, validateRecipientGroup, validateRecipientGroupCollection, validateRecipientGroupMembership, validateRecipientGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateCustomerEndpointRequest, validateCreateProjectRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCreateSubscriptionLinkRequest, validateDeliveryAttemptSummary, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateCustomerEndpointVerificationChallenge, validateIdempotencyKey, validateAgentBindingDegradedEvent, validateInteractionEvent, validateInteractionExpiredEvent, validateInteractionReceivedEvent, validateInteractionRequest, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineCredentialBearer, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateMessageDeliveredEvent, validateMessageExpiredEvent, validateMessageFailedEvent, validateMessageProviderAcceptedEvent, validateWhooshBangEvent, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCallbackToken, validateProviderCapabilities, validateProviderCapabilitiesCollection, validateRegisterMachineCredentialRequest, validateRotateApiCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionActivatedEvent, validateSubscriptionLink, validateSubscriptionRevokedEvent, validateUpdateRecipientCopyOverrideRequest, validateWebhookDeliveryCaseSet, validateWebhookSigningVectorSet, } from "./generated/validators.js";
11
+ export { contractValidationErrors, validateAccountCredential, validateAccountCredentialCollection, validateAccountCredentialRotation, validateAccountCredentialSecretReveal, validateAccountProjection, validateApiCredential, validateApiCredentialCollection, validateApiCredentialRotation, validateApiCredentialSecretReveal, validateBindingSummary, validateCreateAccountCredentialRequest, validateCreateApiCredentialRequest, validateChannelConnection, validateChannelConnectionCollection, validateConnectionProviderCollection, validateCreateChannelConnectionRequest, validateUpdateChannelConnectionRequest, validateRotateChannelConnectionCredentialRequest, validateConnectionTest, validateConnectionTestCollection, validateCreateConnectionTestRequest, validateCustomerOwnedSlackAppManifest, validateAttachNotifierConnectionRequest, validateNotifierConnectionCollection, validateProjectRecipientExperience, validateRecipientBrandLogoUpload, validateNotificationImageAsset, validateUpdateProjectRecipientExperienceRequest, validateEnvironmentRecipientExperience, validateUpdateEnvironmentRecipientExperienceRequest, validateCreateRecipientSessionRequest, validateCreateRecipientSessionResponse, validateRecipientSession, validateCreateProviderHandoffRequest, validateProviderHandoff, validateRecipientHandoffCompletion, validateSetPreferredBindingRequest, validatePreferredBinding, validateCreateSubscriberRequest, validateSubscriber, validateCreateRecipientGroupRequest, validateUpdateRecipientGroupRequest, validateRecipientGroup, validateRecipientGroupCollection, validateRecipientGroupMembership, validateRecipientGroupMembershipCollection, validateCreateGroupBroadcastRequest, validateGroupBroadcast, validateCreateCustomerEndpointRequest, validateCreateProjectRequest, validateCreateMachineClientRequest, validateCreateMessageRequest, validateCreateSubscriptionLinkRequest, validateDeliveryAttemptSummary, validateCustomerEndpoint, validateCustomerEndpointAttemptCollection, validateCustomerEndpointCollection, validateCustomerEndpointMutationResult, validateCustomerEndpointVerificationChallenge, validateIdempotencyKey, validateAgentBindingDegradedEvent, validateInteractionEvent, validateInteractionExpiredEvent, validateInteractionReceivedEvent, validateInteractionRequest, validateInteractionSummary, validateMachineClient, validateMachineCredential, validateMachineCredentialBearer, validateMachineEventAckRequest, validateMachineEventAckResponse, validateMachineEventPollResponse, validateMessage, validateMessageDeliveredEvent, validateMessageExpiredEvent, validateMessageFailedEvent, validateMessageProviderAcceptedEvent, validateWhooshBangEvent, validateProblem, validateProject, validateProjectCollection, validateRecipientCopyOverride, validateRecipientCopyOverrideCollection, validateProviderCallbackToken, validateProviderCapabilities, validateProviderCapabilitiesCollection, validateRegisterMachineCredentialRequest, validateRotateAccountCredentialRequest, validateRotateApiCredentialRequest, validateRotateCustomerEndpointRequest, validateSubscriptionActivatedEvent, validateSubscriptionLink, validateSubscriptionRevokedEvent, validateUpdateRecipientCopyOverrideRequest, validateWebhookDeliveryCaseSet, validateWebhookSigningVectorSet, } from "./generated/validators.js";
12
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2CAA2C,EAC3C,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,mCAAmC,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,mCAAmC,EACnC,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,oCAAoC,EACpC,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,gCAAgC,EAChC,sCAAsC,EACtC,8BAA8B,EAC9B,2BAA2B,EAC3B,kCAAkC,EAClC,gDAAgD,EAChD,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AA+CpC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,+BAA+B,EAC/B,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACtB,kCAAkC,EAClC,yBAAyB,EACzB,mCAAmC,EACnC,oCAAoC,EACpC,sCAAsC,EACtC,sCAAsC,EACtC,gDAAgD,EAChD,uCAAuC,EACvC,oCAAoC,EACpC,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B,EAC9B,+CAA+C,EAC/C,sCAAsC,EACtC,mDAAmD,EACnD,qCAAqC,EACrC,sCAAsC,EACtC,wBAAwB,EACxB,oCAAoC,EACpC,uBAAuB,EACvB,kCAAkC,EAClC,kCAAkC,EAClC,wBAAwB,EACxB,+BAA+B,EAC/B,kBAAkB,EAClB,mCAAmC,EACnC,mCAAmC,EACnC,sBAAsB,EACtB,gCAAgC,EAChC,gCAAgC,EAChC,0CAA0C,EAC1C,mCAAmC,EACnC,sBAAsB,EACtB,qCAAqC,EACrC,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,qCAAqC,EACrC,8BAA8B,EAC9B,wBAAwB,EACxB,yCAAyC,EACzC,kCAAkC,EAClC,sCAAsC,EACtC,6CAA6C,EAC7C,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,oCAAoC,EACpC,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC7B,uCAAuC,EACvC,6BAA6B,EAC7B,4BAA4B,EAC5B,sCAAsC,EACtC,wCAAwC,EACxC,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,0CAA0C,EAC1C,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2CAA2C,EAC3C,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,mCAAmC,GACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,mCAAmC,EACnC,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,oCAAoC,EACpC,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,oCAAoC,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,gCAAgC,EAChC,sCAAsC,EACtC,8BAA8B,EAC9B,2BAA2B,EAC3B,kCAAkC,EAClC,gDAAgD,EAChD,kCAAkC,GACnC,MAAM,4BAA4B,CAAC;AA+CpC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,mCAAmC,EACnC,iCAAiC,EACjC,qCAAqC,EACrC,yBAAyB,EACzB,qBAAqB,EACrB,+BAA+B,EAC/B,6BAA6B,EAC7B,iCAAiC,EACjC,sBAAsB,EACtB,sCAAsC,EACtC,kCAAkC,EAClC,yBAAyB,EACzB,mCAAmC,EACnC,oCAAoC,EACpC,sCAAsC,EACtC,sCAAsC,EACtC,gDAAgD,EAChD,sBAAsB,EACtB,gCAAgC,EAChC,mCAAmC,EACnC,qCAAqC,EACrC,uCAAuC,EACvC,oCAAoC,EACpC,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B,EAC9B,+CAA+C,EAC/C,sCAAsC,EACtC,mDAAmD,EACnD,qCAAqC,EACrC,sCAAsC,EACtC,wBAAwB,EACxB,oCAAoC,EACpC,uBAAuB,EACvB,kCAAkC,EAClC,kCAAkC,EAClC,wBAAwB,EACxB,+BAA+B,EAC/B,kBAAkB,EAClB,mCAAmC,EACnC,mCAAmC,EACnC,sBAAsB,EACtB,gCAAgC,EAChC,gCAAgC,EAChC,0CAA0C,EAC1C,mCAAmC,EACnC,sBAAsB,EACtB,qCAAqC,EACrC,4BAA4B,EAC5B,kCAAkC,EAClC,4BAA4B,EAC5B,qCAAqC,EACrC,8BAA8B,EAC9B,wBAAwB,EACxB,yCAAyC,EACzC,kCAAkC,EAClC,sCAAsC,EACtC,6CAA6C,EAC7C,sBAAsB,EACtB,iCAAiC,EACjC,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,gCAAgC,EAChC,eAAe,EACf,6BAA6B,EAC7B,2BAA2B,EAC3B,0BAA0B,EAC1B,oCAAoC,EACpC,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,yBAAyB,EACzB,6BAA6B,EAC7B,uCAAuC,EACvC,6BAA6B,EAC7B,4BAA4B,EAC5B,sCAAsC,EACtC,wCAAwC,EACxC,sCAAsC,EACtC,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,EAClC,wBAAwB,EACxB,gCAAgC,EAChC,0CAA0C,EAC1C,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,2BAA2B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "fixtures": [
4
4
  {
5
5
  "id": "create-project.request",
@@ -70,6 +70,52 @@
70
70
  "operation_id": "rotateApiCredential",
71
71
  "status_code": 201
72
72
  },
73
+ {
74
+ "id": "create-account-credential.request",
75
+ "kind": "request",
76
+ "path": "fixtures/core-v1/requests/create-account-credential.json",
77
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/CreateAccountCredentialRequest",
78
+ "operation_id": "createAccountCredential"
79
+ },
80
+ {
81
+ "id": "rotate-account-credential.request",
82
+ "kind": "request",
83
+ "path": "fixtures/core-v1/requests/rotate-account-credential.json",
84
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/RotateAccountCredentialRequest",
85
+ "operation_id": "rotateAccountCredential"
86
+ },
87
+ {
88
+ "id": "account-credential-created.success",
89
+ "kind": "success",
90
+ "path": "fixtures/core-v1/success/account-credential-created.json",
91
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/AccountCredentialSecretReveal",
92
+ "operation_id": "createAccountCredential",
93
+ "status_code": 201
94
+ },
95
+ {
96
+ "id": "account-credential-collection.success",
97
+ "kind": "success",
98
+ "path": "fixtures/core-v1/success/account-credential-collection.json",
99
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/AccountCredentialCollection",
100
+ "operation_id": "listAccountCredentials",
101
+ "status_code": 200
102
+ },
103
+ {
104
+ "id": "account-credential-rotated.success",
105
+ "kind": "success",
106
+ "path": "fixtures/core-v1/success/account-credential-rotated.json",
107
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/AccountCredentialRotation",
108
+ "operation_id": "rotateAccountCredential",
109
+ "status_code": 201
110
+ },
111
+ {
112
+ "id": "account-credential-revoked.success",
113
+ "kind": "success",
114
+ "path": "fixtures/core-v1/success/account-credential-revoked.json",
115
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/AccountCredential",
116
+ "operation_id": "revokeAccountCredential",
117
+ "status_code": 200
118
+ },
73
119
  {
74
120
  "id": "api-credential-revoked.success",
75
121
  "kind": "success",
@@ -262,6 +308,14 @@
262
308
  "operation_id": "cancelMessage",
263
309
  "status_code": 200
264
310
  },
311
+ {
312
+ "id": "credential-account-mismatch.problem",
313
+ "kind": "problem",
314
+ "path": "fixtures/core-v1/problems/credential-account-mismatch.json",
315
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/Problem",
316
+ "status_code": 403,
317
+ "problem_code": "credential_account_mismatch"
318
+ },
265
319
  {
266
320
  "id": "authentication-required.problem",
267
321
  "kind": "problem",
@@ -1134,6 +1188,22 @@
1134
1188
  "operation_id": "getChannelConnection",
1135
1189
  "status_code": 200
1136
1190
  },
1191
+ {
1192
+ "id": "channel-connection-slack-customer-pending.success",
1193
+ "kind": "success",
1194
+ "path": "fixtures/core-v1/success/channel-connection-slack-customer-pending.json",
1195
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/ChannelConnection",
1196
+ "operation_id": "createChannelConnection",
1197
+ "status_code": 201
1198
+ },
1199
+ {
1200
+ "id": "channel-connection-slack-customer-active.success",
1201
+ "kind": "success",
1202
+ "path": "fixtures/core-v1/success/channel-connection-slack-customer-active.json",
1203
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/ChannelConnection",
1204
+ "operation_id": "getChannelConnection",
1205
+ "status_code": 200
1206
+ },
1137
1207
  {
1138
1208
  "id": "channel-connection-setup-restarted.success",
1139
1209
  "kind": "success",
@@ -1190,6 +1260,45 @@
1190
1260
  "operation_id": "purgeChannelConnection",
1191
1261
  "status_code": 200
1192
1262
  },
1263
+ {
1264
+ "id": "create-connection-test.request",
1265
+ "kind": "request",
1266
+ "path": "fixtures/core-v1/requests/create-connection-test.json",
1267
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/CreateConnectionTestRequest",
1268
+ "operation_id": "createConnectionTest"
1269
+ },
1270
+ {
1271
+ "id": "connection-test-pending.success",
1272
+ "kind": "success",
1273
+ "path": "fixtures/core-v1/success/connection-test-pending.json",
1274
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/ConnectionTest",
1275
+ "operation_id": "createConnectionTest",
1276
+ "status_code": 201
1277
+ },
1278
+ {
1279
+ "id": "connection-test-succeeded.success",
1280
+ "kind": "success",
1281
+ "path": "fixtures/core-v1/success/connection-test-succeeded.json",
1282
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/ConnectionTest",
1283
+ "operation_id": "getConnectionTest",
1284
+ "status_code": 200
1285
+ },
1286
+ {
1287
+ "id": "connection-test-collection.success",
1288
+ "kind": "success",
1289
+ "path": "fixtures/core-v1/success/connection-test-collection.json",
1290
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/ConnectionTestCollection",
1291
+ "operation_id": "listConnectionTests",
1292
+ "status_code": 200
1293
+ },
1294
+ {
1295
+ "id": "customer-owned-slack-app-manifest.success",
1296
+ "kind": "success",
1297
+ "path": "fixtures/core-v1/success/customer-owned-slack-app-manifest.json",
1298
+ "schema_ref": "schemas/whooshbang-v1.schema.json#/$defs/CustomerOwnedSlackAppManifest",
1299
+ "operation_id": "getChannelConnectionAppManifest",
1300
+ "status_code": 200
1301
+ },
1193
1302
  {
1194
1303
  "id": "notifier-connection-collection.success",
1195
1304
  "kind": "success",
@@ -0,0 +1,9 @@
1
+ {
2
+ "type": "https://whooshbang.flowxo.com/problems/credential_account_mismatch",
3
+ "title": "Credential account mismatch",
4
+ "status": 403,
5
+ "detail": "This credential cannot reach the project named in the path. An account credential reaches only the projects in the account it was created for.",
6
+ "code": "credential_account_mismatch",
7
+ "diagnostic_id": "diag_credential_account_mismatch_001",
8
+ "retryable": false
9
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "label": "Release automation",
3
+ "scopes": ["account:read", "messages:write", "messages:read"]
4
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "kind": "signed_interaction"
3
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "overlap_seconds": 3600
3
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "api-credential-invalid-indistinguishable",
4
4
  "category": "credential_lifecycle",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "api-credential-one-time-reveal",
4
4
  "category": "credential_lifecycle",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "api-credential-revocation-replay",
4
4
  "category": "credential_lifecycle",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "api-credential-rotation-overlap",
4
4
  "category": "credential_lifecycle",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "cancellation-too-late",
4
4
  "category": "cancellation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "cross-account-project",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "cross-project-resource",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "environment-mismatch",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "idempotency-conflict",
4
4
  "category": "idempotency",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "idempotency-equivalent-replay",
4
4
  "category": "idempotency",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "malformed-bearer",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "metadata-overrun",
4
4
  "category": "message_outcome",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "missing-scope",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "project-create-equivalent-replay",
4
4
  "category": "idempotency",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "project-slug-conflict",
4
4
  "category": "idempotency",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "provider-outcome-unknown",
4
4
  "category": "message_outcome",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "subscription-activation-replay",
4
4
  "category": "subscription_replay",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "subscription-authorization-capability-opacity",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "subscription-cross-connection-callback-rejected",
4
4
  "category": "isolation",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "subscription-expired-replay",
4
4
  "category": "subscription_replay",
5
5
  "given": {
@@ -1,5 +1,5 @@
1
1
  {
2
- "contract_version": "1.0.0-rc.20",
2
+ "contract_version": "1.0.0-rc.21",
3
3
  "id": "subscription-selected-connection-replay",
4
4
  "category": "subscription_replay",
5
5
  "given": {
@@ -0,0 +1,17 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "acred_AAAAAAAAAAAAAAAAAAAAAA",
5
+ "prefix": "wb_ac1.acred_AAAAAAAA",
6
+ "label": "Synthetic release automation",
7
+ "scopes": ["account:read", "messages:write", "messages:read"],
8
+ "created_by": "member_synthetic_001",
9
+ "created_at": "2026-07-25T17:45:00Z",
10
+ "last_used_at": "2026-07-25T17:50:00Z",
11
+ "status": "active"
12
+ }
13
+ ],
14
+ "page": 1,
15
+ "page_size": 50,
16
+ "total": 1
17
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "credential": {
3
+ "id": "acred_AAAAAAAAAAAAAAAAAAAAAA",
4
+ "prefix": "wb_ac1.acred_AAAAAAAA",
5
+ "label": "Synthetic release automation",
6
+ "scopes": ["account:read", "messages:write", "messages:read"],
7
+ "created_by": "member_synthetic_001",
8
+ "created_at": "2026-07-25T17:45:00Z",
9
+ "status": "active"
10
+ },
11
+ "secret": "wb_ac1.acred_AAAAAAAAAAAAAAAAAAAAAA.AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
12
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "acred_AAAAAAAAAAAAAAAAAAAAAA",
3
+ "prefix": "wb_ac1.acred_AAAAAAAA",
4
+ "label": "Synthetic release automation",
5
+ "scopes": ["account:read", "messages:write", "messages:read"],
6
+ "created_by": "member_synthetic_001",
7
+ "created_at": "2026-07-25T17:45:00Z",
8
+ "last_used_at": "2026-07-25T17:50:00Z",
9
+ "status": "revoked",
10
+ "revoked_at": "2026-07-25T17:55:00Z"
11
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "credential": {
3
+ "credential": {
4
+ "id": "acred_BBBBBBBBBBBBBBBBBBBBBA",
5
+ "prefix": "wb_ac1.acred_BBBBBBBB",
6
+ "label": "Synthetic release automation",
7
+ "scopes": ["account:read", "messages:write", "messages:read"],
8
+ "created_by": "member_synthetic_001",
9
+ "created_at": "2026-07-25T17:45:00Z",
10
+ "status": "active"
11
+ },
12
+ "secret": "wb_ac1.acred_BBBBBBBBBBBBBBBBBBBBBA.BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA"
13
+ },
14
+ "replaced_credential": {
15
+ "id": "acred_AAAAAAAAAAAAAAAAAAAAAA",
16
+ "prefix": "wb_ac1.acred_AAAAAAAA",
17
+ "label": "Synthetic release automation",
18
+ "scopes": ["account:read", "messages:write", "messages:read"],
19
+ "created_by": "member_synthetic_001",
20
+ "created_at": "2026-07-25T17:45:00Z",
21
+ "last_used_at": "2026-07-25T17:50:00Z",
22
+ "scheduled_revocation_at": "2026-07-25T18:45:00Z",
23
+ "status": "active"
24
+ }
25
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "chcon_77777777777777777777777777777777",
3
+ "project_id": "project_synthetic_alpha",
4
+ "environment_id": "environment_test_synthetic_alpha",
5
+ "environment": "test",
6
+ "provider": "slack",
7
+ "mode": "customer_managed",
8
+ "display_name": "Acme Slack",
9
+ "status": "active",
10
+ "health": "healthy",
11
+ "identity": {
12
+ "provider": "slack",
13
+ "handle": "Acme Notify"
14
+ },
15
+ "installation": {
16
+ "display_name": "Acme Corp",
17
+ "health": "healthy",
18
+ "status": "active"
19
+ },
20
+ "capabilities": ["send_messages"],
21
+ "recovery_action": "none",
22
+ "management_url": "slack://app?team=T00000000&id=A00000000&tab=home",
23
+ "last_successful_verification_at": "2026-09-01T12:20:00.000Z",
24
+ "row_version": 4,
25
+ "created_at": "2026-09-01T12:00:00.000Z",
26
+ "updated_at": "2026-09-01T12:20:00.000Z",
27
+ "health_checked_at": "2026-09-01T12:20:00.000Z",
28
+ "last_transition_at": "2026-09-01T12:20:00.000Z",
29
+ "last_transition_reason": "slack_setup_completed",
30
+ "diagnostic_id": "diag_slack_customer_active_001"
31
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "id": "chcon_77777777777777777777777777777777",
3
+ "project_id": "project_synthetic_alpha",
4
+ "environment_id": "environment_test_synthetic_alpha",
5
+ "environment": "test",
6
+ "provider": "slack",
7
+ "mode": "customer_managed",
8
+ "display_name": "Acme Slack",
9
+ "status": "pending",
10
+ "health": "unknown",
11
+ "installation": {
12
+ "display_name": "Slack app not yet created",
13
+ "health": "unknown",
14
+ "status": "pending"
15
+ },
16
+ "capabilities": [],
17
+ "recovery_action": "complete_authorization",
18
+ "app_setup": {
19
+ "status": "awaiting_authorities",
20
+ "creation_url": "https://api.slack.com/apps?new_app=1&manifest_json=%7B%22_metadata%22%3A%7B%22major_version%22%3A1%7D%7D",
21
+ "expires_at": "2026-09-01T12:30:00.000Z",
22
+ "app_name": "Acme Notifications",
23
+ "bot_display_name": "Acme Notify",
24
+ "outstanding_authorities": [
25
+ "client_identity",
26
+ "client_secret",
27
+ "signing_secret"
28
+ ]
29
+ },
30
+ "row_version": 1,
31
+ "created_at": "2026-09-01T12:00:00.000Z",
32
+ "updated_at": "2026-09-01T12:00:00.000Z",
33
+ "last_transition_at": "2026-09-01T12:00:00.000Z",
34
+ "last_transition_reason": "slack_setup_awaiting_authorities",
35
+ "diagnostic_id": "diag_slack_customer_pending_001"
36
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "id": "cntest_11111111111111111111111111111111",
5
+ "connection_id": "chcon_77777777777777777777777777777777",
6
+ "kind": "signed_interaction",
7
+ "status": "succeeded",
8
+ "requested_at": "2026-09-02T09:00:00.000Z",
9
+ "completed_at": "2026-09-02T09:00:22.000Z",
10
+ "expires_at": "2026-09-02T09:15:00.000Z",
11
+ "evidence": {
12
+ "identity_handle": "Acme Notify",
13
+ "workspace_display_name": "Acme",
14
+ "accepted_at": "2026-09-02T09:00:01.000Z",
15
+ "observed_at": "2026-09-02T09:00:22.000Z",
16
+ "round_trip_ms": 22000,
17
+ "signature_verified": true,
18
+ "ingress_host": "api.whooshbang.com"
19
+ },
20
+ "recovery_action": "none",
21
+ "diagnostic_id": "diag_connection_test_succeeded_001"
22
+ },
23
+ {
24
+ "id": "cntest_22222222222222222222222222222222",
25
+ "connection_id": "chcon_77777777777777777777777777777777",
26
+ "kind": "outbound_notification",
27
+ "status": "failed",
28
+ "requested_at": "2026-09-02T08:40:00.000Z",
29
+ "completed_at": "2026-09-02T08:40:02.000Z",
30
+ "expires_at": "2026-09-02T08:55:00.000Z",
31
+ "failure_code": "credential_unavailable",
32
+ "recovery_action": "reinstall",
33
+ "diagnostic_id": "diag_connection_test_failed_001"
34
+ }
35
+ ],
36
+ "page": 1,
37
+ "page_size": 25,
38
+ "total": 2
39
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "id": "cntest_11111111111111111111111111111111",
3
+ "connection_id": "chcon_77777777777777777777777777777777",
4
+ "kind": "signed_interaction",
5
+ "status": "pending",
6
+ "requested_at": "2026-09-02T09:00:00.000Z",
7
+ "expires_at": "2026-09-02T09:15:00.000Z",
8
+ "evidence": {
9
+ "identity_handle": "Acme Notify",
10
+ "workspace_display_name": "Acme",
11
+ "accepted_at": "2026-09-02T09:00:01.000Z",
12
+ "ingress_host": "api.whooshbang.com"
13
+ },
14
+ "recovery_action": "none",
15
+ "diagnostic_id": "diag_connection_test_pending_001"
16
+ }