@amerged/ohmyhost-sdk 0.1.14 → 0.1.17

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.
@@ -48,6 +48,14 @@ export type ManagedMailWebhook = {
48
48
  export type ManagedMailDisabled = {
49
49
  status: "disabled";
50
50
  };
51
+ export type ManagedMailDomainDeleted = {
52
+ status: "deleted";
53
+ domain: string;
54
+ /**
55
+ * Records ohmyho.st no longer manages; remove them from the domain's DNS.
56
+ */
57
+ dns_records: Array<ManagedMailDnsRecord>;
58
+ };
51
59
  export type ManagedMailExpired = {
52
60
  status: "expired";
53
61
  };
@@ -364,14 +372,17 @@ export type ConfigureSourceAutoDeployRequest = {
364
372
  branch: string;
365
373
  enabled: boolean;
366
374
  };
375
+ /**
376
+ * Push-to-deploy configuration. Generation 0 with null branch, ref, grant_status and updated_at means auto-deploy was never configured for this project.
377
+ */
367
378
  export type SourceAutoDeploy = {
368
- branch: string;
369
- ref: string;
379
+ branch: string | null;
380
+ ref: string | null;
370
381
  environment: "dev";
371
382
  enabled: boolean;
372
383
  generation: number;
373
- grant_status: "active" | "revoked";
374
- updated_at: string;
384
+ grant_status: "active" | "revoked" | null;
385
+ updated_at: string | null;
375
386
  };
376
387
  export type ConnectGithubOrganizationRequest = {
377
388
  [key: string]: never;
@@ -550,6 +561,17 @@ export type ProjectDatabaseAccessCredential = ProjectDatabaseAccess & {
550
561
  export type ProjectDatabaseAccessPage = {
551
562
  items: Array<ProjectDatabaseAccess>;
552
563
  };
564
+ export type SetDevAccessModeRequest = {
565
+ mode: "protected" | "public";
566
+ };
567
+ export type DevAccessState = {
568
+ project_id: Ulid;
569
+ mode: "protected" | "public";
570
+ /**
571
+ * Owner-only persistent bearer link in protected mode; null when public or revoked.
572
+ */
573
+ share_url: string | null;
574
+ };
553
575
  export type DevAccessTicket = {
554
576
  ticket_id: Ulid;
555
577
  project_id: Ulid;
@@ -560,16 +582,24 @@ export type DevAccessTicket = {
560
582
  };
561
583
  export type PlanDeploymentRequest = {
562
584
  commit_sha: GitCommitSha;
585
+ /**
586
+ * The environment the deployment builds into. Prod skips Dev and switches Prod traffic once activated.
587
+ */
588
+ environment?: "dev" | "prod";
563
589
  };
564
590
  export type CreateDeploymentRequest = {
565
591
  plan_id: Ulid;
566
592
  };
567
593
  /**
568
- * Immutable pre-build deployment plan. It expires exactly fifteen minutes after creation.
594
+ * Immutable pre-build deployment plan. It expires exactly 24 hours after creation.
569
595
  */
570
596
  export type DeploymentPlan = {
571
597
  id: Ulid;
572
598
  project_id: Ulid;
599
+ /**
600
+ * The environment this plan builds into.
601
+ */
602
+ environment: "dev" | "prod";
573
603
  commit_sha: GitCommitSha;
574
604
  source_digest: Sha256Digest;
575
605
  build_plan_digest: Sha256Digest;
@@ -593,13 +623,14 @@ export type DeploymentPlan = {
593
623
  expires_at: string;
594
624
  };
595
625
  /**
596
- * Build-compute reservation quote, not the lifetime cost of the application. amount_micros is the customer USD equivalent of credit_micros; provider_cost_micros is the corresponding published provider-list basis. The versioned price is fixed by this immutable deployment plan. reserved_seconds is the reserved build time in seconds. The measured build seconds settle the reservation and unused credits are released. Storage, mail and runtime costs are separate.
626
+ * Build-compute reservation quote, not the lifetime cost of the application. credits is the reserved amount in credits as a decimal (credit_micros divided by one million), the figure to show people. amount_micros is the customer USD equivalent of credit_micros; provider_cost_micros is the corresponding published provider-list basis. The versioned price is fixed by this immutable deployment plan. reserved_seconds is the reserved build time in seconds. The measured build seconds settle the reservation and unused credits are released. Storage, mail and runtime costs are separate.
597
627
  */
598
628
  export type CostEstimate = {
599
629
  amount_micros: string;
600
630
  currency: string;
601
631
  rate_card_version: string;
602
632
  credit_micros: string;
633
+ credits: string;
603
634
  provider_cost_micros: string;
604
635
  scope: "build_compute";
605
636
  reserved_seconds: string;
@@ -691,6 +722,7 @@ export type FeedbackReceipt = {
691
722
  export type CreateProjectRequest = {
692
723
  organization_id: Ulid;
693
724
  data_mode?: ProjectDataMode;
725
+ dev_access_mode?: "protected" | "public";
694
726
  region?: HostingRegion;
695
727
  name: string;
696
728
  };
@@ -784,6 +816,7 @@ export type ProjectStatus = {
784
816
  project_id: Ulid;
785
817
  handle: string;
786
818
  region: HostingRegion;
819
+ dev_access_mode: "protected" | "public";
787
820
  lifecycle: "active" | "deleting" | "deleted";
788
821
  source: ProjectSource | null;
789
822
  default_environment: ProjectEnvironment | null;
@@ -806,7 +839,7 @@ export type ProblemDetails = {
806
839
  status: number;
807
840
  detail?: string;
808
841
  instance?: string;
809
- code: "invalid_request" | "unauthenticated" | "forbidden" | "organization_required" | "resource_not_found" | "idempotency_key_reused" | "project_handle_unavailable" | "project_identity_unavailable" | "deployment_plan_expired" | "deployment_plan_incompatible" | "confirmation_expired" | "confirmation_invalid" | "etag_mismatch" | "promotion_source_stale" | "promotion_target_stale" | "promotion_invalid_target" | "mail_domain_conflict" | "mail_domain_required" | "storage_jurisdiction_conflict" | "framework_conversion_required" | "repository_configuration_missing" | "migration_filename_noncanonical" | "environment_secret_mutation_blocked" | "workers_runtime_incompatible" | "project_handle_invalid" | "project_handle_taken" | "project_handle_unchanged" | "project_rename_blocked" | "payload_too_large" | "rate_limited" | "insufficient_organization_credits" | "paid_plan_required" | "project_budget_exceeded" | "compute_performance_paid_required" | "compute_performance_unavailable" | "database_write_pending" | "database_access_limit" | "compute_change_pending" | "compute_change_conflict" | "billing_purchase_conflict" | "billing_recharge_conflict" | "github_connection_required" | "github_connection_revoked" | "repository_not_installed" | "cloudflare_zone_not_bound" | "cloudflare_authorization_closed" | "project_notes_conflict" | "project_export_not_ready" | "interactive_login_required" | "api_key_creation_uncertain" | "api_key_permissions_unavailable" | "reconciliation_exhausted" | "service_unavailable";
842
+ code: "invalid_request" | "unauthenticated" | "forbidden" | "organization_required" | "resource_not_found" | "idempotency_key_reused" | "project_handle_unavailable" | "project_identity_unavailable" | "deployment_plan_expired" | "deployment_plan_incompatible" | "confirmation_expired" | "confirmation_invalid" | "etag_mismatch" | "promotion_source_stale" | "promotion_target_stale" | "promotion_invalid_target" | "mail_domain_conflict" | "mail_domain_required" | "mail_capacity_unavailable" | "storage_jurisdiction_conflict" | "shared_data_requires_promotion" | "production_deployment_required" | "framework_conversion_required" | "repository_configuration_missing" | "migration_filename_noncanonical" | "environment_secret_mutation_blocked" | "workers_runtime_incompatible" | "project_handle_invalid" | "project_handle_taken" | "project_handle_unchanged" | "project_rename_blocked" | "payload_too_large" | "rate_limited" | "insufficient_organization_credits" | "paid_plan_required" | "project_budget_exceeded" | "compute_performance_paid_required" | "compute_performance_unavailable" | "database_write_pending" | "database_access_limit" | "compute_change_pending" | "compute_change_conflict" | "billing_purchase_conflict" | "billing_recharge_conflict" | "github_connection_required" | "github_connection_revoked" | "repository_not_installed" | "cloudflare_zone_not_bound" | "cloudflare_authorization_closed" | "project_notes_conflict" | "project_export_not_ready" | "interactive_login_required" | "api_key_creation_uncertain" | "api_key_permissions_unavailable" | "reconciliation_exhausted" | "service_unavailable";
810
843
  request_id: string;
811
844
  retryable: boolean;
812
845
  /**
@@ -971,11 +1004,15 @@ export type AuditEventPage = {
971
1004
  };
972
1005
  export type Ulid = string;
973
1006
  /**
974
- * Immutable pre-build deployment plan. It expires exactly fifteen minutes after creation.
1007
+ * Immutable pre-build deployment plan. It expires exactly 24 hours after creation.
975
1008
  */
976
1009
  export type DeploymentPlanWritable = {
977
1010
  id: Ulid;
978
1011
  project_id: Ulid;
1012
+ /**
1013
+ * The environment this plan builds into.
1014
+ */
1015
+ environment: "dev" | "prod";
979
1016
  commit_sha: GitCommitSha;
980
1017
  source_digest: Sha256Digest;
981
1018
  build_plan_digest: Sha256Digest;
@@ -2903,6 +2940,194 @@ export type GetProjectHandleAvailabilityResponses = {
2903
2940
  200: ProjectHandleAvailability;
2904
2941
  };
2905
2942
  export type GetProjectHandleAvailabilityResponse = GetProjectHandleAvailabilityResponses[keyof GetProjectHandleAvailabilityResponses];
2943
+ export type RevokeProjectDevShareLinkData = {
2944
+ body?: never;
2945
+ headers: {
2946
+ /**
2947
+ * Optional caller-provided correlation identifier.
2948
+ */
2949
+ "X-Request-Id"?: string;
2950
+ /**
2951
+ * Identifies one mutation and its canonical request payload.
2952
+ */
2953
+ "Idempotency-Key": string;
2954
+ };
2955
+ path: {
2956
+ /**
2957
+ * Project identifier.
2958
+ */
2959
+ project_id: Ulid;
2960
+ };
2961
+ query?: never;
2962
+ url: "/v1/projects/{project_id}/dev-share-link";
2963
+ };
2964
+ export type RevokeProjectDevShareLinkErrors = {
2965
+ /**
2966
+ * The request failed.
2967
+ */
2968
+ 401: ProblemDetails;
2969
+ /**
2970
+ * The request failed.
2971
+ */
2972
+ 403: ProblemDetails;
2973
+ /**
2974
+ * The request failed.
2975
+ */
2976
+ 404: ProblemDetails;
2977
+ /**
2978
+ * The request failed.
2979
+ */
2980
+ 503: ProblemDetails;
2981
+ };
2982
+ export type RevokeProjectDevShareLinkError = RevokeProjectDevShareLinkErrors[keyof RevokeProjectDevShareLinkErrors];
2983
+ export type RevokeProjectDevShareLinkResponses = {
2984
+ /**
2985
+ * Dev share link revoked.
2986
+ */
2987
+ 200: DevAccessState;
2988
+ };
2989
+ export type RevokeProjectDevShareLinkResponse = RevokeProjectDevShareLinkResponses[keyof RevokeProjectDevShareLinkResponses];
2990
+ export type EnsureProjectDevShareLinkData = {
2991
+ body?: never;
2992
+ headers?: {
2993
+ /**
2994
+ * Optional caller-provided correlation identifier.
2995
+ */
2996
+ "X-Request-Id"?: string;
2997
+ };
2998
+ path: {
2999
+ /**
3000
+ * Project identifier.
3001
+ */
3002
+ project_id: Ulid;
3003
+ };
3004
+ query?: never;
3005
+ url: "/v1/projects/{project_id}/dev-share-link";
3006
+ };
3007
+ export type EnsureProjectDevShareLinkErrors = {
3008
+ /**
3009
+ * The request failed.
3010
+ */
3011
+ 401: ProblemDetails;
3012
+ /**
3013
+ * The request failed.
3014
+ */
3015
+ 403: ProblemDetails;
3016
+ /**
3017
+ * The request failed.
3018
+ */
3019
+ 404: ProblemDetails;
3020
+ /**
3021
+ * The request failed.
3022
+ */
3023
+ 503: ProblemDetails;
3024
+ };
3025
+ export type EnsureProjectDevShareLinkError = EnsureProjectDevShareLinkErrors[keyof EnsureProjectDevShareLinkErrors];
3026
+ export type EnsureProjectDevShareLinkResponses = {
3027
+ /**
3028
+ * Current Dev access mode and owner-only share link.
3029
+ */
3030
+ 200: DevAccessState;
3031
+ };
3032
+ export type EnsureProjectDevShareLinkResponse = EnsureProjectDevShareLinkResponses[keyof EnsureProjectDevShareLinkResponses];
3033
+ export type RotateProjectDevShareLinkData = {
3034
+ body?: never;
3035
+ headers: {
3036
+ /**
3037
+ * Optional caller-provided correlation identifier.
3038
+ */
3039
+ "X-Request-Id"?: string;
3040
+ /**
3041
+ * Identifies one mutation and its canonical request payload.
3042
+ */
3043
+ "Idempotency-Key": string;
3044
+ };
3045
+ path: {
3046
+ /**
3047
+ * Project identifier.
3048
+ */
3049
+ project_id: Ulid;
3050
+ };
3051
+ query?: never;
3052
+ url: "/v1/projects/{project_id}/dev-share-link:rotate";
3053
+ };
3054
+ export type RotateProjectDevShareLinkErrors = {
3055
+ /**
3056
+ * The request failed.
3057
+ */
3058
+ 401: ProblemDetails;
3059
+ /**
3060
+ * The request failed.
3061
+ */
3062
+ 403: ProblemDetails;
3063
+ /**
3064
+ * The request failed.
3065
+ */
3066
+ 404: ProblemDetails;
3067
+ /**
3068
+ * The request failed.
3069
+ */
3070
+ 503: ProblemDetails;
3071
+ };
3072
+ export type RotateProjectDevShareLinkError = RotateProjectDevShareLinkErrors[keyof RotateProjectDevShareLinkErrors];
3073
+ export type RotateProjectDevShareLinkResponses = {
3074
+ /**
3075
+ * New Dev share link.
3076
+ */
3077
+ 200: DevAccessState;
3078
+ };
3079
+ export type RotateProjectDevShareLinkResponse = RotateProjectDevShareLinkResponses[keyof RotateProjectDevShareLinkResponses];
3080
+ export type SetProjectDevAccessModeData = {
3081
+ body: SetDevAccessModeRequest;
3082
+ headers: {
3083
+ /**
3084
+ * Optional caller-provided correlation identifier.
3085
+ */
3086
+ "X-Request-Id"?: string;
3087
+ /**
3088
+ * Identifies one mutation and its canonical request payload.
3089
+ */
3090
+ "Idempotency-Key": string;
3091
+ };
3092
+ path: {
3093
+ /**
3094
+ * Project identifier.
3095
+ */
3096
+ project_id: Ulid;
3097
+ };
3098
+ query?: never;
3099
+ url: "/v1/projects/{project_id}/dev-access-mode";
3100
+ };
3101
+ export type SetProjectDevAccessModeErrors = {
3102
+ /**
3103
+ * The request failed.
3104
+ */
3105
+ 400: ProblemDetails;
3106
+ /**
3107
+ * The request failed.
3108
+ */
3109
+ 401: ProblemDetails;
3110
+ /**
3111
+ * The request failed.
3112
+ */
3113
+ 403: ProblemDetails;
3114
+ /**
3115
+ * The request failed.
3116
+ */
3117
+ 404: ProblemDetails;
3118
+ /**
3119
+ * The request failed.
3120
+ */
3121
+ 503: ProblemDetails;
3122
+ };
3123
+ export type SetProjectDevAccessModeError = SetProjectDevAccessModeErrors[keyof SetProjectDevAccessModeErrors];
3124
+ export type SetProjectDevAccessModeResponses = {
3125
+ /**
3126
+ * Current Dev access mode and owner-only share link.
3127
+ */
3128
+ 200: DevAccessState;
3129
+ };
3130
+ export type SetProjectDevAccessModeResponse = SetProjectDevAccessModeResponses[keyof SetProjectDevAccessModeResponses];
2906
3131
  export type CreateProjectDevAccessTicketData = {
2907
3132
  body?: never;
2908
3133
  headers?: {
@@ -3496,6 +3721,10 @@ export type PlanPaidProjectDomainErrors = {
3496
3721
  * The resource does not exist or is not visible to the authenticated principal.
3497
3722
  */
3498
3723
  404: ProblemDetails;
3724
+ /**
3725
+ * The request failed.
3726
+ */
3727
+ 409: ProblemDetails;
3499
3728
  /**
3500
3729
  * The request failed.
3501
3730
  */
@@ -3666,9 +3895,9 @@ export type ApplyPaidProjectDomainErrors = {
3666
3895
  */
3667
3896
  404: ProblemDetails;
3668
3897
  /**
3669
- * The idempotency key was already used with a different canonical request.
3898
+ * The request failed.
3670
3899
  */
3671
- 409: IdempotencyConflictProblem;
3900
+ 409: ProblemDetails;
3672
3901
  /**
3673
3902
  * The request failed.
3674
3903
  */
@@ -3736,7 +3965,7 @@ export type PlanDeploymentErrors = {
3736
3965
  export type PlanDeploymentError = PlanDeploymentErrors[keyof PlanDeploymentErrors];
3737
3966
  export type PlanDeploymentResponses = {
3738
3967
  /**
3739
- * A deployment plan valid for fifteen minutes.
3968
+ * A deployment plan valid for 24 hours.
3740
3969
  */
3741
3970
  200: DeploymentPlan;
3742
3971
  };
@@ -5134,6 +5363,63 @@ export type ListAuditEventsResponses = {
5134
5363
  200: AuditEventPage;
5135
5364
  };
5136
5365
  export type ListAuditEventsResponse = ListAuditEventsResponses[keyof ListAuditEventsResponses];
5366
+ export type DeleteManagedMailDomainData = {
5367
+ body?: never;
5368
+ headers: {
5369
+ /**
5370
+ * Optional caller-provided correlation identifier.
5371
+ */
5372
+ "X-Request-Id"?: string;
5373
+ /**
5374
+ * Identifies one mutation and its canonical request payload.
5375
+ */
5376
+ "Idempotency-Key": string;
5377
+ };
5378
+ path: {
5379
+ project_id: Ulid;
5380
+ environment_id: Ulid;
5381
+ };
5382
+ query?: never;
5383
+ url: "/v1/projects/{project_id}/environments/{environment_id}/mail-domain";
5384
+ };
5385
+ export type DeleteManagedMailDomainErrors = {
5386
+ /**
5387
+ * The request failed.
5388
+ */
5389
+ 400: ProblemDetails;
5390
+ /**
5391
+ * The request failed.
5392
+ */
5393
+ 401: ProblemDetails;
5394
+ /**
5395
+ * The request failed.
5396
+ */
5397
+ 403: ProblemDetails;
5398
+ /**
5399
+ * The request failed.
5400
+ */
5401
+ 404: ProblemDetails;
5402
+ /**
5403
+ * The request failed.
5404
+ */
5405
+ 409: ProblemDetails;
5406
+ /**
5407
+ * The request failed.
5408
+ */
5409
+ 429: ProblemDetails;
5410
+ /**
5411
+ * The request failed.
5412
+ */
5413
+ 503: ProblemDetails;
5414
+ };
5415
+ export type DeleteManagedMailDomainError = DeleteManagedMailDomainErrors[keyof DeleteManagedMailDomainErrors];
5416
+ export type DeleteManagedMailDomainResponses = {
5417
+ /**
5418
+ * The mail domain is retired.
5419
+ */
5420
+ 200: ManagedMailDomainDeleted;
5421
+ };
5422
+ export type DeleteManagedMailDomainResponse = DeleteManagedMailDomainResponses[keyof DeleteManagedMailDomainResponses];
5137
5423
  export type GetManagedMailDomainData = {
5138
5424
  body?: never;
5139
5425
  headers?: {