{"components":{"schemas":{"AccessTokenKeySet":{"properties":{"keys":{"items":{"properties":{"alg":{"enum":["EdDSA"],"type":"string"},"crv":{"enum":["Ed25519"],"type":"string"},"kid":{"type":"string"},"kty":{"enum":["OKP"],"type":"string"},"use":{"enum":["sig"],"type":"string"},"x":{"type":"string"}},"required":["kty","crv","alg","use","kid","x"],"type":"object"},"type":"array"}},"required":["keys"],"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"parameters":{"additionalProperties":{"type":"string"},"type":"object"},"reason":{"type":["string","null"]}},"required":["code","reason","parameters"],"type":"object"}},"required":["error"],"type":"object"},"SnapshotKeySet":{"properties":{"keys":{"items":{"properties":{"alg":{"enum":["ES256"],"type":"string"},"crv":{"enum":["P-256"],"type":"string"},"kid":{"type":"string"},"kty":{"enum":["EC"],"type":"string"},"use":{"enum":["sig"],"type":"string"},"x":{"type":"string"},"y":{"type":"string"}},"required":["kty","crv","alg","use","kid","x","y"],"type":"object"},"type":"array"}},"required":["keys"],"type":"object"},"entitler.api.v1.AcceptChangeRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"rolloutId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.AcceptChangeResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.Access":{"additionalProperties":false,"properties":{"allProjects":{"type":"boolean"},"projects":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProjectGrant"},"type":"array"},"roleId":{"type":"string"}},"required":["roleId","allProjects","projects"],"type":"object"},"entitler.api.v1.AccessLevel":{"enum":["ACCESS_LEVEL_UNSPECIFIED","ACCESS_LEVEL_BASIC","ACCESS_LEVEL_PROJECT_ACCESS","ACCESS_LEVEL_PROJECT_ROLES"],"type":"string"},"entitler.api.v1.AddCustomerMemberRequest":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"waiveWaiting":{"type":"boolean"}},"type":"object"},"entitler.api.v1.AddCustomerMemberResponse":{"additionalProperties":false,"properties":{"added":{"type":"boolean"},"member":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMember"},"seat":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"required":["added"],"type":"object"},"entitler.api.v1.AddOnSource":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"throughFeatureKey":{"type":"string"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planKey","planName","versionNumber","quantity"],"type":"object"},"entitler.api.v1.AddPayerRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferChoice"},"type":"array"},"payerExternalId":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"share":{"$ref":"#/components/schemas/entitler.api.v1.PayerShareChoice"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.AddPayerResponse":{"additionalProperties":false,"properties":{"payerId":{"type":"string"},"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"required":["payerId"],"type":"object"},"entitler.api.v1.AddVoucherCodesRequest":{"additionalProperties":false,"properties":{"codes":{"$ref":"#/components/schemas/entitler.api.v1.VoucherCodes"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.AddVoucherCodesResponse":{"additionalProperties":false,"properties":{"batch":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"},"vouchers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MintedVoucher"},"type":"array"}},"required":["vouchers"],"type":"object"},"entitler.api.v1.AdjustMeterRequest":{"additionalProperties":false,"properties":{"changeBy":{"format":"int64","type":"integer"},"currency":{"type":"string"},"idempotencyKey":{"type":"string"},"memberId":{"type":"string"},"reason":{"type":"string"},"setTo":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.AdjustMeterResponse":{"additionalProperties":false,"properties":{"saturated":{"type":"boolean"},"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"required":["saturated"],"type":"object"},"entitler.api.v1.AlertFacts":{"additionalProperties":false,"properties":{"changedFields":{"items":{"type":"string"},"type":"array"},"connectionName":{"type":"string"},"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"currency":{"type":"string"},"feeKey":{"type":"string"},"heldPlanId":{"type":"string"},"invoiceId":{"type":"string"},"marketCurrency":{"type":"string"},"marketId":{"type":"string"},"otherConnectionId":{"type":"string"},"otherExternalId":{"type":"string"},"planId":{"type":"string"},"planIds":{"items":{"type":"string"},"type":"array"},"priceIds":{"items":{"type":"string"},"type":"array"},"productId":{"type":"string"},"provider":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProvider"},"providerCustomerId":{"type":"string"},"providerProductId":{"type":"string"},"reason":{"type":"string"},"refusal":{"$ref":"#/components/schemas/entitler.api.v1.MoneyRefusal"},"transactionId":{"type":"string"}},"required":["connectionName","provider","planIds","priceIds","refusal","changedFields"],"type":"object"},"entitler.api.v1.AlertRule":{"enum":["ALERT_RULE_UNSPECIFIED","ALERT_RULE_PRICE_WITHOUT_LISTING","ALERT_RULE_LONG_PAST_DUE","ALERT_RULE_TWO_PLANS_IN_PRODUCT","ALERT_RULE_SECOND_PRODUCT","ALERT_RULE_HELD_PLAN_DIFFERS","ALERT_RULE_REFUND_PARTIAL","ALERT_RULE_ONE_TIME_NOT_FOLLOWED","ALERT_RULE_OTHER_CONNECTION","ALERT_RULE_MONEY_REFUSED","ALERT_RULE_NOT_FOLLOWED","ALERT_RULE_UNKNOWN_CUSTOMER","ALERT_RULE_CURRENCY_DIFFERS","ALERT_RULE_PRICE_ARCHIVED","ALERT_RULE_PRICE_CHANGED","ALERT_RULE_PRODUCT_ARCHIVED","ALERT_RULE_PRODUCT_BILLED_TWICE","ALERT_RULE_STORE_PRODUCT_NOT_LISTED","ALERT_RULE_STORE_KEY_REFUSED","ALERT_RULE_PURCHASE_LINKED_ELSEWHERE","ALERT_RULE_ADOPTION_REFUSED","ALERT_RULE_FEE_NOT_BILLED"],"type":"string"},"entitler.api.v1.AlertSortField":{"enum":["ALERT_SORT_FIELD_UNSPECIFIED","ALERT_SORT_FIELD_OPENED","ALERT_SORT_FIELD_CUSTOMER"],"type":"string"},"entitler.api.v1.AlertStatus":{"enum":["ALERT_STATUS_UNSPECIFIED","ALERT_STATUS_OPEN","ALERT_STATUS_RESOLVED"],"type":"string"},"entitler.api.v1.Amount":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"display":{"type":"string"}},"required":["amount","currency","display"],"type":"object"},"entitler.api.v1.AnyRole":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.AppStoreOffer":{"additionalProperties":false,"properties":{"kind":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOfferKind"},"offerId":{"type":"string"},"offerIdentifier":{"type":"string"},"productId":{"type":"string"}},"required":["productId","kind","offerIdentifier","offerId"],"type":"object"},"entitler.api.v1.AppStoreOffer-Input":{"additionalProperties":false,"properties":{"kind":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOfferKind"},"offerId":{"type":"string"},"offerIdentifier":{"type":"string"},"productId":{"type":"string"}},"type":"object"},"entitler.api.v1.AppStoreOfferKind":{"enum":["APP_STORE_OFFER_KIND_UNSPECIFIED","APP_STORE_OFFER_KIND_PROMOTIONAL","APP_STORE_OFFER_KIND_WIN_BACK"],"type":"string"},"entitler.api.v1.AppStorePurchaseCheckOutcome":{"enum":["APP_STORE_PURCHASE_CHECK_OUTCOME_UNSPECIFIED","APP_STORE_PURCHASE_CHECK_OUTCOME_LINKED","APP_STORE_PURCHASE_CHECK_OUTCOME_ALREADY_LINKED","APP_STORE_PURCHASE_CHECK_OUTCOME_TRANSFERRED"],"type":"string"},"entitler.api.v1.AppStorePurchaseRef":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"originalTransactionId":{"type":"string"}},"required":["connectionId","originalTransactionId"],"type":"object"},"entitler.api.v1.AppStorePurchaseRef-Input":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"originalTransactionId":{"type":"string"}},"type":"object"},"entitler.api.v1.AppleConnection":{"additionalProperties":false,"properties":{"bundleId":{"type":"string"}},"type":"object"},"entitler.api.v1.AppleListingIds":{"additionalProperties":false,"properties":{"productId":{"type":"string"},"subscriptionGroupId":{"type":"string"}},"required":["productId"],"type":"object"},"entitler.api.v1.AppleListingIds-Input":{"additionalProperties":false,"properties":{"productId":{"type":"string"},"subscriptionGroupId":{"type":"string"}},"type":"object"},"entitler.api.v1.AppliedDiscount":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"applied":{"type":"boolean"},"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferFee"},"type":"array"},"givenAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"givenBy":{"$ref":"#/components/schemas/entitler.api.v1.DiscountGivenBy"},"minimumStayMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"offerId":{"type":"string"},"offerKey":{"type":"string"},"offerName":{"type":"string"},"payerId":{"type":"string"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"periodIds":{"items":{"type":"string"},"type":"array"},"periodsLeft":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planIds":{"items":{"type":"string"},"type":"array"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["offerId","offerKey","offerName","planIds","periodIds","givenBy","givenAt","applied","fees"],"type":"object"},"entitler.api.v1.ApplyOfferRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"offerKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"value":{"$ref":"#/components/schemas/entitler.api.v1.OfferValue"}},"type":"object"},"entitler.api.v1.ApplyOfferResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.ApproveChangeRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"note":{"type":"string"}},"type":"object"},"entitler.api.v1.ApproveChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.ApproveRolloutRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ApproveRolloutResponse":{"additionalProperties":false,"properties":{"rollout":{"$ref":"#/components/schemas/entitler.api.v1.Rollout"}},"type":"object"},"entitler.api.v1.ArchiveMarketRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ArchiveMarketResponse":{"additionalProperties":false,"properties":{"market":{"$ref":"#/components/schemas/entitler.api.v1.Market"}},"type":"object"},"entitler.api.v1.ArchiveOfferRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ArchiveOfferResponse":{"additionalProperties":false,"properties":{"offer":{"$ref":"#/components/schemas/entitler.api.v1.Offer"}},"type":"object"},"entitler.api.v1.ArchivePeriodRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ArchivePeriodResponse":{"additionalProperties":false,"properties":{"period":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriod"}},"type":"object"},"entitler.api.v1.ArchiveProjectRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ArchiveProjectResponse":{"additionalProperties":false,"properties":{"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"}},"type":"object"},"entitler.api.v1.AssignDeviceRequest":{"additionalProperties":false,"properties":{"customerExternalId":{"type":"string"},"productId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.AssignDeviceResponse":{"additionalProperties":false,"properties":{"codes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCode"},"type":"array"},"device":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDevice"}},"required":["codes"],"type":"object"},"entitler.api.v1.AssignTrackRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"trackId":{"type":"string"}},"type":"object"},"entitler.api.v1.AssignTrackResponse":{"additionalProperties":false,"properties":{"assignment":{"$ref":"#/components/schemas/entitler.api.v1.CustomerTrack"},"changed":{"type":"boolean"},"endedTestHoldings":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["changed","endedTestHoldings"],"type":"object"},"entitler.api.v1.AssignmentSource":{"enum":["ASSIGNMENT_SOURCE_UNSPECIFIED","ASSIGNMENT_SOURCE_SERVER","ASSIGNMENT_SOURCE_DASHBOARD"],"type":"string"},"entitler.api.v1.AttentionEntry":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"chargeId":{"type":"string"},"customerId":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision"},"externalId":{"type":"string"},"name":{"type":"string"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planId":{"type":"string"},"productId":{"type":"string"}},"required":["customerId","at"],"type":"object"},"entitler.api.v1.AttentionItem":{"additionalProperties":false,"properties":{"amounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"},"count":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"firstAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"lastAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["count","amounts"],"type":"object"},"entitler.api.v1.AttentionKind":{"enum":["ATTENTION_KIND_UNSPECIFIED","ATTENTION_KIND_PAYMENTS_MISSED","ATTENTION_KIND_PAYMENTS_AWAITING","ATTENTION_KIND_CANCELS_BOOKED","ATTENTION_KIND_TRIALS_ENDING"],"type":"string"},"entitler.api.v1.Attribute":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"id":{"type":"string"},"key":{"type":"string"},"type":{"$ref":"#/components/schemas/entitler.api.v1.AttributeType"},"version":{"$ref":"#/components/schemas/entitler.api.v1.AttributeVersion"}},"required":["id","key","type","archived"],"type":"object"},"entitler.api.v1.AttributeOption":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"entitler.api.v1.AttributeOption-Input":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.AttributeOptions":{"additionalProperties":false,"properties":{"options":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AttributeOption-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.AttributeType":{"enum":["ATTRIBUTE_TYPE_UNSPECIFIED","ATTRIBUTE_TYPE_TEXT","ATTRIBUTE_TYPE_CHOICE","ATTRIBUTE_TYPE_NUMBER","ATTRIBUTE_TYPE_DATE","ATTRIBUTE_TYPE_BOOLEAN"],"type":"string"},"entitler.api.v1.AttributeVersion":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"customersMaySet":{"type":"boolean"},"description":{"type":"string"},"name":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"options":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AttributeOption"},"type":"array"}},"required":["number","name","description","options","customersMaySet"],"type":"object"},"entitler.api.v1.AvailableOffer":{"additionalProperties":false,"properties":{"after":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionPrice"},"before":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionPrice"},"offerId":{"type":"string"},"offerKey":{"type":"string"},"offerName":{"type":"string"},"periodId":{"type":"string"},"planId":{"type":"string"}},"required":["offerId","offerKey","offerName"],"type":"object"},"entitler.api.v1.BankRule":{"enum":["BANK_RULE_UNSPECIFIED","BANK_RULE_KEEP","BANK_RULE_CAP","BANK_RULE_DROP"],"type":"string"},"entitler.api.v1.BilledPlan":{"additionalProperties":false,"properties":{"billingConnectionId":{"type":"string"},"cohortId":{"type":"string"},"periodId":{"type":"string"},"planId":{"type":"string"},"since":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","versionNumber","since"],"type":"object"},"entitler.api.v1.BilledProduct":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"drift":{"$ref":"#/components/schemas/entitler.api.v1.BillingDrift"},"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"productId":{"type":"string"},"renews":{"type":"boolean"},"sku":{"$ref":"#/components/schemas/entitler.api.v1.BilledSku"},"status":{"$ref":"#/components/schemas/entitler.api.v1.ProviderSubscriptionStatus"}},"required":["connectionId","status","items","renews"],"type":"object"},"entitler.api.v1.BilledSku":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.ListingPrice"},"priceId":{"type":"string"}},"required":["priceId"],"type":"object"},"entitler.api.v1.BillingDrift":{"additionalProperties":false,"properties":{"billedPlanId":{"type":"string"},"heldPlanId":{"type":"string"},"observedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"productId":{"type":"string"}},"required":["billedPlanId","observedAt"],"type":"object"},"entitler.api.v1.BillingPeriod":{"additionalProperties":false,"properties":{"archivedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"calendar":{"type":"boolean"},"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"projectId":{"type":"string"},"standard":{"type":"boolean"},"teamId":{"type":"string"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.PeriodUnit"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","projectId","key","label","count","unit","createdAt","updatedAt","standard","calendar"],"type":"object"},"entitler.api.v1.BillingPeriodReset":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.Building":{"enum":["BUILDING_UNSPECIFIED","BUILDING_WEB","BUILDING_MOBILE","BUILDING_SERVER"],"type":"string"},"entitler.api.v1.BuyGiftRequest":{"additionalProperties":false,"properties":{"batchId":{"type":"string"},"country":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"market":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.BuyGiftResponse":{"additionalProperties":false,"properties":{"batchId":{"type":"string"},"charge":{"$ref":"#/components/schemas/entitler.api.v1.Charge"},"code":{"type":"string"},"voucherId":{"type":"string"}},"required":["code","voucherId","batchId"],"type":"object"},"entitler.api.v1.BuyPackRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"pack":{"$ref":"#/components/schemas/entitler.common.v1.PlanSelector"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.BuyPackResponse":{"additionalProperties":false,"properties":{"packPurchaseId":{"type":"string"},"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"required":["packPurchaseId"],"type":"object"},"entitler.api.v1.ByCustomerId":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ByNotificationHistory":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.Calendar":{"additionalProperties":false,"properties":{"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"version":{"$ref":"#/components/schemas/entitler.api.v1.CalendarVersion"}},"required":["id","key","name"],"type":"object"},"entitler.api.v1.CalendarDay":{"additionalProperties":false,"properties":{"date":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.DayKind"}},"required":["date","kind"],"type":"object"},"entitler.api.v1.CalendarDay-Input":{"additionalProperties":false,"properties":{"date":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.DayKind"}},"type":"object"},"entitler.api.v1.CalendarDays":{"additionalProperties":false,"properties":{"days":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CalendarDay-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.CalendarVersion":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"days":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CalendarDay"},"type":"array"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"timeZone":{"type":"string"}},"required":["number","timeZone","days"],"type":"object"},"entitler.api.v1.CancelInCoolingOffRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CancelInCoolingOffResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.CancelReportRequest":{"additionalProperties":false,"properties":{"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CancelReportResponse":{"additionalProperties":false,"properties":{"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"type":"object"},"entitler.api.v1.CancelRolloutRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CancelRolloutResponse":{"additionalProperties":false,"properties":{"rollout":{"$ref":"#/components/schemas/entitler.api.v1.Rollout"}},"type":"object"},"entitler.api.v1.CancelScheduledAddOnChangeRequest":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CancelScheduledAddOnChangeResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.CancelScheduledChangeRequest":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CancelScheduledChangeResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.CancelSubscriptionRequest":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CancelSubscriptionResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.Cancellation":{"additionalProperties":false,"properties":{"discountClawback":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"earlyTerminationFee":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["endsAt"],"type":"object"},"entitler.api.v1.CappedBy":{"enum":["CAPPED_BY_UNSPECIFIED","CAPPED_BY_FEATURE","CAPPED_BY_MEMBER","CAPPED_BY_SHARED","CAPPED_BY_SHARED_MEMBER"],"type":"string"},"entitler.api.v1.Catalogue":{"additionalProperties":false,"properties":{"attributes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Attribute"},"type":"array"},"calendars":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Calendar"},"type":"array"},"features":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Feature"},"type":"array"},"paths":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Path"},"type":"array"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Plan"},"type":"array"},"products":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Product"},"type":"array"},"segments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Segment"},"type":"array"}},"required":["products","features","plans","paths","attributes","calendars","segments"],"type":"object"},"entitler.api.v1.CatalogueListings":{"additionalProperties":false,"properties":{"channels":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingChannel"},"type":"array"},"gaps":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SellableListing"},"type":"array"},"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingMarket"},"type":"array"},"realMoney":{"type":"boolean"},"revision":{"$ref":"#/components/schemas/entitler.common.v1.Revision"},"sellable":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SellableListing"},"type":"array"},"sharedWith":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ServedTrack"},"type":"array"}},"required":["channels","gaps","sellable","sharedWith","realMoney","markets"],"type":"object"},"entitler.api.v1.Change":{"additionalProperties":false,"properties":{"base":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"contributors":{"items":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"type":"array"},"decision":{"$ref":"#/components/schemas/entitler.api.v1.Decision"},"edits":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ObjectRef"},"type":"array"},"id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/entitler.common.v1.Metadata"},"name":{"type":"string"},"projectId":{"type":"string"},"releasedAs":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"releasedWithoutReview":{"type":"boolean"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/entitler.api.v1.ChangeState"},"submission":{"$ref":"#/components/schemas/entitler.api.v1.Submission"}},"required":["id","projectId","name","state","releasedWithoutReview","contributors","edits","revision"],"type":"object"},"entitler.api.v1.ChangeEnvironmentProtectionRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"protection":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentProtection-Input"}},"type":"object"},"entitler.api.v1.ChangeEnvironmentProtectionResponse":{"additionalProperties":false,"properties":{"environment":{"$ref":"#/components/schemas/entitler.api.v1.Environment"}},"type":"object"},"entitler.api.v1.ChangeResult":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.PlanChange"},"customerId":{"type":"string"},"grants":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Grant"},"type":"array"},"money":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"},"overLimits":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OverLimit"},"type":"array"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"subscription":{"$ref":"#/components/schemas/entitler.api.v1.Subscription"},"subscriptions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Subscription"},"type":"array"}},"required":["customerId","revision","money","overLimits","subscriptions","grants"],"type":"object"},"entitler.api.v1.ChangeSortField":{"enum":["CHANGE_SORT_FIELD_UNSPECIFIED","CHANGE_SORT_FIELD_CREATED","CHANGE_SORT_FIELD_UPDATED","CHANGE_SORT_FIELD_NAME"],"type":"string"},"entitler.api.v1.ChangeState":{"enum":["CHANGE_STATE_UNSPECIFIED","CHANGE_STATE_OPEN","CHANGE_STATE_REVIEW","CHANGE_STATE_RELEASED","CHANGE_STATE_CLOSED"],"type":"string"},"entitler.api.v1.ChangeTiming":{"enum":["CHANGE_TIMING_UNSPECIFIED","CHANGE_TIMING_IMMEDIATELY","CHANGE_TIMING_AT_PERIOD_END"],"type":"string"},"entitler.api.v1.ChangedField":{"additionalProperties":false,"properties":{"featureKey":{"type":"string"},"fee":{"$ref":"#/components/schemas/entitler.api.v1.FeeCell"},"field":{"$ref":"#/components/schemas/entitler.api.v1.DifferenceField"},"limit":{"$ref":"#/components/schemas/entitler.api.v1.LimitCell"},"periodId":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.PriceCell"},"segmentKey":{"type":"string"},"usageRate":{"$ref":"#/components/schemas/entitler.api.v1.UsageRateCell"}},"required":["field"],"type":"object"},"entitler.api.v1.Charge":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"discounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ChargeDiscount"},"type":"array"},"feeKey":{"type":"string"},"id":{"type":"string"},"lines":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageChargeLine"},"type":"array"},"listAmount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"offerId":{"type":"string"},"packPurchaseId":{"type":"string"},"paidAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"payerId":{"type":"string"},"planId":{"type":"string"},"productId":{"type":"string"},"raisedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"reversedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"source":{"$ref":"#/components/schemas/entitler.api.v1.ChargeSource"},"state":{"$ref":"#/components/schemas/entitler.api.v1.ChargeState"},"subscriptionId":{"type":"string"},"usagePeriod":{"$ref":"#/components/schemas/entitler.api.v1.ChargeUsagePeriod"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"voucherId":{"type":"string"}},"required":["id","subscriptionId","source","direction","raisedAt","state","discounts","lines"],"type":"object"},"entitler.api.v1.ChargeDiscount":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"offerId":{"type":"string"}},"required":["offerId"],"type":"object"},"entitler.api.v1.ChargeSource":{"enum":["CHARGE_SOURCE_UNSPECIFIED","CHARGE_SOURCE_FEE","CHARGE_SOURCE_CHARGE_BACK","CHARGE_SOURCE_EXIT_FEE","CHARGE_SOURCE_PRORATION","CHARGE_SOURCE_PAYER_SHARE","CHARGE_SOURCE_GIFT","CHARGE_SOURCE_USAGE","CHARGE_SOURCE_USAGE_CORRECTION","CHARGE_SOURCE_PACK"],"type":"string"},"entitler.api.v1.ChargeState":{"enum":["CHARGE_STATE_UNSPECIFIED","CHARGE_STATE_AWAITING","CHARGE_STATE_PAID","CHARGE_STATE_REVERSED","CHARGE_STATE_WITHDRAWN","CHARGE_STATE_EXPIRED"],"type":"string"},"entitler.api.v1.ChargeUsagePeriod":{"additionalProperties":false,"properties":{"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["startsAt","endsAt"],"type":"object"},"entitler.api.v1.Charging":{"enum":["CHARGING_UNSPECIFIED","CHARGING_STRIPE","CHARGING_APP_STORE","CHARGING_GOOGLE_PLAY","CHARGING_OTHER","CHARGING_NOT_YET"],"type":"string"},"entitler.api.v1.CheckActivity":{"additionalProperties":false,"properties":{"environmentId":{"type":"string"},"firstCheckedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["environmentId","firstCheckedAt"],"type":"object"},"entitler.api.v1.CheckAppStorePurchaseRequest":{"additionalProperties":false,"properties":{"restore":{"type":"boolean"},"signedTransaction":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CheckAppStorePurchaseResponse":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"originalTransactionId":{"type":"string"},"outcome":{"$ref":"#/components/schemas/entitler.api.v1.AppStorePurchaseCheckOutcome"}},"required":["outcome","connectionId","originalTransactionId"],"type":"object"},"entitler.api.v1.CheckFeatureResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customer":{"$ref":"#/components/schemas/entitler.api.v1.EntitledCustomer"},"entitlement":{"$ref":"#/components/schemas/entitler.api.v1.Entitlement"},"member":{"$ref":"#/components/schemas/entitler.api.v1.EntitledMember"},"nextChangeAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"},"zone":{"type":"string"}},"required":["asOf"],"type":"object"},"entitler.api.v1.CheckoutRequest":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"country":{"type":"string"},"createCustomer":{"type":"boolean"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"market":{"type":"string"},"offer":{"$ref":"#/components/schemas/entitler.api.v1.OfferRedemption"},"periodId":{"type":"string"},"plan":{"$ref":"#/components/schemas/entitler.common.v1.PlanSelector"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"reason":{"type":"string"},"returnUrl":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"trial":{"type":"boolean"}},"type":"object"},"entitler.api.v1.CheckoutResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.Churn":{"additionalProperties":false,"properties":{"basisPointsAMonth":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"churned":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"payingAtStart":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["payingAtStart","churned"],"type":"object"},"entitler.api.v1.ClaimBenefitRequest":{"additionalProperties":false,"properties":{"cost":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"featureKey":{"type":"string"},"idempotencyKey":{"type":"string"},"occurredAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"zone":{"type":"string"}},"type":"object"},"entitler.api.v1.ClaimBenefitResponse":{"additionalProperties":false,"properties":{"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"type":"object"},"entitler.api.v1.ClaimGuestLinkRequest":{"additionalProperties":false,"properties":{"link":{"type":"string"},"profile":{"$ref":"#/components/schemas/entitler.api.v1.Profile-Input"}},"type":"object"},"entitler.api.v1.ClaimGuestLinkResponse":{"additionalProperties":false,"properties":{"member":{"$ref":"#/components/schemas/entitler.api.v1.Member"},"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"},"team":{"$ref":"#/components/schemas/entitler.api.v1.Team"}},"type":"object"},"entitler.api.v1.CloseChangeRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"}},"type":"object"},"entitler.api.v1.CloseChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.CloseTrackRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.CloseTrackResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.Cohort":{"additionalProperties":false,"properties":{"closedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"environmentId":{"type":"string"},"id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/entitler.common.v1.Metadata"},"moves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CohortMoveRecord"},"type":"array"},"name":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"openedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planId":{"type":"string"},"projectId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","projectId","environmentId","planId","number","name","versionNumber","openedAt","moves"],"type":"object"},"entitler.api.v1.CohortChoice":{"additionalProperties":false,"properties":{"cohort":{"$ref":"#/components/schemas/entitler.api.v1.CohortKey"},"move":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"planId":{"type":"string"}},"required":["planId","move"],"type":"object"},"entitler.api.v1.CohortChoice-Input":{"additionalProperties":false,"properties":{"cohort":{"$ref":"#/components/schemas/entitler.api.v1.CohortKey"},"move":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"planId":{"type":"string"}},"type":"object"},"entitler.api.v1.CohortCount":{"additionalProperties":false,"properties":{"cohort":{"$ref":"#/components/schemas/entitler.api.v1.CohortKey"},"current":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"joined":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"leftFor":{"items":{"$ref":"#/components/schemas/entitler.api.v1.LeftFor"},"type":"array"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.VersionCount"},"type":"array"}},"required":["joined","current","versions","leftFor"],"type":"object"},"entitler.api.v1.CohortKey":{"additionalProperties":false,"properties":{"cohortId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.CohortMove":{"enum":["COHORT_MOVE_UNSPECIFIED","COHORT_MOVE_STAY","COHORT_MOVE_RENEWAL","COHORT_MOVE_NOW","COHORT_MOVE_ACCEPT"],"type":"string"},"entitler.api.v1.CohortMoveRecord":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"fromVersionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"when":{"$ref":"#/components/schemas/entitler.api.v1.MoveWhen"}},"required":["versionNumber","when","at"],"type":"object"},"entitler.api.v1.Collected":{"additionalProperties":false,"properties":{"paid":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"},"reversed":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"}},"required":["paid","reversed"],"type":"object"},"entitler.api.v1.Connection":{"additionalProperties":false,"properties":{"adoptionMetadataKey":{"type":"string"},"appId":{"type":"string"},"appStoreConnectKey":{"$ref":"#/components/schemas/entitler.api.v1.InAppPurchaseKeyIds"},"connectedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"connectedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"environmentId":{"type":"string"},"events":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"inAppPurchaseKey":{"$ref":"#/components/schemas/entitler.api.v1.InAppPurchaseKeyIds"},"lastEventAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"managesPrices":{"type":"boolean"},"managesProducts":{"type":"boolean"},"mode":{"$ref":"#/components/schemas/entitler.api.v1.ConnectionMode"},"name":{"type":"string"},"projectId":{"type":"string"},"provider":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProvider"},"restorePolicy":{"$ref":"#/components/schemas/entitler.api.v1.RestorePolicy"},"reversalScope":{"$ref":"#/components/schemas/entitler.api.v1.ReversalScope"},"taxCollection":{"$ref":"#/components/schemas/entitler.api.v1.TaxCollection"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"webhookUrl":{"type":"string"}},"required":["id","projectId","environmentId","provider","name","mode","events","connectedAt","updatedAt","taxCollection","managesPrices","reversalScope","restorePolicy","managesProducts"],"type":"object"},"entitler.api.v1.ConnectionMode":{"enum":["CONNECTION_MODE_UNSPECIFIED","CONNECTION_MODE_LIVE","CONNECTION_MODE_TEST"],"type":"string"},"entitler.api.v1.ConnectionState":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"connectionName":{"type":"string"},"provider":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProvider"},"readAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/entitler.api.v1.ProviderState"}},"required":["connectionId","connectionName","provider","readAt"],"type":"object"},"entitler.api.v1.ContractTerm":{"additionalProperties":false,"properties":{"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"then":{"$ref":"#/components/schemas/entitler.api.v1.TermThen"}},"required":["endsAt","then"],"type":"object"},"entitler.api.v1.ConvertTrialRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ConvertTrialResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.CountCustomersResponse":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"kinds":{"$ref":"#/components/schemas/entitler.api.v1.CustomerKindCounts"},"projectCustomers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"projectLimit":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"searchReductions":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SearchReduction"},"type":"array"},"testCustomers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["customers","projectCustomers","testCustomers","searchReductions"],"type":"object"},"entitler.api.v1.CountEnrolmentsResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanEnrolments"},"type":"array"},"testCustomers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["plans","testCustomers","asOf"],"type":"object"},"entitler.api.v1.CountTrackMembersResponse":{"additionalProperties":false,"properties":{"tracks":{"items":{"$ref":"#/components/schemas/entitler.api.v1.TrackMembers"},"type":"array"}},"required":["tracks"],"type":"object"},"entitler.api.v1.CoveredPrice":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"current":{"type":"boolean"},"marketId":{"type":"string"},"periodId":{"type":"string"},"planId":{"type":"string"},"planName":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planName","versionNumber","current","marketId","amount"],"type":"object"},"entitler.api.v1.CreateAppStoreOfferRequest":{"additionalProperties":false,"properties":{"kind":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOfferKind"},"offerId":{"type":"string"},"offerIdentifier":{"type":"string"},"productId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateAppStoreOfferResponse":{"additionalProperties":false,"properties":{"offer":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOffer"},"unpricedTerritories":{"items":{"type":"string"},"type":"array"}},"required":["unpricedTerritories"],"type":"object"},"entitler.api.v1.CreateAttributeRequest":{"additionalProperties":false,"properties":{"customersMaySet":{"type":"boolean"},"description":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"options":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AttributeOption-Input"},"type":"array"},"type":{"$ref":"#/components/schemas/entitler.api.v1.AttributeType"}},"type":"object"},"entitler.api.v1.CreateAttributeResponse":{"additionalProperties":false,"properties":{"attribute":{"$ref":"#/components/schemas/entitler.api.v1.Attribute"},"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.CreateCalendarRequest":{"additionalProperties":false,"properties":{"days":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CalendarDay-Input"},"type":"array"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"timeZone":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateCalendarResponse":{"additionalProperties":false,"properties":{"calendar":{"$ref":"#/components/schemas/entitler.api.v1.Calendar"},"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.CreateChangeRequest":{"additionalProperties":false,"properties":{"baseReleaseId":{"type":"string"},"idempotencyKey":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.CreateConnectionRequest":{"additionalProperties":false,"properties":{"apple":{"$ref":"#/components/schemas/entitler.api.v1.AppleConnection"},"google":{"$ref":"#/components/schemas/entitler.api.v1.GoogleConnection"},"name":{"type":"string"},"stripe":{"$ref":"#/components/schemas/entitler.api.v1.StripeConnection"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateConnectionResponse":{"additionalProperties":false,"properties":{"connection":{"$ref":"#/components/schemas/entitler.api.v1.Connection"}},"type":"object"},"entitler.api.v1.CreateCustomerRequest":{"additionalProperties":false,"properties":{"attributes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAttributeChange"},"type":"array"},"email":{"type":"string"},"externalId":{"type":"string"},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateCustomerResponse":{"additionalProperties":false,"properties":{"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"}},"type":"object"},"entitler.api.v1.CreateDefaultTrackRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.CreateDefaultTrackResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.CreateEnvironmentRequest":{"additionalProperties":false,"properties":{"idempotencyKey":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentKind"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateEnvironmentResponse":{"additionalProperties":false,"properties":{"environment":{"$ref":"#/components/schemas/entitler.api.v1.Environment"}},"type":"object"},"entitler.api.v1.CreateFeatureRequest":{"additionalProperties":false,"properties":{"description":{"type":"string"},"deviceLimit":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimit-Input"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"innerWindow":{"$ref":"#/components/schemas/entitler.api.v1.MeterWindow-Input"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.FeatureKind"},"lateDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"limitsCustomerMembers":{"type":"boolean"},"measure":{"$ref":"#/components/schemas/entitler.common.v1.Measure"},"members":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue-Input"},"name":{"type":"string"},"reset":{"$ref":"#/components/schemas/entitler.api.v1.MeterReset-Input"},"rounding":{"$ref":"#/components/schemas/entitler.api.v1.Rounding"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingType-Input"},"sharesLimit":{"type":"boolean"},"unit":{"type":"string"},"zones":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Zone-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.CreateFeatureResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"feature":{"$ref":"#/components/schemas/entitler.api.v1.Feature"}},"type":"object"},"entitler.api.v1.CreateGrantRequest":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"featureKey":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"value":{"$ref":"#/components/schemas/entitler.api.v1.GrantValue"}},"type":"object"},"entitler.api.v1.CreateGrantResponse":{"additionalProperties":false,"properties":{"grant":{"$ref":"#/components/schemas/entitler.api.v1.Grant"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["revision"],"type":"object"},"entitler.api.v1.CreateHoldRequest":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"featureKey":{"type":"string"},"idempotencyKey":{"type":"string"},"memberId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"ttlSeconds":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"zone":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateHoldResponse":{"additionalProperties":false,"properties":{"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"type":"object"},"entitler.api.v1.CreateIdentityProviderRequest":{"additionalProperties":false,"properties":{"provider":{"$ref":"#/components/schemas/entitler.api.v1.NewIdentityProvider"}},"type":"object"},"entitler.api.v1.CreateIdentityProviderResponse":{"additionalProperties":false,"properties":{"provider":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProvider"}},"type":"object"},"entitler.api.v1.CreateKeyRequest":{"additionalProperties":false,"properties":{"allowedOrigins":{"items":{"type":"string"},"type":"array"},"expiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"exposure":{"$ref":"#/components/schemas/entitler.api.v1.KeyExposure"},"idempotencyKey":{"type":"string"},"name":{"type":"string"},"permissions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Permission"},"type":"array"},"scope":{"$ref":"#/components/schemas/entitler.api.v1.KeyScope-Input"}},"type":"object"},"entitler.api.v1.CreateKeyResponse":{"additionalProperties":false,"properties":{"key":{"$ref":"#/components/schemas/entitler.api.v1.Key"},"secret":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateMarketRequest":{"additionalProperties":false,"properties":{"details":{"$ref":"#/components/schemas/entitler.api.v1.MarketDetails"}},"type":"object"},"entitler.api.v1.CreateMarketResponse":{"additionalProperties":false,"properties":{"market":{"$ref":"#/components/schemas/entitler.api.v1.Market"}},"type":"object"},"entitler.api.v1.CreateOfferRequest":{"additionalProperties":false,"properties":{"content":{"$ref":"#/components/schemas/entitler.api.v1.OfferContent-Input"},"key":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateOfferResponse":{"additionalProperties":false,"properties":{"offer":{"$ref":"#/components/schemas/entitler.api.v1.Offer"}},"type":"object"},"entitler.api.v1.CreatePathRequest":{"additionalProperties":false,"properties":{"back":{"$ref":"#/components/schemas/entitler.api.v1.MoveRule-Input"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"forward":{"$ref":"#/components/schemas/entitler.api.v1.MoveRule-Input"},"fromPlanId":{"type":"string"},"idempotencyKey":{"type":"string"},"rank":{"$ref":"#/components/schemas/entitler.api.v1.PathRank"},"requires":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"toPlanId":{"type":"string"}},"type":"object"},"entitler.api.v1.CreatePathResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"path":{"$ref":"#/components/schemas/entitler.api.v1.Path"}},"type":"object"},"entitler.api.v1.CreatePeriodRequest":{"additionalProperties":false,"properties":{"calendar":{"type":"boolean"},"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"label":{"type":"string"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.PeriodUnit"}},"type":"object"},"entitler.api.v1.CreatePeriodResponse":{"additionalProperties":false,"properties":{"period":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriod"}},"type":"object"},"entitler.api.v1.CreatePlanRequest":{"additionalProperties":false,"properties":{"content":{"$ref":"#/components/schemas/entitler.api.v1.PlanContent-Input"},"customerWide":{"$ref":"#/components/schemas/entitler.api.v1.CustomerWide"},"description":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"name":{"type":"string"},"productId":{"type":"string"},"selling":{"$ref":"#/components/schemas/entitler.api.v1.Selling"}},"type":"object"},"entitler.api.v1.CreatePlanResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.Plan"}},"type":"object"},"entitler.api.v1.CreatePortalSessionRequest":{"additionalProperties":false,"properties":{"returnUrl":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreatePortalSessionResponse":{"additionalProperties":false,"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"entitler.api.v1.CreateProductRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateProductResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"product":{"$ref":"#/components/schemas/entitler.api.v1.Product"}},"type":"object"},"entitler.api.v1.CreateProjectRequest":{"additionalProperties":false,"properties":{"claimable":{"type":"boolean"},"idempotencyKey":{"type":"string"},"image":{"contentEncoding":"base64","type":"string"},"name":{"type":"string"},"switches":{"$ref":"#/components/schemas/entitler.api.v1.ProjectSwitches-Input"},"timeZone":{"type":"string"},"weekStart":{"$ref":"#/components/schemas/entitler.common.v1.Weekday"}},"type":"object"},"entitler.api.v1.CreateProjectResponse":{"additionalProperties":false,"properties":{"environments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Environment"},"type":"array"},"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"},"settings":{"$ref":"#/components/schemas/entitler.api.v1.Settings"}},"required":["environments"],"type":"object"},"entitler.api.v1.CreateRolloutRequest":{"additionalProperties":false,"properties":{"choices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CohortChoice-Input"},"type":"array"},"idempotencyKey":{"type":"string"},"releaseId":{"type":"string"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"trackId":{"type":"string"}},"type":"object"},"entitler.api.v1.CreateRolloutResponse":{"additionalProperties":false,"properties":{"rollout":{"$ref":"#/components/schemas/entitler.api.v1.Rollout"}},"type":"object"},"entitler.api.v1.CreateSegmentRequest":{"additionalProperties":false,"properties":{"description":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"key":{"type":"string"},"match":{"$ref":"#/components/schemas/entitler.api.v1.SegmentMatch"},"name":{"type":"string"},"tests":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTest-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.CreateSegmentResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"segment":{"$ref":"#/components/schemas/entitler.api.v1.Segment"}},"type":"object"},"entitler.api.v1.CreateSnapshotRequest":{"additionalProperties":false,"properties":{"lifetimeSeconds":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"memberId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateSnapshotResponse":{"additionalProperties":false,"properties":{"expiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"keyId":{"type":"string"},"token":{"type":"string"}},"required":["token","keyId","expiresAt"],"type":"object"},"entitler.api.v1.CreateTokenRequest":{"additionalProperties":false,"properties":{"lifetimeSeconds":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"memberId":{"type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerTokenScope"},"type":"array"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateTokenResponse":{"additionalProperties":false,"properties":{"customerId":{"type":"string"},"expiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"memberId":{"type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerTokenScope"},"type":"array"},"token":{"type":"string"},"tokenId":{"type":"string"}},"required":["token","tokenId","scopes","expiresAt"],"type":"object"},"entitler.api.v1.CreateTrackListingPricesRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.CreateTrackListingPricesResponse":{"additionalProperties":false,"properties":{"created":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"listings":{"$ref":"#/components/schemas/entitler.api.v1.CatalogueListings"},"productsCreated":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"productsRemaining":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"remaining":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"}},"required":["created","remaining","productsCreated","productsRemaining"],"type":"object"},"entitler.api.v1.CreateTrackRequest":{"additionalProperties":false,"properties":{"idempotencyKey":{"type":"string"},"money":{"$ref":"#/components/schemas/entitler.api.v1.TrackMoney"},"name":{"type":"string"},"position":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"source":{"$ref":"#/components/schemas/entitler.api.v1.NewTrackSource"}},"type":"object"},"entitler.api.v1.CreateTrackResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.CreateVoucherBatchRequest":{"additionalProperties":false,"properties":{"codes":{"$ref":"#/components/schemas/entitler.api.v1.VoucherCodes"},"grants":{"$ref":"#/components/schemas/entitler.api.v1.VoucherGrant-Input"},"key":{"type":"string"},"settings":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatchSettings-Input"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"usesPerCode":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.CreateVoucherBatchResponse":{"additionalProperties":false,"properties":{"batch":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"},"vouchers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MintedVoucher"},"type":"array"}},"required":["vouchers"],"type":"object"},"entitler.api.v1.Currency":{"additionalProperties":false,"properties":{"code":{"type":"string"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["code","decimals"],"type":"object"},"entitler.api.v1.CustomMove":{"additionalProperties":false,"properties":{"overLimits":{"$ref":"#/components/schemas/entitler.api.v1.OverLimitsRule"},"proration":{"$ref":"#/components/schemas/entitler.api.v1.Proration"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.MoveTiming"}},"required":["timing","overLimits"],"type":"object"},"entitler.api.v1.CustomMove-Input":{"additionalProperties":false,"properties":{"overLimits":{"$ref":"#/components/schemas/entitler.api.v1.OverLimitsRule"},"proration":{"$ref":"#/components/schemas/entitler.api.v1.Proration-Input"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.MoveTiming"}},"type":"object"},"entitler.api.v1.Customer":{"additionalProperties":false,"properties":{"attributes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAttribute"},"type":"array"},"blockedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"blockedReason":{"$ref":"#/components/schemas/entitler.api.v1.CustomerBlockReason"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"email":{"type":"string"},"environmentId":{"type":"string"},"externalId":{"type":"string"},"id":{"type":"string"},"identityProviderId":{"type":"string"},"marketId":{"type":"string"},"money":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"},"name":{"type":"string"},"projectId":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"trackId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","projectId","environmentId","externalId","attributes","money","revision","createdAt","updatedAt","blockedReason"],"type":"object"},"entitler.api.v1.CustomerAdoption":{"additionalProperties":false,"properties":{"metadataKey":{"type":"string"}},"type":"object"},"entitler.api.v1.CustomerAttribute":{"additionalProperties":false,"properties":{"key":{"type":"string"},"setAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"setBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"source":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAttributeSource"},"state":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAttributeState"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"value":{"type":"string"},"verifiedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"verifiedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"}},"required":["key","value","source","setAt","state"],"type":"object"},"entitler.api.v1.CustomerAttributeChange":{"additionalProperties":false,"properties":{"key":{"type":"string"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"value":{"type":"string"},"verified":{"type":"boolean"}},"type":"object"},"entitler.api.v1.CustomerAttributeSource":{"enum":["CUSTOMER_ATTRIBUTE_SOURCE_UNSPECIFIED","CUSTOMER_ATTRIBUTE_SOURCE_BUSINESS","CUSTOMER_ATTRIBUTE_SOURCE_CUSTOMER"],"type":"string"},"entitler.api.v1.CustomerAttributeState":{"enum":["CUSTOMER_ATTRIBUTE_STATE_UNSPECIFIED","CUSTOMER_ATTRIBUTE_STATE_FREE_FORM","CUSTOMER_ATTRIBUTE_STATE_VALID","CUSTOMER_ATTRIBUTE_STATE_EXPIRED","CUSTOMER_ATTRIBUTE_STATE_INVALID"],"type":"string"},"entitler.api.v1.CustomerBilling":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"drift":{"$ref":"#/components/schemas/entitler.api.v1.BillingDrift"},"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"linked":{"type":"boolean"},"products":{"items":{"$ref":"#/components/schemas/entitler.api.v1.BilledProduct"},"type":"array"},"renews":{"type":"boolean"},"sku":{"$ref":"#/components/schemas/entitler.api.v1.BilledSku"},"status":{"$ref":"#/components/schemas/entitler.api.v1.ProviderSubscriptionStatus"}},"required":["linked","status","items","products","renews"],"type":"object"},"entitler.api.v1.CustomerBlockReason":{"enum":["CUSTOMER_BLOCK_REASON_UNSPECIFIED","CUSTOMER_BLOCK_REASON_PAYMENT_REVERSED"],"type":"string"},"entitler.api.v1.CustomerKind":{"enum":["CUSTOMER_KIND_UNSPECIFIED","CUSTOMER_KIND_RECURRING","CUSTOMER_KIND_ONE_TIME","CUSTOMER_KIND_SCHEDULED","CUSTOMER_KIND_DEFAULT_PLAN","CUSTOMER_KIND_NO_PLAN"],"type":"string"},"entitler.api.v1.CustomerKindCounts":{"additionalProperties":false,"properties":{"defaultPlan":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"noPlan":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"oneTime":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"recurring":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"scheduled":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["recurring","oneTime","scheduled","defaultPlan","noPlan"],"type":"object"},"entitler.api.v1.CustomerLineBand":{"additionalProperties":false,"properties":{"flat":{"type":"boolean"},"upTo":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["flat"],"type":"object"},"entitler.api.v1.CustomerLineDiscount":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"offerId":{"type":"string"},"offerKey":{"type":"string"},"offerName":{"type":"string"}},"required":["offerId","offerKey","offerName"],"type":"object"},"entitler.api.v1.CustomerMember":{"additionalProperties":false,"properties":{"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"eraseAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"externalId":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"removedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","externalId","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.CustomerMoney":{"enum":["CUSTOMER_MONEY_UNSPECIFIED","CUSTOMER_MONEY_REAL","CUSTOMER_MONEY_TEST"],"type":"string"},"entitler.api.v1.CustomerMove":{"additionalProperties":false,"properties":{"actor":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"changeId":{"type":"string"},"chargeIds":{"items":{"type":"string"},"type":"array"},"cohortId":{"type":"string"},"collection":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionCollection"},"discountEndReason":{"$ref":"#/components/schemas/entitler.api.v1.DiscountEndReason"},"discountGivenBy":{"$ref":"#/components/schemas/entitler.api.v1.DiscountGivenBy"},"dueAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"early":{"type":"boolean"},"effectiveAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"fromPlanId":{"type":"string"},"fromQuantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"fromVersionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"grantId":{"type":"string"},"id":{"type":"string"},"keepsBilling":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.MoveKind"},"money":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"},"offerCode":{"type":"string"},"offerId":{"type":"string"},"packPurchaseId":{"type":"string"},"payerEndReason":{"$ref":"#/components/schemas/entitler.api.v1.PayerEndReason"},"payerId":{"type":"string"},"periodId":{"type":"string"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planId":{"type":"string"},"productId":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"reason":{"type":"string"},"referralId":{"type":"string"},"refunds":{"$ref":"#/components/schemas/entitler.api.v1.Refunds"},"releaseId":{"type":"string"},"reversalScope":{"$ref":"#/components/schemas/entitler.api.v1.ReversalScope"},"rolloutId":{"type":"string"},"topUps":{"items":{"$ref":"#/components/schemas/entitler.api.v1.TopUpAmount"},"type":"array"},"trackId":{"type":"string"},"trialOutcome":{"$ref":"#/components/schemas/entitler.api.v1.TrialOutcome"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"voucherId":{"type":"string"},"waitingCreditId":{"type":"string"}},"required":["id","kind","keepsBilling","money","effectiveAt","at","collection","discountGivenBy","discountEndReason","reversalScope","payerEndReason","early","trialOutcome","chargeIds","topUps"],"type":"object"},"entitler.api.v1.CustomerPriceLine":{"additionalProperties":false,"properties":{"band":{"$ref":"#/components/schemas/entitler.api.v1.CustomerLineBand"},"discounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerLineDiscount"},"type":"array"},"listPrice":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"periodId":{"type":"string"},"planId":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/entitler.api.v1.PlanPriceState"},"unitPrice":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"version":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","version","quantity","state","discounts"],"type":"object"},"entitler.api.v1.CustomerPriceLines":{"additionalProperties":false,"properties":{"lines":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerPriceLine"},"type":"array"}},"required":["lines"],"type":"object"},"entitler.api.v1.CustomerPrices":{"additionalProperties":false,"properties":{"market":{"$ref":"#/components/schemas/entitler.api.v1.PricingMarket"},"subscriptions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionPrice"},"type":"array"}},"required":["subscriptions"],"type":"object"},"entitler.api.v1.CustomerProviders":{"additionalProperties":false,"properties":{"alerts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderAlert"},"type":"array"},"connections":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ConnectionState"},"type":"array"},"linkedConnectionIds":{"items":{"type":"string"},"type":"array"}},"required":["connections","alerts","linkedConnectionIds"],"type":"object"},"entitler.api.v1.CustomerSegment":{"additionalProperties":false,"properties":{"attributeKey":{"type":"string"},"inSegment":{"type":"boolean"},"key":{"type":"string"},"segmentKey":{"type":"string"}},"required":["key","inSegment"],"type":"object"},"entitler.api.v1.CustomerSortField":{"enum":["CUSTOMER_SORT_FIELD_UNSPECIFIED","CUSTOMER_SORT_FIELD_CREATED","CUSTOMER_SORT_FIELD_NAME","CUSTOMER_SORT_FIELD_EXTERNAL_ID"],"type":"string"},"entitler.api.v1.CustomerState":{"enum":["CUSTOMER_STATE_UNSPECIFIED","CUSTOMER_STATE_NO_PLAN","CUSTOMER_STATE_DEFAULT_PLAN","CUSTOMER_STATE_CANCELLING","CUSTOMER_STATE_SWITCHING_PERIOD","CUSTOMER_STATE_MOVING","CUSTOMER_STATE_LEGACY_PLAN","CUSTOMER_STATE_TRYING_FEATURE","CUSTOMER_STATE_GRANTED","CUSTOMER_STATE_RENEWING","CUSTOMER_STATE_ACTIVE","CUSTOMER_STATE_PAUSED","CUSTOMER_STATE_SUSPENDED","CUSTOMER_STATE_PURCHASE_PENDING","CUSTOMER_STATE_TRIALING"],"type":"string"},"entitler.api.v1.CustomerStatus":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"periodId":{"type":"string"},"planId":{"type":"string"},"state":{"$ref":"#/components/schemas/entitler.api.v1.CustomerState"}},"required":["state"],"type":"object"},"entitler.api.v1.CustomerTokenScope":{"enum":["CUSTOMER_TOKEN_SCOPE_UNSPECIFIED","CUSTOMER_TOKEN_SCOPE_ENTITLEMENTS_READ","CUSTOMER_TOKEN_SCOPE_USAGE_READ","CUSTOMER_TOKEN_SCOPE_USAGE_WRITE","CUSTOMER_TOKEN_SCOPE_BILLING_SELF"],"type":"string"},"entitler.api.v1.CustomerTrack":{"additionalProperties":false,"properties":{"customerId":{"type":"string"},"externalId":{"type":"string"},"money":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"},"previousTrackId":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"source":{"$ref":"#/components/schemas/entitler.api.v1.AssignmentSource"},"trackId":{"type":"string"}},"required":["customerId","externalId","source","money","revision"],"type":"object"},"entitler.api.v1.CustomerUsagePrice":{"additionalProperties":false,"properties":{"cells":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageCells"},"class":{"type":"string"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"featureKey":{"type":"string"},"flat":{"$ref":"#/components/schemas/entitler.api.v1.UnitRate"},"from":{"$ref":"#/components/schemas/entitler.api.v1.UsageFrom"},"key":{"type":"string"},"minimum":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageMinimum"},"offsets":{"items":{"type":"string"},"type":"array"},"tiers":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageTiers"}},"required":["key","direction","from","offsets"],"type":"object"},"entitler.api.v1.CustomerWide":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.DayKind":{"enum":["DAY_KIND_UNSPECIFIED","DAY_KIND_HOLIDAY","DAY_KIND_WORKING_DAY"],"type":"string"},"entitler.api.v1.Decision":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"by":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"note":{"type":"string"},"verdict":{"$ref":"#/components/schemas/entitler.api.v1.Verdict"}},"required":["verdict","at","note"],"type":"object"},"entitler.api.v1.DeclineRolloutRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.DeclineRolloutResponse":{"additionalProperties":false,"properties":{"rollout":{"$ref":"#/components/schemas/entitler.api.v1.Rollout"}},"type":"object"},"entitler.api.v1.DefaultPlanSource":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"productId":{"type":"string"},"throughFeatureKey":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planKey","planName","versionNumber"],"type":"object"},"entitler.api.v1.DeleteAttributeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeleteCalendarResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeleteConnectionResponse":{"additionalProperties":false,"properties":{"connection":{"$ref":"#/components/schemas/entitler.api.v1.Connection"}},"type":"object"},"entitler.api.v1.DeleteCustomerResponse":{"additionalProperties":false,"properties":{"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"}},"type":"object"},"entitler.api.v1.DeleteEnvironmentResponse":{"additionalProperties":false,"properties":{"revokedKeys":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["revokedKeys"],"type":"object"},"entitler.api.v1.DeleteFeatureResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeleteIdentityProviderResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.DeleteMarketResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.DeleteOfferResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.DeletePathResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeletePeriodResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.DeletePlanResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeleteProductResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeleteProjectResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.DeleteSegmentResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.DeleteWebhookEndpointResponse":{"additionalProperties":false,"properties":{"deleted":{"type":"boolean"}},"required":["deleted"],"type":"object"},"entitler.api.v1.DescribeCallerResponse":{"additionalProperties":false,"properties":{"key":{"$ref":"#/components/schemas/entitler.api.v1.Key"}},"type":"object"},"entitler.api.v1.Device":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"id":{"type":"string"},"lastActiveAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"name":{"type":"string"},"session":{"$ref":"#/components/schemas/entitler.api.v1.DeviceSession"},"signedInAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":["id","externalId","signedInAt","lastActiveAt"],"type":"object"},"entitler.api.v1.DeviceCode":{"additionalProperties":false,"properties":{"code":{"type":"string"},"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"deviceId":{"type":"string"},"issuedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCodeKind"}},"required":["deviceId","kind","days","count","code","issuedAt"],"type":"object"},"entitler.api.v1.DeviceCodeKind":{"enum":["DEVICE_CODE_KIND_UNSPECIFIED","DEVICE_CODE_KIND_ADD_DAYS","DEVICE_CODE_KIND_SET_DAYS","DEVICE_CODE_KIND_UNLOCK"],"type":"string"},"entitler.api.v1.DeviceCount":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"limit":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["limit","count"],"type":"object"},"entitler.api.v1.DeviceLockout":{"additionalProperties":false,"properties":{"breaches":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"kind":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimitKind"},"lockedUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["kind","breaches"],"type":"object"},"entitler.api.v1.DeviceRefusal":{"enum":["DEVICE_REFUSAL_UNSPECIFIED","DEVICE_REFUSAL_LIMIT_REACHED","DEVICE_REFUSAL_TYPE_NOT_ENTITLED","DEVICE_REFUSAL_LOCKED"],"type":"string"},"entitler.api.v1.DeviceSession":{"additionalProperties":false,"properties":{"deviceId":{"type":"string"},"expiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"leaseSeconds":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"startedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","deviceId","startedAt","expiresAt","leaseSeconds"],"type":"object"},"entitler.api.v1.Difference":{"additionalProperties":false,"properties":{"fields":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ChangedField"},"type":"array"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.DifferenceKind"},"object":{"$ref":"#/components/schemas/entitler.api.v1.ObjectRef"}},"required":["kind","fields"],"type":"object"},"entitler.api.v1.DifferenceField":{"enum":["DIFFERENCE_FIELD_UNSPECIFIED","DIFFERENCE_FIELD_NAME","DIFFERENCE_FIELD_KEY","DIFFERENCE_FIELD_DESCRIPTION","DIFFERENCE_FIELD_DEFAULT_PLAN","DIFFERENCE_FIELD_UNIT","DIFFERENCE_FIELD_RESET","DIFFERENCE_FIELD_MEMBERS","DIFFERENCE_FIELD_ARCHIVED","DIFFERENCE_FIELD_PRODUCT","DIFFERENCE_FIELD_STATUS","DIFFERENCE_FIELD_SELLING","DIFFERENCE_FIELD_ITEM","DIFFERENCE_FIELD_PERIODS","DIFFERENCE_FIELD_QUANTITY","DIFFERENCE_FIELD_PERIOD_MOVE","DIFFERENCE_FIELD_COHORT_MOVE","DIFFERENCE_FIELD_RANK","DIFFERENCE_FIELD_FORWARD","DIFFERENCE_FIELD_BACK","DIFFERENCE_FIELD_FREE","DIFFERENCE_FIELD_PRICE","DIFFERENCE_FIELD_TERMS","DIFFERENCE_FIELD_FEE","DIFFERENCE_FIELD_FEE_SCHEDULE","DIFFERENCE_FIELD_KIND","DIFFERENCE_FIELD_MEASURE","DIFFERENCE_FIELD_ROUNDING","DIFFERENCE_FIELD_LATE_DAYS","DIFFERENCE_FIELD_REQUIRES","DIFFERENCE_FIELD_ATTRIBUTE_TYPE","DIFFERENCE_FIELD_OPTIONS","DIFFERENCE_FIELD_CUSTOMERS_MAY_SET","DIFFERENCE_FIELD_TIME_ZONE","DIFFERENCE_FIELD_DAYS","DIFFERENCE_FIELD_DEVICE_LIMIT","DIFFERENCE_FIELD_INSTALMENTS","DIFFERENCE_FIELD_SHARES_LIMIT","DIFFERENCE_FIELD_UNOFFERED","DIFFERENCE_FIELD_PRICE_BAND","DIFFERENCE_FIELD_INDEXATION","DIFFERENCE_FIELD_LOCK","DIFFERENCE_FIELD_ZONES","DIFFERENCE_FIELD_TRIAL","DIFFERENCE_FIELD_LIMIT","DIFFERENCE_FIELD_BENEFIT","DIFFERENCE_FIELD_SETTING","DIFFERENCE_FIELD_PACK","DIFFERENCE_FIELD_MATCH","DIFFERENCE_FIELD_TESTS","DIFFERENCE_FIELD_USAGE_PRICE","DIFFERENCE_FIELD_USAGE_RATE","DIFFERENCE_FIELD_USAGE_WAIT","DIFFERENCE_FIELD_SEASONS","DIFFERENCE_FIELD_SLOTS","DIFFERENCE_FIELD_FOLLOWS_MEMBERS","DIFFERENCE_FIELD_MEMBER_LIMIT","DIFFERENCE_FIELD_INNER_WINDOW"],"type":"string"},"entitler.api.v1.DifferenceKind":{"enum":["DIFFERENCE_KIND_UNSPECIFIED","DIFFERENCE_KIND_ADDED","DIFFERENCE_KIND_CHANGED","DIFFERENCE_KIND_REMOVED"],"type":"string"},"entitler.api.v1.DirectionToPlan":{"additionalProperties":false,"properties":{"direction":{"$ref":"#/components/schemas/entitler.api.v1.PlanDirection"},"planId":{"type":"string"}},"required":["planId","direction"],"type":"object"},"entitler.api.v1.DiscountEndReason":{"enum":["DISCOUNT_END_REASON_UNSPECIFIED","DISCOUNT_END_REASON_PERIODS_USED","DISCOUNT_END_REASON_UNTIL_REACHED","DISCOUNT_END_REASON_MOVED_OFF_PLANS","DISCOUNT_END_REASON_PROVIDER","DISCOUNT_END_REASON_PAYER_ENDED","DISCOUNT_END_REASON_OWNED","DISCOUNT_END_REASON_LEFT_SEGMENT","DISCOUNT_END_REASON_OFFER_ENDED"],"type":"string"},"entitler.api.v1.DiscountGivenBy":{"enum":["DISCOUNT_GIVEN_BY_UNSPECIFIED","DISCOUNT_GIVEN_BY_BUSINESS","DISCOUNT_GIVEN_BY_CUSTOMER","DISCOUNT_GIVEN_BY_CODE","DISCOUNT_GIVEN_BY_SEGMENT","DISCOUNT_GIVEN_BY_REFERRAL"],"type":"string"},"entitler.api.v1.DiscountKind":{"enum":["DISCOUNT_KIND_UNSPECIFIED","DISCOUNT_KIND_PERCENT","DISCOUNT_KIND_AMOUNT"],"type":"string"},"entitler.api.v1.EditedChange":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["changeId","revision"],"type":"object"},"entitler.api.v1.Effective":{"enum":["EFFECTIVE_UNSPECIFIED","EFFECTIVE_NOW","EFFECTIVE_RENEWAL"],"type":"string"},"entitler.api.v1.EndDeviceSessionResponse":{"additionalProperties":false,"properties":{"endReason":{"$ref":"#/components/schemas/entitler.api.v1.SessionEndReason"},"endedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"session":{"$ref":"#/components/schemas/entitler.api.v1.DeviceSession"}},"required":["endReason","endedAt"],"type":"object"},"entitler.api.v1.EndProduct":{"additionalProperties":false,"properties":{"productId":{"type":"string"}},"type":"object"},"entitler.api.v1.EntitledCustomer":{"additionalProperties":false,"properties":{"customerId":{"type":"string"},"externalId":{"type":"string"}},"required":["externalId"],"type":"object"},"entitler.api.v1.EntitledFeatureKind":{"enum":["ENTITLED_FEATURE_KIND_UNSPECIFIED","ENTITLED_FEATURE_KIND_SWITCH","ENTITLED_FEATURE_KIND_METERED","ENTITLED_FEATURE_KIND_SETTING","ENTITLED_FEATURE_KIND_GROUP"],"type":"string"},"entitler.api.v1.EntitledHours":{"additionalProperties":false,"properties":{"closesAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"open":{"type":"boolean"},"opensAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["open"],"type":"object"},"entitler.api.v1.EntitledMember":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"memberId":{"type":"string"}},"required":["memberId","externalId"],"type":"object"},"entitler.api.v1.Entitlement":{"additionalProperties":false,"properties":{"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"currency":{"type":"string"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"entitled":{"type":"boolean"},"featureKey":{"type":"string"},"homeZones":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ZonedEntitlement"},"type":"array"},"hours":{"$ref":"#/components/schemas/entitler.api.v1.EntitledHours"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.EntitledFeatureKind"},"memberMeter":{"$ref":"#/components/schemas/entitler.api.v1.Meter"},"memberValue":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"meter":{"$ref":"#/components/schemas/entitler.api.v1.Meter"},"perUse":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"sharedBy":{"type":"string"},"sharedValue":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"sources":{"items":{"$ref":"#/components/schemas/entitler.api.v1.EntitlementSource"},"type":"array"},"uncountedZones":{"items":{"type":"string"},"type":"array"},"upgrades":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Upgrade"},"type":"array"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"waitingUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["featureKey","kind","entitled","sources","upgrades","decimals","currency","uncountedZones","homeZones"],"type":"object"},"entitler.api.v1.EntitlementCache":{"enum":["ENTITLEMENT_CACHE_UNSPECIFIED","ENTITLEMENT_CACHE_OFF","ENTITLEMENT_CACHE_THIRTY_SECONDS","ENTITLEMENT_CACHE_FIVE_MINUTES"],"type":"string"},"entitler.api.v1.EntitlementSource":{"additionalProperties":false,"properties":{"addOn":{"$ref":"#/components/schemas/entitler.api.v1.AddOnSource"},"defaultPlan":{"$ref":"#/components/schemas/entitler.api.v1.DefaultPlanSource"},"grant":{"$ref":"#/components/schemas/entitler.api.v1.GrantSource"},"group":{"$ref":"#/components/schemas/entitler.api.v1.GroupSource"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.PlanSource"},"segmentKey":{"type":"string"}},"type":"object"},"entitler.api.v1.Environment":{"additionalProperties":false,"properties":{"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentKind"},"name":{"type":"string"},"projectId":{"type":"string"},"protection":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentProtection"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","projectId","name","kind","revision","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.EnvironmentKeyScope":{"additionalProperties":false,"properties":{"environmentId":{"type":"string"},"projectId":{"type":"string"}},"required":["projectId","environmentId"],"type":"object"},"entitler.api.v1.EnvironmentKeyScope-Input":{"additionalProperties":false,"properties":{"environmentId":{"type":"string"},"projectId":{"type":"string"}},"type":"object"},"entitler.api.v1.EnvironmentKind":{"enum":["ENVIRONMENT_KIND_UNSPECIFIED","ENVIRONMENT_KIND_TEST","ENVIRONMENT_KIND_LIVE"],"type":"string"},"entitler.api.v1.EnvironmentPlace":{"additionalProperties":false,"properties":{"environmentId":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"}},"type":"object"},"entitler.api.v1.EnvironmentProtection":{"additionalProperties":false,"properties":{"approval":{"type":"boolean"},"approve":{"$ref":"#/components/schemas/entitler.api.v1.RoleSelection"},"changeCustomers":{"$ref":"#/components/schemas/entitler.api.v1.RoleSelection"},"rollOut":{"$ref":"#/components/schemas/entitler.api.v1.RoleSelection"}},"required":["approval"],"type":"object"},"entitler.api.v1.EnvironmentProtection-Input":{"additionalProperties":false,"properties":{"approval":{"type":"boolean"},"approve":{"$ref":"#/components/schemas/entitler.api.v1.RoleSelection-Input"},"changeCustomers":{"$ref":"#/components/schemas/entitler.api.v1.RoleSelection-Input"},"rollOut":{"$ref":"#/components/schemas/entitler.api.v1.RoleSelection-Input"}},"type":"object"},"entitler.api.v1.EraseCustomerMemberRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.EraseCustomerMemberResponse":{"additionalProperties":false,"properties":{"memberId":{"type":"string"}},"required":["memberId"],"type":"object"},"entitler.api.v1.EraseCustomerRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.EraseCustomerResponse":{"additionalProperties":false,"properties":{"erased":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["erased"],"type":"object"},"entitler.api.v1.EstimatedUsageCharge":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"lines":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageChargeLine"},"type":"array"},"listAmount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"}},"required":["direction","lines"],"type":"object"},"entitler.api.v1.EventOutcome":{"enum":["EVENT_OUTCOME_UNSPECIFIED","EVENT_OUTCOME_RECORDED","EVENT_OUTCOME_DUPLICATE","EVENT_OUTCOME_ERROR"],"type":"string"},"entitler.api.v1.EventResult":{"additionalProperties":false,"properties":{"index":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"late":{"type":"boolean"},"outcome":{"$ref":"#/components/schemas/entitler.api.v1.EventOutcome"},"reason":{"type":"string"},"saturated":{"type":"boolean"},"usageId":{"type":"string"}},"required":["index","outcome","late","saturated"],"type":"object"},"entitler.api.v1.EveryMonths":{"additionalProperties":false,"properties":{"firstAfterMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"months":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["months","firstAfterMonths"],"type":"object"},"entitler.api.v1.EveryMonths-Input":{"additionalProperties":false,"properties":{"firstAfterMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"months":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.ExchangeRate":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"perEuro":{"type":"string"}},"required":["currency","perEuro"],"type":"object"},"entitler.api.v1.ExitFee":{"additionalProperties":false,"properties":{"amounts":{"$ref":"#/components/schemas/entitler.api.v1.ExitFeeAmounts"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.ExitFee-Input":{"additionalProperties":false,"properties":{"amounts":{"$ref":"#/components/schemas/entitler.api.v1.ExitFeeAmounts-Input"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.ExitFeeAmount":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"}},"required":["marketId","amount"],"type":"object"},"entitler.api.v1.ExitFeeAmount-Input":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"}},"type":"object"},"entitler.api.v1.ExitFeeAmounts":{"additionalProperties":false,"properties":{"amounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ExitFeeAmount"},"type":"array"}},"required":["amounts"],"type":"object"},"entitler.api.v1.ExitFeeAmounts-Input":{"additionalProperties":false,"properties":{"amounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ExitFeeAmount-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.Feature":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"id":{"type":"string"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.FeatureKind"},"version":{"$ref":"#/components/schemas/entitler.api.v1.FeatureVersion"}},"required":["id","key","kind","archived"],"type":"object"},"entitler.api.v1.FeatureCounts":{"additionalProperties":false,"properties":{"features":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"groups":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"metered":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"settings":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"switches":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["features","switches","metered","settings","groups"],"type":"object"},"entitler.api.v1.FeatureCustomer":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"externalId":{"type":"string"},"lastAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"name":{"type":"string"},"times":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"total":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["externalId","times","total","lastAtMs","decimals","currency"],"type":"object"},"entitler.api.v1.FeatureCustomerSortField":{"enum":["FEATURE_CUSTOMER_SORT_FIELD_UNSPECIFIED","FEATURE_CUSTOMER_SORT_FIELD_AMOUNT","FEATURE_CUSTOMER_SORT_FIELD_TIMES","FEATURE_CUSTOMER_SORT_FIELD_LAST_USED","FEATURE_CUSTOMER_SORT_FIELD_CUSTOMER"],"type":"string"},"entitler.api.v1.FeatureImpact":{"additionalProperties":false,"properties":{"featureKey":{"type":"string"},"from":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.ImpactKind"},"to":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"}},"required":["featureKey","kind"],"type":"object"},"entitler.api.v1.FeatureKind":{"enum":["FEATURE_KIND_UNSPECIFIED","FEATURE_KIND_SWITCH","FEATURE_KIND_METERED","FEATURE_KIND_SETTING","FEATURE_KIND_GROUP"],"type":"string"},"entitler.api.v1.FeatureReport":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"days":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageDay"},"type":"array"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"times":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"total":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["featureKey","times","total","days","decimals","currency"],"type":"object"},"entitler.api.v1.FeatureUsage":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"memberMeter":{"$ref":"#/components/schemas/entitler.api.v1.Meter"},"meter":{"$ref":"#/components/schemas/entitler.api.v1.Meter"},"sharedBy":{"type":"string"}},"required":["featureKey","decimals","currency"],"type":"object"},"entitler.api.v1.FeatureVersion":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"description":{"type":"string"},"deviceLimit":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimit"},"innerWindow":{"$ref":"#/components/schemas/entitler.api.v1.MeterWindow"},"lateDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"limitsCustomerMembers":{"type":"boolean"},"measure":{"$ref":"#/components/schemas/entitler.common.v1.Measure"},"members":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue"},"name":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"reset":{"$ref":"#/components/schemas/entitler.api.v1.MeterReset"},"rounding":{"$ref":"#/components/schemas/entitler.api.v1.Rounding"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingType"},"sharesLimit":{"type":"boolean"},"unit":{"type":"string"},"zones":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Zone"},"type":"array"}},"required":["number","name","description","unit","sharesLimit","zones","limitsCustomerMembers"],"type":"object"},"entitler.api.v1.FeatureVoucherGrant":{"additionalProperties":false,"properties":{"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"value":{"$ref":"#/components/schemas/entitler.api.v1.GrantValue"}},"required":["featureKey","days"],"type":"object"},"entitler.api.v1.FeatureVoucherGrant-Input":{"additionalProperties":false,"properties":{"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"value":{"$ref":"#/components/schemas/entitler.api.v1.GrantValue"}},"type":"object"},"entitler.api.v1.FeeCell":{"additionalProperties":false,"properties":{"feeKey":{"type":"string"},"marketId":{"type":"string"}},"required":["feeKey"],"type":"object"},"entitler.api.v1.FeeDirection":{"enum":["FEE_DIRECTION_UNSPECIFIED","FEE_DIRECTION_DEBIT","FEE_DIRECTION_CREDIT"],"type":"string"},"entitler.api.v1.FeePrice":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"}},"required":["marketId","amount"],"type":"object"},"entitler.api.v1.FeePrice-Input":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"}},"type":"object"},"entitler.api.v1.FeeSchedule":{"additionalProperties":false,"properties":{"everyMonths":{"$ref":"#/components/schemas/entitler.api.v1.EveryMonths"},"onPurchase":{"$ref":"#/components/schemas/entitler.api.v1.OnPurchase"},"yearlyOn":{"$ref":"#/components/schemas/entitler.api.v1.YearlyOn"}},"type":"object"},"entitler.api.v1.FeeSchedule-Input":{"additionalProperties":false,"properties":{"everyMonths":{"$ref":"#/components/schemas/entitler.api.v1.EveryMonths-Input"},"onPurchase":{"$ref":"#/components/schemas/entitler.api.v1.OnPurchase"},"yearlyOn":{"$ref":"#/components/schemas/entitler.api.v1.YearlyOn-Input"}},"type":"object"},"entitler.api.v1.FindCoveredPricesRequest":{"additionalProperties":false,"properties":{"amounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MarketAmount"},"type":"array"},"periodIds":{"items":{"type":"string"},"type":"array"},"planIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.FindCoveredPricesResponse":{"additionalProperties":false,"properties":{"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CoveredPrice"},"type":"array"},"truncated":{"type":"boolean"}},"required":["prices","truncated"],"type":"object"},"entitler.api.v1.FindCustomerMemberRequest":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.FindCustomerMemberResponse":{"additionalProperties":false,"properties":{"member":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMember"}},"type":"object"},"entitler.api.v1.FindVoucherRequest":{"additionalProperties":false,"properties":{"code":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.FindVoucherResponse":{"additionalProperties":false,"properties":{"batch":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"},"voucher":{"$ref":"#/components/schemas/entitler.api.v1.Voucher"}},"type":"object"},"entitler.api.v1.FindingCount":{"additionalProperties":false,"properties":{"count":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"finding":{"$ref":"#/components/schemas/entitler.api.v1.ImportFinding"}},"required":["finding","count"],"type":"object"},"entitler.api.v1.FixedTerm":{"additionalProperties":false,"properties":{"fee":{"$ref":"#/components/schemas/entitler.api.v1.ExitFee"},"months":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"termEnd":{"$ref":"#/components/schemas/entitler.api.v1.TermEnd"},"then":{"$ref":"#/components/schemas/entitler.api.v1.TermThen"}},"required":["months","then"],"type":"object"},"entitler.api.v1.FixedTerm-Input":{"additionalProperties":false,"properties":{"fee":{"$ref":"#/components/schemas/entitler.api.v1.ExitFee-Input"},"months":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"termEnd":{"$ref":"#/components/schemas/entitler.api.v1.TermEnd"},"then":{"$ref":"#/components/schemas/entitler.api.v1.TermThen"}},"type":"object"},"entitler.api.v1.FreeOfCharge":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.GetAttentionResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"cancelsBooked":{"$ref":"#/components/schemas/entitler.api.v1.AttentionItem"},"paymentsAwaiting":{"$ref":"#/components/schemas/entitler.api.v1.AttentionItem"},"paymentsMissed":{"$ref":"#/components/schemas/entitler.api.v1.AttentionItem"},"trialsEnding":{"$ref":"#/components/schemas/entitler.api.v1.AttentionItem"}},"required":["asOf"],"type":"object"},"entitler.api.v1.GetBillingResponse":{"additionalProperties":false,"properties":{"billing":{"$ref":"#/components/schemas/entitler.api.v1.CustomerBilling"}},"type":"object"},"entitler.api.v1.GetCatalogueResponse":{"additionalProperties":false,"properties":{"catalogue":{"$ref":"#/components/schemas/entitler.api.v1.Catalogue"},"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"},"release":{"$ref":"#/components/schemas/entitler.api.v1.Release"}},"type":"object"},"entitler.api.v1.GetChangeDiffResponse":{"additionalProperties":false,"properties":{"after":{"$ref":"#/components/schemas/entitler.api.v1.Catalogue"},"before":{"$ref":"#/components/schemas/entitler.api.v1.Catalogue"},"differences":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Difference"},"type":"array"},"draftedNote":{"type":"string"}},"required":["differences","draftedNote"],"type":"object"},"entitler.api.v1.GetChangeRecapResponse":{"additionalProperties":false,"properties":{"counts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.RecapCount"},"type":"array"},"sales":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanSale"},"type":"array"}},"required":["counts","sales"],"type":"object"},"entitler.api.v1.GetChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.GetConnectionResponse":{"additionalProperties":false,"properties":{"connection":{"$ref":"#/components/schemas/entitler.api.v1.Connection"}},"type":"object"},"entitler.api.v1.GetCustomerMemberResponse":{"additionalProperties":false,"properties":{"member":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMember"}},"type":"object"},"entitler.api.v1.GetCustomerPricingResponse":{"additionalProperties":false,"properties":{"prices":{"$ref":"#/components/schemas/entitler.api.v1.CustomerPrices"},"pricing":{"$ref":"#/components/schemas/entitler.api.v1.PricingSheet"}},"type":"object"},"entitler.api.v1.GetCustomerResponse":{"additionalProperties":false,"properties":{"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"}},"type":"object"},"entitler.api.v1.GetDeviceResponse":{"additionalProperties":false,"properties":{"device":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDevice"}},"type":"object"},"entitler.api.v1.GetEnvironmentResponse":{"additionalProperties":false,"properties":{"environment":{"$ref":"#/components/schemas/entitler.api.v1.Environment"}},"type":"object"},"entitler.api.v1.GetGuestLinkResponse":{"additionalProperties":false,"properties":{"guestLink":{"$ref":"#/components/schemas/entitler.api.v1.GuestLink"}},"type":"object"},"entitler.api.v1.GetHeadResponse":{"additionalProperties":false,"properties":{"head":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"newest":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"openChanges":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OpenChange"},"type":"array"}},"required":["openChanges"],"type":"object"},"entitler.api.v1.GetHoldResponse":{"additionalProperties":false,"properties":{"hold":{"$ref":"#/components/schemas/entitler.api.v1.Hold"}},"type":"object"},"entitler.api.v1.GetIdentityProviderResponse":{"additionalProperties":false,"properties":{"provider":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProvider"}},"type":"object"},"entitler.api.v1.GetImportResponse":{"additionalProperties":false,"properties":{"import":{"$ref":"#/components/schemas/entitler.api.v1.ProviderImport"}},"type":"object"},"entitler.api.v1.GetListingsResponse":{"additionalProperties":false,"properties":{"listings":{"$ref":"#/components/schemas/entitler.api.v1.CatalogueListings"}},"type":"object"},"entitler.api.v1.GetOfferResponse":{"additionalProperties":false,"properties":{"held":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"offer":{"$ref":"#/components/schemas/entitler.api.v1.Offer"},"taken":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["taken","held"],"type":"object"},"entitler.api.v1.GetPricingResponse":{"additionalProperties":false,"properties":{"pricing":{"$ref":"#/components/schemas/entitler.api.v1.PricingSheet"}},"type":"object"},"entitler.api.v1.GetProjectResponse":{"additionalProperties":false,"properties":{"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"}},"type":"object"},"entitler.api.v1.GetProjectSettingsResponse":{"additionalProperties":false,"properties":{"settings":{"$ref":"#/components/schemas/entitler.api.v1.Settings"}},"type":"object"},"entitler.api.v1.GetReferralCodeRequest":{"additionalProperties":false,"properties":{"code":{"type":"string"},"offerKey":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.GetReferralCodeResponse":{"additionalProperties":false,"properties":{"created":{"type":"boolean"},"referralCode":{"$ref":"#/components/schemas/entitler.api.v1.ReferralCode"}},"required":["created"],"type":"object"},"entitler.api.v1.GetReleaseDiffResponse":{"additionalProperties":false,"properties":{"after":{"$ref":"#/components/schemas/entitler.api.v1.Catalogue"},"before":{"$ref":"#/components/schemas/entitler.api.v1.Catalogue"},"differences":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Difference"},"type":"array"}},"required":["differences"],"type":"object"},"entitler.api.v1.GetReleaseResponse":{"additionalProperties":false,"properties":{"catalogue":{"$ref":"#/components/schemas/entitler.api.v1.Catalogue"},"release":{"$ref":"#/components/schemas/entitler.api.v1.Release"}},"type":"object"},"entitler.api.v1.GetReleasedVersionsResponse":{"additionalProperties":false,"properties":{"nextAfterVersionId":{"type":"string"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ReleasedPlanVersion"},"type":"array"}},"required":["versions"],"type":"object"},"entitler.api.v1.GetReportResponse":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"features":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FeatureReport"},"type":"array"},"window":{"$ref":"#/components/schemas/entitler.api.v1.ReportWindow"}},"required":["features"],"type":"object"},"entitler.api.v1.GetRevenueSummaryResponse":{"additionalProperties":false,"properties":{"bridge":{"$ref":"#/components/schemas/entitler.api.v1.RevenueBridge"},"churn":{"$ref":"#/components/schemas/entitler.api.v1.Churn"},"churnBefore":{"$ref":"#/components/schemas/entitler.api.v1.Churn"},"collected":{"$ref":"#/components/schemas/entitler.api.v1.Collected"},"collectedBefore":{"$ref":"#/components/schemas/entitler.api.v1.Collected"},"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customersAtStart":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"payingCustomers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"payingCustomersAtStart":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planMoves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanMoves"},"type":"array"},"planMovesTruncated":{"type":"boolean"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanRevenue"},"type":"array"},"points":{"items":{"$ref":"#/components/schemas/entitler.api.v1.RevenuePoint"},"type":"array"},"recurring":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"},"window":{"$ref":"#/components/schemas/entitler.api.v1.OverviewWindow"}},"required":["recurring","points","customers","customersAtStart","payingCustomers","payingCustomersAtStart","plans","planMoves","planMovesTruncated"],"type":"object"},"entitler.api.v1.GetRolloutResponse":{"additionalProperties":false,"properties":{"rollout":{"$ref":"#/components/schemas/entitler.api.v1.Rollout"}},"type":"object"},"entitler.api.v1.GetTrackListingsResponse":{"additionalProperties":false,"properties":{"listings":{"$ref":"#/components/schemas/entitler.api.v1.CatalogueListings"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"}},"type":"object"},"entitler.api.v1.GetTrackResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.GetVoucherBatchResponse":{"additionalProperties":false,"properties":{"batch":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"}},"type":"object"},"entitler.api.v1.GetWebhookEndpointResponse":{"additionalProperties":false,"properties":{"endpoint":{"$ref":"#/components/schemas/entitler.api.v1.WebhookEndpoint"}},"type":"object"},"entitler.api.v1.GiftOffer":{"additionalProperties":false,"properties":{"batchId":{"type":"string"},"batchKey":{"type":"string"},"name":{"type":"string"},"periodId":{"type":"string"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planId":{"type":"string"},"planVersion":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"price":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"redeemBy":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"redeemWithinDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["batchId","batchKey","name","planId","periodId","periods","planVersion"],"type":"object"},"entitler.api.v1.GiveWaitingCreditRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"featureKeys":{"items":{"type":"string"},"type":"array"},"memberId":{"type":"string"},"reason":{"type":"string"},"servedSince":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"waived":{"type":"boolean"}},"type":"object"},"entitler.api.v1.GiveWaitingCreditResponse":{"additionalProperties":false,"properties":{"credit":{"$ref":"#/components/schemas/entitler.api.v1.WaitingCredit"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["revision"],"type":"object"},"entitler.api.v1.GoogleConnection":{"additionalProperties":false,"properties":{"packageName":{"type":"string"}},"type":"object"},"entitler.api.v1.GoogleListingIds":{"additionalProperties":false,"properties":{"basePlanId":{"type":"string"},"offerId":{"type":"string"},"productId":{"type":"string"},"purchaseOptionId":{"type":"string"}},"required":["productId"],"type":"object"},"entitler.api.v1.GoogleListingIds-Input":{"additionalProperties":false,"properties":{"basePlanId":{"type":"string"},"offerId":{"type":"string"},"productId":{"type":"string"},"purchaseOptionId":{"type":"string"}},"type":"object"},"entitler.api.v1.Grant":{"additionalProperties":false,"properties":{"featureKey":{"type":"string"},"from":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"grantedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"id":{"type":"string"},"reason":{"type":"string"},"revokeReason":{"type":"string"},"revokedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"revokedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"value":{"$ref":"#/components/schemas/entitler.api.v1.GrantValue"}},"required":["id","featureKey","from","reason"],"type":"object"},"entitler.api.v1.GrantSource":{"additionalProperties":false,"properties":{"grantId":{"type":"string"},"throughFeatureKey":{"type":"string"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"}},"required":["grantId"],"type":"object"},"entitler.api.v1.GrantValue":{"additionalProperties":false,"properties":{"limit":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"on":{"$ref":"#/components/schemas/entitler.api.v1.SwitchOn"}},"type":"object"},"entitler.api.v1.GroupSource":{"additionalProperties":false,"properties":{"featureKeys":{"items":{"type":"string"},"type":"array"}},"required":["featureKeys"],"type":"object"},"entitler.api.v1.GuestLink":{"additionalProperties":false,"properties":{"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"link":{"type":"string"},"projectId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["projectId","link","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.GuideArea":{"enum":["GUIDE_AREA_UNSPECIFIED","GUIDE_AREA_LIVE","GUIDE_AREA_USAGE","GUIDE_AREA_PATHS","GUIDE_AREA_PROVIDERS"],"type":"string"},"entitler.api.v1.GuideStart":{"enum":["GUIDE_START_UNSPECIFIED","GUIDE_START_SAMPLE","GUIDE_START_TEMPLATE","GUIDE_START_SCRATCH"],"type":"string"},"entitler.api.v1.HeartbeatDeviceSessionRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.HeartbeatDeviceSessionResponse":{"additionalProperties":false,"properties":{"endReason":{"$ref":"#/components/schemas/entitler.api.v1.SessionEndReason"},"endedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"live":{"type":"boolean"},"session":{"$ref":"#/components/schemas/entitler.api.v1.DeviceSession"}},"required":["live"],"type":"object"},"entitler.api.v1.Hold":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createdAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"expiresAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"externalId":{"type":"string"},"featureKey":{"type":"string"},"id":{"type":"string"},"memberExternalId":{"type":"string"},"memberId":{"type":"string"},"settledAmount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/entitler.api.v1.HoldState"},"usageId":{"type":"string"},"zone":{"type":"string"}},"required":["id","externalId","featureKey","amount","state","expiresAtMs","createdAtMs","decimals","currency"],"type":"object"},"entitler.api.v1.HoldState":{"enum":["HOLD_STATE_UNSPECIFIED","HOLD_STATE_OPEN","HOLD_STATE_EXPIRED","HOLD_STATE_SETTLED","HOLD_STATE_RELEASED"],"type":"string"},"entitler.api.v1.HoldsCondition":{"additionalProperties":false,"properties":{"cohortIds":{"items":{"type":"string"},"type":"array"},"planIds":{"items":{"type":"string"},"type":"array"}},"required":["planIds","cohortIds"],"type":"object"},"entitler.api.v1.HoldsCondition-Input":{"additionalProperties":false,"properties":{"cohortIds":{"items":{"type":"string"},"type":"array"},"planIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.IdentityProvider":{"additionalProperties":false,"properties":{"algorithms":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityTokenAlgorithm"},"type":"array"},"audience":{"type":"string"},"autoRegister":{"type":"boolean"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"enabled":{"type":"boolean"},"environmentId":{"type":"string"},"id":{"type":"string"},"issuer":{"type":"string"},"jwksUrl":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"scopes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProviderScope"},"type":"array"},"subjectClaim":{"type":"string"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","projectId","environmentId","name","issuer","jwksUrl","audience","algorithms","subjectClaim","scopes","autoRegister","enabled","revision","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.IdentityProviderScope":{"enum":["IDENTITY_PROVIDER_SCOPE_UNSPECIFIED","IDENTITY_PROVIDER_SCOPE_ENTITLEMENTS_READ","IDENTITY_PROVIDER_SCOPE_USAGE_READ","IDENTITY_PROVIDER_SCOPE_USAGE_WRITE","IDENTITY_PROVIDER_SCOPE_BILLING_SELF","IDENTITY_PROVIDER_SCOPE_CUSTOMERS_REGISTER"],"type":"string"},"entitler.api.v1.IdentityProviderScopeList":{"additionalProperties":false,"properties":{"scopes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProviderScope"},"type":"array"}},"type":"object"},"entitler.api.v1.IdentityTokenAlgorithm":{"enum":["IDENTITY_TOKEN_ALGORITHM_UNSPECIFIED","IDENTITY_TOKEN_ALGORITHM_ES256","IDENTITY_TOKEN_ALGORITHM_EDDSA","IDENTITY_TOKEN_ALGORITHM_RS256","IDENTITY_TOKEN_ALGORITHM_RS384","IDENTITY_TOKEN_ALGORITHM_RS512","IDENTITY_TOKEN_ALGORITHM_PS256","IDENTITY_TOKEN_ALGORITHM_PS384","IDENTITY_TOKEN_ALGORITHM_PS512","IDENTITY_TOKEN_ALGORITHM_ES384","IDENTITY_TOKEN_ALGORITHM_ES512"],"type":"string"},"entitler.api.v1.IdentityTokenAlgorithmList":{"additionalProperties":false,"properties":{"algorithms":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityTokenAlgorithm"},"type":"array"}},"type":"object"},"entitler.api.v1.Image":{"additionalProperties":false,"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"entitler.api.v1.ImpactKind":{"enum":["IMPACT_KIND_UNSPECIFIED","IMPACT_KIND_GAINS","IMPACT_KIND_LOSES","IMPACT_KIND_CHANGES"],"type":"string"},"entitler.api.v1.ImportAllowance":{"additionalProperties":false,"properties":{"limit":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"remaining":{"$ref":"#/components/schemas/entitler.common.v1.Limit"}},"type":"object"},"entitler.api.v1.ImportCurrencyMarket":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"marketId":{"type":"string"}},"type":"object"},"entitler.api.v1.ImportCurrencyMarkets":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"marketIds":{"items":{"type":"string"},"type":"array"}},"required":["currency","marketIds"],"type":"object"},"entitler.api.v1.ImportFailure":{"enum":["IMPORT_FAILURE_UNSPECIFIED","IMPORT_FAILURE_CONNECTION_GONE","IMPORT_FAILURE_CONNECTION_UNREADABLE","IMPORT_FAILURE_PROVIDER_REFUSED","IMPORT_FAILURE_ABANDONED"],"type":"string"},"entitler.api.v1.ImportFinding":{"enum":["IMPORT_FINDING_UNSPECIFIED","IMPORT_FINDING_UNLISTED_PRICE","IMPORT_FINDING_SEVERAL_PLANS","IMPORT_FINDING_DISCOUNT","IMPORT_FINDING_METERED_PRICE","IMPORT_FINDING_OUTSIDE_SCHEDULE","IMPORT_FINDING_SEND_INVOICE","IMPORT_FINDING_CURRENCY_CONFLICT","IMPORT_FINDING_MARKET_CONFLICT"],"type":"string"},"entitler.api.v1.ImportKind":{"enum":["IMPORT_KIND_UNSPECIFIED","IMPORT_KIND_STRIPE_CUSTOMERS","IMPORT_KIND_APP_STORE_TRANSACTIONS"],"type":"string"},"entitler.api.v1.ImportOutcome":{"enum":["IMPORT_OUTCOME_UNSPECIFIED","IMPORT_OUTCOME_REGISTERED","IMPORT_OUTCOME_LINKED","IMPORT_OUTCOME_ALREADY_LINKED","IMPORT_OUTCOME_WOULD_REGISTER","IMPORT_OUTCOME_WOULD_LINK","IMPORT_OUTCOME_UNMATCHED","IMPORT_OUTCOME_DUPLICATE","IMPORT_OUTCOME_CONFLICT","IMPORT_OUTCOME_OVER_LIMIT","IMPORT_OUTCOME_REFUSED","IMPORT_OUTCOME_NOT_FOUND"],"type":"string"},"entitler.api.v1.ImportPair":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"providerRef":{"type":"string"}},"type":"object"},"entitler.api.v1.ImportPairs":{"additionalProperties":false,"properties":{"pairs":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportPair"},"type":"array"}},"type":"object"},"entitler.api.v1.ImportPeriodMatch":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"periodId":{"type":"string"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.PeriodUnit"}},"required":["count","unit"],"type":"object"},"entitler.api.v1.ImportResult":{"additionalProperties":false,"properties":{"customerId":{"type":"string"},"externalId":{"type":"string"},"findings":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportFinding"},"type":"array"},"outcome":{"$ref":"#/components/schemas/entitler.api.v1.ImportOutcome"},"position":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"providerRef":{"type":"string"},"recordedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["position","providerRef","outcome","findings","recordedAt"],"type":"object"},"entitler.api.v1.ImportResultSortField":{"enum":["IMPORT_RESULT_SORT_FIELD_UNSPECIFIED","IMPORT_RESULT_SORT_FIELD_POSITION"],"type":"string"},"entitler.api.v1.ImportSortField":{"enum":["IMPORT_SORT_FIELD_UNSPECIFIED","IMPORT_SORT_FIELD_STARTED"],"type":"string"},"entitler.api.v1.ImportSource":{"enum":["IMPORT_SOURCE_UNSPECIFIED","IMPORT_SOURCE_METADATA_KEY","IMPORT_SOURCE_CUSTOMER_ID","IMPORT_SOURCE_PAIRS","IMPORT_SOURCE_NOTIFICATION_HISTORY"],"type":"string"},"entitler.api.v1.ImportState":{"enum":["IMPORT_STATE_UNSPECIFIED","IMPORT_STATE_RUNNING","IMPORT_STATE_FINISHED","IMPORT_STATE_FAILED"],"type":"string"},"entitler.api.v1.ImportStripeCatalogueRequest":{"additionalProperties":false,"properties":{"idempotencyKey":{"type":"string"},"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportCurrencyMarket"},"type":"array"},"newProduct":{"$ref":"#/components/schemas/entitler.api.v1.NewImportProduct"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportedPlanChoice"},"type":"array"},"productId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ImportStripeCatalogueResponse":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"createdPeriodIds":{"items":{"type":"string"},"type":"array"},"listed":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportedPlan"},"type":"array"},"releaseIds":{"items":{"type":"string"},"type":"array"},"skippedPriceIds":{"items":{"type":"string"},"type":"array"}},"required":["changeId","releaseIds","createdPeriodIds","plans","skippedPriceIds","listed"],"type":"object"},"entitler.api.v1.ImportedBands":{"additionalProperties":false,"properties":{"bands":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PriceBand"},"type":"array"}},"required":["bands"],"type":"object"},"entitler.api.v1.ImportedPeriod":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.PeriodUnit"}},"required":["count","unit"],"type":"object"},"entitler.api.v1.ImportedPlan":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"productId":{"type":"string"},"versions":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["productId","planId","versions"],"type":"object"},"entitler.api.v1.ImportedPlanChoice":{"additionalProperties":false,"properties":{"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"productId":{"type":"string"}},"type":"object"},"entitler.api.v1.ImportedPrice":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"bands":{"$ref":"#/components/schemas/entitler.api.v1.ImportedBands"},"created":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"listed":{"type":"boolean"},"period":{"$ref":"#/components/schemas/entitler.api.v1.ImportedPeriod"},"priceId":{"type":"string"},"tax":{"$ref":"#/components/schemas/entitler.api.v1.ListingTaxBehaviour"},"unitAmount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["priceId","currency","tax","created","active","listed"],"type":"object"},"entitler.api.v1.ImportedProduct":{"additionalProperties":false,"properties":{"active":{"type":"boolean"},"droppedVersions":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"listed":{"type":"boolean"},"name":{"type":"string"},"productId":{"type":"string"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportedVersion"},"type":"array"}},"required":["productId","name","active","versions","droppedVersions","listed"],"type":"object"},"entitler.api.v1.ImportedVersion":{"additionalProperties":false,"properties":{"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportedPrice"},"type":"array"}},"required":["prices"],"type":"object"},"entitler.api.v1.InAppPurchaseKey":{"additionalProperties":false,"properties":{"issuerId":{"type":"string"},"keyId":{"type":"string"},"privateKey":{"type":"string"}},"type":"object"},"entitler.api.v1.InAppPurchaseKeyIds":{"additionalProperties":false,"properties":{"issuerId":{"type":"string"},"keyId":{"type":"string"}},"required":["issuerId","keyId"],"type":"object"},"entitler.api.v1.IndexFloor":{"enum":["INDEX_FLOOR_UNSPECIFIED","INDEX_FLOOR_NEVER_FALLS","INDEX_FLOOR_FOLLOWS"],"type":"string"},"entitler.api.v1.IndexValue":{"additionalProperties":false,"properties":{"appliedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"changeThousandths":{"format":"int32","type":"integer"},"indexKey":{"type":"string"},"month":{"type":"string"},"recordedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["indexKey","month","changeThousandths","recordedAt"],"type":"object"},"entitler.api.v1.Indexation":{"additionalProperties":false,"properties":{"everyMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"floor":{"$ref":"#/components/schemas/entitler.api.v1.IndexFloor"},"indexKey":{"type":"string"}},"required":["indexKey","everyMonths","floor"],"type":"object"},"entitler.api.v1.Indexation-Input":{"additionalProperties":false,"properties":{"everyMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"floor":{"$ref":"#/components/schemas/entitler.api.v1.IndexFloor"},"indexKey":{"type":"string"}},"type":"object"},"entitler.api.v1.InstalmentPlan":{"additionalProperties":false,"properties":{"amountLeft":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"paid":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"total":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["paid","total"],"type":"object"},"entitler.api.v1.IssueAppAccountTokenRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.IssueAppAccountTokenResponse":{"additionalProperties":false,"properties":{"appAccountToken":{"type":"string"}},"required":["appAccountToken"],"type":"object"},"entitler.api.v1.IssueDeviceCodeRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.IssueDeviceCodeResponse":{"additionalProperties":false,"properties":{"codes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCode"},"type":"array"}},"required":["codes"],"type":"object"},"entitler.api.v1.JoinChannel":{"enum":["JOIN_CHANNEL_UNSPECIFIED","JOIN_CHANNEL_DOMAIN","JOIN_CHANNEL_SSO","JOIN_CHANNEL_GUEST_LINK"],"type":"string"},"entitler.api.v1.JoinRequest":{"additionalProperties":false,"properties":{"channel":{"$ref":"#/components/schemas/entitler.api.v1.JoinChannel"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"profile":{"$ref":"#/components/schemas/entitler.api.v1.Profile"},"projectId":{"type":"string"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","channel","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.Key":{"additionalProperties":false,"properties":{"allowedOrigins":{"items":{"type":"string"},"type":"array"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"environmentKind":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentKind"},"expiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"exposure":{"$ref":"#/components/schemas/entitler.api.v1.KeyExposure"},"id":{"type":"string"},"name":{"type":"string"},"permissions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Permission"},"type":"array"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"scope":{"$ref":"#/components/schemas/entitler.api.v1.KeyScope"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"version":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","environmentKind","name","exposure","permissions","allowedOrigins","version","revision","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.KeyExposure":{"enum":["KEY_EXPOSURE_UNSPECIFIED","KEY_EXPOSURE_SECRET","KEY_EXPOSURE_PUBLISHABLE"],"type":"string"},"entitler.api.v1.KeyPermission":{"additionalProperties":false,"properties":{"permission":{"$ref":"#/components/schemas/entitler.api.v1.Permission"},"publishable":{"type":"boolean"},"teamOnly":{"type":"boolean"}},"required":["permission","publishable","teamOnly"],"type":"object"},"entitler.api.v1.KeyScope":{"additionalProperties":false,"properties":{"environment":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentKeyScope"},"project":{"$ref":"#/components/schemas/entitler.api.v1.ProjectKeyScope"},"team":{"$ref":"#/components/schemas/entitler.api.v1.TeamKeyScope"}},"type":"object"},"entitler.api.v1.KeyScope-Input":{"additionalProperties":false,"properties":{"environment":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentKeyScope-Input"},"project":{"$ref":"#/components/schemas/entitler.api.v1.ProjectKeyScope-Input"},"team":{"$ref":"#/components/schemas/entitler.api.v1.TeamKeyScope"}},"type":"object"},"entitler.api.v1.KeypadDevice":{"additionalProperties":false,"properties":{"assignedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customerExternalId":{"type":"string"},"digits":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDigits"},"externalId":{"type":"string"},"id":{"type":"string"},"productId":{"type":"string"},"registeredAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"retiredAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","externalId","digits","registeredAt"],"type":"object"},"entitler.api.v1.KeypadDigits":{"enum":["KEYPAD_DIGITS_UNSPECIFIED","KEYPAD_DIGITS_FULL","KEYPAD_DIGITS_RESTRICTED"],"type":"string"},"entitler.api.v1.LatestMove":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customerId":{"type":"string"},"due":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"externalId":{"type":"string"},"fromPlanId":{"type":"string"},"fromQuantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.MoveKind"},"moveId":{"type":"string"},"name":{"type":"string"},"planId":{"type":"string"},"productId":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"recurringChange":{"$ref":"#/components/schemas/entitler.api.v1.RecurringChange"}},"required":["moveId","customerId","kind","at"],"type":"object"},"entitler.api.v1.LeftFor":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planId":{"type":"string"}},"required":["customers"],"type":"object"},"entitler.api.v1.LiftDeviceLockoutRequest":{"additionalProperties":false,"properties":{"kind":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimitKind"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.LiftDeviceLockoutResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.LimitCell":{"additionalProperties":false,"properties":{"featureKey":{"type":"string"},"marketId":{"type":"string"}},"required":["featureKey","marketId"],"type":"object"},"entitler.api.v1.ListAlertsResponse":{"additionalProperties":false,"properties":{"alerts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderAlert"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["alerts"],"type":"object"},"entitler.api.v1.ListAppStoreOffersResponse":{"additionalProperties":false,"properties":{"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOffer"},"type":"array"}},"required":["offers"],"type":"object"},"entitler.api.v1.ListAttentionResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"entries":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AttentionEntry"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["entries","asOf"],"type":"object"},"entitler.api.v1.ListAttributeVersionsResponse":{"additionalProperties":false,"properties":{"truncated":{"type":"boolean"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedAttributeVersion"},"type":"array"}},"required":["versions","truncated"],"type":"object"},"entitler.api.v1.ListAvailableOffersResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AvailableOffer"},"type":"array"},"truncated":{"type":"boolean"}},"required":["offers","asOf","truncated"],"type":"object"},"entitler.api.v1.ListAvailablePlansResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customerId":{"type":"string"},"directions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DirectionToPlan"},"type":"array"},"grants":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Grant"},"type":"array"},"options":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanOption"},"type":"array"},"subscriptions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Subscription"},"type":"array"}},"required":["options","asOf","directions","subscriptions","grants"],"type":"object"},"entitler.api.v1.ListCalendarVersionsResponse":{"additionalProperties":false,"properties":{"nextYearMissing":{"type":"boolean"},"truncated":{"type":"boolean"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedCalendarVersion"},"type":"array"}},"required":["versions","truncated","nextYearMissing"],"type":"object"},"entitler.api.v1.ListChangesRequest":{"additionalProperties":false,"properties":{"after":{"type":"string"},"direction":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"},"pageSize":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"sort":{"$ref":"#/components/schemas/entitler.api.v1.ChangeSortField"},"states":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ChangeState"},"type":"array"}},"type":"object"},"entitler.api.v1.ListChangesResponse":{"additionalProperties":false,"properties":{"changes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Change"},"type":"array"},"next":{"type":"string"}},"required":["changes"],"type":"object"},"entitler.api.v1.ListChargesResponse":{"additionalProperties":false,"properties":{"charges":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Charge"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["charges"],"type":"object"},"entitler.api.v1.ListCheckActivityResponse":{"additionalProperties":false,"properties":{"activity":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CheckActivity"},"type":"array"}},"required":["activity"],"type":"object"},"entitler.api.v1.ListCohortsResponse":{"additionalProperties":false,"properties":{"cohorts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Cohort"},"type":"array"},"next":{"type":"string"}},"required":["cohorts"],"type":"object"},"entitler.api.v1.ListConnectionsResponse":{"additionalProperties":false,"properties":{"connections":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Connection"},"type":"array"}},"required":["connections"],"type":"object"},"entitler.api.v1.ListCurrenciesResponse":{"additionalProperties":false,"properties":{"currencies":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Currency"},"type":"array"}},"required":["currencies"],"type":"object"},"entitler.api.v1.ListCustomerDevicesResponse":{"additionalProperties":false,"properties":{"devices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Device"},"type":"array"},"inUse":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCount"},"lockouts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DeviceLockout"},"type":"array"},"nextPageToken":{"type":"string"},"signedIn":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCount"}},"required":["devices","lockouts"],"type":"object"},"entitler.api.v1.ListCustomerMembersResponse":{"additionalProperties":false,"properties":{"memberCount":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"memberLimit":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"members":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMember"},"type":"array"},"next":{"type":"string"},"seats":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["members","memberCount"],"type":"object"},"entitler.api.v1.ListCustomerSegmentsResponse":{"additionalProperties":false,"properties":{"segments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerSegment"},"type":"array"}},"required":["segments"],"type":"object"},"entitler.api.v1.ListCustomerUsageResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customer":{"$ref":"#/components/schemas/entitler.api.v1.EntitledCustomer"},"entries":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageLogEntry"},"type":"array"},"features":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FeatureUsage"},"type":"array"},"member":{"$ref":"#/components/schemas/entitler.api.v1.EntitledMember"},"metersStartAgainAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"nextPageToken":{"type":"string"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"}},"required":["asOf","features","entries"],"type":"object"},"entitler.api.v1.ListCustomersResponse":{"additionalProperties":false,"properties":{"customers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedCustomer"},"type":"array"},"next":{"type":"string"},"searchReductions":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SearchReduction"},"type":"array"}},"required":["customers","searchReductions"],"type":"object"},"entitler.api.v1.ListDeviceCodesResponse":{"additionalProperties":false,"properties":{"codes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCode"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["codes"],"type":"object"},"entitler.api.v1.ListDevicesResponse":{"additionalProperties":false,"properties":{"devices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDevice"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["devices"],"type":"object"},"entitler.api.v1.ListEntitlementsResponse":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customer":{"$ref":"#/components/schemas/entitler.api.v1.EntitledCustomer"},"entitlements":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Entitlement"},"type":"array"},"member":{"$ref":"#/components/schemas/entitler.api.v1.EntitledMember"},"nextChangeAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"},"uncountedLimits":{"items":{"type":"string"},"type":"array"},"zone":{"type":"string"}},"required":["entitlements","asOf","uncountedLimits"],"type":"object"},"entitler.api.v1.ListEnvironmentsResponse":{"additionalProperties":false,"properties":{"environments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Environment"},"type":"array"}},"required":["environments"],"type":"object"},"entitler.api.v1.ListExchangeRatesResponse":{"additionalProperties":false,"properties":{"publishedOn":{"type":"string"},"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ExchangeRate"},"type":"array"}},"required":["rates"],"type":"object"},"entitler.api.v1.ListFeatureCustomersResponse":{"additionalProperties":false,"properties":{"customers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FeatureCustomer"},"type":"array"},"nextPageToken":{"type":"string"},"window":{"$ref":"#/components/schemas/entitler.api.v1.ReportWindow"}},"required":["customers"],"type":"object"},"entitler.api.v1.ListFeatureVersionsResponse":{"additionalProperties":false,"properties":{"truncated":{"type":"boolean"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedFeatureVersion"},"type":"array"}},"required":["versions","truncated"],"type":"object"},"entitler.api.v1.ListFeaturesOnSaleResponse":{"additionalProperties":false,"properties":{"features":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Feature"},"type":"array"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"}},"required":["features"],"type":"object"},"entitler.api.v1.ListFeaturesResponse":{"additionalProperties":false,"properties":{"counts":{"$ref":"#/components/schemas/entitler.api.v1.FeatureCounts"},"features":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Feature"},"type":"array"},"searchReductions":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SearchReduction"},"type":"array"}},"required":["features","searchReductions"],"type":"object"},"entitler.api.v1.ListGiftsResponse":{"additionalProperties":false,"properties":{"gifts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.GiftOffer"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["gifts"],"type":"object"},"entitler.api.v1.ListIdentityProvidersResponse":{"additionalProperties":false,"properties":{"providers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProvider"},"type":"array"}},"required":["providers"],"type":"object"},"entitler.api.v1.ListImportResultsResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"results":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportResult"},"type":"array"}},"required":["results"],"type":"object"},"entitler.api.v1.ListImportsResponse":{"additionalProperties":false,"properties":{"imports":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderImport"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["imports"],"type":"object"},"entitler.api.v1.ListIndexValuesResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"values":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IndexValue"},"type":"array"}},"required":["values"],"type":"object"},"entitler.api.v1.ListKeyPermissionsResponse":{"additionalProperties":false,"properties":{"permissions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.KeyPermission"},"type":"array"}},"required":["permissions"],"type":"object"},"entitler.api.v1.ListKeysRequest":{"additionalProperties":false,"properties":{"after":{"type":"string"},"environment":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentKeyScope-Input"},"pageSize":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"project":{"$ref":"#/components/schemas/entitler.api.v1.ProjectKeyScope-Input"},"team":{"$ref":"#/components/schemas/entitler.api.v1.TeamKeyScope"}},"type":"object"},"entitler.api.v1.ListKeysResponse":{"additionalProperties":false,"properties":{"keys":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Key"},"type":"array"},"next":{"type":"string"}},"required":["keys"],"type":"object"},"entitler.api.v1.ListLatestMovesResponse":{"additionalProperties":false,"properties":{"moves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.LatestMove"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["moves"],"type":"object"},"entitler.api.v1.ListMarketsResponse":{"additionalProperties":false,"properties":{"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Market"},"type":"array"},"searchReductions":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SearchReduction"},"type":"array"}},"required":["markets","searchReductions"],"type":"object"},"entitler.api.v1.ListMovesResponse":{"additionalProperties":false,"properties":{"moves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMove"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["moves"],"type":"object"},"entitler.api.v1.ListOffersResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedOffer"},"type":"array"}},"required":["offers"],"type":"object"},"entitler.api.v1.ListPeriodsResponse":{"additionalProperties":false,"properties":{"periods":{"items":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriod"},"type":"array"}},"required":["periods"],"type":"object"},"entitler.api.v1.ListPlanVersionsResponse":{"additionalProperties":false,"properties":{"truncated":{"type":"boolean"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedPlanVersion"},"type":"array"}},"required":["versions","truncated"],"type":"object"},"entitler.api.v1.ListPlansResponse":{"additionalProperties":false,"properties":{"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Plan"},"type":"array"},"searchReductions":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SearchReduction"},"type":"array"}},"required":["plans","searchReductions"],"type":"object"},"entitler.api.v1.ListPositionsResponse":{"additionalProperties":false,"properties":{"positions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPosition"},"type":"array"}},"required":["positions"],"type":"object"},"entitler.api.v1.ListProjectsResponse":{"additionalProperties":false,"properties":{"availability":{"$ref":"#/components/schemas/entitler.api.v1.ProjectAvailability"},"canCreate":{"type":"boolean"},"next":{"type":"string"},"projects":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Project"},"type":"array"}},"required":["projects","availability","canCreate"],"type":"object"},"entitler.api.v1.ListProviderStateResponse":{"additionalProperties":false,"properties":{"providers":{"$ref":"#/components/schemas/entitler.api.v1.CustomerProviders"}},"type":"object"},"entitler.api.v1.ListPurchaseTransfersResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"transfers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PurchaseTransfer"},"type":"array"}},"required":["transfers"],"type":"object"},"entitler.api.v1.ListReferralsResponse":{"additionalProperties":false,"properties":{"next":{"type":"string"},"referrals":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Referral"},"type":"array"}},"required":["referrals"],"type":"object"},"entitler.api.v1.ListRefusedPaymentsResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"payments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.RefusedPayment"},"type":"array"}},"required":["payments"],"type":"object"},"entitler.api.v1.ListReleasesResponse":{"additionalProperties":false,"properties":{"headNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"nextAfterNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"releases":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Release"},"type":"array"}},"required":["releases"],"type":"object"},"entitler.api.v1.ListRolloutsResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"rollouts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Rollout"},"type":"array"}},"required":["rollouts"],"type":"object"},"entitler.api.v1.ListSegmentVersionsResponse":{"additionalProperties":false,"properties":{"truncated":{"type":"boolean"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedSegmentVersion"},"type":"array"}},"required":["versions","truncated"],"type":"object"},"entitler.api.v1.ListTracksResponse":{"additionalProperties":false,"properties":{"tracks":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Track"},"type":"array"}},"required":["tracks"],"type":"object"},"entitler.api.v1.ListVoucherBatchesResponse":{"additionalProperties":false,"properties":{"batches":{"items":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["batches"],"type":"object"},"entitler.api.v1.ListVouchersResponse":{"additionalProperties":false,"properties":{"nextPageToken":{"type":"string"},"vouchers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Voucher"},"type":"array"}},"required":["vouchers"],"type":"object"},"entitler.api.v1.ListWaitingCreditsResponse":{"additionalProperties":false,"properties":{"credits":{"items":{"$ref":"#/components/schemas/entitler.api.v1.WaitingCredit"},"type":"array"},"nextPageToken":{"type":"string"}},"required":["credits"],"type":"object"},"entitler.api.v1.ListedAttributeVersion":{"additionalProperties":false,"properties":{"authorship":{"$ref":"#/components/schemas/entitler.api.v1.VersionAuthorship"},"version":{"$ref":"#/components/schemas/entitler.api.v1.AttributeVersion"}},"type":"object"},"entitler.api.v1.ListedCalendarVersion":{"additionalProperties":false,"properties":{"authorship":{"$ref":"#/components/schemas/entitler.api.v1.VersionAuthorship"},"released":{"type":"boolean"},"version":{"$ref":"#/components/schemas/entitler.api.v1.CalendarVersion"}},"required":["released"],"type":"object"},"entitler.api.v1.ListedCustomer":{"additionalProperties":false,"properties":{"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.CustomerKind"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListedPlan"},"type":"array"},"status":{"$ref":"#/components/schemas/entitler.api.v1.CustomerStatus"}},"required":["plans","kind"],"type":"object"},"entitler.api.v1.ListedFeatureVersion":{"additionalProperties":false,"properties":{"authorship":{"$ref":"#/components/schemas/entitler.api.v1.VersionAuthorship"},"version":{"$ref":"#/components/schemas/entitler.api.v1.FeatureVersion"}},"type":"object"},"entitler.api.v1.ListedOffer":{"additionalProperties":false,"properties":{"held":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"offer":{"$ref":"#/components/schemas/entitler.api.v1.Offer"},"taken":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["taken","held"],"type":"object"},"entitler.api.v1.ListedPlan":{"additionalProperties":false,"properties":{"byDefault":{"type":"boolean"},"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"productId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planKey","planName","versionNumber","byDefault"],"type":"object"},"entitler.api.v1.ListedPlanVersion":{"additionalProperties":false,"properties":{"authorship":{"$ref":"#/components/schemas/entitler.api.v1.VersionAuthorship"},"changeId":{"type":"string"},"firstReleaseNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","number"],"type":"object"},"entitler.api.v1.ListedSegmentVersion":{"additionalProperties":false,"properties":{"authorship":{"$ref":"#/components/schemas/entitler.api.v1.VersionAuthorship"},"version":{"$ref":"#/components/schemas/entitler.api.v1.SegmentVersion"}},"type":"object"},"entitler.api.v1.ListingCell":{"additionalProperties":false,"properties":{"created":{"type":"boolean"},"differences":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingPriceDifference"},"type":"array"},"ids":{"$ref":"#/components/schemas/entitler.api.v1.ListingIds"},"marketId":{"type":"string"},"periodId":{"type":"string"},"planId":{"type":"string"},"planVersionId":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.ListingPrice"},"setAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"setBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"state":{"$ref":"#/components/schemas/entitler.api.v1.ListingState"},"storeState":{"$ref":"#/components/schemas/entitler.api.v1.ListingStoreState"}},"required":["planId","planVersionId","state","differences","created","storeState"],"type":"object"},"entitler.api.v1.ListingCellInput":{"additionalProperties":false,"properties":{"ids":{"$ref":"#/components/schemas/entitler.api.v1.ListingIds-Input"},"marketId":{"type":"string"},"notSold":{"$ref":"#/components/schemas/entitler.api.v1.ListingNotSold"},"periodId":{"type":"string"},"planVersionId":{"type":"string"}},"type":"object"},"entitler.api.v1.ListingChannel":{"additionalProperties":false,"properties":{"cells":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingCell"},"type":"array"},"connectionId":{"type":"string"},"mode":{"$ref":"#/components/schemas/entitler.api.v1.ConnectionMode"},"name":{"type":"string"},"provider":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProvider"}},"required":["connectionId","provider","name","mode","cells"],"type":"object"},"entitler.api.v1.ListingChannelInput":{"additionalProperties":false,"properties":{"cells":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingCellInput"},"type":"array"},"connectionId":{"type":"string"}},"type":"object"},"entitler.api.v1.ListingIds":{"additionalProperties":false,"properties":{"apple":{"$ref":"#/components/schemas/entitler.api.v1.AppleListingIds"},"google":{"$ref":"#/components/schemas/entitler.api.v1.GoogleListingIds"},"stripe":{"$ref":"#/components/schemas/entitler.api.v1.StripeListingIds"}},"type":"object"},"entitler.api.v1.ListingIds-Input":{"additionalProperties":false,"properties":{"apple":{"$ref":"#/components/schemas/entitler.api.v1.AppleListingIds-Input"},"google":{"$ref":"#/components/schemas/entitler.api.v1.GoogleListingIds-Input"},"stripe":{"$ref":"#/components/schemas/entitler.api.v1.StripeListingIds-Input"}},"type":"object"},"entitler.api.v1.ListingMarket":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["id","key","name","currency"],"type":"object"},"entitler.api.v1.ListingNotSold":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ListingPrice":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"interval":{"$ref":"#/components/schemas/entitler.api.v1.ListingPriceInterval"},"intervalCount":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"tax":{"$ref":"#/components/schemas/entitler.api.v1.ListingTaxBehaviour"}},"required":["amount","currency","interval","intervalCount","tax"],"type":"object"},"entitler.api.v1.ListingPriceDifference":{"enum":["LISTING_PRICE_DIFFERENCE_UNSPECIFIED","LISTING_PRICE_DIFFERENCE_AMOUNT","LISTING_PRICE_DIFFERENCE_TAX","LISTING_PRICE_DIFFERENCE_TIERS"],"type":"string"},"entitler.api.v1.ListingPriceInterval":{"enum":["LISTING_PRICE_INTERVAL_UNSPECIFIED","LISTING_PRICE_INTERVAL_DAY","LISTING_PRICE_INTERVAL_WEEK","LISTING_PRICE_INTERVAL_MONTH","LISTING_PRICE_INTERVAL_YEAR"],"type":"string"},"entitler.api.v1.ListingState":{"enum":["LISTING_STATE_UNSPECIFIED","LISTING_STATE_LISTED","LISTING_STATE_NOT_SOLD","LISTING_STATE_BLANK"],"type":"string"},"entitler.api.v1.ListingStoreState":{"enum":["LISTING_STORE_STATE_UNSPECIFIED","LISTING_STORE_STATE_MISSING_METADATA","LISTING_STORE_STATE_WAITING_FOR_UPLOAD","LISTING_STORE_STATE_PROCESSING_CONTENT","LISTING_STORE_STATE_READY_TO_SUBMIT","LISTING_STORE_STATE_WAITING_FOR_REVIEW","LISTING_STORE_STATE_IN_REVIEW","LISTING_STORE_STATE_DEVELOPER_ACTION_NEEDED","LISTING_STORE_STATE_PENDING_BINARY_APPROVAL","LISTING_STORE_STATE_APPROVED","LISTING_STORE_STATE_DEVELOPER_REMOVED_FROM_SALE","LISTING_STORE_STATE_REMOVED_FROM_SALE","LISTING_STORE_STATE_REJECTED","LISTING_STORE_STATE_UNKNOWN"],"type":"string"},"entitler.api.v1.ListingTaxBehaviour":{"enum":["LISTING_TAX_BEHAVIOUR_UNSPECIFIED","LISTING_TAX_BEHAVIOUR_INCLUSIVE","LISTING_TAX_BEHAVIOUR_EXCLUSIVE"],"type":"string"},"entitler.api.v1.Market":{"additionalProperties":false,"properties":{"archivedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"countries":{"items":{"type":"string"},"type":"array"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"restOfWorld":{"type":"boolean"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"tax":{"$ref":"#/components/schemas/entitler.api.v1.MarketTax"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","projectId","key","name","currency","tax","countries","restOfWorld","createdAt","updatedAt","revision"],"type":"object"},"entitler.api.v1.MarketAmount":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"}},"type":"object"},"entitler.api.v1.MarketDetails":{"additionalProperties":false,"properties":{"countries":{"items":{"type":"string"},"type":"array"},"currency":{"type":"string"},"name":{"type":"string"},"restOfWorld":{"type":"boolean"},"tax":{"$ref":"#/components/schemas/entitler.api.v1.MarketTax"}},"type":"object"},"entitler.api.v1.MarketDiscount":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["marketId"],"type":"object"},"entitler.api.v1.MarketDiscount-Input":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"marketId":{"type":"string"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.MarketFilter":{"enum":["MARKET_FILTER_UNSPECIFIED","MARKET_FILTER_ACTIVE","MARKET_FILTER_ARCHIVED","MARKET_FILTER_ALL"],"type":"string"},"entitler.api.v1.MarketPlace":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"marketId":{"type":"string"}},"type":"object"},"entitler.api.v1.MarketTax":{"enum":["MARKET_TAX_UNSPECIFIED","MARKET_TAX_INCLUDED","MARKET_TAX_ADDED"],"type":"string"},"entitler.api.v1.Member":{"additionalProperties":false,"properties":{"access":{"$ref":"#/components/schemas/entitler.api.v1.Access"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"email":{"type":"string"},"id":{"type":"string"},"photo":{"$ref":"#/components/schemas/entitler.api.v1.Image"},"profile":{"$ref":"#/components/schemas/entitler.api.v1.Profile"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"userId":{"type":"string"}},"required":["id","teamId","createdAt","updatedAt","userId"],"type":"object"},"entitler.api.v1.Meter":{"additionalProperties":false,"properties":{"banked":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"held":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"remaining":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"resetsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"topUpLeft":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"topUpSpent":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"used":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["used","held","banked","topUpLeft","topUpSpent"],"type":"object"},"entitler.api.v1.MeterReset":{"additionalProperties":false,"properties":{"billingPeriod":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriodReset"},"window":{"$ref":"#/components/schemas/entitler.api.v1.MeterWindow"}},"type":"object"},"entitler.api.v1.MeterReset-Input":{"additionalProperties":false,"properties":{"billingPeriod":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriodReset"},"window":{"$ref":"#/components/schemas/entitler.api.v1.MeterWindow-Input"}},"type":"object"},"entitler.api.v1.MeterWindow":{"additionalProperties":false,"properties":{"anchor":{"$ref":"#/components/schemas/entitler.api.v1.WindowAnchor"},"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.WindowUnit"}},"required":["count","unit","anchor"],"type":"object"},"entitler.api.v1.MeterWindow-Input":{"additionalProperties":false,"properties":{"anchor":{"$ref":"#/components/schemas/entitler.api.v1.WindowAnchor"},"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.WindowUnit"}},"type":"object"},"entitler.api.v1.MinimumPer":{"enum":["MINIMUM_PER_UNSPECIFIED","MINIMUM_PER_DAY","MINIMUM_PER_PERIOD"],"type":"string"},"entitler.api.v1.MintedVoucher":{"additionalProperties":false,"properties":{"code":{"type":"string"},"voucher":{"$ref":"#/components/schemas/entitler.api.v1.Voucher"}},"required":["code"],"type":"object"},"entitler.api.v1.MoneyRefusal":{"enum":["MONEY_REFUSAL_UNSPECIFIED","MONEY_REFUSAL_REAL_MONEY_IN_TEST_ENVIRONMENT","MONEY_REFUSAL_TEST_MONEY_ON_REAL_MONEY_TRACK"],"type":"string"},"entitler.api.v1.MovableCohort":{"additionalProperties":false,"properties":{"cohort":{"$ref":"#/components/schemas/entitler.api.v1.CohortKey"},"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"defaultMove":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"planId":{"type":"string"}},"required":["planId","customers","defaultMove"],"type":"object"},"entitler.api.v1.MoveKind":{"enum":["MOVE_KIND_UNSPECIFIED","MOVE_KIND_SUBSCRIBED","MOVE_KIND_MOVED","MOVE_KIND_MOVE_BOOKED","MOVE_KIND_CANCELLED","MOVE_KIND_CANCEL_BOOKED","MOVE_KIND_PENDING_UNDONE","MOVE_KIND_PERIOD_CHANGED","MOVE_KIND_UNTIL_SET","MOVE_KIND_VERSION_MOVED","MOVE_KIND_VERSION_MOVE_SCHEDULED","MOVE_KIND_RENEWED","MOVE_KIND_ENDED","MOVE_KIND_ADD_ON_ADDED","MOVE_KIND_ADD_ON_QUANTITY_SET","MOVE_KIND_ADD_ON_REMOVED","MOVE_KIND_ADD_ON_MOVED","MOVE_KIND_ADD_ON_MOVE_BOOKED","MOVE_KIND_ADD_ON_MOVE_UNDONE","MOVE_KIND_GRANTED","MOVE_KIND_GRANT_REVOKED","MOVE_KIND_TRACK_ASSIGNED","MOVE_KIND_COLLECTION_SET","MOVE_KIND_AWAITING_PAYMENT","MOVE_KIND_PAYMENT_MISSED","MOVE_KIND_PAYMENT_RECORDED","MOVE_KIND_PAYMENT_REVERSED","MOVE_KIND_CHANGE_ACCEPTED","MOVE_KIND_CHANGE_NOT_ACCEPTED","MOVE_KIND_DISCOUNT_GIVEN","MOVE_KIND_DISCOUNT_ENDED","MOVE_KIND_DISCOUNT_WITHDRAWN","MOVE_KIND_DISCOUNT_APPLIED","MOVE_KIND_CHARGE_RAISED","MOVE_KIND_CHARGE_PAID","MOVE_KIND_CHARGE_REVERSED","MOVE_KIND_RENEWED_NOW","MOVE_KIND_PAYER_ADDED","MOVE_KIND_PAYER_ENDED","MOVE_KIND_PAUSED","MOVE_KIND_PAUSE_ENDED","MOVE_KIND_WITHDRAWN","MOVE_KIND_SUSPENDED","MOVE_KIND_RESUMED","MOVE_KIND_PURCHASE_PENDING","MOVE_KIND_PURCHASE_EXPIRED","MOVE_KIND_OWNED","MOVE_KIND_PAYER_SHARE_APPLIED","MOVE_KIND_VOUCHER_REDEEMED","MOVE_KIND_TRIAL_STARTED","MOVE_KIND_TRIAL_CONVERTED","MOVE_KIND_TRIAL_ENDED","MOVE_KIND_ADD_ON_QUANTITY_BOOKED","MOVE_KIND_VOUCHER_TAKEN_BACK","MOVE_KIND_WAITING_CREDITED","MOVE_KIND_WAITING_CREDIT_REMOVED","MOVE_KIND_GIFT_PAID","MOVE_KIND_PACK_BOUGHT","MOVE_KIND_TOP_UP_REVERSED"],"type":"string"},"entitler.api.v1.MovePolicies":{"additionalProperties":false,"properties":{"crossgrade":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy"},"downgrade":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy"},"longer":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy"},"shorter":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy"},"upgrade":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy"}},"type":"object"},"entitler.api.v1.MovePolicies-Input":{"additionalProperties":false,"properties":{"crossgrade":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy-Input"},"downgrade":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy-Input"},"longer":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy-Input"},"shorter":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy-Input"},"upgrade":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicy-Input"}},"type":"object"},"entitler.api.v1.MovePolicy":{"additionalProperties":false,"properties":{"bank":{"$ref":"#/components/schemas/entitler.api.v1.BankRule"},"overLimits":{"$ref":"#/components/schemas/entitler.api.v1.OverLimitsRule"},"proration":{"$ref":"#/components/schemas/entitler.api.v1.Proration"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.MoveTiming"}},"required":["timing","bank","overLimits"],"type":"object"},"entitler.api.v1.MovePolicy-Input":{"additionalProperties":false,"properties":{"bank":{"$ref":"#/components/schemas/entitler.api.v1.BankRule"},"overLimits":{"$ref":"#/components/schemas/entitler.api.v1.OverLimitsRule"},"proration":{"$ref":"#/components/schemas/entitler.api.v1.Proration-Input"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.MoveTiming"}},"type":"object"},"entitler.api.v1.MoveRule":{"additionalProperties":false,"properties":{"allowed":{"type":"boolean"},"custom":{"$ref":"#/components/schemas/entitler.api.v1.CustomMove"},"endsContract":{"type":"boolean"},"projectDefault":{"$ref":"#/components/schemas/entitler.api.v1.ProjectDefault"},"segmentKey":{"type":"string"}},"required":["allowed","endsContract"],"type":"object"},"entitler.api.v1.MoveRule-Input":{"additionalProperties":false,"properties":{"allowed":{"type":"boolean"},"custom":{"$ref":"#/components/schemas/entitler.api.v1.CustomMove-Input"},"endsContract":{"type":"boolean"},"projectDefault":{"$ref":"#/components/schemas/entitler.api.v1.ProjectDefault"},"segmentKey":{"type":"string"}},"type":"object"},"entitler.api.v1.MoveTiming":{"enum":["MOVE_TIMING_UNSPECIFIED","MOVE_TIMING_NOW_KEEP","MOVE_TIMING_NOW_NEW","MOVE_TIMING_PERIOD_END"],"type":"string"},"entitler.api.v1.MoveWhen":{"enum":["MOVE_WHEN_UNSPECIFIED","MOVE_WHEN_NOW","MOVE_WHEN_RENEWAL"],"type":"string"},"entitler.api.v1.NewIdentityProvider":{"additionalProperties":false,"properties":{"algorithms":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityTokenAlgorithm"},"type":"array"},"audience":{"type":"string"},"autoRegister":{"type":"boolean"},"enabled":{"type":"boolean"},"issuer":{"type":"string"},"jwksUrl":{"type":"string"},"name":{"type":"string"},"scopes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProviderScope"},"type":"array"},"subjectClaim":{"type":"string"}},"type":"object"},"entitler.api.v1.NewImportProduct":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.NewTrackSource":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"releaseId":{"type":"string"},"unreleased":{"$ref":"#/components/schemas/entitler.api.v1.Unreleased"}},"type":"object"},"entitler.api.v1.NextCharge":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"feeKey":{"type":"string"}},"required":["feeKey","direction","at"],"type":"object"},"entitler.api.v1.NoInnerWindow":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.NothingServed":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ObjectKind":{"enum":["OBJECT_KIND_UNSPECIFIED","OBJECT_KIND_PRODUCT","OBJECT_KIND_FEATURE","OBJECT_KIND_PLAN","OBJECT_KIND_PATH","OBJECT_KIND_ATTRIBUTE","OBJECT_KIND_CALENDAR","OBJECT_KIND_SEGMENT"],"type":"string"},"entitler.api.v1.ObjectRef":{"additionalProperties":false,"properties":{"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.ObjectKind"}},"required":["kind","id"],"type":"object"},"entitler.api.v1.Offer":{"additionalProperties":false,"properties":{"archivedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"content":{"$ref":"#/components/schemas/entitler.api.v1.OfferContent"},"id":{"type":"string"},"key":{"type":"string"},"metadata":{"$ref":"#/components/schemas/entitler.common.v1.Metadata"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","key","revision"],"type":"object"},"entitler.api.v1.OfferChoice":{"additionalProperties":false,"properties":{"offerKey":{"type":"string"},"value":{"$ref":"#/components/schemas/entitler.api.v1.OfferValue"}},"type":"object"},"entitler.api.v1.OfferCode":{"additionalProperties":false,"properties":{"code":{"type":"string"},"maxUses":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["code"],"type":"object"},"entitler.api.v1.OfferCode-Input":{"additionalProperties":false,"properties":{"code":{"type":"string"},"maxUses":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.OfferConditions":{"additionalProperties":false,"properties":{"endedWithinDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"holds":{"$ref":"#/components/schemas/entitler.api.v1.HoldsCondition"},"newToProduct":{"type":"boolean"},"segmentKey":{"type":"string"}},"required":["newToProduct"],"type":"object"},"entitler.api.v1.OfferConditions-Input":{"additionalProperties":false,"properties":{"endedWithinDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"holds":{"$ref":"#/components/schemas/entitler.api.v1.HoldsCondition-Input"},"newToProduct":{"type":"boolean"},"segmentKey":{"type":"string"}},"type":"object"},"entitler.api.v1.OfferContent":{"additionalProperties":false,"properties":{"availableFrom":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"availableUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"codes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferCode"},"type":"array"},"conditions":{"$ref":"#/components/schemas/entitler.api.v1.OfferConditions"},"discount":{"$ref":"#/components/schemas/entitler.api.v1.OfferDiscount"},"givenToSegmentKey":{"type":"string"},"limits":{"$ref":"#/components/schemas/entitler.api.v1.OfferLimits"},"name":{"type":"string"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.OfferPlan"},"referral":{"$ref":"#/components/schemas/entitler.api.v1.OfferReferral"}},"required":["name","codes"],"type":"object"},"entitler.api.v1.OfferContent-Input":{"additionalProperties":false,"properties":{"availableFrom":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"availableUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"codes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferCode-Input"},"type":"array"},"conditions":{"$ref":"#/components/schemas/entitler.api.v1.OfferConditions-Input"},"discount":{"$ref":"#/components/schemas/entitler.api.v1.OfferDiscount-Input"},"givenToSegmentKey":{"type":"string"},"limits":{"$ref":"#/components/schemas/entitler.api.v1.OfferLimits-Input"},"name":{"type":"string"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.OfferPlan-Input"},"referral":{"$ref":"#/components/schemas/entitler.api.v1.OfferReferral-Input"}},"type":"object"},"entitler.api.v1.OfferDiscount":{"additionalProperties":false,"properties":{"charges":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferFee"},"type":"array"},"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MarketDiscount"},"type":"array"},"minimumStayMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"periodIds":{"items":{"type":"string"},"type":"array"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planIds":{"items":{"type":"string"},"type":"array"},"setWhenGiven":{"$ref":"#/components/schemas/entitler.api.v1.DiscountKind"},"usagePrices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferUsagePrice"},"type":"array"}},"required":["markets","setWhenGiven","planIds","periodIds","fees","usagePrices"],"type":"object"},"entitler.api.v1.OfferDiscount-Input":{"additionalProperties":false,"properties":{"charges":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferFee-Input"},"type":"array"},"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MarketDiscount-Input"},"type":"array"},"minimumStayMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"periodIds":{"items":{"type":"string"},"type":"array"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planIds":{"items":{"type":"string"},"type":"array"},"setWhenGiven":{"$ref":"#/components/schemas/entitler.api.v1.DiscountKind"},"usagePrices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferUsagePrice-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.OfferFee":{"additionalProperties":false,"properties":{"feeKey":{"type":"string"},"planId":{"type":"string"}},"required":["planId","feeKey"],"type":"object"},"entitler.api.v1.OfferFee-Input":{"additionalProperties":false,"properties":{"feeKey":{"type":"string"},"planId":{"type":"string"}},"type":"object"},"entitler.api.v1.OfferLimits":{"additionalProperties":false,"properties":{"maxTaken":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"perCustomer":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["perCustomer"],"type":"object"},"entitler.api.v1.OfferLimits-Input":{"additionalProperties":false,"properties":{"maxTaken":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"perCustomer":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.OfferPlan":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"planId":{"type":"string"}},"required":["planId"],"type":"object"},"entitler.api.v1.OfferPlan-Input":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"planId":{"type":"string"}},"type":"object"},"entitler.api.v1.OfferRedemption":{"additionalProperties":false,"properties":{"code":{"type":"string"},"offerKey":{"type":"string"}},"type":"object"},"entitler.api.v1.OfferReferral":{"additionalProperties":false,"properties":{"friendOfferKeys":{"items":{"type":"string"},"type":"array"}},"required":["friendOfferKeys"],"type":"object"},"entitler.api.v1.OfferReferral-Input":{"additionalProperties":false,"properties":{"friendOfferKeys":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.OfferUsagePrice":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"usagePriceKey":{"type":"string"}},"required":["planId","usagePriceKey"],"type":"object"},"entitler.api.v1.OfferUsagePrice-Input":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"usagePriceKey":{"type":"string"}},"type":"object"},"entitler.api.v1.OfferValue":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.OnPurchase":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.OpenChange":{"additionalProperties":false,"properties":{"base":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"id":{"type":"string"},"name":{"type":"string"},"state":{"$ref":"#/components/schemas/entitler.api.v1.ChangeState"}},"required":["id","name","state"],"type":"object"},"entitler.api.v1.OpenGuestLinkRequest":{"additionalProperties":false,"properties":{"link":{"type":"string"}},"type":"object"},"entitler.api.v1.OpenGuestLinkResponse":{"additionalProperties":false,"properties":{"permissions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Permission"},"type":"array"},"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"},"team":{"$ref":"#/components/schemas/entitler.api.v1.Team"}},"required":["permissions"],"type":"object"},"entitler.api.v1.OptionKind":{"enum":["OPTION_KIND_UNSPECIFIED","OPTION_KIND_SUBSCRIBE","OPTION_KIND_MOVE","OPTION_KIND_ADD","OPTION_KIND_REPLACE"],"type":"string"},"entitler.api.v1.OriginList":{"additionalProperties":false,"properties":{"origins":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.OutcomeCount":{"additionalProperties":false,"properties":{"count":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"outcome":{"$ref":"#/components/schemas/entitler.api.v1.ImportOutcome"}},"required":["outcome","count"],"type":"object"},"entitler.api.v1.OverLimit":{"additionalProperties":false,"properties":{"featureKey":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.OverLimitKind"},"limit":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"used":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["featureKey","used","limit","kind"],"type":"object"},"entitler.api.v1.OverLimitKind":{"enum":["OVER_LIMIT_KIND_UNSPECIFIED","OVER_LIMIT_KIND_FEATURE","OVER_LIMIT_KIND_MEMBERS"],"type":"string"},"entitler.api.v1.OverLimitsRule":{"enum":["OVER_LIMITS_RULE_UNSPECIFIED","OVER_LIMITS_RULE_REFUSE","OVER_LIMITS_RULE_BOOK","OVER_LIMITS_RULE_ALLOW"],"type":"string"},"entitler.api.v1.OverviewRange":{"enum":["OVERVIEW_RANGE_UNSPECIFIED","OVERVIEW_RANGE_FOUR_WEEKS","OVERVIEW_RANGE_THREE_MONTHS","OVERVIEW_RANGE_TWELVE_MONTHS"],"type":"string"},"entitler.api.v1.OverviewWindow":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"fromDate":{"type":"string"},"previousStartsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"range":{"$ref":"#/components/schemas/entitler.api.v1.OverviewRange"},"rangeDefaulted":{"type":"boolean"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"toDate":{"type":"string"}},"required":["range","rangeDefaulted","fromDate","toDate","startsAt","previousStartsAt","asOf"],"type":"object"},"entitler.api.v1.Path":{"additionalProperties":false,"properties":{"back":{"$ref":"#/components/schemas/entitler.api.v1.MoveRule"},"forward":{"$ref":"#/components/schemas/entitler.api.v1.MoveRule"},"fromPlanId":{"type":"string"},"id":{"type":"string"},"rank":{"$ref":"#/components/schemas/entitler.api.v1.PathRank"},"requires":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"toPlanId":{"type":"string"}},"required":["id","toPlanId","rank"],"type":"object"},"entitler.api.v1.PathRank":{"enum":["PATH_RANK_UNSPECIFIED","PATH_RANK_LEVEL","PATH_RANK_FROM_HIGHER","PATH_RANK_TO_HIGHER"],"type":"string"},"entitler.api.v1.Pause":{"additionalProperties":false,"properties":{"daysLeftThisYear":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"startedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["startedAt","endsAt"],"type":"object"},"entitler.api.v1.PausePolicy":{"additionalProperties":false,"properties":{"maxDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"yearlyDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["maxDays"],"type":"object"},"entitler.api.v1.PausePolicy-Input":{"additionalProperties":false,"properties":{"maxDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"yearlyDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PauseSubscriptionRequest":{"additionalProperties":false,"properties":{"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.PauseSubscriptionResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.PayerEndReason":{"enum":["PAYER_END_REASON_UNSPECIFIED","PAYER_END_REASON_ENDED","PAYER_END_REASON_UNTIL_REACHED","PAYER_END_REASON_PAYER_ERASED","PAYER_END_REASON_PAYER_DELETED"],"type":"string"},"entitler.api.v1.PayerShare":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PayerShareChoice":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"percentThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PaymentAmount":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"value":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["value","currency"],"type":"object"},"entitler.api.v1.PaymentMoney":{"enum":["PAYMENT_MONEY_UNSPECIFIED","PAYMENT_MONEY_REAL","PAYMENT_MONEY_TEST"],"type":"string"},"entitler.api.v1.PaymentProcessing":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.PaymentProvider":{"enum":["PAYMENT_PROVIDER_UNSPECIFIED","PAYMENT_PROVIDER_STRIPE","PAYMENT_PROVIDER_APPLE","PAYMENT_PROVIDER_GOOGLE"],"type":"string"},"entitler.api.v1.PaymentRequired":{"additionalProperties":false,"properties":{"status":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequiredStatus"},"url":{"type":"string"}},"required":["url","status"],"type":"object"},"entitler.api.v1.PaymentRequiredStatus":{"enum":["PAYMENT_REQUIRED_STATUS_UNSPECIFIED","PAYMENT_REQUIRED_STATUS_CHECKOUT","PAYMENT_REQUIRED_STATUS_CONFIRMATION","PAYMENT_REQUIRED_STATUS_REQUIRES_ACTION","PAYMENT_REQUIRED_STATUS_DECLINED","PAYMENT_REQUIRED_STATUS_PENDING"],"type":"string"},"entitler.api.v1.PaymentTerms":{"additionalProperties":false,"properties":{"daysUntilDue":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"suspension":{"$ref":"#/components/schemas/entitler.api.v1.Suspension"}},"required":["daysUntilDue"],"type":"object"},"entitler.api.v1.PaymentTerms-Input":{"additionalProperties":false,"properties":{"daysUntilDue":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"suspension":{"$ref":"#/components/schemas/entitler.api.v1.Suspension-Input"}},"type":"object"},"entitler.api.v1.PeriodFilter":{"enum":["PERIOD_FILTER_UNSPECIFIED","PERIOD_FILTER_ACTIVE","PERIOD_FILTER_ARCHIVED","PERIOD_FILTER_ALL"],"type":"string"},"entitler.api.v1.PeriodMove":{"additionalProperties":false,"properties":{"free":{"$ref":"#/components/schemas/entitler.api.v1.FreeOfCharge"},"fromPeriodId":{"type":"string"},"periodId":{"type":"string"}},"required":["fromPeriodId"],"type":"object"},"entitler.api.v1.PeriodMove-Input":{"additionalProperties":false,"properties":{"free":{"$ref":"#/components/schemas/entitler.api.v1.FreeOfCharge"},"fromPeriodId":{"type":"string"},"periodId":{"type":"string"}},"type":"object"},"entitler.api.v1.PeriodMoves":{"additionalProperties":false,"properties":{"moves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PeriodMove-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PeriodPrice":{"additionalProperties":false,"properties":{"bands":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedBand"},"type":"array"},"periodId":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.Amount"}},"required":["bands"],"type":"object"},"entitler.api.v1.PeriodUnit":{"enum":["PERIOD_UNIT_UNSPECIFIED","PERIOD_UNIT_DAYS","PERIOD_UNIT_WEEKS","PERIOD_UNIT_MONTHS"],"type":"string"},"entitler.api.v1.PeriodsWhileSuspended":{"enum":["PERIODS_WHILE_SUSPENDED_UNSPECIFIED","PERIODS_WHILE_SUSPENDED_STOP","PERIODS_WHILE_SUSPENDED_CONTINUE"],"type":"string"},"entitler.api.v1.Permission":{"enum":["PERMISSION_UNSPECIFIED","PERMISSION_TEAM_SETTINGS","PERMISSION_TEAM_MEMBERS","PERMISSION_TEAM_ROLES","PERMISSION_TEAM_BILLING","PERMISSION_TEAM_DELETE","PERMISSION_PROJECT_CREATE","PERMISSION_PROJECT_READ","PERMISSION_PROJECT_WRITE","PERMISSION_PROJECT_SETTINGS","PERMISSION_PROJECT_MEMBERS","PERMISSION_CATALOGUE_READ","PERMISSION_CATALOGUE_WRITE","PERMISSION_CATALOGUE_RELEASE","PERMISSION_CUSTOMERS_READ","PERMISSION_CUSTOMERS_WRITE","PERMISSION_CUSTOMERS_REGISTER","PERMISSION_CUSTOMERS_PROFILE","PERMISSION_ENTITLEMENTS_READ","PERMISSION_USAGE_READ","PERMISSION_USAGE_WRITE","PERMISSION_TRACKS_MANAGE","PERMISSION_TRACKS_ROLL_OUT","PERMISSION_TRACKS_ASSIGN","PERMISSION_TOKENS_MINT","PERMISSION_KEYS_MANAGE","PERMISSION_BILLING_SELF","PERMISSION_DEPLOYMENT_BOOTSTRAP"],"type":"string"},"entitler.api.v1.PermissionList":{"additionalProperties":false,"properties":{"permissions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Permission"},"type":"array"}},"type":"object"},"entitler.api.v1.Plan":{"additionalProperties":false,"properties":{"description":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"name":{"type":"string"},"productId":{"type":"string"},"selling":{"$ref":"#/components/schemas/entitler.api.v1.Selling"},"status":{"$ref":"#/components/schemas/entitler.api.v1.PlanStatus"},"version":{"$ref":"#/components/schemas/entitler.api.v1.PlanVersion"}},"required":["id","key","name","description","kind","status","selling"],"type":"object"},"entitler.api.v1.PlanChange":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"changed":{"type":"boolean"},"effective":{"$ref":"#/components/schemas/entitler.api.v1.Effective"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionPlan"},"policy":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionMovePolicy"},"productId":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["effective","at","changed","policy"],"type":"object"},"entitler.api.v1.PlanContent":{"additionalProperties":false,"properties":{"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanFee"},"type":"array"},"followsMembers":{"type":"boolean"},"free":{"type":"boolean"},"indexation":{"$ref":"#/components/schemas/entitler.api.v1.Indexation"},"instalments":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"items":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanItem"},"type":"array"},"lockMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"move":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"pack":{"type":"boolean"},"periodIds":{"items":{"type":"string"},"type":"array"},"periodMoves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PeriodMove"},"type":"array"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPrice"},"type":"array"},"quantity":{"$ref":"#/components/schemas/entitler.api.v1.QuantityRule"},"seasons":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SeasonStart"},"type":"array"},"slots":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanSlot"},"type":"array"},"terms":{"$ref":"#/components/schemas/entitler.api.v1.PlanTerms"},"trial":{"$ref":"#/components/schemas/entitler.api.v1.TrialLength"},"unoffered":{"$ref":"#/components/schemas/entitler.api.v1.UnofferedRule"},"usagePrices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanUsagePrice"},"type":"array"},"usageWaitHours":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["items","periodIds","periodMoves","move","free","prices","fees","unoffered","pack","usagePrices","usageWaitHours","seasons","slots","followsMembers"],"type":"object"},"entitler.api.v1.PlanContent-Input":{"additionalProperties":false,"properties":{"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanFee-Input"},"type":"array"},"followsMembers":{"type":"boolean"},"free":{"type":"boolean"},"indexation":{"$ref":"#/components/schemas/entitler.api.v1.Indexation-Input"},"instalments":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"items":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanItem-Input"},"type":"array"},"lockMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"move":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"pack":{"type":"boolean"},"periodIds":{"items":{"type":"string"},"type":"array"},"periodMoves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PeriodMove-Input"},"type":"array"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPrice-Input"},"type":"array"},"quantity":{"$ref":"#/components/schemas/entitler.api.v1.QuantityRule-Input"},"seasons":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SeasonStart-Input"},"type":"array"},"slots":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanSlot-Input"},"type":"array"},"terms":{"$ref":"#/components/schemas/entitler.api.v1.PlanTerms-Input"},"trial":{"$ref":"#/components/schemas/entitler.api.v1.TrialLength"},"unoffered":{"$ref":"#/components/schemas/entitler.api.v1.UnofferedRule"},"usagePrices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanUsagePrice-Input"},"type":"array"},"usageWaitHours":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PlanDirection":{"enum":["PLAN_DIRECTION_UNSPECIFIED","PLAN_DIRECTION_UP","PLAN_DIRECTION_CROSS","PLAN_DIRECTION_DOWN"],"type":"string"},"entitler.api.v1.PlanEnrolments":{"additionalProperties":false,"properties":{"cohorts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CohortCount"},"type":"array"},"planId":{"type":"string"}},"required":["planId","cohorts"],"type":"object"},"entitler.api.v1.PlanFee":{"additionalProperties":false,"properties":{"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"key":{"type":"string"},"name":{"type":"string"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FeePrice"},"type":"array"},"schedule":{"$ref":"#/components/schemas/entitler.api.v1.FeeSchedule"}},"required":["key","name","direction","prices"],"type":"object"},"entitler.api.v1.PlanFee-Input":{"additionalProperties":false,"properties":{"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"key":{"type":"string"},"name":{"type":"string"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FeePrice-Input"},"type":"array"},"schedule":{"$ref":"#/components/schemas/entitler.api.v1.FeeSchedule-Input"}},"type":"object"},"entitler.api.v1.PlanFees":{"additionalProperties":false,"properties":{"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanFee-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanIndexation":{"additionalProperties":false,"properties":{"indexation":{"$ref":"#/components/schemas/entitler.api.v1.Indexation-Input"}},"type":"object"},"entitler.api.v1.PlanInstalments":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PlanItem":{"additionalProperties":false,"properties":{"bank":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"homeZone":{"type":"string"},"hours":{"$ref":"#/components/schemas/entitler.common.v1.AccessHours"},"innerValue":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"memberValue":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"perUse":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"segmentKey":{"type":"string"},"sharedMemberValue":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"sharedValue":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"uncountedZones":{"items":{"type":"string"},"type":"array"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"wait":{"$ref":"#/components/schemas/entitler.common.v1.Wait"}},"required":["featureKey","uncountedZones"],"type":"object"},"entitler.api.v1.PlanItem-Input":{"additionalProperties":false,"properties":{"bank":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"homeZone":{"type":"string"},"hours":{"$ref":"#/components/schemas/entitler.common.v1.AccessHours-Input"},"innerValue":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"memberValue":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"perUse":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"segmentKey":{"type":"string"},"sharedMemberValue":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue-Input"},"sharedValue":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue-Input"},"uncountedZones":{"items":{"type":"string"},"type":"array"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue-Input"},"wait":{"$ref":"#/components/schemas/entitler.common.v1.Wait-Input"}},"type":"object"},"entitler.api.v1.PlanItems":{"additionalProperties":false,"properties":{"items":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanItem-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanKind":{"enum":["PLAN_KIND_UNSPECIFIED","PLAN_KIND_PLAN","PLAN_KIND_ADD_ON"],"type":"string"},"entitler.api.v1.PlanListing":{"additionalProperties":false,"properties":{"channels":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedChannel"},"type":"array"},"periodId":{"type":"string"}},"required":["channels"],"type":"object"},"entitler.api.v1.PlanLock":{"additionalProperties":false,"properties":{"lockMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PlanMoves":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"fromPlanId":{"type":"string"},"toPlanId":{"type":"string"}},"required":["fromPlanId","toPlanId","customers"],"type":"object"},"entitler.api.v1.PlanOption":{"additionalProperties":false,"properties":{"direction":{"$ref":"#/components/schemas/entitler.api.v1.PlanDirection"},"impact":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FeatureImpact"},"type":"array"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.OptionKind"},"overLimits":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OverLimit"},"type":"array"},"periodIds":{"items":{"type":"string"},"type":"array"},"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"productId":{"type":"string"},"refusedByAddOnId":{"type":"string"},"removesAddOnIds":{"items":{"type":"string"},"type":"array"},"replacesPlanId":{"type":"string"},"selling":{"$ref":"#/components/schemas/entitler.api.v1.Selling"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.MoveTiming"}},"required":["planId","planKey","planName","kind","direction","selling","timing","periodIds","impact","removesAddOnIds","overLimits"],"type":"object"},"entitler.api.v1.PlanPeriods":{"additionalProperties":false,"properties":{"periodIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanPosition":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"x":{"format":"int32","type":"integer"},"y":{"format":"int32","type":"integer"}},"required":["planId","x","y"],"type":"object"},"entitler.api.v1.PlanPosition-Input":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"x":{"format":"int32","type":"integer"},"y":{"format":"int32","type":"integer"}},"type":"object"},"entitler.api.v1.PlanPrice":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"bands":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PriceBand"},"type":"array"},"cell":{"$ref":"#/components/schemas/entitler.api.v1.PriceCell"}},"required":["amount","bands"],"type":"object"},"entitler.api.v1.PlanPrice-Input":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"bands":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PriceBand-Input"},"type":"array"},"cell":{"$ref":"#/components/schemas/entitler.api.v1.PriceCell-Input"}},"type":"object"},"entitler.api.v1.PlanPriceState":{"enum":["PLAN_PRICE_STATE_UNSPECIFIED","PLAN_PRICE_STATE_FREE","PLAN_PRICE_STATE_PRICED","PLAN_PRICE_STATE_NOT_PRICED"],"type":"string"},"entitler.api.v1.PlanPrices":{"additionalProperties":false,"properties":{"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPrice-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanPricing":{"additionalProperties":false,"properties":{"free":{"type":"boolean"},"planId":{"type":"string"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPrice-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanRevenue":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customersAtStart":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planId":{"type":"string"},"productId":{"type":"string"},"recurring":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"}},"required":["planId","productId","customers","customersAtStart","recurring"],"type":"object"},"entitler.api.v1.PlanSale":{"additionalProperties":false,"properties":{"free":{"type":"boolean"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.RecapMarket"},"type":"array"},"missedMarkets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.RecapMarket"},"type":"array"},"name":{"type":"string"},"planId":{"type":"string"},"selling":{"$ref":"#/components/schemas/entitler.api.v1.Selling"},"version":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"warning":{"$ref":"#/components/schemas/entitler.api.v1.SaleWarning"}},"required":["planId","name","kind","version","free","selling","markets","missedMarkets","warning"],"type":"object"},"entitler.api.v1.PlanSeasons":{"additionalProperties":false,"properties":{"seasons":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SeasonStart-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanSlot":{"additionalProperties":false,"properties":{"hours":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SlotHours"},"type":"array"},"key":{"type":"string"}},"required":["key","hours"],"type":"object"},"entitler.api.v1.PlanSlot-Input":{"additionalProperties":false,"properties":{"hours":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SlotHours-Input"},"type":"array"},"key":{"type":"string"}},"type":"object"},"entitler.api.v1.PlanSlots":{"additionalProperties":false,"properties":{"slots":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanSlot-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanSource":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"productId":{"type":"string"},"throughFeatureKey":{"type":"string"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planKey","planName","versionNumber"],"type":"object"},"entitler.api.v1.PlanStatus":{"enum":["PLAN_STATUS_UNSPECIFIED","PLAN_STATUS_ACTIVE","PLAN_STATUS_LEGACY","PLAN_STATUS_ARCHIVED"],"type":"string"},"entitler.api.v1.PlanStatusFilter":{"enum":["PLAN_STATUS_FILTER_UNSPECIFIED","PLAN_STATUS_FILTER_ACTIVE","PLAN_STATUS_FILTER_LEGACY","PLAN_STATUS_FILTER_CHANGED","PLAN_STATUS_FILTER_UNRELEASED","PLAN_STATUS_FILTER_ARCHIVED"],"type":"string"},"entitler.api.v1.PlanTarget":{"additionalProperties":false,"properties":{"move":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"planId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","versionNumber","move"],"type":"object"},"entitler.api.v1.PlanTerms":{"additionalProperties":false,"properties":{"cancelByDay":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"noticeDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"pause":{"$ref":"#/components/schemas/entitler.api.v1.PausePolicy"},"term":{"$ref":"#/components/schemas/entitler.api.v1.FixedTerm"},"withdrawalDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PlanTerms-Input":{"additionalProperties":false,"properties":{"cancelByDay":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"noticeDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"pause":{"$ref":"#/components/schemas/entitler.api.v1.PausePolicy-Input"},"term":{"$ref":"#/components/schemas/entitler.api.v1.FixedTerm-Input"},"withdrawalDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PlanTrial":{"additionalProperties":false,"properties":{"length":{"$ref":"#/components/schemas/entitler.api.v1.TrialLength"}},"type":"object"},"entitler.api.v1.PlanUsagePrice":{"additionalProperties":false,"properties":{"cells":{"$ref":"#/components/schemas/entitler.api.v1.UsageCells"},"class":{"type":"string"},"days":{"$ref":"#/components/schemas/entitler.api.v1.UsageDays"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"featureKey":{"type":"string"},"flat":{"$ref":"#/components/schemas/entitler.api.v1.UsageRates"},"from":{"$ref":"#/components/schemas/entitler.api.v1.UsageFrom"},"key":{"type":"string"},"minimum":{"$ref":"#/components/schemas/entitler.api.v1.UsageMinimum"},"name":{"type":"string"},"offsets":{"items":{"type":"string"},"type":"array"},"segmentKey":{"type":"string"},"tiers":{"$ref":"#/components/schemas/entitler.api.v1.UsageTiers"}},"required":["key","name","direction","from","offsets"],"type":"object"},"entitler.api.v1.PlanUsagePrice-Input":{"additionalProperties":false,"properties":{"cells":{"$ref":"#/components/schemas/entitler.api.v1.UsageCells-Input"},"class":{"type":"string"},"days":{"$ref":"#/components/schemas/entitler.api.v1.UsageDays"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"featureKey":{"type":"string"},"flat":{"$ref":"#/components/schemas/entitler.api.v1.UsageRates-Input"},"from":{"$ref":"#/components/schemas/entitler.api.v1.UsageFrom"},"key":{"type":"string"},"minimum":{"$ref":"#/components/schemas/entitler.api.v1.UsageMinimum-Input"},"name":{"type":"string"},"offsets":{"items":{"type":"string"},"type":"array"},"segmentKey":{"type":"string"},"tiers":{"$ref":"#/components/schemas/entitler.api.v1.UsageTiers-Input"}},"type":"object"},"entitler.api.v1.PlanUsagePrices":{"additionalProperties":false,"properties":{"usagePrices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanUsagePrice-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.PlanVersion":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"content":{"$ref":"#/components/schemas/entitler.api.v1.PlanContent"},"id":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","number"],"type":"object"},"entitler.api.v1.PlanVoucherGrant":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planId":{"type":"string"}},"required":["planId","periodId","periods"],"type":"object"},"entitler.api.v1.PlanVoucherGrant-Input":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"planId":{"type":"string"}},"type":"object"},"entitler.api.v1.PlannedMoves":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planId":{"type":"string"},"when":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"}},"required":["planId","when","customers"],"type":"object"},"entitler.api.v1.PreviewRolloutRequest":{"additionalProperties":false,"properties":{"choices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CohortChoice-Input"},"type":"array"},"releaseId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"trackId":{"type":"string"}},"type":"object"},"entitler.api.v1.PreviewRolloutResponse":{"additionalProperties":false,"properties":{"appStoreProductsToCreate":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"approvalRequired":{"type":"boolean"},"choosesOtherMoves":{"type":"boolean"},"cohorts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MovableCohort"},"type":"array"},"from":{"$ref":"#/components/schemas/entitler.api.v1.RolledOutFrom"},"moves":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlannedMoves"},"type":"array"},"rollback":{"type":"boolean"},"rolledOut":{"$ref":"#/components/schemas/entitler.api.v1.RolloutTarget"},"stripePricesToCreate":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["rollback","cohorts","moves","choosesOtherMoves","approvalRequired","stripePricesToCreate","appStoreProductsToCreate"],"type":"object"},"entitler.api.v1.PriceBand":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"perUnit":{"type":"boolean"},"upTo":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["amount","perUnit"],"type":"object"},"entitler.api.v1.PriceBand-Input":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"perUnit":{"type":"boolean"},"upTo":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PriceCell":{"additionalProperties":false,"properties":{"marketId":{"type":"string"},"periodId":{"type":"string"}},"required":["marketId"],"type":"object"},"entitler.api.v1.PriceCell-Input":{"additionalProperties":false,"properties":{"marketId":{"type":"string"},"periodId":{"type":"string"}},"type":"object"},"entitler.api.v1.PricedBand":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"perUnit":{"type":"boolean"},"upTo":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["perUnit"],"type":"object"},"entitler.api.v1.PricedChannel":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"ids":{"$ref":"#/components/schemas/entitler.api.v1.ListingIds"},"marketId":{"type":"string"},"mode":{"$ref":"#/components/schemas/entitler.api.v1.ConnectionMode"},"name":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.ListingPrice"},"provider":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProvider"},"purchasable":{"type":"boolean"}},"required":["connectionId","provider","name","mode","purchasable"],"type":"object"},"entitler.api.v1.PricedFee":{"additionalProperties":false,"properties":{"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"key":{"type":"string"},"name":{"type":"string"},"price":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"schedule":{"$ref":"#/components/schemas/entitler.api.v1.FeeSchedule"}},"required":["key","name","direction"],"type":"object"},"entitler.api.v1.PricedPeriod":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"id":{"type":"string"},"key":{"type":"string"},"label":{"type":"string"},"unit":{"$ref":"#/components/schemas/entitler.api.v1.PeriodUnit"}},"required":["id","key","label","count","unit"],"type":"object"},"entitler.api.v1.PricedPlan":{"additionalProperties":false,"properties":{"availableOn":{"items":{"type":"string"},"type":"array"},"byDefault":{"type":"boolean"},"description":{"type":"string"},"fees":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedFee"},"type":"array"},"id":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanItem"},"type":"array"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"listings":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanListing"},"type":"array"},"name":{"type":"string"},"pack":{"type":"boolean"},"periods":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedPeriod"},"type":"array"},"priceState":{"$ref":"#/components/schemas/entitler.api.v1.PlanPriceState"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PeriodPrice"},"type":"array"},"productId":{"type":"string"},"quantity":{"$ref":"#/components/schemas/entitler.api.v1.QuantityRule"},"salesLed":{"type":"boolean"},"seasons":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SeasonStart"},"type":"array"},"slots":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanSlot"},"type":"array"},"status":{"$ref":"#/components/schemas/entitler.api.v1.PlanStatus"},"trial":{"$ref":"#/components/schemas/entitler.api.v1.TrialLength"},"usagePrices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsagePrice"},"type":"array"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","key","name","description","kind","status","salesLed","versionNumber","byDefault","periods","availableOn","items","listings","priceState","prices","fees","pack","usagePrices","seasons","slots"],"type":"object"},"entitler.api.v1.PricedProduct":{"additionalProperties":false,"properties":{"defaultPlanId":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["id","key","name"],"type":"object"},"entitler.api.v1.PricedUsageCell":{"additionalProperties":false,"properties":{"rate":{"$ref":"#/components/schemas/entitler.api.v1.UnitRate"},"season":{"type":"string"},"slot":{"type":"string"}},"type":"object"},"entitler.api.v1.PricedUsageCells":{"additionalProperties":false,"properties":{"bySeason":{"type":"boolean"},"bySlot":{"type":"boolean"},"cells":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageCell"},"type":"array"}},"required":["bySeason","bySlot","cells"],"type":"object"},"entitler.api.v1.PricedUsageMinimum":{"additionalProperties":false,"properties":{"per":{"$ref":"#/components/schemas/entitler.api.v1.MinimumPer"},"rate":{"$ref":"#/components/schemas/entitler.api.v1.UnitRate"}},"required":["per"],"type":"object"},"entitler.api.v1.PricedUsagePrice":{"additionalProperties":false,"properties":{"cells":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageCells"},"class":{"type":"string"},"direction":{"$ref":"#/components/schemas/entitler.api.v1.FeeDirection"},"featureKey":{"type":"string"},"flat":{"$ref":"#/components/schemas/entitler.api.v1.UnitRate"},"from":{"$ref":"#/components/schemas/entitler.api.v1.UsageFrom"},"key":{"type":"string"},"minimum":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageMinimum"},"name":{"type":"string"},"offsets":{"items":{"type":"string"},"type":"array"},"segmentKey":{"type":"string"},"tiers":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageTiers"}},"required":["key","name","direction","from","offsets"],"type":"object"},"entitler.api.v1.PricedUsageTier":{"additionalProperties":false,"properties":{"perDay":{"$ref":"#/components/schemas/entitler.api.v1.UsageDayBounds"},"rate":{"$ref":"#/components/schemas/entitler.api.v1.UnitRate"},"upTo":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.PricedUsageTiers":{"additionalProperties":false,"properties":{"tiers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedUsageTier"},"type":"array"}},"required":["tiers"],"type":"object"},"entitler.api.v1.PricingMarket":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"},"tax":{"$ref":"#/components/schemas/entitler.api.v1.MarketTax"}},"required":["id","key","name","currency","tax"],"type":"object"},"entitler.api.v1.PricingSheet":{"additionalProperties":false,"properties":{"customer":{"type":"string"},"market":{"$ref":"#/components/schemas/entitler.api.v1.PricingMarket"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedPlan"},"type":"array"},"products":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PricedProduct"},"type":"array"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"},"testers":{"type":"boolean"}},"required":["testers","products","plans"],"type":"object"},"entitler.api.v1.Product":{"additionalProperties":false,"properties":{"defaultPlanId":{"type":"string"},"id":{"type":"string"},"key":{"type":"string"},"name":{"type":"string"}},"required":["id","key","name"],"type":"object"},"entitler.api.v1.ProductTarget":{"additionalProperties":false,"properties":{"environmentId":{"type":"string"},"projectId":{"type":"string"},"teamId":{"type":"string"}},"type":"object"},"entitler.api.v1.Profile":{"additionalProperties":false,"properties":{"name":{"type":"string"},"title":{"type":"string"}},"required":["name"],"type":"object"},"entitler.api.v1.Profile-Input":{"additionalProperties":false,"properties":{"name":{"type":"string"},"title":{"type":"string"}},"type":"object"},"entitler.api.v1.Project":{"additionalProperties":false,"properties":{"archivedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"claimable":{"type":"boolean"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"image":{"$ref":"#/components/schemas/entitler.api.v1.ProjectImage"},"name":{"type":"string"},"teamId":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","teamId","name","createdAt","updatedAt","claimable"],"type":"object"},"entitler.api.v1.ProjectAvailability":{"enum":["PROJECT_AVAILABILITY_UNSPECIFIED","PROJECT_AVAILABILITY_OPENABLE","PROJECT_AVAILABILITY_NO_PROJECTS","PROJECT_AVAILABILITY_NO_ACCESS"],"type":"string"},"entitler.api.v1.ProjectDefault":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ProjectFilter":{"enum":["PROJECT_FILTER_UNSPECIFIED","PROJECT_FILTER_ACTIVE","PROJECT_FILTER_ARCHIVED","PROJECT_FILTER_ALL"],"type":"string"},"entitler.api.v1.ProjectGrant":{"additionalProperties":false,"properties":{"projectId":{"type":"string"},"roleId":{"type":"string"}},"required":["projectId"],"type":"object"},"entitler.api.v1.ProjectGuide":{"additionalProperties":false,"properties":{"building":{"$ref":"#/components/schemas/entitler.api.v1.Building"},"charging":{"$ref":"#/components/schemas/entitler.api.v1.Charging"},"revealed":{"items":{"$ref":"#/components/schemas/entitler.api.v1.RevealedArea"},"type":"array"},"start":{"$ref":"#/components/schemas/entitler.api.v1.GuideStart"},"welcomedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["revealed","building","charging","start"],"type":"object"},"entitler.api.v1.ProjectImage":{"additionalProperties":false,"properties":{"url":{"type":"string"}},"required":["url"],"type":"object"},"entitler.api.v1.ProjectKeyScope":{"additionalProperties":false,"properties":{"projectId":{"type":"string"}},"required":["projectId"],"type":"object"},"entitler.api.v1.ProjectKeyScope-Input":{"additionalProperties":false,"properties":{"projectId":{"type":"string"}},"type":"object"},"entitler.api.v1.ProjectSwitches":{"additionalProperties":false,"properties":{"cohorts":{"type":"boolean"},"environments":{"type":"boolean"},"releases":{"type":"boolean"},"reviews":{"type":"boolean"},"signIn":{"type":"boolean"},"tracks":{"type":"boolean"},"versions":{"type":"boolean"}},"required":["environments","tracks","releases","versions","cohorts","signIn","reviews"],"type":"object"},"entitler.api.v1.ProjectSwitches-Input":{"additionalProperties":false,"properties":{"cohorts":{"type":"boolean"},"environments":{"type":"boolean"},"releases":{"type":"boolean"},"reviews":{"type":"boolean"},"signIn":{"type":"boolean"},"tracks":{"type":"boolean"},"versions":{"type":"boolean"}},"type":"object"},"entitler.api.v1.Proration":{"additionalProperties":false,"properties":{"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.ProrationKind"}},"required":["kind"],"type":"object"},"entitler.api.v1.Proration-Input":{"additionalProperties":false,"properties":{"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.ProrationKind"}},"type":"object"},"entitler.api.v1.ProrationKind":{"enum":["PRORATION_KIND_UNSPECIFIED","PRORATION_KIND_NONE","PRORATION_KIND_EXACT","PRORATION_KIND_WHOLE_DAYS"],"type":"string"},"entitler.api.v1.ProviderAlert":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"connectionName":{"type":"string"},"customerId":{"type":"string"},"customerName":{"type":"string"},"externalId":{"type":"string"},"facts":{"$ref":"#/components/schemas/entitler.api.v1.AlertFacts"},"id":{"type":"string"},"openedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"provider":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProvider"},"resolvedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"resolvedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"rule":{"$ref":"#/components/schemas/entitler.api.v1.AlertRule"},"seenAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"subject":{"type":"string"}},"required":["id","connectionId","connectionName","provider","rule","subject","openedAt","seenAt"],"type":"object"},"entitler.api.v1.ProviderDiscount":{"additionalProperties":false,"properties":{"amountOff":{"$ref":"#/components/schemas/entitler.api.v1.PaymentAmount"},"couponId":{"type":"string"},"duration":{"type":"string"},"durationInMonths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"name":{"type":"string"},"percentOff":{"type":"string"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id"],"type":"object"},"entitler.api.v1.ProviderImport":{"additionalProperties":false,"properties":{"capped":{"type":"boolean"},"connectionId":{"type":"string"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createdBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"dryRun":{"type":"boolean"},"failure":{"$ref":"#/components/schemas/entitler.api.v1.ImportFailure"},"findings":{"items":{"$ref":"#/components/schemas/entitler.api.v1.FindingCount"},"type":"array"},"finishedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.ImportKind"},"metadataKey":{"type":"string"},"outcomes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OutcomeCount"},"type":"array"},"pages":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"pairs":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"pairsDropped":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"real":{"$ref":"#/components/schemas/entitler.api.v1.ImportAllowance"},"seen":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"source":{"$ref":"#/components/schemas/entitler.api.v1.ImportSource"},"state":{"$ref":"#/components/schemas/entitler.api.v1.ImportState"},"test":{"$ref":"#/components/schemas/entitler.api.v1.ImportAllowance"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","connectionId","kind","source","dryRun","state","seen","pairs","pairsDropped","outcomes","findings","createdAt","updatedAt","pages","capped"],"type":"object"},"entitler.api.v1.ProviderItem":{"additionalProperties":false,"properties":{"id":{"type":"string"},"priceId":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"sale":{"$ref":"#/components/schemas/entitler.api.v1.ProviderSale"}},"required":["id","priceId","quantity"],"type":"object"},"entitler.api.v1.ProviderPayment":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.PaymentAmount"},"id":{"type":"string"},"paidAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"priceId":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"sale":{"$ref":"#/components/schemas/entitler.api.v1.ProviderSale"},"status":{"$ref":"#/components/schemas/entitler.api.v1.ProviderPaymentStatus"}},"required":["id","priceId","quantity","status","paidAt"],"type":"object"},"entitler.api.v1.ProviderPaymentStatus":{"enum":["PROVIDER_PAYMENT_STATUS_UNSPECIFIED","PROVIDER_PAYMENT_STATUS_PAID","PROVIDER_PAYMENT_STATUS_REFUNDED","PROVIDER_PAYMENT_STATUS_PARTIALLY_REFUNDED"],"type":"string"},"entitler.api.v1.ProviderSale":{"additionalProperties":false,"properties":{"marketId":{"type":"string"},"periodId":{"type":"string"},"planId":{"type":"string"},"planKind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"productId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","versionNumber","planKind"],"type":"object"},"entitler.api.v1.ProviderState":{"additionalProperties":false,"properties":{"payments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderPayment"},"type":"array"},"subscriptions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderSubscription"},"type":"array"}},"required":["subscriptions","payments"],"type":"object"},"entitler.api.v1.ProviderSubscription":{"additionalProperties":false,"properties":{"billing":{"type":"boolean"},"cancelsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"discounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderDiscount"},"type":"array"},"id":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ProviderItem"},"type":"array"},"periodEndsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"periodStartedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"status":{"$ref":"#/components/schemas/entitler.api.v1.ProviderSubscriptionStatus"},"trialEndsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","status","billing","items","discounts"],"type":"object"},"entitler.api.v1.ProviderSubscriptionStatus":{"enum":["PROVIDER_SUBSCRIPTION_STATUS_UNSPECIFIED","PROVIDER_SUBSCRIPTION_STATUS_ACTIVE","PROVIDER_SUBSCRIPTION_STATUS_TRIALING","PROVIDER_SUBSCRIPTION_STATUS_PAST_DUE","PROVIDER_SUBSCRIPTION_STATUS_INCOMPLETE","PROVIDER_SUBSCRIPTION_STATUS_INCOMPLETE_EXPIRED","PROVIDER_SUBSCRIPTION_STATUS_CANCELED","PROVIDER_SUBSCRIPTION_STATUS_UNPAID","PROVIDER_SUBSCRIPTION_STATUS_PAUSED"],"type":"string"},"entitler.api.v1.PublishReleaseRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"name":{"type":"string"},"note":{"type":"string"},"ontoReleaseId":{"type":"string"}},"type":"object"},"entitler.api.v1.PublishReleaseResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"},"release":{"$ref":"#/components/schemas/entitler.api.v1.Release"}},"type":"object"},"entitler.api.v1.PurchaseRef":{"additionalProperties":false,"properties":{"appStore":{"$ref":"#/components/schemas/entitler.api.v1.AppStorePurchaseRef"}},"type":"object"},"entitler.api.v1.PurchaseRef-Input":{"additionalProperties":false,"properties":{"appStore":{"$ref":"#/components/schemas/entitler.api.v1.AppStorePurchaseRef-Input"}},"type":"object"},"entitler.api.v1.PurchaseTransfer":{"additionalProperties":false,"properties":{"actor":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"fromExternalId":{"type":"string"},"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PurchaseTransferKind"},"purchase":{"$ref":"#/components/schemas/entitler.api.v1.PurchaseRef"},"reason":{"type":"string"},"toExternalId":{"type":"string"}},"required":["id","fromExternalId","toExternalId","kind","at"],"type":"object"},"entitler.api.v1.PurchaseTransferKind":{"enum":["PURCHASE_TRANSFER_KIND_UNSPECIFIED","PURCHASE_TRANSFER_KIND_RESTORE","PURCHASE_TRANSFER_KIND_SUPPORT"],"type":"string"},"entitler.api.v1.PurchaseTransferOutcome":{"enum":["PURCHASE_TRANSFER_OUTCOME_UNSPECIFIED","PURCHASE_TRANSFER_OUTCOME_TRANSFERRED","PURCHASE_TRANSFER_OUTCOME_UNCHANGED"],"type":"string"},"entitler.api.v1.QuantityRule":{"additionalProperties":false,"properties":{"max":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"min":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["min"],"type":"object"},"entitler.api.v1.QuantityRule-Input":{"additionalProperties":false,"properties":{"max":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"min":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.ReadStripeCatalogueResponse":{"additionalProperties":false,"properties":{"currencies":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportCurrencyMarkets"},"type":"array"},"periods":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportPeriodMatch"},"type":"array"},"pricesTruncated":{"type":"boolean"},"products":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ImportedProduct"},"type":"array"},"productsTruncated":{"type":"boolean"},"unsupported":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UnsupportedPrice"},"type":"array"}},"required":["products","unsupported","productsTruncated","pricesTruncated","periods","currencies"],"type":"object"},"entitler.api.v1.RecapCount":{"additionalProperties":false,"properties":{"created":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"deleted":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"subject":{"$ref":"#/components/schemas/entitler.api.v1.RecapSubject"},"updated":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["subject","created","updated","deleted"],"type":"object"},"entitler.api.v1.RecapMarket":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"entitler.api.v1.RecapSubject":{"enum":["RECAP_SUBJECT_UNSPECIFIED","RECAP_SUBJECT_PRODUCT","RECAP_SUBJECT_FEATURE","RECAP_SUBJECT_PLAN","RECAP_SUBJECT_ADD_ON","RECAP_SUBJECT_PATH","RECAP_SUBJECT_ATTRIBUTE","RECAP_SUBJECT_CALENDAR","RECAP_SUBJECT_SEGMENT"],"type":"string"},"entitler.api.v1.RecordIndexValueRequest":{"additionalProperties":false,"properties":{"changeThousandths":{"format":"int32","type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RecordIndexValueResponse":{"additionalProperties":false,"properties":{"value":{"$ref":"#/components/schemas/entitler.api.v1.IndexValue"}},"type":"object"},"entitler.api.v1.RecordPaymentRequest":{"additionalProperties":false,"properties":{"chargeId":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"periods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RecordPaymentResponse":{"additionalProperties":false,"properties":{"deviceCodes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DeviceCode"},"type":"array"},"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"required":["deviceCodes"],"type":"object"},"entitler.api.v1.RecurringChange":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":"integer"},"currency":{"type":"string"},"display":{"type":"string"}},"required":["amount","currency","display"],"type":"object"},"entitler.api.v1.RedeemOfferRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"offer":{"$ref":"#/components/schemas/entitler.api.v1.OfferRedemption"},"productId":{"type":"string"},"reason":{"type":"string"},"returnUrl":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RedeemOfferResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.RedeemVoucherRequest":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RedeemVoucherResponse":{"additionalProperties":false,"properties":{"grantId":{"type":"string"},"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"voucherId":{"type":"string"}},"required":["voucherId"],"type":"object"},"entitler.api.v1.Referral":{"additionalProperties":false,"properties":{"friendErased":{"type":"boolean"},"friendExternalId":{"type":"string"},"friendOfferKey":{"type":"string"},"id":{"type":"string"},"reward":{"$ref":"#/components/schemas/entitler.api.v1.ReferralRewardState"},"settledAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"skipReason":{"$ref":"#/components/schemas/entitler.api.v1.ReferralRewardSkip"},"takenAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","friendErased","friendOfferKey","takenAt","reward","skipReason"],"type":"object"},"entitler.api.v1.ReferralCode":{"additionalProperties":false,"properties":{"code":{"type":"string"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"maxUses":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"offerId":{"type":"string"},"offerKey":{"type":"string"},"uses":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","offerId","offerKey","code","uses","maxUses","createdAt"],"type":"object"},"entitler.api.v1.ReferralRewardSkip":{"enum":["REFERRAL_REWARD_SKIP_UNSPECIFIED","REFERRAL_REWARD_SKIP_NO_SUBSCRIPTION","REFERRAL_REWARD_SKIP_PROVIDER_COLLECTED","REFERRAL_REWARD_SKIP_DISCOUNTS_FULL","REFERRAL_REWARD_SKIP_OFFER_ARCHIVED","REFERRAL_REWARD_SKIP_OFFER_USED_UP","REFERRAL_REWARD_SKIP_REFUSED","REFERRAL_REWARD_SKIP_FRIEND_LEFT"],"type":"string"},"entitler.api.v1.ReferralRewardState":{"enum":["REFERRAL_REWARD_STATE_UNSPECIFIED","REFERRAL_REWARD_STATE_PENDING","REFERRAL_REWARD_STATE_GIVEN","REFERRAL_REWARD_STATE_SKIPPED"],"type":"string"},"entitler.api.v1.Refund":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"chargeId":{"type":"string"},"paidAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.Refunds":{"additionalProperties":false,"properties":{"refunds":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Refund"},"type":"array"},"total":{"$ref":"#/components/schemas/entitler.api.v1.Amount"}},"required":["refunds"],"type":"object"},"entitler.api.v1.RefusedPayment":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"connectionId":{"type":"string"},"eventId":{"type":"string"},"id":{"type":"string"},"money":{"$ref":"#/components/schemas/entitler.api.v1.PaymentMoney"},"reason":{"$ref":"#/components/schemas/entitler.api.v1.MoneyRefusal"}},"required":["id","eventId","reason","money","at"],"type":"object"},"entitler.api.v1.RegisterCustomerRequest":{"additionalProperties":false,"properties":{"attributes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAttributeChange"},"type":"array"},"email":{"type":"string"},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"visitorId":{"type":"string"}},"type":"object"},"entitler.api.v1.RegisterCustomerResponse":{"additionalProperties":false,"properties":{"created":{"type":"boolean"},"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"},"ignoredAttributes":{"items":{"type":"string"},"type":"array"}},"required":["created","ignoredAttributes"],"type":"object"},"entitler.api.v1.RegisterDeviceRequest":{"additionalProperties":false,"properties":{"digits":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDigits"},"externalId":{"type":"string"},"key":{"type":"string"},"startingCode":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RegisterDeviceResponse":{"additionalProperties":false,"properties":{"device":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDevice"}},"type":"object"},"entitler.api.v1.Release":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"contentHash":{"contentEncoding":"base64","type":"string"},"id":{"type":"string"},"mainline":{"type":"boolean"},"metadata":{"$ref":"#/components/schemas/entitler.common.v1.Metadata"},"name":{"type":"string"},"note":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"parent":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"projectId":{"type":"string"},"releasedWithoutReview":{"type":"boolean"}},"required":["id","projectId","number","mainline","note","contentHash","releasedWithoutReview","name"],"type":"object"},"entitler.api.v1.ReleaseHoldResponse":{"additionalProperties":false,"properties":{"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"type":"object"},"entitler.api.v1.ReleaseNumber":{"additionalProperties":false,"properties":{"name":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"releaseId":{"type":"string"}},"required":["releaseId","number","name"],"type":"object"},"entitler.api.v1.ReleaseRef":{"additionalProperties":false,"properties":{"id":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","number"],"type":"object"},"entitler.api.v1.ReleaseSortField":{"enum":["RELEASE_SORT_FIELD_UNSPECIFIED","RELEASE_SORT_FIELD_NUMBER","RELEASE_SORT_FIELD_NAME"],"type":"string"},"entitler.api.v1.ReleasedPlanVersion":{"additionalProperties":false,"properties":{"firstReleaseNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planId":{"type":"string"},"version":{"$ref":"#/components/schemas/entitler.api.v1.PlanVersion"}},"required":["planId","firstReleaseNumber"],"type":"object"},"entitler.api.v1.RemoveAddOnRequest":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RemoveAddOnResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.RemoveCustomerMemberResponse":{"additionalProperties":false,"properties":{"changed":{"type":"boolean"},"member":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMember"}},"required":["changed"],"type":"object"},"entitler.api.v1.RemoveDiscountRequest":{"additionalProperties":false,"properties":{"clawbackFrom":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"offerKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RemoveDiscountResponse":{"additionalProperties":false,"properties":{"discountClawback":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.RemovePayerRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"payerId":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.ChangeTiming"}},"type":"object"},"entitler.api.v1.RemovePayerResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.RemoveProjectImageResponse":{"additionalProperties":false,"properties":{"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"}},"type":"object"},"entitler.api.v1.RemoveWaitingCreditRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RemoveWaitingCreditResponse":{"additionalProperties":false,"properties":{"credit":{"$ref":"#/components/schemas/entitler.api.v1.WaitingCredit"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["revision"],"type":"object"},"entitler.api.v1.RenameChangeRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.RenameChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.RenameEnvironmentRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"type":"object"},"entitler.api.v1.RenameEnvironmentResponse":{"additionalProperties":false,"properties":{"environment":{"$ref":"#/components/schemas/entitler.api.v1.Environment"}},"type":"object"},"entitler.api.v1.RenamePeriodRequest":{"additionalProperties":false,"properties":{"label":{"type":"string"}},"type":"object"},"entitler.api.v1.RenamePeriodResponse":{"additionalProperties":false,"properties":{"period":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriod"}},"type":"object"},"entitler.api.v1.RenameProjectRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"type":"object"},"entitler.api.v1.RenameProjectResponse":{"additionalProperties":false,"properties":{"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"}},"type":"object"},"entitler.api.v1.RenameReleaseRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"type":"object"},"entitler.api.v1.RenameReleaseResponse":{"additionalProperties":false,"properties":{"release":{"$ref":"#/components/schemas/entitler.api.v1.Release"}},"type":"object"},"entitler.api.v1.RenewNowRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RenewNowResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.ReopenTrackRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ReopenTrackResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.ReportEventsRequest":{"additionalProperties":false,"properties":{"events":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageEvent"},"type":"array"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ReportEventsResponse":{"additionalProperties":false,"properties":{"duplicates":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"errors":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"recorded":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"results":{"items":{"$ref":"#/components/schemas/entitler.api.v1.EventResult"},"type":"array"}},"required":["results","recorded","duplicates","errors"],"type":"object"},"entitler.api.v1.ReportUsageRequest":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createCustomer":{"type":"boolean"},"currency":{"type":"string"},"featureKey":{"type":"string"},"idempotencyKey":{"type":"string"},"memberId":{"type":"string"},"mode":{"$ref":"#/components/schemas/entitler.api.v1.UsageMode"},"occurredAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"zone":{"type":"string"}},"type":"object"},"entitler.api.v1.ReportUsageResponse":{"additionalProperties":false,"properties":{"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"type":"object"},"entitler.api.v1.ReportWindow":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"fromDate":{"type":"string"},"historyDays":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"toDate":{"type":"string"}},"required":["days","fromDate","toDate","asOf"],"type":"object"},"entitler.api.v1.RequestEditAccessRequest":{"additionalProperties":false,"properties":{"link":{"type":"string"},"profile":{"$ref":"#/components/schemas/entitler.api.v1.Profile-Input"}},"type":"object"},"entitler.api.v1.RequestEditAccessResponse":{"additionalProperties":false,"properties":{"request":{"$ref":"#/components/schemas/entitler.api.v1.JoinRequest"}},"type":"object"},"entitler.api.v1.ResetGuestLinkRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ResetGuestLinkResponse":{"additionalProperties":false,"properties":{"guestLink":{"$ref":"#/components/schemas/entitler.api.v1.GuestLink"}},"type":"object"},"entitler.api.v1.ResolveAlertRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ResolveAlertResponse":{"additionalProperties":false,"properties":{"alert":{"$ref":"#/components/schemas/entitler.api.v1.ProviderAlert"}},"type":"object"},"entitler.api.v1.RestorePolicy":{"enum":["RESTORE_POLICY_UNSPECIFIED","RESTORE_POLICY_TRANSFER","RESTORE_POLICY_TRANSFER_IF_UNUSED","RESTORE_POLICY_KEEP"],"type":"string"},"entitler.api.v1.ResumeSubscriptionRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ResumeSubscriptionResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.RetireDeviceRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RetireDeviceResponse":{"additionalProperties":false,"properties":{"device":{"$ref":"#/components/schemas/entitler.api.v1.KeypadDevice"}},"type":"object"},"entitler.api.v1.RevealedArea":{"additionalProperties":false,"properties":{"area":{"$ref":"#/components/schemas/entitler.api.v1.GuideArea"},"revealedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["area","revealedAt"],"type":"object"},"entitler.api.v1.RevenueBridge":{"additionalProperties":false,"properties":{"cancellations":{"$ref":"#/components/schemas/entitler.api.v1.RevenueMovement"},"closing":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"},"downgrades":{"$ref":"#/components/schemas/entitler.api.v1.RevenueMovement"},"newSubscriptions":{"$ref":"#/components/schemas/entitler.api.v1.RevenueMovement"},"opening":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"},"upgrades":{"$ref":"#/components/schemas/entitler.api.v1.RevenueMovement"}},"required":["opening","closing"],"type":"object"},"entitler.api.v1.RevenueMovement":{"additionalProperties":false,"properties":{"amounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"},"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["amounts","customers"],"type":"object"},"entitler.api.v1.RevenuePoint":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"date":{"type":"string"},"recurring":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"type":"array"}},"required":["date","at","recurring"],"type":"object"},"entitler.api.v1.ReversalScope":{"enum":["REVERSAL_SCOPE_UNSPECIFIED","REVERSAL_SCOPE_SUBSCRIPTION","REVERSAL_SCOPE_CUSTOMER","REVERSAL_SCOPE_CUSTOMER_BLOCKED"],"type":"string"},"entitler.api.v1.ReversePaymentRequest":{"additionalProperties":false,"properties":{"chargeId":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"idempotencyKey":{"type":"string"},"productId":{"type":"string"},"reason":{"type":"string"},"scope":{"$ref":"#/components/schemas/entitler.api.v1.ReversalScope"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.ReversePaymentResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.RevertPlanRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"}},"type":"object"},"entitler.api.v1.RevertPlanResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.RevokeGrantRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.RevokeGrantResponse":{"additionalProperties":false,"properties":{"changed":{"type":"boolean"},"grant":{"$ref":"#/components/schemas/entitler.api.v1.Grant"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["revision","changed"],"type":"object"},"entitler.api.v1.RevokeKeyRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.RevokeKeyResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.RevokeVouchersRequest":{"additionalProperties":false,"properties":{"takeBack":{"type":"boolean"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"voucherIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.RevokeVouchersResponse":{"additionalProperties":false,"properties":{"batch":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"},"vouchers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Voucher"},"type":"array"}},"required":["vouchers"],"type":"object"},"entitler.api.v1.RoleIds":{"additionalProperties":false,"properties":{"roleIds":{"items":{"type":"string"},"type":"array"}},"required":["roleIds"],"type":"object"},"entitler.api.v1.RoleIds-Input":{"additionalProperties":false,"properties":{"roleIds":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.RoleSelection":{"additionalProperties":false,"properties":{"any":{"$ref":"#/components/schemas/entitler.api.v1.AnyRole"},"only":{"$ref":"#/components/schemas/entitler.api.v1.RoleIds"}},"type":"object"},"entitler.api.v1.RoleSelection-Input":{"additionalProperties":false,"properties":{"any":{"$ref":"#/components/schemas/entitler.api.v1.AnyRole"},"only":{"$ref":"#/components/schemas/entitler.api.v1.RoleIds-Input"}},"type":"object"},"entitler.api.v1.RolledOutFrom":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"release":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseRef"},"unreleased":{"$ref":"#/components/schemas/entitler.api.v1.Unreleased"}},"type":"object"},"entitler.api.v1.Rollout":{"additionalProperties":false,"properties":{"acceptedSubscriptions":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"approvalRequired":{"type":"boolean"},"choices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CohortChoice"},"type":"array"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"decidedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"decidedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"defaultTrack":{"type":"boolean"},"environmentId":{"type":"string"},"failure":{"$ref":"#/components/schemas/entitler.api.v1.RolloutFailure"},"from":{"$ref":"#/components/schemas/entitler.api.v1.RolledOutFrom"},"id":{"type":"string"},"moved":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"projectId":{"type":"string"},"publishedRevision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"requestedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"requesterUserId":{"type":"string"},"rollback":{"type":"boolean"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/entitler.api.v1.RolloutState"},"target":{"$ref":"#/components/schemas/entitler.api.v1.RolloutTarget"},"trackId":{"type":"string"},"trackRevision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"waitingSubscriptions":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","projectId","environmentId","trackId","defaultTrack","choices","trackRevision","state","rollback","approvalRequired","moved","createdAt","updatedAt"],"type":"object"},"entitler.api.v1.RolloutFailure":{"enum":["ROLLOUT_FAILURE_UNSPECIFIED","ROLLOUT_FAILURE_STALE","ROLLOUT_FAILURE_SUPERSEDED"],"type":"string"},"entitler.api.v1.RolloutState":{"enum":["ROLLOUT_STATE_UNSPECIFIED","ROLLOUT_STATE_PENDING","ROLLOUT_STATE_APPROVED","ROLLOUT_STATE_RUNNING","ROLLOUT_STATE_DONE","ROLLOUT_STATE_DECLINED","ROLLOUT_STATE_FAILED","ROLLOUT_STATE_SCHEDULING","ROLLOUT_STATE_SCHEDULED","ROLLOUT_STATE_CANCELLED"],"type":"string"},"entitler.api.v1.RolloutTarget":{"additionalProperties":false,"properties":{"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanTarget"},"type":"array"},"release":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseRef"}},"required":["plans"],"type":"object"},"entitler.api.v1.RotateKeyRequest":{"additionalProperties":false,"properties":{"expectedVersion":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"idempotencyKey":{"type":"string"},"previousExpiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.RotateKeyResponse":{"additionalProperties":false,"properties":{"key":{"$ref":"#/components/schemas/entitler.api.v1.Key"},"secret":{"type":"string"}},"type":"object"},"entitler.api.v1.Rounding":{"enum":["ROUNDING_UNSPECIFIED","ROUNDING_NEAREST","ROUNDING_UP","ROUNDING_DOWN"],"type":"string"},"entitler.api.v1.SaleWarning":{"enum":["SALE_WARNING_UNSPECIFIED","SALE_WARNING_SOLD_NOWHERE","SALE_WARNING_MARKETS_MISSED"],"type":"string"},"entitler.api.v1.ScheduledCancellation":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.ScheduledChange":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"cancellation":{"$ref":"#/components/schemas/entitler.api.v1.ScheduledCancellation"},"planChange":{"$ref":"#/components/schemas/entitler.api.v1.ScheduledPlanChange"}},"required":["at"],"type":"object"},"entitler.api.v1.ScheduledPlanChange":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"planId":{"type":"string"},"startsNewContract":{"type":"boolean"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","startsNewContract"],"type":"object"},"entitler.api.v1.ScheduledVersionChange":{"additionalProperties":false,"properties":{"acceptanceRequired":{"type":"boolean"},"accepted":{"type":"boolean"},"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"effectiveAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planId":{"type":"string"},"rolloutId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","versionNumber","rolloutId","effectiveAt","acceptanceRequired","accepted"],"type":"object"},"entitler.api.v1.SeasonStart":{"additionalProperties":false,"properties":{"day":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"month":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"season":{"type":"string"}},"required":["month","day","season"],"type":"object"},"entitler.api.v1.SeasonStart-Input":{"additionalProperties":false,"properties":{"day":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"month":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"season":{"type":"string"}},"type":"object"},"entitler.api.v1.Segment":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"id":{"type":"string"},"key":{"type":"string"},"version":{"$ref":"#/components/schemas/entitler.api.v1.SegmentVersion"}},"required":["id","key","archived"],"type":"object"},"entitler.api.v1.SegmentAgeRange":{"additionalProperties":false,"properties":{"max":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"min":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.SegmentMatch":{"enum":["SEGMENT_MATCH_UNSPECIFIED","SEGMENT_MATCH_ALL","SEGMENT_MATCH_ANY"],"type":"string"},"entitler.api.v1.SegmentMembership":{"additionalProperties":false,"properties":{"matches":{"type":"boolean"}},"required":["matches"],"type":"object"},"entitler.api.v1.SegmentMembership-Input":{"additionalProperties":false,"properties":{"matches":{"type":"boolean"}},"type":"object"},"entitler.api.v1.SegmentTest":{"additionalProperties":false,"properties":{"ageBetween":{"$ref":"#/components/schemas/entitler.api.v1.SegmentAgeRange"},"attributeKey":{"type":"string"},"between":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestRange"},"in":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestValues"},"inSegment":{"$ref":"#/components/schemas/entitler.api.v1.SegmentMembership"},"notIn":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestValues"},"segmentKey":{"type":"string"},"set":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestPresence"},"unset":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestPresence"},"verified":{"type":"boolean"}},"required":["verified"],"type":"object"},"entitler.api.v1.SegmentTest-Input":{"additionalProperties":false,"properties":{"ageBetween":{"$ref":"#/components/schemas/entitler.api.v1.SegmentAgeRange"},"attributeKey":{"type":"string"},"between":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestRange"},"in":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestValues-Input"},"inSegment":{"$ref":"#/components/schemas/entitler.api.v1.SegmentMembership-Input"},"notIn":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestValues-Input"},"segmentKey":{"type":"string"},"set":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestPresence"},"unset":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTestPresence"},"verified":{"type":"boolean"}},"type":"object"},"entitler.api.v1.SegmentTestPresence":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.SegmentTestRange":{"additionalProperties":false,"properties":{"from":{"type":"string"},"to":{"type":"string"}},"type":"object"},"entitler.api.v1.SegmentTestValues":{"additionalProperties":false,"properties":{"values":{"items":{"type":"string"},"type":"array"}},"required":["values"],"type":"object"},"entitler.api.v1.SegmentTestValues-Input":{"additionalProperties":false,"properties":{"values":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.SegmentTests":{"additionalProperties":false,"properties":{"tests":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTest-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.SegmentVersion":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"description":{"type":"string"},"match":{"$ref":"#/components/schemas/entitler.api.v1.SegmentMatch"},"name":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"tests":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTest"},"type":"array"}},"required":["number","name","description","match","tests"],"type":"object"},"entitler.api.v1.SellableListing":{"additionalProperties":false,"properties":{"periodId":{"type":"string"},"planId":{"type":"string"},"planVersionId":{"type":"string"}},"required":["planId","planVersionId"],"type":"object"},"entitler.api.v1.Selling":{"enum":["SELLING_UNSPECIFIED","SELLING_SELF_SERVE","SELLING_SALES_LED"],"type":"string"},"entitler.api.v1.SendBackChangeRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"note":{"type":"string"}},"type":"object"},"entitler.api.v1.SendBackChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.ServedCatalogue":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"nothing":{"$ref":"#/components/schemas/entitler.api.v1.NothingServed"},"release":{"$ref":"#/components/schemas/entitler.api.v1.ServedRelease"},"track":{"$ref":"#/components/schemas/entitler.api.v1.ServedTrack"}},"type":"object"},"entitler.api.v1.ServedRelease":{"additionalProperties":false,"properties":{"id":{"type":"string"},"number":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","number"],"type":"object"},"entitler.api.v1.ServedTrack":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"],"type":"object"},"entitler.api.v1.SessionEndReason":{"enum":["SESSION_END_REASON_UNSPECIFIED","SESSION_END_REASON_ENDED","SESSION_END_REASON_EXPIRED","SESSION_END_REASON_RESTARTED","SESSION_END_REASON_REPLACED","SESSION_END_REASON_SIGNED_OUT","SESSION_END_REASON_NOT_ENTITLED"],"type":"string"},"entitler.api.v1.SetAddOnRequest":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createCustomer":{"type":"boolean"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"reason":{"type":"string"},"replaces":{"$ref":"#/components/schemas/entitler.common.v1.PlanSelector"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SetAddOnResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.SetAppStoreOffersRequest":{"additionalProperties":false,"properties":{"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOffer-Input"},"type":"array"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SetAppStoreOffersResponse":{"additionalProperties":false,"properties":{"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AppStoreOffer"},"type":"array"}},"required":["offers"],"type":"object"},"entitler.api.v1.SetCollectionRequest":{"additionalProperties":false,"properties":{"collection":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionCollection"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"invoiced":{"type":"boolean"},"productId":{"type":"string"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"terms":{"$ref":"#/components/schemas/entitler.api.v1.PaymentTerms-Input"}},"type":"object"},"entitler.api.v1.SetCollectionResponse":{"additionalProperties":false,"properties":{"result":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"}},"type":"object"},"entitler.api.v1.SetDefaultPlanRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"planId":{"type":"string"}},"type":"object"},"entitler.api.v1.SetDefaultPlanResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"product":{"$ref":"#/components/schemas/entitler.api.v1.Product"}},"type":"object"},"entitler.api.v1.SetEnvironmentOrderRequest":{"additionalProperties":false,"properties":{"environments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.EnvironmentPlace"},"type":"array"}},"type":"object"},"entitler.api.v1.SetEnvironmentOrderResponse":{"additionalProperties":false,"properties":{"environments":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Environment"},"type":"array"}},"required":["environments"],"type":"object"},"entitler.api.v1.SetListingsRequest":{"additionalProperties":false,"properties":{"catalogue":{"$ref":"#/components/schemas/entitler.common.v1.CatalogueSelector"},"channels":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingChannelInput"},"type":"array"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"planId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SetListingsResponse":{"additionalProperties":false,"properties":{"listings":{"$ref":"#/components/schemas/entitler.api.v1.CatalogueListings"}},"type":"object"},"entitler.api.v1.SetMarketOrderRequest":{"additionalProperties":false,"properties":{"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.MarketPlace"},"type":"array"}},"type":"object"},"entitler.api.v1.SetMarketOrderResponse":{"additionalProperties":false,"properties":{"markets":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Market"},"type":"array"}},"required":["markets"],"type":"object"},"entitler.api.v1.SetPeriodCalendarRequest":{"additionalProperties":false,"properties":{"calendar":{"type":"boolean"}},"type":"object"},"entitler.api.v1.SetPeriodCalendarResponse":{"additionalProperties":false,"properties":{"period":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriod"}},"type":"object"},"entitler.api.v1.SetPlanRequest":{"additionalProperties":false,"properties":{"allowOverLimits":{"type":"boolean"},"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"country":{"type":"string"},"createCustomer":{"type":"boolean"},"daysUntilDue":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"end":{"$ref":"#/components/schemas/entitler.api.v1.EndProduct"},"endBilling":{"type":"boolean"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"keepBilling":{"type":"boolean"},"latestVersion":{"type":"boolean"},"manualCollection":{"$ref":"#/components/schemas/entitler.api.v1.PaymentTerms-Input"},"market":{"type":"string"},"offers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.OfferChoice"},"type":"array"},"periodId":{"type":"string"},"reason":{"type":"string"},"removeUnavailableAddOns":{"type":"boolean"},"set":{"$ref":"#/components/schemas/entitler.common.v1.PlanSelector"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"timing":{"$ref":"#/components/schemas/entitler.api.v1.ChangeTiming"},"trial":{"type":"boolean"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"waiveCoolingOff":{"type":"boolean"},"waiveEarlyTerminationFee":{"type":"boolean"}},"type":"object"},"entitler.api.v1.SetPlanResponse":{"additionalProperties":false,"properties":{"completed":{"$ref":"#/components/schemas/entitler.api.v1.ChangeResult"},"paymentProcessing":{"$ref":"#/components/schemas/entitler.api.v1.PaymentProcessing"},"paymentRequired":{"$ref":"#/components/schemas/entitler.api.v1.PaymentRequired"}},"type":"object"},"entitler.api.v1.SetPositionsRequest":{"additionalProperties":false,"properties":{"positions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPosition-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.SetPositionsResponse":{"additionalProperties":false,"properties":{"positions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPosition"},"type":"array"}},"required":["positions"],"type":"object"},"entitler.api.v1.SetPriceRequest":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"bands":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PriceBand-Input"},"type":"array"},"cell":{"$ref":"#/components/schemas/entitler.api.v1.PriceCell-Input"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"}},"type":"object"},"entitler.api.v1.SetPriceResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.Plan"}},"type":"object"},"entitler.api.v1.SetPricesRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanPricing"},"type":"array"}},"type":"object"},"entitler.api.v1.SetPricesResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.SetProjectImageRequest":{"additionalProperties":false,"properties":{"image":{"contentEncoding":"base64","type":"string"}},"type":"object"},"entitler.api.v1.SetProjectImageResponse":{"additionalProperties":false,"properties":{"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"}},"type":"object"},"entitler.api.v1.SetTrackListingsRequest":{"additionalProperties":false,"properties":{"channels":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ListingChannelInput"},"type":"array"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SetTrackListingsResponse":{"additionalProperties":false,"properties":{"listings":{"$ref":"#/components/schemas/entitler.api.v1.CatalogueListings"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"}},"type":"object"},"entitler.api.v1.SetTrackSourceRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"source":{"$ref":"#/components/schemas/entitler.api.v1.NewTrackSource"}},"type":"object"},"entitler.api.v1.SetTrackSourceResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.SetWebhookEndpointRequest":{"additionalProperties":false,"properties":{"noticeDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"rotateSecret":{"type":"boolean"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"url":{"type":"string"}},"type":"object"},"entitler.api.v1.SetWebhookEndpointResponse":{"additionalProperties":false,"properties":{"endpoint":{"$ref":"#/components/schemas/entitler.api.v1.WebhookEndpoint"},"signingSecret":{"type":"string"}},"type":"object"},"entitler.api.v1.Settings":{"additionalProperties":false,"properties":{"available":{"$ref":"#/components/schemas/entitler.api.v1.ProjectSwitches"},"entitlementCache":{"$ref":"#/components/schemas/entitler.api.v1.EntitlementCache"},"guide":{"$ref":"#/components/schemas/entitler.api.v1.ProjectGuide"},"offlineDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"policy":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicies"},"projectId":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"switches":{"$ref":"#/components/schemas/entitler.api.v1.ProjectSwitches"},"teamId":{"type":"string"},"timeZone":{"type":"string"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"weekStart":{"$ref":"#/components/schemas/entitler.common.v1.Weekday"}},"required":["teamId","projectId","timeZone","entitlementCache","offlineDays","revision","updatedAt","weekStart"],"type":"object"},"entitler.api.v1.SettleHoldRequest":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SettleHoldResponse":{"additionalProperties":false,"properties":{"tracked":{"$ref":"#/components/schemas/entitler.api.v1.TrackedUsage"}},"type":"object"},"entitler.api.v1.SignAppStoreOfferRequest":{"additionalProperties":false,"properties":{"offerCode":{"type":"string"},"offerKey":{"type":"string"},"productId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"transactionId":{"type":"string"}},"type":"object"},"entitler.api.v1.SignAppStoreOfferResponse":{"additionalProperties":false,"properties":{"heldUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"offerId":{"type":"string"},"offerIdentifier":{"type":"string"},"signature":{"type":"string"}},"required":["offerIdentifier","signature","offerId","heldUntil"],"type":"object"},"entitler.api.v1.SignInDeviceRequest":{"additionalProperties":false,"properties":{"externalId":{"type":"string"},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"type":{"type":"string"}},"type":"object"},"entitler.api.v1.SignInDeviceResponse":{"additionalProperties":false,"properties":{"device":{"$ref":"#/components/schemas/entitler.api.v1.Device"},"devices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Device"},"type":"array"},"limit":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"lockedUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"refusal":{"$ref":"#/components/schemas/entitler.api.v1.DeviceRefusal"},"signedIn":{"type":"boolean"}},"required":["signedIn","devices"],"type":"object"},"entitler.api.v1.SignOutDeviceRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SignOutDeviceResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.SlotDays":{"enum":["SLOT_DAYS_UNSPECIFIED","SLOT_DAYS_EVERY_DAY","SLOT_DAYS_WEEKDAYS","SLOT_DAYS_WEEKENDS"],"type":"string"},"entitler.api.v1.SlotHours":{"additionalProperties":false,"properties":{"days":{"$ref":"#/components/schemas/entitler.api.v1.SlotDays"},"from":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"to":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["days","from","to"],"type":"object"},"entitler.api.v1.SlotHours-Input":{"additionalProperties":false,"properties":{"days":{"$ref":"#/components/schemas/entitler.api.v1.SlotDays"},"from":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"to":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.StartCohortRequest":{"additionalProperties":false,"properties":{"idempotencyKey":{"type":"string"},"name":{"type":"string"},"planId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.StartCohortResponse":{"additionalProperties":false,"properties":{"closed":{"$ref":"#/components/schemas/entitler.api.v1.Cohort"},"started":{"$ref":"#/components/schemas/entitler.api.v1.Cohort"}},"type":"object"},"entitler.api.v1.StartDeviceSessionRequest":{"additionalProperties":false,"properties":{"leaseSeconds":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.StartDeviceSessionResponse":{"additionalProperties":false,"properties":{"limit":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"lockedUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"refusal":{"$ref":"#/components/schemas/entitler.api.v1.DeviceRefusal"},"session":{"$ref":"#/components/schemas/entitler.api.v1.DeviceSession"},"sessions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.DeviceSession"},"type":"array"},"started":{"type":"boolean"}},"required":["started","sessions"],"type":"object"},"entitler.api.v1.StartImportRequest":{"additionalProperties":false,"properties":{"customerId":{"$ref":"#/components/schemas/entitler.api.v1.ByCustomerId"},"dryRun":{"type":"boolean"},"metadataKey":{"type":"string"},"notificationHistory":{"$ref":"#/components/schemas/entitler.api.v1.ByNotificationHistory"},"pairs":{"$ref":"#/components/schemas/entitler.api.v1.ImportPairs"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.StartImportResponse":{"additionalProperties":false,"properties":{"import":{"$ref":"#/components/schemas/entitler.api.v1.ProviderImport"}},"type":"object"},"entitler.api.v1.StarterFeature":{"additionalProperties":false,"properties":{"description":{"type":"string"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.FeatureKind"},"name":{"type":"string"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingType-Input"},"unit":{"type":"string"}},"type":"object"},"entitler.api.v1.StarterPlan":{"additionalProperties":false,"properties":{"addOnFor":{"items":{"type":"string"},"type":"array"},"content":{"$ref":"#/components/schemas/entitler.api.v1.PlanContent-Input"},"description":{"type":"string"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.StripeConnection":{"additionalProperties":false,"properties":{"restrictedKey":{"type":"string"}},"type":"object"},"entitler.api.v1.StripeListingIds":{"additionalProperties":false,"properties":{"priceId":{"type":"string"}},"required":["priceId"],"type":"object"},"entitler.api.v1.StripeListingIds-Input":{"additionalProperties":false,"properties":{"priceId":{"type":"string"}},"type":"object"},"entitler.api.v1.Submission":{"additionalProperties":false,"properties":{"at":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"by":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"reviewerUserId":{"type":"string"}},"required":["at"],"type":"object"},"entitler.api.v1.SubmitChangeRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"reviewerUserId":{"type":"string"}},"type":"object"},"entitler.api.v1.SubmitChangeResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.Subscription":{"additionalProperties":false,"properties":{"addOns":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionAddOn"},"type":"array"},"amountDue":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"amountOverdue":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"billed":{"$ref":"#/components/schemas/entitler.api.v1.BilledPlan"},"billing":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionBilling"},"cancellation":{"$ref":"#/components/schemas/entitler.api.v1.Cancellation"},"cancelsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"collection":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionCollection"},"contractStartedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"contractTerm":{"$ref":"#/components/schemas/entitler.api.v1.ContractTerm"},"coolingOffEndsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"discounts":{"items":{"$ref":"#/components/schemas/entitler.api.v1.AppliedDiscount"},"type":"array"},"instalments":{"$ref":"#/components/schemas/entitler.api.v1.InstalmentPlan"},"onDefaultPlan":{"type":"boolean"},"overduePeriods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"paidOffAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"paidUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"pause":{"$ref":"#/components/schemas/entitler.api.v1.Pause"},"payers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionPayer"},"type":"array"},"paymentDueAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"paymentTerms":{"$ref":"#/components/schemas/entitler.api.v1.PaymentTerms"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionPlan"},"prepaidPeriods":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"productId":{"type":"string"},"renewsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"scheduledChange":{"$ref":"#/components/schemas/entitler.api.v1.ScheduledChange"},"scheduledVersionChanges":{"items":{"$ref":"#/components/schemas/entitler.api.v1.ScheduledVersionChange"},"type":"array"},"startedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"status":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionStatus"},"suspendedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"suspensionEndsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"trial":{"$ref":"#/components/schemas/entitler.api.v1.Trial"},"trialEndsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["addOns","collection","prepaidPeriods","scheduledVersionChanges","discounts","payers","overduePeriods","status","billing","onDefaultPlan"],"type":"object"},"entitler.api.v1.SubscriptionAddOn":{"additionalProperties":false,"properties":{"addedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"billingConnectionId":{"type":"string"},"cohortId":{"type":"string"},"cohortNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"money":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"},"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"priceLockedUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"purchaseSource":{"type":"string"},"quantity":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"required":{"type":"boolean"},"scheduledPlanId":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planKey","planName","versionNumber","quantity","money","addedAt","required"],"type":"object"},"entitler.api.v1.SubscriptionBilling":{"enum":["SUBSCRIPTION_BILLING_UNSPECIFIED","SUBSCRIPTION_BILLING_RECURRING","SUBSCRIPTION_BILLING_ONE_TIME"],"type":"string"},"entitler.api.v1.SubscriptionCollection":{"enum":["SUBSCRIPTION_COLLECTION_UNSPECIFIED","SUBSCRIPTION_COLLECTION_PROVIDER","SUBSCRIPTION_COLLECTION_BUSINESS","SUBSCRIPTION_COLLECTION_NOT_CHARGED"],"type":"string"},"entitler.api.v1.SubscriptionMovePolicy":{"enum":["SUBSCRIPTION_MOVE_POLICY_UNSPECIFIED","SUBSCRIPTION_MOVE_POLICY_UPGRADE","SUBSCRIPTION_MOVE_POLICY_DOWNGRADE","SUBSCRIPTION_MOVE_POLICY_CROSSGRADE","SUBSCRIPTION_MOVE_POLICY_LONGER","SUBSCRIPTION_MOVE_POLICY_SHORTER"],"type":"string"},"entitler.api.v1.SubscriptionPayer":{"additionalProperties":false,"properties":{"addedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customerId":{"type":"string"},"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"externalId":{"type":"string"},"offerKeys":{"items":{"type":"string"},"type":"array"},"payerId":{"type":"string"},"share":{"$ref":"#/components/schemas/entitler.api.v1.PayerShare"},"startsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"until":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["payerId","customerId","externalId","addedAt","offerKeys"],"type":"object"},"entitler.api.v1.SubscriptionPlan":{"additionalProperties":false,"properties":{"billingConnectionId":{"type":"string"},"cohortId":{"type":"string"},"cohortNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"money":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"},"periodId":{"type":"string"},"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"priceLockedUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"purchaseSource":{"type":"string"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","planKey","planName","versionNumber","money"],"type":"object"},"entitler.api.v1.SubscriptionPrice":{"additionalProperties":false,"properties":{"atRenewal":{"$ref":"#/components/schemas/entitler.api.v1.CustomerPriceLines"},"nextCharges":{"items":{"$ref":"#/components/schemas/entitler.api.v1.NextCharge"},"type":"array"},"now":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerPriceLine"},"type":"array"},"productId":{"type":"string"},"renewsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"subscriptionId":{"type":"string"},"usage":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionUsage"}},"required":["subscriptionId","renewsAt","now","nextCharges"],"type":"object"},"entitler.api.v1.SubscriptionStatus":{"enum":["SUBSCRIPTION_STATUS_UNSPECIFIED","SUBSCRIPTION_STATUS_ACTIVE","SUBSCRIPTION_STATUS_TRIALING","SUBSCRIPTION_STATUS_INCOMPLETE","SUBSCRIPTION_STATUS_SUSPENDED","SUBSCRIPTION_STATUS_PAUSED","SUBSCRIPTION_STATUS_PAID_OFF"],"type":"string"},"entitler.api.v1.SubscriptionUsage":{"additionalProperties":false,"properties":{"estimates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageEstimate"},"type":"array"},"versions":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SubscriptionUsageVersion"},"type":"array"}},"required":["versions","estimates"],"type":"object"},"entitler.api.v1.SubscriptionUsageVersion":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"prices":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerUsagePrice"},"type":"array"},"seasons":{"items":{"$ref":"#/components/schemas/entitler.api.v1.SeasonStart"},"type":"array"},"slots":{"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanSlot"},"type":"array"},"version":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["planId","version","prices","seasons","slots"],"type":"object"},"entitler.api.v1.Suspension":{"additionalProperties":false,"properties":{"periodsWhileSuspended":{"$ref":"#/components/schemas/entitler.api.v1.PeriodsWhileSuspended"},"suspendAfterDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["suspendAfterDays","periodsWhileSuspended"],"type":"object"},"entitler.api.v1.Suspension-Input":{"additionalProperties":false,"properties":{"periodsWhileSuspended":{"$ref":"#/components/schemas/entitler.api.v1.PeriodsWhileSuspended"},"suspendAfterDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.SwitchChanges":{"additionalProperties":false,"properties":{"cohorts":{"type":"boolean"},"environments":{"type":"boolean"},"releases":{"type":"boolean"},"reviews":{"type":"boolean"},"signIn":{"type":"boolean"},"tracks":{"type":"boolean"},"versions":{"type":"boolean"}},"type":"object"},"entitler.api.v1.SwitchOn":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.SyncBillingRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SyncBillingResponse":{"additionalProperties":false,"properties":{"changed":{"type":"boolean"}},"required":["changed"],"type":"object"},"entitler.api.v1.SyncProviderStateRequest":{"additionalProperties":false,"properties":{"connectionId":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.SyncProviderStateResponse":{"additionalProperties":false,"properties":{"providers":{"$ref":"#/components/schemas/entitler.api.v1.CustomerProviders"}},"type":"object"},"entitler.api.v1.TaxCollection":{"enum":["TAX_COLLECTION_UNSPECIFIED","TAX_COLLECTION_OFF","TAX_COLLECTION_AUTOMATIC"],"type":"string"},"entitler.api.v1.Team":{"additionalProperties":false,"properties":{"accessLevel":{"$ref":"#/components/schemas/entitler.api.v1.AccessLevel"},"claimable":{"type":"boolean"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"image":{"$ref":"#/components/schemas/entitler.api.v1.Image"},"name":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["id","name","accessLevel","revision","createdAt","updatedAt","claimable"],"type":"object"},"entitler.api.v1.TeamKeyScope":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.TermEnd":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.TermThen":{"enum":["TERM_THEN_UNSPECIFIED","TERM_THEN_RENEW","TERM_THEN_ROLLING","TERM_THEN_END"],"type":"string"},"entitler.api.v1.TopUpAmount":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"featureKey":{"type":"string"}},"required":["featureKey","amount"],"type":"object"},"entitler.api.v1.Track":{"additionalProperties":false,"properties":{"closedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"defaultTrack":{"type":"boolean"},"environmentId":{"type":"string"},"id":{"type":"string"},"metadata":{"$ref":"#/components/schemas/entitler.common.v1.Metadata"},"money":{"$ref":"#/components/schemas/entitler.api.v1.TrackMoney"},"name":{"type":"string"},"position":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"projectId":{"type":"string"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"source":{"$ref":"#/components/schemas/entitler.api.v1.TrackSource"}},"required":["id","projectId","environmentId","name","position","defaultTrack","money","revision"],"type":"object"},"entitler.api.v1.TrackMembers":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"trackId":{"type":"string"}},"required":["customers"],"type":"object"},"entitler.api.v1.TrackMoney":{"enum":["TRACK_MONEY_UNSPECIFIED","TRACK_MONEY_REAL","TRACK_MONEY_TEST"],"type":"string"},"entitler.api.v1.TrackSource":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"release":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseNumber"},"unreleased":{"$ref":"#/components/schemas/entitler.api.v1.Unreleased"}},"type":"object"},"entitler.api.v1.TrackedUsage":{"additionalProperties":false,"properties":{"asOf":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"customer":{"$ref":"#/components/schemas/entitler.api.v1.EntitledCustomer"},"entitlement":{"$ref":"#/components/schemas/entitler.api.v1.Entitlement"},"member":{"$ref":"#/components/schemas/entitler.api.v1.EntitledMember"},"served":{"$ref":"#/components/schemas/entitler.api.v1.ServedCatalogue"},"shared":{"$ref":"#/components/schemas/entitler.api.v1.Entitlement"},"usage":{"$ref":"#/components/schemas/entitler.api.v1.UsageResult"}},"required":["asOf"],"type":"object"},"entitler.api.v1.TransferPurchaseRequest":{"additionalProperties":false,"properties":{"purchase":{"$ref":"#/components/schemas/entitler.api.v1.PurchaseRef-Input"},"reason":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.TransferPurchaseResponse":{"additionalProperties":false,"properties":{"outcome":{"$ref":"#/components/schemas/entitler.api.v1.PurchaseTransferOutcome"},"transfer":{"$ref":"#/components/schemas/entitler.api.v1.PurchaseTransfer"}},"required":["outcome"],"type":"object"},"entitler.api.v1.Trial":{"additionalProperties":false,"properties":{"convertedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"endsAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"fallsBackToPlanId":{"type":"string"}},"required":["endsAt"],"type":"object"},"entitler.api.v1.TrialLength":{"additionalProperties":false,"properties":{"days":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"months":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.TrialOutcome":{"enum":["TRIAL_OUTCOME_UNSPECIFIED","TRIAL_OUTCOME_CONVERTED","TRIAL_OUTCOME_FELL_BACK","TRIAL_OUTCOME_ENDED"],"type":"string"},"entitler.api.v1.TurnOffGuestLinkResponse":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.TurnOnGuestLinkRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.TurnOnGuestLinkResponse":{"additionalProperties":false,"properties":{"guestLink":{"$ref":"#/components/schemas/entitler.api.v1.GuestLink"}},"type":"object"},"entitler.api.v1.UnarchiveMarketRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.UnarchiveMarketResponse":{"additionalProperties":false,"properties":{"market":{"$ref":"#/components/schemas/entitler.api.v1.Market"}},"type":"object"},"entitler.api.v1.UnarchivePeriodRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.UnarchivePeriodResponse":{"additionalProperties":false,"properties":{"period":{"$ref":"#/components/schemas/entitler.api.v1.BillingPeriod"}},"type":"object"},"entitler.api.v1.UnarchiveProjectRequest":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.UnarchiveProjectResponse":{"additionalProperties":false,"properties":{"project":{"$ref":"#/components/schemas/entitler.api.v1.Project"}},"type":"object"},"entitler.api.v1.UnblockCustomerRequest":{"additionalProperties":false,"properties":{"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.UnblockCustomerResponse":{"additionalProperties":false,"properties":{"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"}},"type":"object"},"entitler.api.v1.UnitRate":{"additionalProperties":false,"properties":{"currency":{"type":"string"},"display":{"type":"string"},"millionths":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["millionths","currency","display"],"type":"object"},"entitler.api.v1.UnofferedRule":{"enum":["UNOFFERED_RULE_UNSPECIFIED","UNOFFERED_RULE_REMOVE","UNOFFERED_RULE_REFUSE"],"type":"string"},"entitler.api.v1.Unreleased":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.UnsupportedPrice":{"additionalProperties":false,"properties":{"priceId":{"type":"string"},"productId":{"type":"string"},"reason":{"$ref":"#/components/schemas/entitler.api.v1.UnsupportedPriceReason"}},"required":["priceId","productId","reason"],"type":"object"},"entitler.api.v1.UnsupportedPriceReason":{"enum":["UNSUPPORTED_PRICE_REASON_UNSPECIFIED","UNSUPPORTED_PRICE_REASON_GRADUATED","UNSUPPORTED_PRICE_REASON_METERED","UNSUPPORTED_PRICE_REASON_PACKAGE","UNSUPPORTED_PRICE_REASON_CUSTOM_AMOUNT","UNSUPPORTED_PRICE_REASON_CURRENCY","UNSUPPORTED_PRICE_REASON_AMOUNT","UNSUPPORTED_PRICE_REASON_FREE","UNSUPPORTED_PRICE_REASON_TIERS","UNSUPPORTED_PRICE_REASON_INTERVAL"],"type":"string"},"entitler.api.v1.UpdateAttributeRequest":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"customersMaySet":{"type":"boolean"},"description":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"key":{"type":"string"},"name":{"type":"string"},"options":{"$ref":"#/components/schemas/entitler.api.v1.AttributeOptions"},"type":{"$ref":"#/components/schemas/entitler.api.v1.AttributeType"}},"type":"object"},"entitler.api.v1.UpdateAttributeResponse":{"additionalProperties":false,"properties":{"attribute":{"$ref":"#/components/schemas/entitler.api.v1.Attribute"},"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.UpdateCalendarRequest":{"additionalProperties":false,"properties":{"days":{"$ref":"#/components/schemas/entitler.api.v1.CalendarDays"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"key":{"type":"string"},"name":{"type":"string"},"timeZone":{"type":"string"}},"type":"object"},"entitler.api.v1.UpdateCalendarResponse":{"additionalProperties":false,"properties":{"calendar":{"$ref":"#/components/schemas/entitler.api.v1.Calendar"},"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"}},"type":"object"},"entitler.api.v1.UpdateConnectionRequest":{"additionalProperties":false,"properties":{"appId":{"type":"string"},"appStoreConnectKey":{"$ref":"#/components/schemas/entitler.api.v1.InAppPurchaseKey"},"customerAdoption":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAdoption"},"inAppPurchaseKey":{"$ref":"#/components/schemas/entitler.api.v1.InAppPurchaseKey"},"managesPrices":{"type":"boolean"},"managesProducts":{"type":"boolean"},"name":{"type":"string"},"restorePolicy":{"$ref":"#/components/schemas/entitler.api.v1.RestorePolicy"},"restrictedKey":{"type":"string"},"reversalScope":{"$ref":"#/components/schemas/entitler.api.v1.ReversalScope"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"},"taxCollection":{"$ref":"#/components/schemas/entitler.api.v1.TaxCollection"}},"type":"object"},"entitler.api.v1.UpdateConnectionResponse":{"additionalProperties":false,"properties":{"connection":{"$ref":"#/components/schemas/entitler.api.v1.Connection"}},"type":"object"},"entitler.api.v1.UpdateCustomerMemberRequest":{"additionalProperties":false,"properties":{"name":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.UpdateCustomerMemberResponse":{"additionalProperties":false,"properties":{"member":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMember"}},"type":"object"},"entitler.api.v1.UpdateCustomerRequest":{"additionalProperties":false,"properties":{"attributes":{"items":{"$ref":"#/components/schemas/entitler.api.v1.CustomerAttributeChange"},"type":"array"},"email":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"name":{"type":"string"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.UpdateCustomerResponse":{"additionalProperties":false,"properties":{"customer":{"$ref":"#/components/schemas/entitler.api.v1.Customer"}},"type":"object"},"entitler.api.v1.UpdateFeatureRequest":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"description":{"type":"string"},"deviceLimit":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimit-Input"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"innerWindow":{"$ref":"#/components/schemas/entitler.api.v1.MeterWindow-Input"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.FeatureKind"},"lateDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"limitsCustomerMembers":{"type":"boolean"},"measure":{"$ref":"#/components/schemas/entitler.common.v1.Measure"},"members":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue-Input"},"name":{"type":"string"},"noDeviceLimit":{"$ref":"#/components/schemas/entitler.common.v1.NoDeviceLimit"},"noInnerWindow":{"$ref":"#/components/schemas/entitler.api.v1.NoInnerWindow"},"reset":{"$ref":"#/components/schemas/entitler.api.v1.MeterReset-Input"},"restoreVersionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"rounding":{"$ref":"#/components/schemas/entitler.api.v1.Rounding"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingType-Input"},"sharesLimit":{"type":"boolean"},"unit":{"type":"string"},"zones":{"$ref":"#/components/schemas/entitler.api.v1.Zones"}},"type":"object"},"entitler.api.v1.UpdateFeatureResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"feature":{"$ref":"#/components/schemas/entitler.api.v1.Feature"}},"type":"object"},"entitler.api.v1.UpdateIdentityProviderRequest":{"additionalProperties":false,"properties":{"algorithms":{"$ref":"#/components/schemas/entitler.api.v1.IdentityTokenAlgorithmList"},"audience":{"type":"string"},"autoRegister":{"type":"boolean"},"enabled":{"type":"boolean"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"issuer":{"type":"string"},"jwksUrl":{"type":"string"},"name":{"type":"string"},"scopes":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProviderScopeList"},"subjectClaim":{"type":"string"}},"type":"object"},"entitler.api.v1.UpdateIdentityProviderResponse":{"additionalProperties":false,"properties":{"provider":{"$ref":"#/components/schemas/entitler.api.v1.IdentityProvider"}},"type":"object"},"entitler.api.v1.UpdateKeyRequest":{"additionalProperties":false,"properties":{"allowedOrigins":{"$ref":"#/components/schemas/entitler.api.v1.OriginList"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"name":{"type":"string"},"permissions":{"$ref":"#/components/schemas/entitler.api.v1.PermissionList"}},"type":"object"},"entitler.api.v1.UpdateKeyResponse":{"additionalProperties":false,"properties":{"key":{"$ref":"#/components/schemas/entitler.api.v1.Key"}},"type":"object"},"entitler.api.v1.UpdateMarketRequest":{"additionalProperties":false,"properties":{"details":{"$ref":"#/components/schemas/entitler.api.v1.MarketDetails"}},"type":"object"},"entitler.api.v1.UpdateMarketResponse":{"additionalProperties":false,"properties":{"market":{"$ref":"#/components/schemas/entitler.api.v1.Market"}},"type":"object"},"entitler.api.v1.UpdateOfferRequest":{"additionalProperties":false,"properties":{"content":{"$ref":"#/components/schemas/entitler.api.v1.OfferContent-Input"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.UpdateOfferResponse":{"additionalProperties":false,"properties":{"offer":{"$ref":"#/components/schemas/entitler.api.v1.Offer"}},"type":"object"},"entitler.api.v1.UpdatePathRequest":{"additionalProperties":false,"properties":{"back":{"$ref":"#/components/schemas/entitler.api.v1.MoveRule-Input"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"forward":{"$ref":"#/components/schemas/entitler.api.v1.MoveRule-Input"},"rank":{"$ref":"#/components/schemas/entitler.api.v1.PathRank"},"requires":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.UpdatePathResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"path":{"$ref":"#/components/schemas/entitler.api.v1.Path"}},"type":"object"},"entitler.api.v1.UpdatePlanRequest":{"additionalProperties":false,"properties":{"customerWide":{"$ref":"#/components/schemas/entitler.api.v1.CustomerWide"},"description":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"fees":{"$ref":"#/components/schemas/entitler.api.v1.PlanFees"},"followsMembers":{"type":"boolean"},"free":{"type":"boolean"},"indexation":{"$ref":"#/components/schemas/entitler.api.v1.PlanIndexation"},"instalments":{"$ref":"#/components/schemas/entitler.api.v1.PlanInstalments"},"items":{"$ref":"#/components/schemas/entitler.api.v1.PlanItems"},"key":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"},"lock":{"$ref":"#/components/schemas/entitler.api.v1.PlanLock"},"move":{"$ref":"#/components/schemas/entitler.api.v1.CohortMove"},"name":{"type":"string"},"pack":{"type":"boolean"},"periodMoves":{"$ref":"#/components/schemas/entitler.api.v1.PeriodMoves"},"periods":{"$ref":"#/components/schemas/entitler.api.v1.PlanPeriods"},"prices":{"$ref":"#/components/schemas/entitler.api.v1.PlanPrices"},"productId":{"type":"string"},"quantity":{"$ref":"#/components/schemas/entitler.api.v1.QuantityRule-Input"},"seasons":{"$ref":"#/components/schemas/entitler.api.v1.PlanSeasons"},"selling":{"$ref":"#/components/schemas/entitler.api.v1.Selling"},"slots":{"$ref":"#/components/schemas/entitler.api.v1.PlanSlots"},"status":{"$ref":"#/components/schemas/entitler.api.v1.PlanStatus"},"terms":{"$ref":"#/components/schemas/entitler.api.v1.PlanTerms-Input"},"trial":{"$ref":"#/components/schemas/entitler.api.v1.PlanTrial"},"unoffered":{"$ref":"#/components/schemas/entitler.api.v1.UnofferedRule"},"usagePrices":{"$ref":"#/components/schemas/entitler.api.v1.PlanUsagePrices"},"usageWaitHours":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.UpdatePlanResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.Plan"}},"type":"object"},"entitler.api.v1.UpdateProductRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"key":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.UpdateProductResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"product":{"$ref":"#/components/schemas/entitler.api.v1.Product"}},"type":"object"},"entitler.api.v1.UpdateProjectGuideRequest":{"additionalProperties":false,"properties":{"building":{"$ref":"#/components/schemas/entitler.api.v1.Building"},"charging":{"$ref":"#/components/schemas/entitler.api.v1.Charging"},"reveal":{"items":{"$ref":"#/components/schemas/entitler.api.v1.GuideArea"},"type":"array"},"start":{"$ref":"#/components/schemas/entitler.api.v1.GuideStart"},"welcomed":{"type":"boolean"}},"type":"object"},"entitler.api.v1.UpdateProjectGuideResponse":{"additionalProperties":false,"properties":{"settings":{"$ref":"#/components/schemas/entitler.api.v1.Settings"}},"type":"object"},"entitler.api.v1.UpdateProjectSettingsRequest":{"additionalProperties":false,"properties":{"entitlementCache":{"$ref":"#/components/schemas/entitler.api.v1.EntitlementCache"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"offlineDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"policy":{"$ref":"#/components/schemas/entitler.api.v1.MovePolicies-Input"},"switches":{"$ref":"#/components/schemas/entitler.api.v1.SwitchChanges"},"timeZone":{"type":"string"},"weekStart":{"$ref":"#/components/schemas/entitler.common.v1.Weekday"}},"type":"object"},"entitler.api.v1.UpdateProjectSettingsResponse":{"additionalProperties":false,"properties":{"settings":{"$ref":"#/components/schemas/entitler.api.v1.Settings"}},"type":"object"},"entitler.api.v1.UpdateSegmentRequest":{"additionalProperties":false,"properties":{"archived":{"type":"boolean"},"description":{"type":"string"},"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"key":{"type":"string"},"match":{"$ref":"#/components/schemas/entitler.api.v1.SegmentMatch"},"name":{"type":"string"},"tests":{"$ref":"#/components/schemas/entitler.api.v1.SegmentTests"}},"type":"object"},"entitler.api.v1.UpdateSegmentResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.EditedChange"},"segment":{"$ref":"#/components/schemas/entitler.api.v1.Segment"}},"type":"object"},"entitler.api.v1.UpdateTrackRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"name":{"type":"string"},"position":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.UpdateTrackResponse":{"additionalProperties":false,"properties":{"track":{"$ref":"#/components/schemas/entitler.api.v1.Track"}},"type":"object"},"entitler.api.v1.UpdateVoucherBatchRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"settings":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatchSettings-Input"},"target":{"$ref":"#/components/schemas/entitler.api.v1.ProductTarget"}},"type":"object"},"entitler.api.v1.UpdateVoucherBatchResponse":{"additionalProperties":false,"properties":{"batch":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatch"}},"type":"object"},"entitler.api.v1.Upgrade":{"additionalProperties":false,"properties":{"action":{"$ref":"#/components/schemas/entitler.api.v1.UpgradeAction"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.UpgradeKind"},"move":{"$ref":"#/components/schemas/entitler.api.v1.UpgradeMove"},"planId":{"type":"string"},"planKey":{"type":"string"},"planName":{"type":"string"},"productId":{"type":"string"}},"required":["planId","planKey","planName","kind","move","action"],"type":"object"},"entitler.api.v1.UpgradeAction":{"enum":["UPGRADE_ACTION_UNSPECIFIED","UPGRADE_ACTION_BUY","UPGRADE_ACTION_CONTACT"],"type":"string"},"entitler.api.v1.UpgradeKind":{"enum":["UPGRADE_KIND_UNSPECIFIED","UPGRADE_KIND_PLAN","UPGRADE_KIND_ADD_ON"],"type":"string"},"entitler.api.v1.UpgradeMove":{"enum":["UPGRADE_MOVE_UNSPECIFIED","UPGRADE_MOVE_SUBSCRIBE","UPGRADE_MOVE_UPGRADE","UPGRADE_MOVE_SWITCH","UPGRADE_MOVE_ADD","UPGRADE_MOVE_REPLACE"],"type":"string"},"entitler.api.v1.UsageCell":{"additionalProperties":false,"properties":{"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate"},"type":"array"},"season":{"type":"string"},"slot":{"type":"string"}},"required":["rates"],"type":"object"},"entitler.api.v1.UsageCell-Input":{"additionalProperties":false,"properties":{"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate-Input"},"type":"array"},"season":{"type":"string"},"slot":{"type":"string"}},"type":"object"},"entitler.api.v1.UsageCells":{"additionalProperties":false,"properties":{"bySeason":{"type":"boolean"},"bySlot":{"type":"boolean"},"cells":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageCell"},"type":"array"}},"required":["bySeason","bySlot","cells"],"type":"object"},"entitler.api.v1.UsageCells-Input":{"additionalProperties":false,"properties":{"bySeason":{"type":"boolean"},"bySlot":{"type":"boolean"},"cells":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageCell-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.UsageChargeLine":{"additionalProperties":false,"properties":{"amount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"listAmount":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"offset":{"$ref":"#/components/schemas/entitler.api.v1.Amount"},"planId":{"type":"string"},"quantity":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"usagePeriod":{"$ref":"#/components/schemas/entitler.api.v1.ChargeUsagePeriod"},"usagePriceKey":{"type":"string"},"version":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["usagePriceKey","planId","version","quantity"],"type":"object"},"entitler.api.v1.UsageDay":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"date":{"type":"string"},"times":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"total":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"totalSaturated":{"type":"boolean"}},"required":["date","customers","times","total","totalSaturated"],"type":"object"},"entitler.api.v1.UsageDayBound":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"season":{"type":"string"}},"required":["amount"],"type":"object"},"entitler.api.v1.UsageDayBound-Input":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"season":{"type":"string"}},"type":"object"},"entitler.api.v1.UsageDayBounds":{"additionalProperties":false,"properties":{"bounds":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageDayBound"},"type":"array"}},"required":["bounds"],"type":"object"},"entitler.api.v1.UsageDayBounds-Input":{"additionalProperties":false,"properties":{"bounds":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageDayBound-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.UsageDays":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.api.v1.UsageEstimate":{"additionalProperties":false,"properties":{"charges":{"items":{"$ref":"#/components/schemas/entitler.api.v1.EstimatedUsageCharge"},"type":"array"},"featureKey":{"type":"string"},"usagePeriod":{"$ref":"#/components/schemas/entitler.api.v1.ChargeUsagePeriod"}},"required":["charges"],"type":"object"},"entitler.api.v1.UsageEvent":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"currency":{"type":"string"},"externalId":{"type":"string"},"featureKey":{"type":"string"},"idempotencyKey":{"type":"string"},"memberId":{"type":"string"},"occurredAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"zone":{"type":"string"}},"type":"object"},"entitler.api.v1.UsageFrom":{"enum":["USAGE_FROM_UNSPECIFIED","USAGE_FROM_ALL","USAGE_FROM_OVER_ALLOWANCE"],"type":"string"},"entitler.api.v1.UsageKind":{"enum":["USAGE_KIND_UNSPECIFIED","USAGE_KIND_USE","USAGE_KIND_ADJUST"],"type":"string"},"entitler.api.v1.UsageLogEntry":{"additionalProperties":false,"properties":{"amount":{"format":"int64","type":"integer"},"atMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"cancelledAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"cost":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"counted":{"type":"boolean"},"currency":{"type":"string"},"decidedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/entitler.api.v1.UsageKind"},"late":{"type":"boolean"},"memberExternalId":{"type":"string"},"memberId":{"type":"string"},"memberRemoved":{"type":"boolean"},"reason":{"type":"string"},"reportedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"setTo":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"source":{"$ref":"#/components/schemas/entitler.api.v1.UsageSource"},"zone":{"type":"string"}},"required":["id","featureKey","kind","amount","source","atMs","decimals","currency","late","counted","memberRemoved"],"type":"object"},"entitler.api.v1.UsageMinimum":{"additionalProperties":false,"properties":{"per":{"$ref":"#/components/schemas/entitler.api.v1.MinimumPer"},"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate"},"type":"array"}},"required":["per","rates"],"type":"object"},"entitler.api.v1.UsageMinimum-Input":{"additionalProperties":false,"properties":{"per":{"$ref":"#/components/schemas/entitler.api.v1.MinimumPer"},"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.UsageMode":{"enum":["USAGE_MODE_UNSPECIFIED","USAGE_MODE_GATE","USAGE_MODE_OBSERVE"],"type":"string"},"entitler.api.v1.UsageOutcome":{"enum":["USAGE_OUTCOME_UNSPECIFIED","USAGE_OUTCOME_RECORDED","USAGE_OUTCOME_REFUSED","USAGE_OUTCOME_DUPLICATE","USAGE_OUTCOME_CANCELLED","USAGE_OUTCOME_HELD","USAGE_OUTCOME_SETTLED","USAGE_OUTCOME_RELEASED","USAGE_OUTCOME_ADJUSTED"],"type":"string"},"entitler.api.v1.UsageRate":{"additionalProperties":false,"properties":{"marketId":{"type":"string"},"millionths":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["marketId","millionths"],"type":"object"},"entitler.api.v1.UsageRate-Input":{"additionalProperties":false,"properties":{"marketId":{"type":"string"},"millionths":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.UsageRateCell":{"additionalProperties":false,"properties":{"marketId":{"type":"string"},"season":{"type":"string"},"slot":{"type":"string"},"tier":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"usagePriceKey":{"type":"string"}},"required":["usagePriceKey"],"type":"object"},"entitler.api.v1.UsageRates":{"additionalProperties":false,"properties":{"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate"},"type":"array"}},"required":["rates"],"type":"object"},"entitler.api.v1.UsageRates-Input":{"additionalProperties":false,"properties":{"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.UsageRefusal":{"enum":["USAGE_REFUSAL_UNSPECIFIED","USAGE_REFUSAL_NOT_ENTITLED","USAGE_REFUSAL_OVER_ALLOWANCE","USAGE_REFUSAL_NO_BENEFIT","USAGE_REFUSAL_WAITING","USAGE_REFUSAL_OUTSIDE_HOURS","USAGE_REFUSAL_OVER_PER_USE","USAGE_REFUSAL_MEMBER_OVER_ALLOWANCE","USAGE_REFUSAL_SHARED_OVER_ALLOWANCE"],"type":"string"},"entitler.api.v1.UsageResult":{"additionalProperties":false,"properties":{"amount":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"capped":{"type":"boolean"},"cappedBy":{"$ref":"#/components/schemas/entitler.api.v1.CappedBy"},"cost":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"counted":{"type":"boolean"},"expiresAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"holdId":{"type":"string"},"late":{"type":"boolean"},"memberOverBy":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"meterChange":{"format":"int64","type":"integer"},"mode":{"$ref":"#/components/schemas/entitler.api.v1.UsageMode"},"occurredAtMs":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"opensAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"outcome":{"$ref":"#/components/schemas/entitler.api.v1.UsageOutcome"},"overBy":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"perUse":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"perUseOverBy":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"refusal":{"$ref":"#/components/schemas/entitler.api.v1.UsageRefusal"},"replayed":{"type":"boolean"},"saturated":{"type":"boolean"},"sharedOverBy":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"usageId":{"type":"string"},"waitingUntil":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["outcome","mode","amount","meterChange","overBy","late","replayed","saturated","capped","counted","perUseOverBy","memberOverBy","sharedOverBy"],"type":"object"},"entitler.api.v1.UsageSource":{"enum":["USAGE_SOURCE_UNSPECIFIED","USAGE_SOURCE_API","USAGE_SOURCE_CLIENT","USAGE_SOURCE_DASHBOARD"],"type":"string"},"entitler.api.v1.UsageTier":{"additionalProperties":false,"properties":{"perDay":{"$ref":"#/components/schemas/entitler.api.v1.UsageDayBounds"},"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate"},"type":"array"},"upTo":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["rates"],"type":"object"},"entitler.api.v1.UsageTier-Input":{"additionalProperties":false,"properties":{"perDay":{"$ref":"#/components/schemas/entitler.api.v1.UsageDayBounds-Input"},"rates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageRate-Input"},"type":"array"},"upTo":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.UsageTiers":{"additionalProperties":false,"properties":{"tiers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageTier"},"type":"array"}},"required":["tiers"],"type":"object"},"entitler.api.v1.UsageTiers-Input":{"additionalProperties":false,"properties":{"tiers":{"items":{"$ref":"#/components/schemas/entitler.api.v1.UsageTier-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.Verdict":{"enum":["VERDICT_UNSPECIFIED","VERDICT_APPROVED","VERDICT_SENT_BACK"],"type":"string"},"entitler.api.v1.VersionAuthorship":{"additionalProperties":false,"properties":{"approvedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createdBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"note":{"type":"string"}},"required":["createdAt"],"type":"object"},"entitler.api.v1.VersionCount":{"additionalProperties":false,"properties":{"customers":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"versionNumber":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["versionNumber","customers"],"type":"object"},"entitler.api.v1.Voucher":{"additionalProperties":false,"properties":{"batchId":{"type":"string"},"boughtBy":{"type":"string"},"chargeId":{"type":"string"},"codeHint":{"type":"string"},"expiresAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"id":{"type":"string"},"issuedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"paidAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"planVersion":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"redeemed":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"revokedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"state":{"$ref":"#/components/schemas/entitler.api.v1.VoucherState"},"uses":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["id","batchId","codeHint","uses","redeemed","issuedAt","state"],"type":"object"},"entitler.api.v1.VoucherBatch":{"additionalProperties":false,"properties":{"codes":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"grants":{"$ref":"#/components/schemas/entitler.api.v1.VoucherGrant"},"id":{"type":"string"},"key":{"type":"string"},"metadata":{"$ref":"#/components/schemas/entitler.common.v1.Metadata"},"redemptions":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"revision":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"revokedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"settings":{"$ref":"#/components/schemas/entitler.api.v1.VoucherBatchSettings"},"usesPerCode":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["id","key","usesPerCode","revision","codes","redemptions"],"type":"object"},"entitler.api.v1.VoucherBatchSettings":{"additionalProperties":false,"properties":{"channel":{"type":"string"},"expiry":{"$ref":"#/components/schemas/entitler.api.v1.VoucherExpiry"},"forSale":{"type":"boolean"},"name":{"type":"string"},"perCustomer":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["name","forSale"],"type":"object"},"entitler.api.v1.VoucherBatchSettings-Input":{"additionalProperties":false,"properties":{"channel":{"type":"string"},"expiry":{"$ref":"#/components/schemas/entitler.api.v1.VoucherExpiry"},"forSale":{"type":"boolean"},"name":{"type":"string"},"perCustomer":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.VoucherCodes":{"additionalProperties":false,"properties":{"generate":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"supplied":{"items":{"type":"string"},"type":"array"}},"type":"object"},"entitler.api.v1.VoucherExpiry":{"additionalProperties":false,"properties":{"redeemBy":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"redeemWithinDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.VoucherGrant":{"additionalProperties":false,"properties":{"grant":{"$ref":"#/components/schemas/entitler.api.v1.FeatureVoucherGrant"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.PlanVoucherGrant"}},"type":"object"},"entitler.api.v1.VoucherGrant-Input":{"additionalProperties":false,"properties":{"grant":{"$ref":"#/components/schemas/entitler.api.v1.FeatureVoucherGrant-Input"},"plan":{"$ref":"#/components/schemas/entitler.api.v1.PlanVoucherGrant-Input"}},"type":"object"},"entitler.api.v1.VoucherState":{"enum":["VOUCHER_STATE_UNSPECIFIED","VOUCHER_STATE_LIVE","VOUCHER_STATE_REVOKED","VOUCHER_STATE_EXPIRED","VOUCHER_STATE_USED_UP","VOUCHER_STATE_UNPAID"],"type":"string"},"entitler.api.v1.WaitingCredit":{"additionalProperties":false,"properties":{"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createdBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"featureKeys":{"items":{"type":"string"},"type":"array"},"id":{"type":"string"},"memberId":{"type":"string"},"reason":{"type":"string"},"servedSince":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"waived":{"type":"boolean"}},"required":["id","featureKeys","waived","createdAt"],"type":"object"},"entitler.api.v1.WebhookEndpoint":{"additionalProperties":false,"properties":{"noticeDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"url":{"type":"string"}},"required":["url","noticeDays","updatedAt"],"type":"object"},"entitler.api.v1.WindowAnchor":{"enum":["WINDOW_ANCHOR_UNSPECIFIED","WINDOW_ANCHOR_PERIOD","WINDOW_ANCHOR_CALENDAR"],"type":"string"},"entitler.api.v1.WindowUnit":{"enum":["WINDOW_UNIT_UNSPECIFIED","WINDOW_UNIT_HOURS","WINDOW_UNIT_DAYS","WINDOW_UNIT_WEEKS","WINDOW_UNIT_MONTHS"],"type":"string"},"entitler.api.v1.WriteStarterCatalogueRequest":{"additionalProperties":false,"properties":{"expectedRevision":{"$ref":"#/components/schemas/entitler.common.v1.Revision-Input"},"features":{"items":{"$ref":"#/components/schemas/entitler.api.v1.StarterFeature"},"type":"array"},"idempotencyKey":{"type":"string"},"plans":{"items":{"$ref":"#/components/schemas/entitler.api.v1.StarterPlan"},"type":"array"}},"type":"object"},"entitler.api.v1.WriteStarterCatalogueResponse":{"additionalProperties":false,"properties":{"change":{"$ref":"#/components/schemas/entitler.api.v1.Change"}},"type":"object"},"entitler.api.v1.YearlyDate":{"additionalProperties":false,"properties":{"day":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"month":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["month","day"],"type":"object"},"entitler.api.v1.YearlyDate-Input":{"additionalProperties":false,"properties":{"day":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"month":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.api.v1.YearlyOn":{"additionalProperties":false,"properties":{"dates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.YearlyDate"},"type":"array"}},"required":["dates"],"type":"object"},"entitler.api.v1.YearlyOn-Input":{"additionalProperties":false,"properties":{"dates":{"items":{"$ref":"#/components/schemas/entitler.api.v1.YearlyDate-Input"},"type":"array"}},"type":"object"},"entitler.api.v1.Zone":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"entitler.api.v1.Zone-Input":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.api.v1.ZonedEntitlement":{"additionalProperties":false,"properties":{"entitled":{"type":"boolean"},"remaining":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"value":{"$ref":"#/components/schemas/entitler.common.v1.FeatureValue"},"zone":{"type":"string"}},"required":["zone","entitled"],"type":"object"},"entitler.api.v1.Zones":{"additionalProperties":false,"properties":{"zones":{"items":{"$ref":"#/components/schemas/entitler.api.v1.Zone-Input"},"type":"array"}},"type":"object"},"entitler.common.v1.AccessHours":{"additionalProperties":false,"properties":{"calendarKey":{"type":"string"},"rules":{"items":{"$ref":"#/components/schemas/entitler.common.v1.HoursRule"},"type":"array"}},"required":["rules"],"type":"object"},"entitler.common.v1.AccessHours-Input":{"additionalProperties":false,"properties":{"calendarKey":{"type":"string"},"rules":{"items":{"$ref":"#/components/schemas/entitler.common.v1.HoursRule-Input"},"type":"array"}},"type":"object"},"entitler.common.v1.Actor":{"additionalProperties":false,"properties":{"id":{"type":"string"},"type":{"$ref":"#/components/schemas/entitler.common.v1.ActorType"}},"required":["type","id"],"type":"object"},"entitler.common.v1.ActorType":{"enum":["ACTOR_TYPE_UNSPECIFIED","ACTOR_TYPE_USER","ACTOR_TYPE_KEY","ACTOR_TYPE_SYSTEM"],"type":"string"},"entitler.common.v1.CatalogueSelector":{"additionalProperties":false,"properties":{"changeId":{"type":"string"},"releaseId":{"type":"string"}},"type":"object"},"entitler.common.v1.ChoiceSetting":{"additionalProperties":false,"properties":{"options":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SettingOption"},"type":"array"}},"required":["options"],"type":"object"},"entitler.common.v1.ChoiceSetting-Input":{"additionalProperties":false,"properties":{"options":{"items":{"$ref":"#/components/schemas/entitler.common.v1.SettingOption-Input"},"type":"array"}},"type":"object"},"entitler.common.v1.DayClass":{"enum":["DAY_CLASS_UNSPECIFIED","DAY_CLASS_MONDAY","DAY_CLASS_TUESDAY","DAY_CLASS_WEDNESDAY","DAY_CLASS_THURSDAY","DAY_CLASS_FRIDAY","DAY_CLASS_SATURDAY","DAY_CLASS_SUNDAY","DAY_CLASS_HOLIDAY","DAY_CLASS_WORKING_DAY"],"type":"string"},"entitler.common.v1.DeviceAtLimit":{"enum":["DEVICE_AT_LIMIT_UNSPECIFIED","DEVICE_AT_LIMIT_REFUSE","DEVICE_AT_LIMIT_END_OLDEST"],"type":"string"},"entitler.common.v1.DeviceLimit":{"additionalProperties":false,"properties":{"atLimit":{"$ref":"#/components/schemas/entitler.common.v1.DeviceAtLimit"},"kind":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimitKind"},"lockoutMinutes":{"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"type":"array"},"lockoutQuietDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["kind","atLimit","lockoutMinutes"],"type":"object"},"entitler.common.v1.DeviceLimit-Input":{"additionalProperties":false,"properties":{"atLimit":{"$ref":"#/components/schemas/entitler.common.v1.DeviceAtLimit"},"kind":{"$ref":"#/components/schemas/entitler.common.v1.DeviceLimitKind"},"lockoutMinutes":{"items":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"type":"array"},"lockoutQuietDays":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.common.v1.DeviceLimitKind":{"enum":["DEVICE_LIMIT_KIND_UNSPECIFIED","DEVICE_LIMIT_KIND_SIGNED_IN","DEVICE_LIMIT_KIND_IN_USE"],"type":"string"},"entitler.common.v1.FeatureValue":{"additionalProperties":false,"properties":{"group":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue"},"metered":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"money":{"$ref":"#/components/schemas/entitler.common.v1.MarketLimits"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingValue"},"switch":{"type":"boolean"}},"type":"object"},"entitler.common.v1.FeatureValue-Input":{"additionalProperties":false,"properties":{"group":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue-Input"},"metered":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"money":{"$ref":"#/components/schemas/entitler.common.v1.MarketLimits-Input"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingValue"},"switch":{"type":"boolean"}},"type":"object"},"entitler.common.v1.GroupMember":{"additionalProperties":false,"properties":{"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"group":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue"},"metered":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"money":{"$ref":"#/components/schemas/entitler.common.v1.MarketLimits"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingValue"},"switch":{"type":"boolean"},"wait":{"$ref":"#/components/schemas/entitler.common.v1.Wait"}},"required":["featureKey"],"type":"object"},"entitler.common.v1.GroupMember-Input":{"additionalProperties":false,"properties":{"benefitThousandths":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"featureKey":{"type":"string"},"group":{"$ref":"#/components/schemas/entitler.common.v1.GroupValue-Input"},"metered":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"money":{"$ref":"#/components/schemas/entitler.common.v1.MarketLimits-Input"},"setting":{"$ref":"#/components/schemas/entitler.common.v1.SettingValue"},"switch":{"type":"boolean"},"wait":{"$ref":"#/components/schemas/entitler.common.v1.Wait-Input"}},"type":"object"},"entitler.common.v1.GroupValue":{"additionalProperties":false,"properties":{"members":{"items":{"$ref":"#/components/schemas/entitler.common.v1.GroupMember"},"type":"array"}},"required":["members"],"type":"object"},"entitler.common.v1.GroupValue-Input":{"additionalProperties":false,"properties":{"members":{"items":{"$ref":"#/components/schemas/entitler.common.v1.GroupMember-Input"},"type":"array"}},"type":"object"},"entitler.common.v1.HoursRule":{"additionalProperties":false,"properties":{"days":{"items":{"$ref":"#/components/schemas/entitler.common.v1.DayClass"},"type":"array"},"fromMinute":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"toMinute":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"required":["days","fromMinute","toMinute"],"type":"object"},"entitler.common.v1.HoursRule-Input":{"additionalProperties":false,"properties":{"days":{"items":{"$ref":"#/components/schemas/entitler.common.v1.DayClass"},"type":"array"},"fromMinute":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"toMinute":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},"type":"object"},"entitler.common.v1.Limit":{"additionalProperties":false,"properties":{"count":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"unlimited":{"$ref":"#/components/schemas/entitler.common.v1.Unlimited"}},"type":"object"},"entitler.common.v1.MarketLimit":{"additionalProperties":false,"properties":{"limit":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"marketId":{"type":"string"}},"required":["marketId"],"type":"object"},"entitler.common.v1.MarketLimit-Input":{"additionalProperties":false,"properties":{"limit":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"marketId":{"type":"string"}},"type":"object"},"entitler.common.v1.MarketLimits":{"additionalProperties":false,"properties":{"limits":{"items":{"$ref":"#/components/schemas/entitler.common.v1.MarketLimit"},"type":"array"}},"required":["limits"],"type":"object"},"entitler.common.v1.MarketLimits-Input":{"additionalProperties":false,"properties":{"limits":{"items":{"$ref":"#/components/schemas/entitler.common.v1.MarketLimit-Input"},"type":"array"}},"type":"object"},"entitler.common.v1.Measure":{"additionalProperties":false,"properties":{"decimals":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"money":{"$ref":"#/components/schemas/entitler.common.v1.Money"}},"type":"object"},"entitler.common.v1.Metadata":{"additionalProperties":false,"properties":{"createdAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"createdBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"deletedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"deletedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"},"updatedAt":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"updatedBy":{"$ref":"#/components/schemas/entitler.common.v1.Actor"}},"required":["createdAt","updatedAt"],"type":"object"},"entitler.common.v1.Money":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.common.v1.NoDeviceLimit":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.common.v1.NumberSetting":{"additionalProperties":false,"properties":{"max":{"maximum":18446744073709551615,"minimum":0,"type":"integer"},"min":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.common.v1.PlanSelector":{"additionalProperties":false,"properties":{"planId":{"type":"string"},"planKey":{"type":"string"}},"type":"object"},"entitler.common.v1.Revision":{"additionalProperties":false,"properties":{"value":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"required":["value"],"type":"object"},"entitler.common.v1.Revision-Input":{"additionalProperties":false,"properties":{"value":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},"type":"object"},"entitler.common.v1.SearchReduction":{"enum":["SEARCH_REDUCTION_UNSPECIFIED","SEARCH_REDUCTION_CHARACTERS_REMOVED","SEARCH_REDUCTION_SHORTENED"],"type":"string"},"entitler.common.v1.SettingOption":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"type":"object"},"entitler.common.v1.SettingOption-Input":{"additionalProperties":false,"properties":{"key":{"type":"string"},"name":{"type":"string"}},"type":"object"},"entitler.common.v1.SettingType":{"additionalProperties":false,"properties":{"choice":{"$ref":"#/components/schemas/entitler.common.v1.ChoiceSetting"},"number":{"$ref":"#/components/schemas/entitler.common.v1.NumberSetting"},"text":{"$ref":"#/components/schemas/entitler.common.v1.TextSetting"}},"type":"object"},"entitler.common.v1.SettingType-Input":{"additionalProperties":false,"properties":{"choice":{"$ref":"#/components/schemas/entitler.common.v1.ChoiceSetting-Input"},"number":{"$ref":"#/components/schemas/entitler.common.v1.NumberSetting"},"text":{"$ref":"#/components/schemas/entitler.common.v1.TextSetting"}},"type":"object"},"entitler.common.v1.SettingValue":{"additionalProperties":false,"properties":{"choice":{"type":"string"},"number":{"$ref":"#/components/schemas/entitler.common.v1.Limit"},"text":{"type":"string"}},"type":"object"},"entitler.common.v1.SortDirection":{"enum":["SORT_DIRECTION_UNSPECIFIED","SORT_DIRECTION_ASCENDING","SORT_DIRECTION_DESCENDING"],"type":"string"},"entitler.common.v1.TextSetting":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.common.v1.Unlimited":{"additionalProperties":false,"properties":{},"type":"object"},"entitler.common.v1.Wait":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"unit":{"$ref":"#/components/schemas/entitler.common.v1.WaitUnit"}},"required":["count","unit"],"type":"object"},"entitler.common.v1.Wait-Input":{"additionalProperties":false,"properties":{"count":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"},"unit":{"$ref":"#/components/schemas/entitler.common.v1.WaitUnit"}},"type":"object"},"entitler.common.v1.WaitUnit":{"enum":["WAIT_UNIT_UNSPECIFIED","WAIT_UNIT_DAYS","WAIT_UNIT_MONTHS"],"type":"string"},"entitler.common.v1.Weekday":{"enum":["WEEKDAY_UNSPECIFIED","WEEKDAY_MONDAY","WEEKDAY_TUESDAY","WEEKDAY_WEDNESDAY","WEEKDAY_THURSDAY","WEEKDAY_FRIDAY","WEEKDAY_SATURDAY","WEEKDAY_SUNDAY"],"type":"string"}},"securitySchemes":{"bearer":{"scheme":"bearer","type":"http"}}},"info":{"title":"Entitler API","version":"v1"},"openapi":"3.1.0","paths":{"/v1/access-token-keys":{"get":{"description":"Returns the EdDSA public keys that verify Entitler's access tokens, as a JSON Web Key Set. Needs no credential, and is limited per address.","operationId":"AccessTokenKeys","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessTokenKeySet"}}},"description":"The EdDSA keys that verify access tokens, as a JSON Web Key Set."},"405":{"description":"A method other than GET, with no body."},"429":{"description":"The address's limit is spent, with no body.","headers":{"Retry-After":{"description":"Seconds until the limit's period ends.","schema":{"enum":[60],"type":"integer"}}}},"500":{"description":"A stored key can't be published, with no body."},"503":{"description":"The keys are unreachable, with no body."}},"security":[],"summary":"Get the access token keys"}},"/v1/app-store/connections/{connection_id}/offers":{"get":{"description":"Returns the App Store connection's offer mappings by product, kind and identifier. Needs `customers:read`.","operationId":"AppStore.ListAppStoreOffers","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListAppStoreOffersResponse"}}},"description":"The ListAppStoreOffersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List an App Store connection's offer mappings","tags":["AppStore"]},"post":{"description":"Creates the promotional or win-back offer `offerIdentifier` for the App Store product in App Store Connect from the Entitler offer's percentage discount, periods, window and ended-within condition, priced in each territory the subscription sells in at the discounted price Apple's equalisation gives, and maps it to the Entitler offer. The connection must let Entitler manage its App Store products. Needs `customers:write`.","operationId":"AppStore.CreateAppStoreOffer","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateAppStoreOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateAppStoreOfferResponse"}}},"description":"The CreateAppStoreOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create an App Store offer from an Entitler offer","tags":["AppStore"]},"put":{"description":"Replaces the App Store connection's offer mappings: for each App Store product, the promotional and win-back offer identifiers set up in App Store Connect and the Entitler offer each one carries, at most 200. Needs `customers:write`.","operationId":"AppStore.SetAppStoreOffers","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetAppStoreOffersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetAppStoreOffersResponse"}}},"description":"The SetAppStoreOffersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Map Entitler offers to App Store offers","tags":["AppStore"]}},"/v1/caller":{"get":{"description":"Returns the key whose credential is in `Authorization`, with its scope and permissions. It takes a key credential, not an access token.","operationId":"Keys.DescribeCaller","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DescribeCallerResponse"}}},"description":"The DescribeCallerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Describe the calling key","tags":["Keys"]}},"/v1/cohort-enrolments:count":{"get":{"description":"Counts the customers enrolled in cohorts. `includesTest` controls whether test-money customers are included. Needs `customers:read`.","operationId":"CohortEnrolments.CountEnrolments","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"includes_test","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CountEnrolmentsResponse"}}},"description":"The CountEnrolmentsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Count cohort enrolments","tags":["CohortEnrolments"]}},"/v1/connections":{"get":{"description":"Lists every connection of the environment, oldest first. Needs `customers:read`.","operationId":"Connections.ListConnections","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListConnectionsResponse"}}},"description":"The ListConnectionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List payment provider connections","tags":["Connections"]},"post":{"description":"Connects the environment to Stripe with a restricted key, or to the App Store or Google Play by bundle ID or package name. A Stripe connection's mode comes from its key: a live key is refused in a test environment, and Entitler registers its own Stripe webhook endpoint. Needs `project:settings`.","operationId":"Connections.CreateConnection","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateConnectionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateConnectionResponse"}}},"description":"The CreateConnectionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Connect a payment provider","tags":["Connections"]}},"/v1/connections/{connection_id}":{"delete":{"description":"Removes the connection, its Stripe webhook endpoint, its listings and its open alerts, and returns the connection as it was. Needs `project:settings`.","operationId":"Connections.DeleteConnection","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteConnectionResponse"}}},"description":"The DeleteConnectionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Disconnect a payment provider","tags":["Connections"]},"get":{"description":"Returns the environment's connection with this ID. Needs `customers:read`.","operationId":"Connections.GetConnection","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetConnectionResponse"}}},"description":"The GetConnectionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a payment provider connection","tags":["Connections"]},"patch":{"description":"Changes at least one of the connection's `name`, `appId`, Stripe `restrictedKey` and `taxCollection`. A new key keeps the connection's mode and account, and automatic tax collection needs Stripe Tax active on the account. Needs `project:settings`.","operationId":"Connections.UpdateConnection","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateConnectionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateConnectionResponse"}}},"description":"The UpdateConnectionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a payment provider connection","tags":["Connections"]}},"/v1/connections/{connection_id}/imports":{"post":{"description":"Starts a dry run or an import of the connection's Stripe customers, or of App Store transactions, which runs in the background a page of 100 at a time. Customers are registered only up to the plan's remaining customer allowance, which the import reads when it starts; the rest are reported as over the limit. Needs `customers:write`.","operationId":"Imports.StartImport","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.StartImportRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.StartImportResponse"}}},"description":"The StartImportResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Start an import","tags":["Imports"]}},"/v1/connections/{connection_id}/stripe-catalogue":{"get":{"description":"Reads the connection's Stripe products and prices and proposes a plan for each product with a supported price, its versions oldest first, with the project's billing periods and markets that fit them. Graduated, metered, package and custom-amount prices are listed as unsupported. Needs `catalogue:write`.","operationId":"Imports.ReadStripeCatalogue","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReadStripeCatalogueResponse"}}},"description":"The ReadStripeCatalogueResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Read a Stripe catalogue to import","tags":["Imports"]}},"/v1/connections/{connection_id}/stripe-catalogue:import":{"post":{"description":"Turns the chosen Stripe products into plans and add-ons, in the product named or a new one, with each currency's prices in the market chosen for it. Older Stripe prices become earlier plan versions, released oldest first with the stay cohort rule, and the newest prices wait in an open change to review and publish. Every version lists its Stripe prices. Billing periods missing from the project are created. Repeat the request with the same `idempotencyKey` to finish an import that stopped. Needs `catalogue:write`, `catalogue:release` and `tracks:roll_out`.","operationId":"Imports.ImportStripeCatalogue","parameters":[{"in":"path","name":"connection_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ImportStripeCatalogueRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ImportStripeCatalogueResponse"}}},"description":"The ImportStripeCatalogueResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Import a Stripe catalogue","tags":["Imports"]}},"/v1/currencies":{"get":{"description":"Lists every currency Entitler supports with the decimal places it stores, in code order. Needs a credential and no permission.","operationId":"Currencies.ListCurrencies","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCurrenciesResponse"}}},"description":"The ListCurrenciesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List supported currencies","tags":["Currencies"]}},"/v1/customers":{"get":{"description":"Lists customers with their plans, kind and status, a page at a time. Filter by cohort, kind or search text; in a live environment test-money customers appear only when `filter.includeTest` is set. Needs `customers:read`.","operationId":"Customers.ListCustomers","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"filter.search","schema":{"type":"string"}},{"in":"query","name":"filter.track.track_id","schema":{"type":"string"}},{"in":"query","name":"filter.cohort_id","schema":{"type":"string"}},{"in":"query","name":"filter.include_test","schema":{"type":"boolean"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after","schema":{"type":"string"}},{"in":"query","name":"kind","schema":{"$ref":"#/components/schemas/entitler.api.v1.CustomerKind"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/entitler.api.v1.CustomerSortField"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCustomersResponse"}}},"description":"The ListCustomersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List customers","tags":["Customers"]},"post":{"description":"Creates a customer in the environment. A taken external ID is refused, and creation is subject to the plan's customer limit. Needs `customers:write`.","operationId":"Customers.CreateCustomer","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateCustomerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateCustomerResponse"}}},"description":"The CreateCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a customer","tags":["Customers"]}},"/v1/customers/{external_id}":{"delete":{"description":"Deletes the customer with this external ID and returns it as it was. A repeat is refused as not found, and registering the external ID again creates a new customer. Needs `customers:write`.","operationId":"Customers.DeleteCustomer","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteCustomerResponse"}}},"description":"The DeleteCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a customer","tags":["Customers"]},"get":{"description":"Returns the customer with this external ID in the caller's environment. Needs `customers:read`.","operationId":"Customers.GetCustomer","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetCustomerResponse"}}},"description":"The GetCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a customer","tags":["Customers"]},"patch":{"description":"Updates a customer's details, optionally guarded by `expectedRevision`. An absent `name` or `email` keeps the stored value and an empty one removes it. Needs `customers:write` or `customers:profile`.","operationId":"Customers.UpdateCustomer","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateCustomerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateCustomerResponse"}}},"description":"The UpdateCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a customer","tags":["Customers"]},"put":{"description":"Returns the customer with this external ID, creating it if it does not exist; `me` names a customer credential's own customer. Changing name, email or attributes of an existing customer needs `customers:write` or `customers:profile`. Needs `customers:register` or `customers:write`.","operationId":"Customers.RegisterCustomer","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RegisterCustomerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RegisterCustomerResponse"}}},"description":"The RegisterCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Register a customer","tags":["Customers"]}},"/v1/customers/{external_id}/add-ons/{plan_key}":{"put":{"description":"Adds an add-on to the customer's subscription or changes its quantity. `register` first registers a missing customer and needs `customers:register` or `customers:write`; `asOf` is for test environments. Needs `customers:write`.","operationId":"Subscriptions.SetAddOn","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetAddOnRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetAddOnResponse"}}},"description":"The SetAddOnResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a customer's add-on","tags":["Subscriptions"]}},"/v1/customers/{external_id}/add-ons/{plan_key}:cancelScheduledChange":{"post":{"description":"Cancels the change scheduled for an add-on, so it stays as it is. Customer credentials may act only on their own customer. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.CancelScheduledAddOnChange","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelScheduledAddOnChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelScheduledAddOnChangeResponse"}}},"description":"The CancelScheduledAddOnChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Cancel a scheduled add-on change","tags":["Subscriptions"]}},"/v1/customers/{external_id}/add-ons/{plan_key}:remove":{"post":{"description":"Removes an add-on from the customer's subscription. Customer credentials may act only on their own customer. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.RemoveAddOn","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveAddOnRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveAddOnResponse"}}},"description":"The RemoveAddOnResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove an add-on","tags":["Subscriptions"]}},"/v1/customers/{external_id}/app-store/account-token":{"post":{"description":"Returns the customer's `appAccountToken` for StoreKit purchases, the same on every call in the environment. A purchase carrying it is linked to the customer when its notification arrives. Needs `customers:write` or `billing:self`.","operationId":"AppStore.IssueAppAccountToken","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.IssueAppAccountTokenRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.IssueAppAccountTokenResponse"}}},"description":"The IssueAppAccountTokenResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Issue a customer's App Store account token","tags":["AppStore"]}},"/v1/customers/{external_id}/app-store/offers:sign":{"post":{"description":"Checks that the customer may take the Entitler offer named by `offerKey` on the App Store product, holds its use for an hour, and returns the App Store promotional offer identifier the connection maps it to with a signature (a compact JWS) for StoreKit's `promotionalOffer(_:compactJWS:)`. `transactionId`, any transaction of the customer's or their `appTransactionID`, goes into the signature when given. Needs `customers:write` or `billing:self`.","operationId":"AppStore.SignAppStoreOffer","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SignAppStoreOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SignAppStoreOfferResponse"}}},"description":"The SignAppStoreOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Sign an App Store promotional offer","tags":["AppStore"]}},"/v1/customers/{external_id}/app-store/purchases:check":{"post":{"description":"Verifies a transaction signed by the App Store for the customer: its signature, that it belongs to the environment's App Store connection for its bundle ID and that its environment is one the Entitler environment admits. Links the purchase when nobody owns it, applies the connection's restore policy when another customer does, and follows it into the customer's plans. Needs `customers:write` or `billing:self`.","operationId":"AppStore.CheckAppStorePurchase","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CheckAppStorePurchaseRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CheckAppStorePurchaseResponse"}}},"description":"The CheckAppStorePurchaseResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Check an App Store purchase","tags":["AppStore"]}},"/v1/customers/{external_id}/billing":{"get":{"description":"Returns what Stripe bills the customer for: whether they are linked, each billed subscription's status, price and items, any drift from what they hold, and whether a subscription renews. An unknown or unlinked customer answers an empty value. Needs `customers:read`.","operationId":"Billing.GetBilling","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetBillingResponse"}}},"description":"The GetBillingResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get what a customer is billed for","tags":["Billing"]}},"/v1/customers/{external_id}/billing/portal-sessions":{"post":{"description":"Creates a Stripe billing portal session for the customer and returns its `url`, which sends the customer back to `returnUrl`. Needs `customers:write` or `billing:self`; a customer token or identity caller also needs the team plan's customer portal and is limited to one call every 10 seconds per customer.","operationId":"Billing.CreatePortalSession","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePortalSessionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePortalSessionResponse"}}},"description":"The CreatePortalSessionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Open a billing portal session","tags":["Billing"]}},"/v1/customers/{external_id}/billing:sync":{"post":{"description":"Reads the customer's Stripe subscriptions on every linked Stripe connection again and updates what they hold to match; `changed` says whether anything changed. Needs `customers:write` or `billing:self`; a customer token or identity caller also needs the team plan's customer portal and is limited to one call every 10 seconds per customer.","operationId":"Billing.SyncBilling","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SyncBillingRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SyncBillingResponse"}}},"description":"The SyncBillingResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Follow a customer's Stripe billing","tags":["Billing"]}},"/v1/customers/{external_id}/charges":{"get":{"description":"Lists the customer's charges, a page at a time, optionally filtered by `productId`, `state` and `source`. Needs `customers:read`.","operationId":"Subscriptions.ListCharges","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"product_id","schema":{"type":"string"}},{"in":"query","name":"state","schema":{"$ref":"#/components/schemas/entitler.api.v1.ChargeState"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"source","schema":{"$ref":"#/components/schemas/entitler.api.v1.ChargeSource"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListChargesResponse"}}},"description":"The ListChargesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's charges","tags":["Subscriptions"]}},"/v1/customers/{external_id}/checkout":{"post":{"description":"Moves the customer onto a plan, as a customer does when buying. May ask for payment, and can redeem an offer with `offer`. Setting `register` first registers a missing customer and needs `customers:register` or `customers:write`. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.Checkout","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CheckoutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CheckoutResponse"}}},"description":"The CheckoutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Check out a plan","tags":["Subscriptions"]}},"/v1/customers/{external_id}/device-sessions/{session_id}":{"delete":{"description":"Ends a device session and answers why and when it ended. Needs `usage:write`.","operationId":"Devices.EndDeviceSession","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.EndDeviceSessionResponse"}}},"description":"The EndDeviceSessionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"End a device session","tags":["Devices"]}},"/v1/customers/{external_id}/device-sessions/{session_id}:heartbeat":{"post":{"description":"Extends a session's lease and answers whether it is still live, and for an ended session why and when it ended. Needs `usage:write`.","operationId":"Devices.HeartbeatDeviceSession","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.HeartbeatDeviceSessionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.HeartbeatDeviceSessionResponse"}}},"description":"The HeartbeatDeviceSessionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Keep a device session alive","tags":["Devices"]}},"/v1/customers/{external_id}/devices":{"get":{"description":"Lists the customer's signed-in devices with each one's live session, the signed-in and in-use limits with their counts, and the lockouts. Needs `usage:read`.","operationId":"Devices.ListCustomerDevices","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCustomerDevicesResponse"}}},"description":"The ListCustomerDevicesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's devices","tags":["Devices"]}},"/v1/customers/{external_id}/devices/{device_id}/sessions":{"post":{"description":"Starts a session on a signed-in device, leased for `leaseSeconds` (30 to 600, default 120). At the in-use limit it answers the refusal, the limit and the live sessions, or `lockedUntil` while the customer is locked out. Needs `usage:write`.","operationId":"Devices.StartDeviceSession","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.StartDeviceSessionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.StartDeviceSessionResponse"}}},"description":"The StartDeviceSessionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Start a device session","tags":["Devices"]}},"/v1/customers/{external_id}/devices/{device_id}:signOut":{"post":{"description":"Ends the device's session, then signs the device out of the customer. Needs `usage:write`.","operationId":"Devices.SignOutDevice","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SignOutDeviceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SignOutDeviceResponse"}}},"description":"The SignOutDeviceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Sign out a device","tags":["Devices"]}},"/v1/customers/{external_id}/devices:liftLockout":{"post":{"description":"Lifts the customer's signed-in or in-use device lockout and clears its breaches. Needs `customers:write`.","operationId":"Devices.LiftDeviceLockout","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.LiftDeviceLockoutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.LiftDeviceLockoutResponse"}}},"description":"The LiftDeviceLockoutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Lift a device lockout","tags":["Devices"]}},"/v1/customers/{external_id}/devices:signIn":{"post":{"description":"Signs a device in to the customer by its `externalId`, with an optional `type` and `name`. At the device limit it answers the refusal, the limit and the signed-in devices, or `lockedUntil` while the customer is locked out. Needs `usage:write`.","operationId":"Devices.SignInDevice","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SignInDeviceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SignInDeviceResponse"}}},"description":"The SignInDeviceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Sign in a device","tags":["Devices"]}},"/v1/customers/{external_id}/entitlements":{"get":{"description":"Returns every entitlement the customer holds, with values, usage and any upgrades that would unlock more. `asOf` answers as of a time on a test environment. Needs `entitlements:read`.","operationId":"Entitlements.ListEntitlements","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"as_of","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},{"in":"query","name":"zone","schema":{"type":"string"}},{"in":"query","name":"member_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListEntitlementsResponse"}}},"description":"The ListEntitlementsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's entitlements","tags":["Entitlements"]}},"/v1/customers/{external_id}/entitlements/{feature_key}":{"get":{"description":"Returns whether the customer is entitled to one feature, with its value, usage and sources. `asOf` answers as of a time on a test environment. Needs `entitlements:read`.","operationId":"Entitlements.CheckFeature","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"feature_key","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"as_of","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},{"in":"query","name":"zone","schema":{"type":"string"}},{"in":"query","name":"member_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CheckFeatureResponse"}}},"description":"The CheckFeatureResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Check a feature","tags":["Entitlements"]}},"/v1/customers/{external_id}/gifts":{"get":{"description":"Lists the voucher batches for sale that the customer's catalogue serves, each priced at its plan's price in the customer's market, or the market of `place`, for every period it grants. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.ListGifts","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"market","schema":{"type":"string"}},{"in":"query","name":"country","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListGiftsResponse"}}},"description":"The ListGiftsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List gifts for sale","tags":["Subscriptions"]},"post":{"description":"Buys one single-use voucher from a batch for sale for the customer to give away, raising a gift charge on them at the plan's price in their market for every period it grants, and returns its code once, its voucher and the charge. The code goes live when `RecordPayment` names the charge; a retry with the same `idempotency_key` returns the voucher and charge without the code. `place` picks the market of a first purchase. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.BuyGift","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.BuyGiftRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.BuyGiftResponse"}}},"description":"The BuyGiftResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Buy a gift","tags":["Subscriptions"]}},"/v1/customers/{external_id}/grants":{"post":{"description":"Gives the customer a feature value for `days` days, or with no end when `days` is 0, on top of their plan. Optionally guarded by `expectedRevision`, with an optional `reason`. Needs `customers:write`.","operationId":"Grants.CreateGrant","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateGrantRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateGrantResponse"}}},"description":"The CreateGrantResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Grant a feature to a customer","tags":["Grants"]}},"/v1/customers/{external_id}/grants/{grant_id}:revoke":{"post":{"description":"Revokes a grant the customer holds, identified by `grantId`, with an optional `reason`. Optionally guarded by `expectedRevision`. Needs `customers:write`.","operationId":"Grants.RevokeGrant","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"grant_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevokeGrantRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevokeGrantResponse"}}},"description":"The RevokeGrantResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Revoke a grant","tags":["Grants"]}},"/v1/customers/{external_id}/members":{"get":{"description":"Lists the customer's members, 50 to a page by default and at most 100, with `after` to continue and `includeRemoved` to include removed ones. `memberCount` counts the live members. Needs `customers:read`.","operationId":"CustomerMembers.ListMembers","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after","schema":{"type":"string"}},{"in":"query","name":"include_removed","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCustomerMembersResponse"}}},"description":"The ListCustomerMembersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's members","tags":["CustomerMembers"]},"post":{"description":"Adds a member to the customer by the member's external ID, with an optional name. When the external ID already names a live member, `added` is false and the member is returned unchanged. Needs `customers:write`.","operationId":"CustomerMembers.AddMember","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AddCustomerMemberRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AddCustomerMemberResponse"}}},"description":"The AddCustomerMemberResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Add a member to a customer","tags":["CustomerMembers"]}},"/v1/customers/{external_id}/members/{member_id}":{"delete":{"description":"Removes the member, who is erased later. `changed` is false for a member already removed. Needs `customers:write`.","operationId":"CustomerMembers.RemoveMember","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"member_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveCustomerMemberResponse"}}},"description":"The RemoveCustomerMemberResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove a customer member","tags":["CustomerMembers"]},"get":{"description":"Returns the customer's member with this ID. Needs `customers:read`.","operationId":"CustomerMembers.GetMember","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"member_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetCustomerMemberResponse"}}},"description":"The GetCustomerMemberResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a customer member","tags":["CustomerMembers"]},"patch":{"description":"Renames a live member; an empty `name` removes the name. Needs `customers:write`.","operationId":"CustomerMembers.UpdateMember","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"member_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateCustomerMemberRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateCustomerMemberResponse"}}},"description":"The UpdateCustomerMemberResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rename a customer member","tags":["CustomerMembers"]}},"/v1/customers/{external_id}/members/{member_id}:erase":{"post":{"description":"Erases the member and returns the erased member's ID. Needs `customers:write`.","operationId":"CustomerMembers.EraseMember","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"member_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.EraseCustomerMemberRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.EraseCustomerMemberResponse"}}},"description":"The EraseCustomerMemberResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Erase a customer member","tags":["CustomerMembers"]}},"/v1/customers/{external_id}/members:find":{"post":{"description":"Returns the customer's member with this member external ID. Needs `customers:read`.","operationId":"CustomerMembers.FindMember","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.FindCustomerMemberRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.FindCustomerMemberResponse"}}},"description":"The FindCustomerMemberResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Find a customer member","tags":["CustomerMembers"]}},"/v1/customers/{external_id}/meters/{feature_key}:adjust":{"post":{"description":"Changes a customer's meter by setting it with `setTo` or moving it with `changeBy`; the meter never goes below 0. `idempotencyKey` is optional and replays safely. Needs `customers:write`.","operationId":"Usage.AdjustMeter","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"feature_key","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AdjustMeterRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AdjustMeterResponse"}}},"description":"The AdjustMeterResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Adjust a meter","tags":["Usage"]}},"/v1/customers/{external_id}/moves":{"get":{"description":"Lists the customer's subscription moves, a page at a time. Needs `customers:read`.","operationId":"Subscriptions.ListMoves","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListMovesResponse"}}},"description":"The ListMovesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's moves","tags":["Subscriptions"]}},"/v1/customers/{external_id}/offers":{"get":{"description":"Lists the offers the customer can take, with their price before and after. `productId` is optional. Needs `customers:read` or `billing:self`.","operationId":"Subscriptions.ListAvailableOffers","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"product_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListAvailableOffersResponse"}}},"description":"The ListAvailableOffersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List offers available to a customer","tags":["Subscriptions"]}},"/v1/customers/{external_id}/plan":{"put":{"description":"Moves the customer onto a plan, or ends the product. `register` first registers a missing customer and needs `customers:register` or `customers:write`; `asOf` is for test environments. Needs `customers:write`.","operationId":"Subscriptions.SetPlan","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPlanResponse"}}},"description":"The SetPlanResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a customer's plan","tags":["Subscriptions"]}},"/v1/customers/{external_id}/plans":{"get":{"description":"Lists the plans the customer can move to, whether or not the customer exists yet. `asOf` is for test environments. Needs `customers:read` or `billing:self`.","operationId":"Subscriptions.ListAvailablePlans","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"as_of","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListAvailablePlansResponse"}}},"description":"The ListAvailablePlansResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List plans available to a customer","tags":["Subscriptions"]}},"/v1/customers/{external_id}/pricing":{"get":{"description":"Returns the pricing sheet for a customer's track and market, with their current prices, discounts and next charges. Use `me` for a customer credential's own customer. Needs `catalogue:read`, `entitlements:read` or `billing:self`.","operationId":"Pricing.GetCustomerPricing","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetCustomerPricingResponse"}}},"description":"The GetCustomerPricingResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a customer's pricing","tags":["Pricing"]}},"/v1/customers/{external_id}/provider-state":{"get":{"description":"Returns what each of the environment's connections last read for the customer: their subscriptions and payments, up to 100 open alerts, and the connections the customer is linked on. Needs `customers:read`.","operationId":"CustomerPayments.ListProviderState","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListProviderStateResponse"}}},"description":"The ListProviderStateResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a customer's payment provider state","tags":["CustomerPayments"]}},"/v1/customers/{external_id}/provider-state:sync":{"post":{"description":"Reads the customer's linked Stripe customer on `connectionId` again, then returns their state as `ListProviderState` does. Needs `customers:write`.","operationId":"CustomerPayments.SyncProviderState","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SyncProviderStateRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SyncProviderStateResponse"}}},"description":"The SyncProviderStateResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Refresh a customer's payment provider state","tags":["CustomerPayments"]}},"/v1/customers/{external_id}/purchase-transfers":{"get":{"description":"Lists the purchases transferred to or from the customer, newest first, 50 by default and at most 100. Needs `customers:read`.","operationId":"PurchaseTransfers.ListPurchaseTransfers","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListPurchaseTransfersResponse"}}},"description":"The ListPurchaseTransfersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's purchase transfers","tags":["PurchaseTransfers"]},"post":{"description":"Moves an App Store purchase from the customer who owns it to `customer`, with a `reason`, records the transfer in both customers' transfer history and follows both customers' plans. Transferring a purchase to the customer who owns it changes nothing. Needs `customers:write`.","operationId":"PurchaseTransfers.TransferPurchase","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.TransferPurchaseRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.TransferPurchaseResponse"}}},"description":"The TransferPurchaseResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Transfer a purchase to a customer","tags":["PurchaseTransfers"]}},"/v1/customers/{external_id}/referral-codes":{"post":{"description":"Returns the customer's code for a referral offer, creating it on the first ask, with an optional `code` the business chooses. Needs `customers:write` or `billing:self`.","operationId":"Referrals.GetReferralCode","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetReferralCodeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetReferralCodeResponse"}}},"description":"The GetReferralCodeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a customer's referral code","tags":["Referrals"]}},"/v1/customers/{external_id}/referrals":{"get":{"description":"Returns the friends who took the customer's referral codes, each with its friend offer, when it was taken and whether the referrer's reward is pending, given or skipped. A customer token's answer leaves out each friend's external ID. Needs `customers:read` or `billing:self`.","operationId":"Referrals.ListReferrals","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListReferralsResponse"}}},"description":"The ListReferralsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's referrals","tags":["Referrals"]}},"/v1/customers/{external_id}/segments":{"get":{"description":"Judges each segment of the customer's served catalogue and answers whether the customer is in it, and otherwise the first test they failed. Needs `customers:read`.","operationId":"Customers.ListCustomerSegments","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCustomerSegmentsResponse"}}},"description":"The ListCustomerSegmentsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's segments","tags":["Customers"]}},"/v1/customers/{external_id}/snapshots":{"post":{"description":"Returns a signed snapshot of the customer's entitlements that a client can verify offline against the published snapshot keys. It expires after the project's offline window. Needs `entitlements:read`.","operationId":"Snapshots.CreateSnapshot","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateSnapshotRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateSnapshotResponse"}}},"description":"The CreateSnapshotResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create an entitlements snapshot","tags":["Snapshots"]}},"/v1/customers/{external_id}/subscription:acceptChange":{"post":{"description":"Accepts one of the subscription's scheduled changes. Requires `idempotencyKey`; `productId` and `rolloutId` are optional. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.AcceptChange","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AcceptChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AcceptChangeResponse"}}},"description":"The AcceptChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Accept a scheduled change","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:addPayer":{"post":{"description":"Adds a payer who pays a share of the customer's business-collected subscription, from `startsAt` or now until `until`, with optional `offers`. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write`.","operationId":"Subscriptions.AddPayer","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AddPayerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AddPayerResponse"}}},"description":"The AddPayerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Add a payer to a subscription","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:applyOffer":{"post":{"description":"Applies a discount from an offer, named by `offerKey`, to the customer. Requires `idempotencyKey`; `value`, `startsAt` and `until` are optional. Needs `customers:write`.","operationId":"Subscriptions.ApplyOffer","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ApplyOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ApplyOfferResponse"}}},"description":"The ApplyOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Apply an offer","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:buyPack":{"post":{"description":"Buys a pack for the customer, adding each of its amounts times `quantity` to the customer's top-up for that feature. Requires `idempotencyKey`. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.BuyPack","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.BuyPackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.BuyPackResponse"}}},"description":"The BuyPackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Buy a pack","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:cancel":{"post":{"description":"Cancels the customer's subscription under the project's move policies. `productId` selects the product; `asOf` is for test environments. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.CancelSubscription","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelSubscriptionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelSubscriptionResponse"}}},"description":"The CancelSubscriptionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Cancel a subscription","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:cancelInCoolingOff":{"post":{"description":"Cancels the customer's subscription within its cooling-off period and lists the payments to refund. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.CancelInCoolingOff","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelInCoolingOffRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelInCoolingOffResponse"}}},"description":"The CancelInCoolingOffResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Cancel in the cooling-off period","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:cancelScheduledChange":{"post":{"description":"Cancels the change or cancellation scheduled for the subscription. `productId` selects the product; `asOf` is for test environments. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.CancelScheduledChange","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelScheduledChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelScheduledChangeResponse"}}},"description":"The CancelScheduledChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Cancel a scheduled change","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:convertTrial":{"post":{"description":"Converts the trial on a business-collected subscription, so it carries on paid when the trial ends. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.ConvertTrial","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ConvertTrialRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ConvertTrialResponse"}}},"description":"The ConvertTrialResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Convert a trial","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:pause":{"post":{"description":"Pauses the customer's subscription from now until `endsAt`, or moves the end of a running pause, within the held version's pause policy; the period resumes after the pause with the time it had left. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write`.","operationId":"Subscriptions.PauseSubscription","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.PauseSubscriptionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.PauseSubscriptionResponse"}}},"description":"The PauseSubscriptionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Pause a subscription","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:recordPayment":{"post":{"description":"Records a payment against the customer's subscription. Requires `idempotencyKey`; `productId` and `chargeId` are optional. When the payment moves on the access of a lane that holds a keypad device, `deviceCodes` answers the codes that add its days, or unlock it once the plan is owned; a retry under the same key answers the same codes. Needs `customers:write`.","operationId":"Subscriptions.RecordPayment","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RecordPaymentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RecordPaymentResponse"}}},"description":"The RecordPaymentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Record a payment","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:redeemOffer":{"post":{"description":"Lets a customer redeem an offer by `offer.offerKey` or `offer.code`. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.RedeemOffer","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RedeemOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RedeemOfferResponse"}}},"description":"The RedeemOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Redeem an offer","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:removeDiscount":{"post":{"description":"Removes a discount from the customer's subscription, optionally clawing it back from `clawbackFrom`. Requires `idempotencyKey`. Needs `customers:write`.","operationId":"Subscriptions.RemoveDiscount","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveDiscountRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveDiscountResponse"}}},"description":"The RemoveDiscountResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove a discount","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:removePayer":{"post":{"description":"Removes payer `payerId` from the customer's subscription now or at the renewal, as `at` says. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write`.","operationId":"Subscriptions.RemovePayer","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemovePayerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemovePayerResponse"}}},"description":"The RemovePayerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove a payer","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:renewNow":{"post":{"description":"Starts a new period of the plan the customer holds at once. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write` or `billing:self`.","operationId":"Subscriptions.RenewNow","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenewNowRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenewNowResponse"}}},"description":"The RenewNowResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Renew a subscription now","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:resume":{"post":{"description":"Resumes the customer's paused subscription now; its period continues with the time it had left. Requires `idempotencyKey`; `productId` is optional. Needs `customers:write`.","operationId":"Subscriptions.ResumeSubscription","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ResumeSubscriptionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ResumeSubscriptionResponse"}}},"description":"The ResumeSubscriptionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Resume a paused subscription","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:reversePayment":{"post":{"description":"Reverses a payment recorded against the customer's subscription. Requires `idempotencyKey`; `productId` and `chargeId` are optional. Needs `customers:write`.","operationId":"Subscriptions.ReversePayment","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReversePaymentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReversePaymentResponse"}}},"description":"The ReversePaymentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Reverse a payment","tags":["Subscriptions"]}},"/v1/customers/{external_id}/subscription:setCollection":{"post":{"description":"Sets the subscription's collection terms using `terms` (payment days and an optional suspension) and `invoiced`. Returns the completed move; any other outcome is an error. Needs `customers:write`.","operationId":"Subscriptions.SetCollection","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetCollectionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetCollectionResponse"}}},"description":"The SetCollectionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set how a subscription is collected","tags":["Subscriptions"]}},"/v1/customers/{external_id}/tokens":{"post":{"description":"Mints a token for a customer, scoped to `entitlements:read` unless `scopes` asks for more. Each requested scope must be one the caller holds, and `lifetimeSeconds` defaults to 3,600. Needs `tokens:mint`, and a plan that includes customer tokens.","operationId":"CustomerTokens.CreateToken","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateTokenRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateTokenResponse"}}},"description":"The CreateTokenResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a customer token","tags":["CustomerTokens"]}},"/v1/customers/{external_id}/track":{"put":{"description":"Puts the customer on the track named by `trackId`; leaving it absent assigns the default track. A closed or missing track is refused. Needs `tracks:assign`.","operationId":"CustomerTracks.AssignTrack","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AssignTrackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AssignTrackResponse"}}},"description":"The AssignTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Assign a customer to a track","tags":["CustomerTracks"]}},"/v1/customers/{external_id}/usage":{"get":{"description":"Lists the customer's usage reports, newest first, with the current meters. Pages are at most 100 and reach back only as far as the plan's usage history allows. Needs `usage:read`.","operationId":"Usage.ListCustomerUsage","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"feature_key","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"member_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCustomerUsageResponse"}}},"description":"The ListCustomerUsageResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's usage","tags":["Usage"]},"post":{"description":"Records usage of a metered feature for the customer. Requires `idempotencyKey`; `amount` defaults to 1. A replay with the same key returns the original. `register` first registers a missing customer and needs `customers:register` or `customers:write`. Needs `usage:write`.","operationId":"Usage.ReportUsage","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReportUsageRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReportUsageResponse"}}},"description":"The ReportUsageResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Report usage","tags":["Usage"]}},"/v1/customers/{external_id}/usage/holds":{"post":{"description":"Reserves an amount of a metered feature for the customer so it cannot be used elsewhere. Requires `idempotencyKey`; `ttlSeconds` runs from 1 to 3,600 and defaults to 300. Needs `usage:write`.","operationId":"Usage.CreateHold","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateHoldRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateHoldResponse"}}},"description":"The CreateHoldResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a usage hold","tags":["Usage"]}},"/v1/customers/{external_id}/usage/holds/{hold_id}":{"delete":{"description":"Releases an open hold, returning what it reserved. A settled hold cannot be released, and a repeat reports it already released. Needs `usage:write` or `customers:write`.","operationId":"Usage.ReleaseHold","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"hold_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseHoldResponse"}}},"description":"The ReleaseHoldResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Release a usage hold","tags":["Usage"]},"get":{"description":"Returns a hold and its state; an open hold past its expiry reads as expired. Needs `usage:read`.","operationId":"Usage.GetHold","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"hold_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetHoldResponse"}}},"description":"The GetHoldResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a usage hold","tags":["Usage"]}},"/v1/customers/{external_id}/usage/holds/{hold_id}:settle":{"post":{"description":"Settles an open hold, recording the amount actually used, which cannot exceed the amount held. Settling again with the same amount is a duplicate. Needs `usage:write` or `customers:write`.","operationId":"Usage.SettleHold","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"hold_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SettleHoldRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SettleHoldResponse"}}},"description":"The SettleHoldResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Settle a usage hold","tags":["Usage"]}},"/v1/customers/{external_id}/usage/{usage_id}:cancel":{"post":{"description":"Cancels a recorded usage report, returning its amount to the meter. A repeat reports the cancellation again, and an unknown ID is refused. Needs `customers:write`.","operationId":"Usage.CancelReport","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"usage_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelReportRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelReportResponse"}}},"description":"The CancelReportResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Cancel a usage report","tags":["Usage"]}},"/v1/customers/{external_id}/usage:claim":{"post":{"description":"Reports what a service cost in the customer's currency and pays the benefit the customer's plans set, the whole cost when none sets one, rounded by the feature's rule and capped at what is left of the limit. Requires `idempotencyKey`; `occurredAtMs` is the date of service. Not available to customer tokens. Needs `usage:write`.","operationId":"Usage.ClaimBenefit","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ClaimBenefitRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ClaimBenefitResponse"}}},"description":"The ClaimBenefitResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Claim a benefit","tags":["Usage"]}},"/v1/customers/{external_id}/vouchers:redeem":{"post":{"description":"Redeems a voucher code for the customer, spending one of its uses on what its batch grants, and returns the move result with the voucher and the grant it gave. Needs `customers:write` or `billing:self` and an `idempotency_key`.","operationId":"Subscriptions.RedeemVoucher","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RedeemVoucherRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RedeemVoucherResponse"}}},"description":"The RedeemVoucherResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Redeem a voucher","tags":["Subscriptions"]}},"/v1/customers/{external_id}/waiting-credits":{"get":{"description":"Lists the customer's waiting credits, newest first, a page at a time. Needs `customers:read`.","operationId":"WaitingCredits.ListWaitingCredits","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListWaitingCreditsResponse"}}},"description":"The ListWaitingCreditsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a customer's waiting credits","tags":["WaitingCredits"]},"post":{"description":"Credits the customer with time served elsewhere since `servedSince`, at most 3,650 days ago, or with `waived` waits, for up to 50 `featureKeys` or every feature when none are named. A customer holds at most 100 credits. Optionally guarded by `expectedRevision`, with an optional `reason`. Needs `customers:write`.","operationId":"WaitingCredits.GiveWaitingCredit","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GiveWaitingCreditRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GiveWaitingCreditResponse"}}},"description":"The GiveWaitingCreditResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Give a waiting credit","tags":["WaitingCredits"]}},"/v1/customers/{external_id}/waiting-credits/{credit_id}:remove":{"post":{"description":"Removes the waiting credit `creditId`, so each wait it covered counts again from the next most generous credit or its own start. Optionally guarded by `expectedRevision`, with an optional `reason`. Needs `customers:write`.","operationId":"WaitingCredits.RemoveWaitingCredit","parameters":[{"description":"The customer's external ID, or `me` for the customer a customer token or identity token names.","in":"path","name":"external_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"credit_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveWaitingCreditRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveWaitingCreditResponse"}}},"description":"The RemoveWaitingCreditResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove a waiting credit","tags":["WaitingCredits"]}},"/v1/customers/{external_id}:erase":{"post":{"description":"Permanently erases the personal details of every customer record with this external ID, including deleted ones, and returns how many it erased. Also deletes their usage events, meters and holds; a repeat erases none. Needs `customers:write`.","operationId":"Customers.EraseCustomer","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.EraseCustomerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.EraseCustomerResponse"}}},"description":"The EraseCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Erase a customer","tags":["Customers"]}},"/v1/customers/{external_id}:unblock":{"post":{"description":"Clears the block a reversed payment put on the customer, so they can buy and change their own subscriptions again. Needs `customers:write`.","operationId":"Customers.UnblockCustomer","parameters":[{"in":"path","name":"external_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnblockCustomerRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnblockCustomerResponse"}}},"description":"The UnblockCustomerResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Unblock a customer","tags":["Customers"]}},"/v1/customers:count":{"get":{"description":"Counts the customers matching the same filter as the list, with a breakdown by kind and the number of matching test-money customers. Also returns the project's customer limit. Needs `customers:read`.","operationId":"Customers.CountCustomers","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"filter.search","schema":{"type":"string"}},{"in":"query","name":"filter.track.track_id","schema":{"type":"string"}},{"in":"query","name":"filter.cohort_id","schema":{"type":"string"}},{"in":"query","name":"filter.include_test","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CountCustomersResponse"}}},"description":"The CountCustomersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Count customers","tags":["Customers"]}},"/v1/devices":{"get":{"description":"Returns the environment's keypad devices, one page at a time, retired ones only when asked, or only those assigned to `customerExternalId`. Needs `customers:read`.","operationId":"Devices.ListDevices","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"include_retired","schema":{"type":"boolean"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"customer_external_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListDevicesResponse"}}},"description":"The ListDevicesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List keypad devices","tags":["Devices"]},"post":{"description":"Registers a keypad device of the environment with its external ID, its 32-hexadecimal-character key, sealed at rest, and an optional starting code and digit count. Needs `customers:write`.","operationId":"Devices.RegisterDevice","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RegisterDeviceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RegisterDeviceResponse"}}},"description":"The RegisterDeviceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Register a keypad device","tags":["Devices"]}},"/v1/devices/{device_id}":{"get":{"description":"Returns one keypad device of the environment, with its assignment. Needs `customers:read`.","operationId":"Devices.GetDevice","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetDeviceResponse"}}},"description":"The GetDeviceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a keypad device","tags":["Devices"]}},"/v1/devices/{device_id}/codes":{"get":{"description":"Returns the codes issued to a keypad, newest first, 25 a page by default and at most 100. A listed code still works on its device, so this needs `customers:write`.","operationId":"Devices.ListDeviceCodes","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListDeviceCodesResponse"}}},"description":"The ListDeviceCodesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a keypad's codes","tags":["Devices"]},"post":{"description":"Answers the codes that set an assigned keypad's days to its lane's paid-up time and payment terms, or unlock it once its plan is owned, in the order they are entered. An unassigned keypad is `DEVICE_NOT_ASSIGNED`, and a retired one `DEVICE_RETIRED`. Needs `customers:write`.","operationId":"Devices.IssueDeviceCode","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.IssueDeviceCodeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.IssueDeviceCodeResponse"}}},"description":"The IssueDeviceCodeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Issue a keypad code","tags":["Devices"]}},"/v1/devices/{device_id}:assign":{"post":{"description":"Puts a keypad device on a customer's lane, by the customer's external ID and an optional product, and answers the codes that set its days to the lane's paid-up time and payment terms, in the order they are entered. Without a customer, takes it off its lane. A lane another keypad holds is `DEVICE_LANE_TAKEN`, and a retired keypad is `DEVICE_RETIRED`. Needs `customers:write`.","operationId":"Devices.AssignDevice","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AssignDeviceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AssignDeviceResponse"}}},"description":"The AssignDeviceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Assign a keypad device","tags":["Devices"]}},"/v1/devices/{device_id}:retire":{"post":{"description":"Retires a keypad device and takes it off its lane. Needs `customers:write`.","operationId":"Devices.RetireDevice","parameters":[{"in":"path","name":"device_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RetireDeviceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RetireDeviceResponse"}}},"description":"The RetireDeviceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Retire a keypad device","tags":["Devices"]}},"/v1/exchange-rates":{"get":{"description":"Lists each currency's units per euro as a decimal string, with the European Central Bank's publication date. Before the first fetch it answers no rates. Needs a credential and no permission.","operationId":"ExchangeRates.ListExchangeRates","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListExchangeRatesResponse"}}},"description":"The ListExchangeRatesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List exchange rates","tags":["ExchangeRates"]}},"/v1/guest-links:claim":{"post":{"description":"Makes the signed-in person the only owner of a team made to be claimed, through its project's guest `link`, with the `profile` they join under. Everyone else leaves the team, its invitations and key policies end, and the link turns off. Returns the team, the new owner and the project. A team not made to be claimed, or already claimed, answers `TEAM_NOT_CLAIMABLE`; a member of the team `MEMBER_ALREADY_EXISTS`; and a link that is off, or that opens nothing, `GUEST_LINK_NOT_FOUND`. Needs a person signed in.","operationId":"GuestLinks.ClaimGuestLink","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ClaimGuestLinkRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ClaimGuestLinkResponse"}}},"description":"The ClaimGuestLinkResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Claim a team through its guest link","tags":["GuestLinks"]}},"/v1/guest-links:open":{"post":{"description":"Returns the team, whether it is made to be claimed, the project and the permissions a guest holds through a project's guest `link`: the Viewer permissions the person who shared it also holds. Requests that send `Bearer guest_<link>` then read that project as that person, and every other request of theirs is refused. Needs no credential; limited per client IP. A link that is off, or that opens nothing, answers `GUEST_LINK_NOT_FOUND`.","operationId":"GuestLinks.OpenGuestLink","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.OpenGuestLinkRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.OpenGuestLinkResponse"}}},"description":"The OpenGuestLinkResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Open a guest link","tags":["GuestLinks"]}},"/v1/guest-links:requestEditAccess":{"post":{"description":"Asks the owners of the team behind a guest `link` to let the signed-in person edit its project, with the `profile` they join under. Each owner is emailed once; asking again while the request is pending returns it unchanged. Owners approve or decline it with `Teams.ApproveJoinRequest` and `Teams.DeclineJoinRequest`. A member of the team answers `MEMBER_ALREADY_EXISTS`, and a link that is off, or that opens nothing, `GUEST_LINK_NOT_FOUND`. Needs a person signed in.","operationId":"GuestLinks.RequestEditAccess","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RequestEditAccessRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RequestEditAccessResponse"}}},"description":"The RequestEditAccessResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Ask for edit access through a guest link","tags":["GuestLinks"]}},"/v1/health":{"get":{"description":"Answers `SERVING` while the API serves requests. Needs no credential.","operationId":"Health","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"status":{"enum":["SERVING"],"type":"string"}},"type":"object"}}},"description":"The gateway is serving. It probes no other service."}},"security":[],"summary":"Check the API is serving"}},"/v1/imports":{"get":{"description":"Lists the environment's imports, newest first, 20 to a page by default and at most 100, optionally of one connection. Needs `customers:read`.","operationId":"Imports.ListImports","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"connection_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/entitler.api.v1.ImportSortField"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListImportsResponse"}}},"description":"The ListImportsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List imports","tags":["Imports"]}},"/v1/imports/{import_id}":{"get":{"description":"Returns an import of Stripe customers or App Store transactions: its state, how many customers or transactions it has read, how many of each outcome and finding it recorded, and the plan's customer allowance it started with. Needs `customers:read`.","operationId":"Imports.GetImport","parameters":[{"in":"path","name":"import_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetImportResponse"}}},"description":"The GetImportResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get an import","tags":["Imports"]}},"/v1/imports/{import_id}/results":{"get":{"description":"Lists what an import recorded for each Stripe customer or App Store transaction, in the order it read them, 50 to a page by default and at most 100, optionally of one `outcome`. Needs `customers:read`.","operationId":"Imports.ListImportResults","parameters":[{"in":"path","name":"import_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"outcome","schema":{"$ref":"#/components/schemas/entitler.api.v1.ImportOutcome"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/entitler.api.v1.ImportResultSortField"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListImportResultsResponse"}}},"description":"The ListImportResultsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List an import's results","tags":["Imports"]}},"/v1/indexes/{index_key}/values":{"get":{"description":"Lists the monthly changes recorded for `indexKey`, newest month first, with when each was recorded and applied. Pages through `pageSize` (24 by default, at most 120) and `pageToken`. Needs `customers:read`.","operationId":"Indexes.ListIndexValues","parameters":[{"in":"path","name":"index_key","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListIndexValuesResponse"}}},"description":"The ListIndexValuesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List an index's values","tags":["Indexes"]}},"/v1/indexes/{index_key}/values/{month}":{"put":{"description":"Records an index's change for `month`, in thousandths of a percent from −99,999 to 1,000,000, which indexed prices apply at anniversaries in that month. Replaces the month's value until a subscription applies it; an environment holds at most 50 indexes. Needs `customers:write`.","operationId":"Indexes.RecordIndexValue","parameters":[{"in":"path","name":"index_key","required":true,"schema":{"type":"string"}},{"in":"path","name":"month","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RecordIndexValueRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RecordIndexValueResponse"}}},"description":"The RecordIndexValueResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Record an index value","tags":["Indexes"]}},"/v1/key-permissions":{"get":{"description":"Lists every permission a key can hold. Needs an access token or a management key.","operationId":"Keys.ListKeyPermissions","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListKeyPermissionsResponse"}}},"description":"The ListKeyPermissionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List key permissions","tags":["Keys"]}},"/v1/listings":{"get":{"description":"Returns how each payment provider connection sells each sellable plan and period of a catalogue, optionally one plan, with the gaps no connection lists. Needs `tracks:roll_out` or `tracks:manage`.","operationId":"Listings.GetListings","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"catalogue.change_id","schema":{"type":"string"}},{"in":"query","name":"catalogue.release_id","schema":{"type":"string"}},{"in":"query","name":"plan_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetListingsResponse"}}},"description":"The GetListingsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a catalogue's listings","tags":["Listings"]},"put":{"description":"Replaces the listings of each connection sent, for a catalogue or one plan, with `expectedRevision`. A Stripe listing names its market; each Stripe price is checked against the plan, period and market it sells, and a price Entitler created that no listing sells any more is archived. Needs `tracks:roll_out`.","operationId":"Listings.SetListings","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetListingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetListingsResponse"}}},"description":"The SetListingsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a catalogue's listings","tags":["Listings"]}},"/v1/offers":{"get":{"description":"Lists the environment's offers, a page at a time. Archived offers are included only when `includeArchived` is set. Needs `customers:read`.","operationId":"Offers.ListOffers","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"include_archived","schema":{"type":"boolean"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListOffersResponse"}}},"description":"The ListOffersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List offers","tags":["Offers"]},"post":{"description":"Creates an offer, a discount that can optionally move the customer to a plan, with its window, conditions, limits and codes. The key is unique in the environment and cannot change later. Needs `customers:write`.","operationId":"Offers.CreateOffer","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateOfferResponse"}}},"description":"The CreateOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create an offer","tags":["Offers"]}},"/v1/offers/{offer_id}":{"delete":{"description":"Deletes an offer, archived or not, with its codes, and frees its key. Refused with `OFFER_IN_USE` once a customer has taken it or holds its discount, a referral code or another offer names it, or a one-off charge came from it. With `validateOnly`, only checks. Needs `customers:write`.","operationId":"Offers.DeleteOffer","parameters":[{"in":"path","name":"offer_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"validate_only","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteOfferResponse"}}},"description":"The DeleteOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete an offer","tags":["Offers"]},"get":{"description":"Returns the offer with this ID. Needs `customers:read`.","operationId":"Offers.GetOffer","parameters":[{"in":"path","name":"offer_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetOfferResponse"}}},"description":"The GetOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get an offer","tags":["Offers"]},"put":{"description":"Replaces an offer's content, guarded by `expectedRevision`. A discount already given keeps the terms it was given with. Needs `customers:write`.","operationId":"Offers.UpdateOffer","parameters":[{"in":"path","name":"offer_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateOfferResponse"}}},"description":"The UpdateOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update an offer","tags":["Offers"]}},"/v1/offers/{offer_id}:archive":{"post":{"description":"Archives an offer so it can no longer be given or taken. Its key stays reserved in the environment. Needs `customers:write`.","operationId":"Offers.ArchiveOffer","parameters":[{"in":"path","name":"offer_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchiveOfferRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchiveOfferResponse"}}},"description":"The ArchiveOfferResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Archive an offer","tags":["Offers"]}},"/v1/openapi.json":{"get":{"description":"Returns this document, which describes every operation of the API. Needs no credential.","operationId":"OpenApi","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"This document."}},"security":[],"summary":"Get this OpenAPI document"}},"/v1/overview/attention":{"get":{"description":"Returns the payments missed in the last 30 days and not since paid on the same lane, the payments awaiting, the cancels booked with the recurring revenue they end, and the trials ending in the next 7 days, each with a count and amounts per currency. `money` defaults to the environment's. Needs `customers:read`.","operationId":"Overview.GetAttention","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"money","schema":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetAttentionResponse"}}},"description":"The GetAttentionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get what needs attention","tags":["Overview"]}},"/v1/overview/attention/entries":{"get":{"description":"Lists the customers behind one of the attention counts (`item`): missed payments newest first; awaiting payments by deadline, or for a charge when it was raised, earliest first; booked cancels and ending trials soonest first; 25 to a page by default and at most 100, each with its customer, plan, amount and time, and what recording its payment needs when recording it settles the entry. `money` defaults to the environment's. Needs `customers:read`.","operationId":"Overview.ListAttention","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"money","schema":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"}},{"in":"query","name":"item","schema":{"$ref":"#/components/schemas/entitler.api.v1.AttentionKind"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListAttentionResponse"}}},"description":"The ListAttentionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List what needs attention","tags":["Overview"]}},"/v1/overview/moves":{"get":{"description":"Lists the environment's latest subscriptions, plan moves, add-on changes, cancels, missed payments and reversals, newest first, 25 to a page by default and at most 100, each with its customer, plan, the recurring revenue a month it changed and, for a missed payment, the amount due. `money` defaults to the environment's. Needs `customers:read`.","operationId":"Overview.ListLatestMoves","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"money","schema":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListLatestMovesResponse"}}},"description":"The ListLatestMovesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List the latest moves","tags":["Overview"]}},"/v1/overview/revenue":{"get":{"description":"Returns recurring revenue a month now and at each point of the range (`range`: 4 weeks a day, 3 months a week or 12 months a month), where its change came from, what was collected, paying customers and churn, and each plan's customers, revenue and moves. Amounts are per currency. `money` defaults to the environment's. Needs `customers:read`.","operationId":"Overview.GetRevenueSummary","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"money","schema":{"$ref":"#/components/schemas/entitler.api.v1.CustomerMoney"}},{"in":"query","name":"range","schema":{"$ref":"#/components/schemas/entitler.api.v1.OverviewRange"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetRevenueSummaryResponse"}}},"description":"The GetRevenueSummaryResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get the revenue summary","tags":["Overview"]}},"/v1/pricing":{"get":{"description":"Returns the plans on sale on the default track. Pass `market` or `country` to price them; with neither, prices are left empty. Amounts are formatted for `Accept-Language`. Needs `catalogue:read`.","operationId":"Pricing.GetPricing","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"market","schema":{"type":"string"}},{"in":"query","name":"country","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetPricingResponse"}}},"description":"The GetPricingResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get the public pricing sheet","tags":["Pricing"]}},"/v1/pricing/features":{"get":{"description":"Returns the features of the catalogue served on the default track, archived ones included. Needs `catalogue:read`.","operationId":"Pricing.ListFeaturesOnSale","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListFeaturesOnSaleResponse"}}},"description":"The ListFeaturesOnSaleResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List the features on sale","tags":["Pricing"]}},"/v1/provider-alerts":{"get":{"description":"Lists alerts about what payment providers bill that doesn't match what customers hold, filtered by `status` and `externalId`, a page at a time. Needs `customers:read`.","operationId":"ProviderAlerts.ListAlerts","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"status","schema":{"$ref":"#/components/schemas/entitler.api.v1.AlertStatus"}},{"in":"query","name":"external_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/entitler.api.v1.AlertSortField"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListAlertsResponse"}}},"description":"The ListAlertsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List payment provider alerts","tags":["ProviderAlerts"]}},"/v1/provider-alerts/{alert_id}:resolve":{"post":{"description":"Marks the alert resolved by the caller and returns it. Needs `customers:write`.","operationId":"ProviderAlerts.ResolveAlert","parameters":[{"in":"path","name":"alert_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ResolveAlertRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ResolveAlertResponse"}}},"description":"The ResolveAlertResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Resolve a payment provider alert","tags":["ProviderAlerts"]}},"/v1/refused-payments":{"get":{"description":"Lists payments Entitler refused because their money didn't match the environment or track, newest first, a page at a time. Needs `customers:read`.","operationId":"Payments.ListRefusedPayments","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListRefusedPaymentsResponse"}}},"description":"The ListRefusedPaymentsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List refused payments","tags":["Payments"]}},"/v1/rollouts":{"get":{"description":"Lists rollouts, optionally for one track with `trackId`, paged with `pageSize` and `pageToken`. Needs `tracks:roll_out`.","operationId":"Rollouts.ListRollouts","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"track_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListRolloutsResponse"}}},"description":"The ListRolloutsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List rollouts","tags":["Rollouts"]},"post":{"description":"Plans a rollout of a release to a track and starts it, unless approval is needed or `startsAt` is set. Send an `idempotencyKey` to make retries safe. Keys can't create one that needs approval. Unless it needs approval, Entitler first creates the release's missing Stripe prices on connections set to let it manage prices, and refuses with `ROLLOUT_PRICES_REMAINING` while more than 100 remain. Needs `tracks:roll_out`.","operationId":"Rollouts.CreateRollout","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateRolloutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateRolloutResponse"}}},"description":"The CreateRolloutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Roll a release out to a track","tags":["Rollouts"]}},"/v1/rollouts/{rollout_id}":{"get":{"description":"Returns a rollout with its state and target. Needs `tracks:roll_out`.","operationId":"Rollouts.GetRollout","parameters":[{"in":"path","name":"rollout_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetRolloutResponse"}}},"description":"The GetRolloutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a rollout","tags":["Rollouts"]}},"/v1/rollouts/{rollout_id}:approve":{"post":{"description":"Approves a pending rollout and starts it. Only a person can approve, never the requester, and their role must be allowed to approve in the environment. Entitler first creates the release's missing Stripe prices, as `CreateRollout` does. Needs `tracks:roll_out`.","operationId":"Rollouts.ApproveRollout","parameters":[{"in":"path","name":"rollout_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ApproveRolloutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ApproveRolloutResponse"}}},"description":"The ApproveRolloutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Approve a rollout","tags":["Rollouts"]}},"/v1/rollouts/{rollout_id}:cancel":{"post":{"description":"Cancels a pending, scheduling or scheduled rollout and removes its scheduled changes. A rollout already started is refused. Only the requester or an approver may cancel. Needs `tracks:roll_out`.","operationId":"Rollouts.CancelRollout","parameters":[{"in":"path","name":"rollout_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelRolloutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CancelRolloutResponse"}}},"description":"The CancelRolloutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Cancel a rollout","tags":["Rollouts"]}},"/v1/rollouts/{rollout_id}:decline":{"post":{"description":"Declines a pending rollout. Only a person can decline, and only the requester or an approver. Needs `tracks:roll_out`.","operationId":"Rollouts.DeclineRollout","parameters":[{"in":"path","name":"rollout_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeclineRolloutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeclineRolloutResponse"}}},"description":"The DeclineRolloutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Decline a rollout","tags":["Rollouts"]}},"/v1/rollouts:preview":{"post":{"description":"Shows what rolling a release out to a track would do: its source, the planned moves, the cohorts that can be chosen, whether approval is needed and how many Stripe prices Entitler creates before it applies. Nothing is changed. Needs `tracks:roll_out`.","operationId":"Rollouts.PreviewRollout","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.PreviewRolloutRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.PreviewRolloutResponse"}}},"description":"The PreviewRolloutResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Preview a rollout","tags":["Rollouts"]}},"/v1/snapshot-keys":{"get":{"description":"Returns the ES256 public keys that verify entitlement snapshots offline, as a JSON Web Key Set. Needs no credential, and is limited per address.","operationId":"SnapshotKeys","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotKeySet"}}},"description":"The ES256 keys that verify snapshots, as a JSON Web Key Set."},"405":{"description":"A method other than GET, with no body."},"429":{"description":"The address's limit is spent, with no body.","headers":{"Retry-After":{"description":"Seconds until the limit's period ends.","schema":{"enum":[60],"type":"integer"}}}},"500":{"description":"A stored key can't be published, with no body."},"503":{"description":"The keys are unreachable, with no body."}},"security":[],"summary":"Get the snapshot keys"}},"/v1/teams/{team_id}/keys":{"post":{"description":"Creates a key for the team, a project or an environment with its permissions, exposure, allowed origins and optional expiry, and returns its `secret` once. Send an `idempotencyKey` to make a retry safe. Needs `keys:manage` in the key's scope and every permission it grants.","operationId":"Keys.CreateKey","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateKeyResponse"}}},"description":"The CreateKeyResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create an API key","tags":["Keys"]}},"/v1/teams/{team_id}/keys/{key_id}":{"patch":{"description":"Changes the key's name, permissions or allowed origins, with `expectedRevision`. Needs `keys:manage` in the key's scope and every permission it grants.","operationId":"Keys.UpdateKey","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"key_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateKeyResponse"}}},"description":"The UpdateKeyResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update an API key","tags":["Keys"]}},"/v1/teams/{team_id}/keys/{key_id}:revoke":{"post":{"description":"Revokes the key, so its credential authenticates nothing. Repeating the call finishes a revocation that failed part way. Needs `keys:manage` in the key's scope.","operationId":"Keys.RevokeKey","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"key_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevokeKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevokeKeyResponse"}}},"description":"The RevokeKeyResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Revoke an API key","tags":["Keys"]}},"/v1/teams/{team_id}/keys/{key_id}:rotate":{"post":{"description":"Issues a new version of the key and returns its `secret` once; the previous version stays valid until `previousExpiresAt`. `expectedVersion` must be the key's current version. Needs `keys:manage` in the key's scope.","operationId":"Keys.RotateKey","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"key_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RotateKeyRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RotateKeyResponse"}}},"description":"The RotateKeyResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rotate an API key","tags":["Keys"]}},"/v1/teams/{team_id}/keys:search":{"post":{"description":"Lists the keys of the team, a project or an environment, a page at a time with `pageSize` and `after`. A key lists only the keys it can manage, so a page may be shorter than `pageSize`. Needs `keys:manage` in the selection.","operationId":"Keys.ListKeys","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListKeysRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListKeysResponse"}}},"description":"The ListKeysResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List API keys","tags":["Keys"]}},"/v1/teams/{team_id}/projects":{"get":{"description":"Lists the team's projects the caller can open, a page at a time with `pageSize` and `after`, and whether the caller can create one. Needs team membership.","operationId":"Projects.ListProjects","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"filter","schema":{"$ref":"#/components/schemas/entitler.api.v1.ProjectFilter"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListProjectsResponse"}}},"description":"The ListProjectsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List projects","tags":["Projects"]},"post":{"description":"Creates a project with a name, an optional image, its switches, time zone and week start, together with its starting environments and settings, and gives the caller access to it. Send an `idempotencyKey` to make a retry safe. Needs `project:create` in the team.","operationId":"Projects.CreateProject","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateProjectRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateProjectResponse"}}},"description":"The CreateProjectResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a project","tags":["Projects"]}},"/v1/teams/{team_id}/projects/{project_id}":{"delete":{"description":"Deletes the project and removes access to it. It is refused while an environment has a payment provider connection. Needs `project:settings`.","operationId":"Projects.DeleteProject","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteProjectResponse"}}},"description":"The DeleteProjectResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a project","tags":["Projects"]},"get":{"description":"Returns the project. Needs `project:read`.","operationId":"Projects.GetProject","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetProjectResponse"}}},"description":"The GetProjectResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a project","tags":["Projects"]},"patch":{"description":"Changes the project's name. Needs `project:settings`.","operationId":"Projects.RenameProject","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameProjectRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameProjectResponse"}}},"description":"The RenameProjectResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rename a project","tags":["Projects"]}},"/v1/teams/{team_id}/projects/{project_id}/attributes/{attribute_id}/versions":{"get":{"description":"Lists a customer attribute's versions from releases and live changes. Needs `catalogue:read`.","operationId":"Attributes.ListAttributeVersions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"attribute_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListAttributeVersionsResponse"}}},"description":"The ListAttributeVersionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List customer attribute versions","tags":["Attributes"]}},"/v1/teams/{team_id}/projects/{project_id}/billing-periods":{"get":{"description":"Lists the project's billing periods, filtered by `filter`. Needs `catalogue:read`.","operationId":"BillingPeriods.ListPeriods","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"filter","schema":{"$ref":"#/components/schemas/entitler.api.v1.PeriodFilter"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListPeriodsResponse"}}},"description":"The ListPeriodsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List billing periods","tags":["BillingPeriods"]},"post":{"description":"Creates a billing period of `count` `unit`s with a `label`; `calendar` aligns it with calendar boundaries. The team plan limits how many custom periods a project has. Needs `catalogue:write`.","operationId":"BillingPeriods.CreatePeriod","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePeriodRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePeriodResponse"}}},"description":"The CreatePeriodResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a billing period","tags":["BillingPeriods"]}},"/v1/teams/{team_id}/projects/{project_id}/billing-periods/{period_id}":{"delete":{"description":"Deletes a billing period, archived or not, and frees its key and label. Refused with `PERIOD_IN_USE` while a plan version, a customer's subscription, an offer, a discount, a voucher batch or a provider listing names it. With `validateOnly`, only checks. Needs `catalogue:write`.","operationId":"BillingPeriods.DeletePeriod","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"period_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"validate_only","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeletePeriodResponse"}}},"description":"The DeletePeriodResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a billing period","tags":["BillingPeriods"]},"patch":{"description":"Changes the billing period's `label`. Needs `catalogue:write`.","operationId":"BillingPeriods.RenamePeriod","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"period_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenamePeriodRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenamePeriodResponse"}}},"description":"The RenamePeriodResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rename a billing period","tags":["BillingPeriods"]}},"/v1/teams/{team_id}/projects/{project_id}/billing-periods/{period_id}:archive":{"post":{"description":"Archives the billing period, so new plans can't use it. Needs `catalogue:write`.","operationId":"BillingPeriods.ArchivePeriod","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"period_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchivePeriodRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchivePeriodResponse"}}},"description":"The ArchivePeriodResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Archive a billing period","tags":["BillingPeriods"]}},"/v1/teams/{team_id}/projects/{project_id}/billing-periods/{period_id}:setCalendar":{"post":{"description":"Sets whether the billing period follows calendar boundaries. Needs `catalogue:write`.","operationId":"BillingPeriods.SetPeriodCalendar","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"period_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPeriodCalendarRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPeriodCalendarResponse"}}},"description":"The SetPeriodCalendarResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Align a billing period with the calendar","tags":["BillingPeriods"]}},"/v1/teams/{team_id}/projects/{project_id}/billing-periods/{period_id}:unarchive":{"post":{"description":"Makes an archived billing period available again, within the team plan's custom period limit. Needs `catalogue:write`.","operationId":"BillingPeriods.UnarchivePeriod","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"period_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnarchivePeriodRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnarchivePeriodResponse"}}},"description":"The UnarchivePeriodResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Unarchive a billing period","tags":["BillingPeriods"]}},"/v1/teams/{team_id}/projects/{project_id}/calendars/{calendar_id}/versions":{"get":{"description":"Lists a calendar's versions from releases and live changes. Needs `catalogue:read`.","operationId":"Calendars.ListCalendarVersions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"calendar_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCalendarVersionsResponse"}}},"description":"The ListCalendarVersionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List calendar versions","tags":["Calendars"]}},"/v1/teams/{team_id}/projects/{project_id}/catalogue":{"get":{"description":"Returns the full catalogue of a change or of a release, chosen by the selector in the request. Needs `catalogue:read`.","operationId":"Catalogues.GetCatalogue","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"selector.change_id","schema":{"type":"string"}},{"in":"query","name":"selector.release_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetCatalogueResponse"}}},"description":"The GetCatalogueResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a catalogue","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/catalogue/features":{"get":{"description":"Lists the features of a change or a release in feature ID order. The filter can include archived features, keep one kind or search keys and names; a long search is shortened and the response says so. Needs `catalogue:read`.","operationId":"Catalogues.ListFeatures","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"selector.change_id","schema":{"type":"string"}},{"in":"query","name":"selector.release_id","schema":{"type":"string"}},{"in":"query","name":"filter.kind","schema":{"$ref":"#/components/schemas/entitler.api.v1.FeatureKind"}},{"in":"query","name":"filter.search","schema":{"type":"string"}},{"in":"query","name":"filter.include_archived","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListFeaturesResponse"}}},"description":"The ListFeaturesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List features in a catalogue","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/catalogue/head":{"get":{"description":"Returns the project's newest release, its head release and its open changes. Needs `catalogue:read`.","operationId":"Catalogues.GetHead","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetHeadResponse"}}},"description":"The GetHeadResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get the release head","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/catalogue/plans":{"get":{"description":"Lists the plans and add-ons of a change or a release in plan ID order. The filter can keep one kind or status, or search keys and names; a long search is shortened and the response says so. Needs `catalogue:read`.","operationId":"Catalogues.ListPlans","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"selector.change_id","schema":{"type":"string"}},{"in":"query","name":"selector.release_id","schema":{"type":"string"}},{"in":"query","name":"filter.kind","schema":{"$ref":"#/components/schemas/entitler.api.v1.PlanKind"}},{"in":"query","name":"filter.status","schema":{"$ref":"#/components/schemas/entitler.api.v1.PlanStatusFilter"}},{"in":"query","name":"filter.search","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListPlansResponse"}}},"description":"The ListPlansResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List plans in a catalogue","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/catalogue/release-diff":{"get":{"description":"Returns a release's catalogue beside its parent's (empty for the first release) and the differences between them. Name the release by ID or by number. Needs `catalogue:read`.","operationId":"Catalogues.GetReleaseDiff","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"release_id","schema":{"type":"string"}},{"in":"query","name":"number","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetReleaseDiffResponse"}}},"description":"The GetReleaseDiffResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Compare a release with its parent","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/changes":{"post":{"description":"Opens a change based on `baseReleaseId`, or on the latest mainline release when none is given. A project holds at most 50 live changes. Send an `idempotencyKey` to make retries safe. Needs `catalogue:write`.","operationId":"Changes.CreateChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateChangeResponse"}}},"description":"The CreateChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Open a change","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}":{"get":{"description":"Returns a change with its state, contributors and edits. Needs `catalogue:read`.","operationId":"Changes.GetChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetChangeResponse"}}},"description":"The GetChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a change","tags":["Changes"]},"patch":{"description":"Gives a live change a new name. `expectedRevision` is optional. Needs `catalogue:write`.","operationId":"Changes.RenameChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameChangeResponse"}}},"description":"The RenameChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rename a change","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/attributes":{"post":{"description":"Declares a customer attribute in a live change: a key, a type (text, choice, number, date or boolean), a name, a description, a choice's options and whether customers may set it. A catalogue holds at most 50 attributes. Needs `catalogue:write`.","operationId":"Attributes.CreateAttribute","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateAttributeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateAttributeResponse"}}},"description":"The CreateAttributeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a customer attribute","tags":["Attributes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/attributes/{attribute_id}":{"delete":{"description":"Removes a customer attribute in a live change. Needs `catalogue:write`.","operationId":"Attributes.DeleteAttribute","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"attribute_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteAttributeResponse"}}},"description":"The DeleteAttributeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a customer attribute","tags":["Attributes"]},"patch":{"description":"Edits a customer attribute in a live change; `options` replaces a choice's options when set. Once a release holds the attribute, its key and type are fixed. Needs `catalogue:write`.","operationId":"Attributes.UpdateAttribute","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"attribute_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateAttributeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateAttributeResponse"}}},"description":"The UpdateAttributeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a customer attribute","tags":["Attributes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/calendars":{"post":{"description":"Declares a calendar in a live change: a key, a name, an IANA time zone and up to 1,000 dated days, each a holiday or a working day. A catalogue holds at most 20 calendars. Needs `catalogue:write`.","operationId":"Calendars.CreateCalendar","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateCalendarRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateCalendarResponse"}}},"description":"The CreateCalendarResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a calendar","tags":["Calendars"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/calendars/{calendar_id}":{"delete":{"description":"Removes a calendar in a live change. Needs `catalogue:write`.","operationId":"Calendars.DeleteCalendar","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"calendar_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteCalendarResponse"}}},"description":"The DeleteCalendarResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a calendar","tags":["Calendars"]},"patch":{"description":"Edits a calendar in a live change; `days` replaces the days when set. Once a release holds the calendar, its key is fixed. Needs `catalogue:write`.","operationId":"Calendars.UpdateCalendar","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"calendar_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateCalendarRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateCalendarResponse"}}},"description":"The UpdateCalendarResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a calendar","tags":["Calendars"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/diff":{"get":{"description":"Returns a change's catalogue beside its base release (empty when it has none) and the differences between them, with a drafted release note for the change. Needs `catalogue:read`.","operationId":"Catalogues.GetChangeDiff","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetChangeDiffResponse"}}},"description":"The GetChangeDiffResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Compare a change with its base","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/features":{"post":{"description":"Adds a switch, configuration, metered feature or group to a live change. Send an `idempotencyKey` to make retries safe. Needs `catalogue:write`.","operationId":"Features.CreateFeature","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateFeatureRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateFeatureResponse"}}},"description":"The CreateFeatureResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a feature","tags":["Features"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/features/{feature_id}":{"delete":{"description":"Removes a feature from a live change, so the next release leaves it out while earlier releases keep it. Refused with `FEATURE_IN_USE` while a plan or group holds it, in the change or in any release, or a live grant or voucher batch names it. With `validateOnly`, only checks. Needs `catalogue:write`.","operationId":"Features.DeleteFeature","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"feature_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},{"in":"query","name":"validate_only","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteFeatureResponse"}}},"description":"The DeleteFeatureResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a feature","tags":["Features"]},"patch":{"description":"Edits a feature in a live change, or copies an earlier version with `restoreVersionNumber`. Once a release holds the feature, its key, kind and measure are fixed. Needs `catalogue:write`.","operationId":"Features.UpdateFeature","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"feature_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateFeatureRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateFeatureResponse"}}},"description":"The UpdateFeatureResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a feature","tags":["Features"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/paths":{"post":{"description":"Adds a path between two plans, or from a sign-up to a plan, in a live change. Send an `idempotencyKey` to make retries safe. Paths to and from add-ons are one-way. Needs `catalogue:write`.","operationId":"Paths.CreatePath","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePathRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePathResponse"}}},"description":"The CreatePathResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a path","tags":["Paths"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/paths/{path_id}":{"delete":{"description":"Removes a path in a live change. Deleting a path the change already removed succeeds without writing. Needs `catalogue:write`.","operationId":"Paths.DeletePath","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"path_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeletePathResponse"}}},"description":"The DeletePathResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a path","tags":["Paths"]},"patch":{"description":"Changes a path's rules in a live change. `requires` sets how many of an add-on come with the path, and 0 clears it. Needs `catalogue:write`.","operationId":"Paths.UpdatePath","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"path_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdatePathRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdatePathResponse"}}},"description":"The UpdatePathResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a path","tags":["Paths"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/plans":{"post":{"description":"Adds a plan or add-on to a live change, with its content, periods and prices. Send an `idempotencyKey` to make retries safe. Refused when the team plan's limit on plans is reached. Needs `catalogue:write`.","operationId":"Plans.CreatePlan","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreatePlanResponse"}}},"description":"The CreatePlanResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a plan","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/plans/{plan_id}":{"delete":{"description":"Removes a plan from a live change, so the next release leaves it out while earlier releases keep it. Refused with `PLAN_IN_USE` while a path joins it, a product names it as its default plan, a customer holds it, an offer, discount, rollout, one-off charge or voucher batch names it, or a provider listing sells it. With `validateOnly`, only checks. Needs `catalogue:write`.","operationId":"Plans.DeletePlan","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},{"in":"query","name":"validate_only","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeletePlanResponse"}}},"description":"The DeletePlanResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a plan","tags":["Plans"]},"patch":{"description":"Edits a plan or add-on in a live change. Once a release holds the plan, its key, kind and product are fixed, and a plan listed with a billing provider keeps its kind and product. Needs `catalogue:write`.","operationId":"Plans.UpdatePlan","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdatePlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdatePlanResponse"}}},"description":"The UpdatePlanResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a plan","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/plans/{plan_id}:revert":{"post":{"description":"Puts a plan back as the change's base release holds it, undoing the change's edits and releasing its lock. A plan the change created is removed instead. Reverting a plan the change never edited does nothing. Needs `catalogue:write`.","operationId":"Plans.RevertPlan","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevertPlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevertPlanResponse"}}},"description":"The RevertPlanResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Revert a plan in a change","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/plans/{plan_id}:setPrice":{"post":{"description":"Sets the price in one period and market cell of a plan in a live change, or removes it when `amount` is unset. Needs `catalogue:write`.","operationId":"Plans.SetPrice","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPriceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPriceResponse"}}},"description":"The SetPriceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set one plan price","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/prices":{"put":{"description":"Sets the free switch and the whole price list of up to 50 plans in one edit, each plan named once. It applies to every plan or none. Needs `catalogue:write`.","operationId":"Plans.SetPrices","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPricesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPricesResponse"}}},"description":"The SetPricesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set prices for several plans","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/products":{"post":{"description":"Adds a product to a live change. Send an `idempotencyKey` to make retries safe. A project holds at most 50 products. Needs `catalogue:write`.","operationId":"Products.CreateProduct","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateProductRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateProductResponse"}}},"description":"The CreateProductResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a product","tags":["Products"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/products/{product_id}":{"delete":{"description":"Removes a product from a live change. Refused while any plan belongs to it, and for the last remaining product. Needs `catalogue:write`.","operationId":"Products.DeleteProduct","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"product_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteProductResponse"}}},"description":"The DeleteProductResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a product","tags":["Products"]},"patch":{"description":"Edits a product in a live change. Once a release holds the product, its key is fixed. Needs `catalogue:write`.","operationId":"Products.UpdateProduct","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"product_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateProductRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateProductResponse"}}},"description":"The UpdateProductResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a product","tags":["Products"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/products/{product_id}/default-plan":{"put":{"description":"Makes an active plan of the product its default plan in a live change. Add-ons can't be default plans. Needs `catalogue:write`.","operationId":"Products.SetDefaultPlan","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"product_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetDefaultPlanRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetDefaultPlanResponse"}}},"description":"The SetDefaultPlanResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a product's default plan","tags":["Products"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/recap":{"get":{"description":"Counts the products, features, plans, add-ons and paths a change creates, updates and deletes, and warns about plans sold in no market or missing some. It only warns; publishing still goes ahead. Needs `catalogue:read`.","operationId":"Catalogues.GetChangeRecap","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetChangeRecapResponse"}}},"description":"The GetChangeRecapResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Summarise a change before publishing","tags":["Catalogues"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/segments":{"post":{"description":"Declares a customer segment in a live change: a key, a name, a description and 1 to 10 tests on customer attributes or other segments, matching all or any of them. A catalogue holds at most 200 segments. Needs `catalogue:write`.","operationId":"Segments.CreateSegment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateSegmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateSegmentResponse"}}},"description":"The CreateSegmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a segment","tags":["Segments"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}/segments/{segment_id}":{"delete":{"description":"Removes a segment the live change created; archive a released one instead. A segment another segment tests can't be deleted. Needs `catalogue:write`.","operationId":"Segments.DeleteSegment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"segment_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"expected_revision.value","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteSegmentResponse"}}},"description":"The DeleteSegmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a segment","tags":["Segments"]},"patch":{"description":"Edits a segment in a live change; `tests` replaces the tests when set. Once a release holds the segment, its key is fixed. Needs `catalogue:write`.","operationId":"Segments.UpdateSegment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"segment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateSegmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateSegmentResponse"}}},"description":"The UpdateSegmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a segment","tags":["Segments"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}:approve":{"post":{"description":"Approves a change in review, keeping it in review with a note. `expectedRevision` is required. Refused for someone who opened, edited or submitted the change, and for API keys. Needs `catalogue:release`.","operationId":"Changes.ApproveChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ApproveChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ApproveChangeResponse"}}},"description":"The ApproveChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Approve a change","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}:close":{"post":{"description":"Closes a live change without releasing it and frees the locks it holds on plans, features and products. Closing a closed change returns it unchanged. Needs `catalogue:write`.","operationId":"Changes.CloseChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CloseChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CloseChangeResponse"}}},"description":"The CloseChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Close a change","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}:publish":{"post":{"description":"Publishes a live change as the next release. Refused when it edits nothing, breaks a catalogue rule or exceeds the team plan's limits, or lacks approval where reviews apply. Needs `catalogue:release`.","operationId":"Releases.PublishRelease","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.PublishReleaseRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.PublishReleaseResponse"}}},"description":"The PublishReleaseResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Publish a release","tags":["Releases"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}:sendBack":{"post":{"description":"Returns a change in review to open with a note. Refused for someone who opened, edited or submitted the change. Needs `catalogue:write`.","operationId":"Changes.SendBackChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SendBackChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SendBackChangeResponse"}}},"description":"The SendBackChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Send a change back","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}:submit":{"post":{"description":"Moves a change to review, clearing any earlier decision, and optionally names a reviewer who holds `catalogue:release` and didn't open or edit the change. It needs the team plan's review flow. Needs `catalogue:write`.","operationId":"Changes.SubmitChange","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SubmitChangeRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SubmitChangeResponse"}}},"description":"The SubmitChangeResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Submit a change for review","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/changes/{change_id}:writeStarterCatalogue":{"post":{"description":"Fills an empty change with up to 30 features and 6 self-serve plans, cheapest first, without releasing it. Refused when the project has a release or another live change. Needs `catalogue:write`.","operationId":"Releases.WriteStarterCatalogue","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"change_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.WriteStarterCatalogueRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.WriteStarterCatalogueResponse"}}},"description":"The WriteStarterCatalogueResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Write a starter catalogue","tags":["Releases"]}},"/v1/teams/{team_id}/projects/{project_id}/changes:search":{"post":{"description":"Lists a project's changes, optionally filtered by `states`, sorted by `sort` (created, updated or name) in `direction`; by default oldest first. Pages hold 50 by default and at most 100; pass `after` to continue. Needs `catalogue:read`.","operationId":"Changes.ListChanges","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListChangesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListChangesResponse"}}},"description":"The ListChangesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List changes","tags":["Changes"]}},"/v1/teams/{team_id}/projects/{project_id}/environment-order":{"put":{"description":"Puts the project's environments in the order sent, each with its `expectedRevision`, and returns them in their new order. Needs `project:settings`.","operationId":"Environments.SetEnvironmentOrder","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetEnvironmentOrderRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetEnvironmentOrderResponse"}}},"description":"The SetEnvironmentOrderResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Reorder environments","tags":["Environments"]}},"/v1/teams/{team_id}/projects/{project_id}/environments":{"get":{"description":"Lists the project's environments in their order. Needs `project:read`.","operationId":"Environments.ListEnvironments","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListEnvironmentsResponse"}}},"description":"The ListEnvironmentsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List environments","tags":["Environments"]},"post":{"description":"Creates a live or test environment with its default track. A project with the `environments` switch off keeps its one live environment. Send an `idempotencyKey` to make a retry safe. Needs `project:settings`.","operationId":"Environments.CreateEnvironment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateEnvironmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateEnvironmentResponse"}}},"description":"The CreateEnvironmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create an environment","tags":["Environments"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}":{"delete":{"description":"Deletes the environment, its webhook endpoint and its keys, and returns how many keys it revoked. It is refused while the environment has a payment provider connection. Needs `project:settings`.","operationId":"Environments.DeleteEnvironment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteEnvironmentResponse"}}},"description":"The DeleteEnvironmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete an environment","tags":["Environments"]},"get":{"description":"Returns the project's environment with this ID. Needs `project:read`.","operationId":"Environments.GetEnvironment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetEnvironmentResponse"}}},"description":"The GetEnvironmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get an environment","tags":["Environments"]},"patch":{"description":"Changes the environment's name. Needs `project:settings`.","operationId":"Environments.RenameEnvironment","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameEnvironmentRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameEnvironmentResponse"}}},"description":"The RenameEnvironmentResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rename an environment","tags":["Environments"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/cohorts":{"get":{"description":"Lists the environment's cohorts and their recorded moves by plan and number, optionally for one plan with `planId`. Pages hold 50 by default and at most 100; pass `after` to continue. Needs `tracks:manage`, `tracks:roll_out` or `customers:read`.","operationId":"Cohorts.ListCohorts","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"plan_id","schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCohortsResponse"}}},"description":"The ListCohortsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List cohorts in an environment","tags":["Cohorts"]},"post":{"description":"Opens the next cohort of a plan at a released version, closing the plan's open cohort in the environment. It needs the team plan's cohorts capability and the project's cohorts switch on. Needs `tracks:roll_out`.","operationId":"Cohorts.StartCohort","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.StartCohortRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.StartCohortResponse"}}},"description":"The StartCohortResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Start a cohort","tags":["Cohorts"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/identity-providers":{"get":{"description":"Lists the identity providers whose tokens identify the environment's customers. Needs `project:read`.","operationId":"CustomerIdentityProviders.ListIdentityProviders","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListIdentityProvidersResponse"}}},"description":"The ListIdentityProvidersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List customer sign-in providers","tags":["CustomerIdentityProviders"]},"post":{"description":"Adds an identity provider whose tokens identify the environment's customers, by issuer, JWKS URL, audience and algorithms. Needs `project:settings`.","operationId":"CustomerIdentityProviders.CreateIdentityProvider","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateIdentityProviderRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateIdentityProviderResponse"}}},"description":"The CreateIdentityProviderResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Add a customer sign-in provider","tags":["CustomerIdentityProviders"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/identity-providers/{provider_id}":{"delete":{"description":"Removes the identity provider, so its tokens no longer identify customers. Needs `project:settings`.","operationId":"CustomerIdentityProviders.DeleteIdentityProvider","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"provider_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteIdentityProviderResponse"}}},"description":"The DeleteIdentityProviderResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove a customer sign-in provider","tags":["CustomerIdentityProviders"]},"get":{"description":"Returns the environment's identity provider with this ID. Needs `project:read`.","operationId":"CustomerIdentityProviders.GetIdentityProvider","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"provider_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetIdentityProviderResponse"}}},"description":"The GetIdentityProviderResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a customer sign-in provider","tags":["CustomerIdentityProviders"]},"patch":{"description":"Changes the identity provider's fields that are present, with `expectedRevision`. Needs `project:settings`.","operationId":"CustomerIdentityProviders.UpdateIdentityProvider","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"provider_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateIdentityProviderRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateIdentityProviderResponse"}}},"description":"The UpdateIdentityProviderResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a customer sign-in provider","tags":["CustomerIdentityProviders"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/protection":{"put":{"description":"Sets who must approve changes and rollouts in the environment, with `expectedRevision`. Turning approval on needs the team plan's review flow and the project's `reviews` switch. Needs `project:settings`.","operationId":"Environments.ChangeEnvironmentProtection","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ChangeEnvironmentProtectionRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ChangeEnvironmentProtectionResponse"}}},"description":"The ChangeEnvironmentProtectionResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Change an environment's protection","tags":["Environments"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/tracks":{"get":{"description":"Lists all of an environment's tracks, open and closed, default track first and then by position. Needs `tracks:manage`, `tracks:roll_out` or `customers:read`.","operationId":"Tracks.ListTracks","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListTracksResponse"}}},"description":"The ListTracksResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List tracks","tags":["Tracks"]},"post":{"description":"Creates a named track in an environment with a source and money. It needs the project's tracks switch on, and is refused at the team plan's track limit. Send an `idempotencyKey` to make retries safe. Needs `tracks:manage`.","operationId":"Tracks.CreateTrack","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateTrackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateTrackResponse"}}},"description":"The CreateTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a track","tags":["Tracks"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/tracks/{track_id}":{"get":{"description":"Returns a track in an environment. Needs `tracks:manage`, `tracks:roll_out` or `customers:read`.","operationId":"Tracks.GetTrack","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetTrackResponse"}}},"description":"The GetTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a track","tags":["Tracks"]},"patch":{"description":"Renames a track or changes its position (0 to 1000). `expectedRevision` is required. The default track can't be renamed. Needs `tracks:manage`.","operationId":"Tracks.UpdateTrack","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateTrackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateTrackResponse"}}},"description":"The UpdateTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a track","tags":["Tracks"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/tracks/{track_id}/source":{"put":{"description":"Points a track at a release, a change (test-money tracks only) or nothing yet. `expectedRevision` is required. An environment's roll-out protection may limit which roles can do this. Needs `tracks:roll_out`.","operationId":"Tracks.SetTrackSource","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetTrackSourceRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetTrackSourceResponse"}}},"description":"The SetTrackSourceResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a track's source","tags":["Tracks"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/tracks/{track_id}:close":{"post":{"description":"Closes a track. The default track can't be closed. Needs `tracks:manage`.","operationId":"Tracks.CloseTrack","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CloseTrackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CloseTrackResponse"}}},"description":"The CloseTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Close a track","tags":["Tracks"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/tracks/{track_id}:reopen":{"post":{"description":"Reopens a closed track. It needs the project's tracks switch on, and is refused at the team plan's track limit. Needs `tracks:manage`.","operationId":"Tracks.ReopenTrack","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReopenTrackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReopenTrackResponse"}}},"description":"The ReopenTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Reopen a track","tags":["Tracks"]}},"/v1/teams/{team_id}/projects/{project_id}/environments/{environment_id}/tracks:createDefault":{"post":{"description":"Creates the environment's default track, `All customers`. Repeating it returns the existing track. Needs `tracks:manage`.","operationId":"Tracks.CreateDefaultTrack","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"environment_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateDefaultTrackRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateDefaultTrackResponse"}}},"description":"The CreateDefaultTrackResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create the default track","tags":["Tracks"]}},"/v1/teams/{team_id}/projects/{project_id}/features/{feature_id}/versions":{"get":{"description":"Lists a feature's versions in number order, from releases and live changes, with their authors. Only the newest 15 are returned and `truncated` says when older ones were left out. Needs `catalogue:read`.","operationId":"Features.ListFeatureVersions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"feature_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListFeatureVersionsResponse"}}},"description":"The ListFeatureVersionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List feature versions","tags":["Features"]}},"/v1/teams/{team_id}/projects/{project_id}/guest-link":{"delete":{"description":"Turns the project's guest link off, so it stops working; turning it on again makes a new link. Repeating it changes nothing. Needs `project:settings`.","operationId":"GuestLinks.TurnOffGuestLink","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.TurnOffGuestLinkResponse"}}},"description":"The TurnOffGuestLinkResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Turn off a guest link","tags":["GuestLinks"]},"get":{"description":"Returns the project's guest link, or no `guestLink` when it is off. Anyone with the link reads the whole project in the dashboard as a Viewer, without an account. Needs `project:read`.","operationId":"GuestLinks.GetGuestLink","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetGuestLinkResponse"}}},"description":"The GetGuestLinkResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a project's guest link","tags":["GuestLinks"]},"put":{"description":"Turns the project's guest link on with a new link, or returns the link that is already on. Only a person turns it on, since guests read as that person: a team key answers `PERSON_REQUIRED`. Needs `project:settings`.","operationId":"GuestLinks.TurnOnGuestLink","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.TurnOnGuestLinkRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.TurnOnGuestLinkResponse"}}},"description":"The TurnOnGuestLinkResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Turn on a guest link","tags":["GuestLinks"]}},"/v1/teams/{team_id}/projects/{project_id}/guest-link:reset":{"post":{"description":"Gives the project's guest link a new link; the old link stops working at once. Only a person resets it, since guests read as whoever last turned it on or reset it: a team key answers `PERSON_REQUIRED`. A link that is off answers `GUEST_LINK_NOT_FOUND`. Needs `project:settings`.","operationId":"GuestLinks.ResetGuestLink","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ResetGuestLinkRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ResetGuestLinkResponse"}}},"description":"The ResetGuestLinkResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Reset a guest link","tags":["GuestLinks"]}},"/v1/teams/{team_id}/projects/{project_id}/guide":{"patch":{"description":"Records the project's progress through the setup guide. Needs `project:write`.","operationId":"ProjectSettings.UpdateProjectGuide","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateProjectGuideRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateProjectGuideResponse"}}},"description":"The UpdateProjectGuideResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a project's setup guide","tags":["ProjectSettings"]}},"/v1/teams/{team_id}/projects/{project_id}/image":{"delete":{"description":"Removes the project's image. Needs `project:settings`.","operationId":"Projects.RemoveProjectImage","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RemoveProjectImageResponse"}}},"description":"The RemoveProjectImageResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Remove a project's image","tags":["Projects"]},"put":{"description":"Replaces the project's image with the base64 `image` sent. Needs `project:settings`.","operationId":"Projects.SetProjectImage","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetProjectImageRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetProjectImageResponse"}}},"description":"The SetProjectImageResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a project's image","tags":["Projects"]}},"/v1/teams/{team_id}/projects/{project_id}/market-order":{"put":{"description":"Puts the project's markets, archived ones included, in the order sent, each with its `expectedRevision`, and returns them in their new order. Needs `catalogue:write`.","operationId":"Markets.SetMarketOrder","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetMarketOrderRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetMarketOrderResponse"}}},"description":"The SetMarketOrderResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Reorder markets","tags":["Markets"]}},"/v1/teams/{team_id}/projects/{project_id}/markets":{"get":{"description":"Lists the project's markets in their order, filtered by `filter` to active, archived or all, by `currency` to one currency, and by `query` to the markets whose name or key holds it or whose currency or a country code is it, ignoring the case of ASCII letters. Invisible characters are removed from `query` and past 40 characters it is shortened; `searchReductions` names each change. Needs `catalogue:read`.","operationId":"Markets.ListMarkets","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"filter","schema":{"$ref":"#/components/schemas/entitler.api.v1.MarketFilter"}},{"in":"query","name":"query","schema":{"type":"string"}},{"in":"query","name":"currency","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListMarketsResponse"}}},"description":"The ListMarketsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List markets","tags":["Markets"]},"post":{"description":"Creates a market with a name, a currency, its tax setting and its countries, or the rest of the world. Needs `catalogue:write`.","operationId":"Markets.CreateMarket","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateMarketRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateMarketResponse"}}},"description":"The CreateMarketResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a market","tags":["Markets"]}},"/v1/teams/{team_id}/projects/{project_id}/markets/{market_id}":{"delete":{"description":"Deletes a market, archived or not, so it no longer counts towards the project's market limit. Refused with `MARKET_IN_USE` while a price, a customer, or an offer or discount amount uses it. With `validateOnly`, only checks. Needs `catalogue:write`.","operationId":"Markets.DeleteMarket","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"market_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"validate_only","schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteMarketResponse"}}},"description":"The DeleteMarketResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete a market","tags":["Markets"]},"put":{"description":"Replaces the market's details. Some changes are refused while a plan has prices in the market. Needs `catalogue:write`.","operationId":"Markets.UpdateMarket","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"market_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateMarketRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateMarketResponse"}}},"description":"The UpdateMarketResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a market","tags":["Markets"]}},"/v1/teams/{team_id}/projects/{project_id}/markets/{market_id}:archive":{"post":{"description":"Archives the market. Needs `catalogue:write`.","operationId":"Markets.ArchiveMarket","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"market_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchiveMarketRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchiveMarketResponse"}}},"description":"The ArchiveMarketResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Archive a market","tags":["Markets"]}},"/v1/teams/{team_id}/projects/{project_id}/markets/{market_id}:unarchive":{"post":{"description":"Makes an archived market active again. Needs `catalogue:write`.","operationId":"Markets.UnarchiveMarket","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"market_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnarchiveMarketRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnarchiveMarketResponse"}}},"description":"The UnarchiveMarketResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Unarchive a market","tags":["Markets"]}},"/v1/teams/{team_id}/projects/{project_id}/plan-positions":{"get":{"description":"Lists the positions the project has set for its plans, in plan ID order, up to 5,000. Needs `catalogue:read`.","operationId":"Plans.ListPositions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListPositionsResponse"}}},"description":"The ListPositionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List plan positions","tags":["Plans"]},"put":{"description":"Sets the positions of up to 500 plans of the project, all or none. Positions sit outside changes and take effect at once. Needs `catalogue:write`.","operationId":"Plans.SetPositions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPositionsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetPositionsResponse"}}},"description":"The SetPositionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set plan positions","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/plans/{plan_id}/versions":{"get":{"description":"Lists a plan's versions in number order, from releases and live changes, without their content. Only the newest 25 are returned and `truncated` says when older ones were left out. Needs `catalogue:read`.","operationId":"Plans.ListPlanVersions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListPlanVersionsResponse"}}},"description":"The ListPlanVersionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List plan versions","tags":["Plans"]}},"/v1/teams/{team_id}/projects/{project_id}/released-versions":{"get":{"description":"Lists the plan versions the project has released, paged with `pageSize` and `afterVersionId`. Needs `catalogue:read`.","operationId":"Releases.GetReleasedVersions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after_version_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetReleasedVersionsResponse"}}},"description":"The GetReleasedVersionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List released plan versions","tags":["Releases"]}},"/v1/teams/{team_id}/projects/{project_id}/released-versions/prices:find":{"post":{"description":"Lists the per-unit prices of released plan versions that are at most the amount given for their market, optionally only for `planIds` and `periodIds`, ordered by plan, market, version and period, each saying whether the head release holds its version. At most 100 are returned and `truncated` says when more were left out. Needs `catalogue:read`.","operationId":"Releases.FindCoveredPrices","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.FindCoveredPricesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.FindCoveredPricesResponse"}}},"description":"The FindCoveredPricesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Find released prices an amount covers","tags":["Releases"]}},"/v1/teams/{team_id}/projects/{project_id}/releases":{"get":{"description":"Lists the project's releases, sorted by `sort` (number or name) in `direction`, newest first by default, paged with `pageSize` and `afterNumber`, and reports the head release number. Needs `catalogue:read`.","operationId":"Releases.ListReleases","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"after_number","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/entitler.api.v1.ReleaseSortField"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListReleasesResponse"}}},"description":"The ListReleasesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List releases","tags":["Releases"]}},"/v1/teams/{team_id}/projects/{project_id}/releases/{release_id}":{"get":{"description":"Returns a release, named by ID or by number. Needs `catalogue:read`.","operationId":"Releases.GetRelease","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"release_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"number","schema":{"maximum":18446744073709551615,"minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetReleaseResponse"}}},"description":"The GetReleaseResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a release","tags":["Releases"]},"patch":{"description":"Gives a release a new name. Names needn't be unique and the last rename wins. Needs `catalogue:release`.","operationId":"Releases.RenameRelease","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"release_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameReleaseRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RenameReleaseResponse"}}},"description":"The RenameReleaseResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Rename a release","tags":["Releases"]}},"/v1/teams/{team_id}/projects/{project_id}/segments/{segment_id}/versions":{"get":{"description":"Lists a segment's versions from releases and live changes, the newest 15 at most, and says when older ones were left out. Needs `catalogue:read`.","operationId":"Segments.ListSegmentVersions","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"segment_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListSegmentVersionsResponse"}}},"description":"The ListSegmentVersionsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List segment versions","tags":["Segments"]}},"/v1/teams/{team_id}/projects/{project_id}/settings":{"get":{"description":"Returns the project's settings: its switches, move policies, time zone, week start, entitlement cache and offline days. Needs `project:read`.","operationId":"ProjectSettings.GetProjectSettings","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetProjectSettingsResponse"}}},"description":"The GetProjectSettingsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a project's settings","tags":["ProjectSettings"]},"patch":{"description":"Changes the project's settings that are present, with `expectedRevision`. Turning the `environments` switch off deletes every environment but the live one, and turning it on adds a test environment. Needs `project:settings`.","operationId":"ProjectSettings.UpdateProjectSettings","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateProjectSettingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateProjectSettingsResponse"}}},"description":"The UpdateProjectSettingsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a project's settings","tags":["ProjectSettings"]}},"/v1/teams/{team_id}/projects/{project_id}:archive":{"post":{"description":"Archives the project. Needs `project:settings`.","operationId":"Projects.ArchiveProject","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchiveProjectRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ArchiveProjectResponse"}}},"description":"The ArchiveProjectResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Archive a project","tags":["Projects"]}},"/v1/teams/{team_id}/projects/{project_id}:unarchive":{"post":{"description":"Makes an archived project active again. Needs `project:settings`.","operationId":"Projects.UnarchiveProject","parameters":[{"in":"path","name":"team_id","required":true,"schema":{"type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnarchiveProjectRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UnarchiveProjectResponse"}}},"description":"The UnarchiveProjectResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Unarchive a project","tags":["Projects"]}},"/v1/track-members:count":{"get":{"description":"Counts the customers on tracks. Needs `customers:read` or `tracks:manage`.","operationId":"CustomerTracks.CountTrackMembers","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CountTrackMembersResponse"}}},"description":"The CountTrackMembersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Count track members","tags":["CustomerTracks"]}},"/v1/tracks/{track_id}/listings":{"get":{"description":"Returns the catalogue the track serves and how each payment provider connection sells it. Needs `tracks:roll_out` or `tracks:manage`.","operationId":"Listings.GetTrackListings","parameters":[{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetTrackListingsResponse"}}},"description":"The GetTrackListingsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a track's listings","tags":["Listings"]},"put":{"description":"Replaces the listings of each connection sent for the catalogue the track serves, with `expectedRevision`, as `SetListings` does. Needs `tracks:roll_out`.","operationId":"Listings.SetTrackListings","parameters":[{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetTrackListingsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetTrackListingsResponse"}}},"description":"The SetTrackListingsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set a track's listings","tags":["Listings"]}},"/v1/tracks/{track_id}/listings:createPrices":{"post":{"description":"On each Stripe connection set to let Entitler manage prices, creates the Stripe price of each blank listing of the catalogue the track serves, from the plan's price in its market, and lists it: at most 100 a call, with `remaining` saying how many are left. Needs `tracks:roll_out`.","operationId":"Listings.CreateTrackListingPrices","parameters":[{"in":"path","name":"track_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateTrackListingPricesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateTrackListingPricesResponse"}}},"description":"The CreateTrackListingPricesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a track's missing Stripe prices","tags":["Listings"]}},"/v1/usage/checks":{"get":{"description":"Returns the first feature check recorded in the caller's environment. Needs `customers:read`.","operationId":"UsageReports.ListCheckActivity","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListCheckActivityResponse"}}},"description":"The ListCheckActivityResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List check activity","tags":["UsageReports"]}},"/v1/usage/events":{"post":{"description":"Records 1 to 500 usage events in one request, each answered separately in order as recorded, duplicate or error. Event `amount` defaults to 1. Not available to customer tokens. Needs `usage:write`.","operationId":"Usage.ReportEvents","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReportEventsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ReportEventsResponse"}}},"description":"The ReportEventsResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Report usage events in a batch","tags":["Usage"]}},"/v1/usage/features/{feature_key}/customers":{"get":{"description":"Lists the customers using a feature, 50 to a page, ordered by total use, largest first, unless `sort` names times used, last use or the customer (`direction` ascending or descending). `days` and `includesTest` work as in the usage report. Needs `customers:read`.","operationId":"UsageReports.ListFeatureCustomers","parameters":[{"in":"path","name":"feature_key","required":true,"schema":{"type":"string"}},{"in":"query","name":"range.target.team_id","schema":{"type":"string"}},{"in":"query","name":"range.target.project_id","schema":{"type":"string"}},{"in":"query","name":"range.target.environment_id","schema":{"type":"string"}},{"in":"query","name":"range.days","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"range.includes_test","schema":{"type":"boolean"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"sort","schema":{"$ref":"#/components/schemas/entitler.api.v1.FeatureCustomerSortField"}},{"in":"query","name":"direction","schema":{"$ref":"#/components/schemas/entitler.common.v1.SortDirection"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListFeatureCustomersResponse"}}},"description":"The ListFeatureCustomersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List customers using a feature","tags":["UsageReports"]}},"/v1/usage/report":{"get":{"description":"Returns usage by feature and day for the environment, or for one customer with `externalId`. `days` of 0 means all kept history, and test-money customers count only with `includesTest`. Needs `customers:read`.","operationId":"UsageReports.GetReport","parameters":[{"in":"query","name":"range.target.team_id","schema":{"type":"string"}},{"in":"query","name":"range.target.project_id","schema":{"type":"string"}},{"in":"query","name":"range.target.environment_id","schema":{"type":"string"}},{"in":"query","name":"range.days","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"range.includes_test","schema":{"type":"boolean"}},{"in":"query","name":"external_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetReportResponse"}}},"description":"The GetReportResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a usage report","tags":["UsageReports"]}},"/v1/voucher-batches":{"get":{"description":"Lists the environment's voucher batches, a page at a time. Needs `customers:read`.","operationId":"Vouchers.ListVoucherBatches","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"include_revoked","schema":{"type":"boolean"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListVoucherBatchesResponse"}}},"description":"The ListVoucherBatchesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List voucher batches","tags":["Vouchers"]},"post":{"description":"Creates a batch of voucher codes that each grant the same thing: a base plan of the newest release for a number of periods, or a feature grant. Its key is unique in the environment and the grant never changes. Needs `customers:write`.","operationId":"Vouchers.CreateVoucherBatch","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateVoucherBatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.CreateVoucherBatchResponse"}}},"description":"The CreateVoucherBatchResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Create a voucher batch","tags":["Vouchers"]}},"/v1/voucher-batches/{batch_id}":{"get":{"description":"Returns the voucher batch with this ID, with its code and redemption counts. Needs `customers:read`.","operationId":"Vouchers.GetVoucherBatch","parameters":[{"in":"path","name":"batch_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetVoucherBatchResponse"}}},"description":"The GetVoucherBatchResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get a voucher batch","tags":["Vouchers"]},"put":{"description":"Changes the batch's settings, with `expectedRevision`. Some settings can't change once it holds codes. Needs `customers:write`.","operationId":"Vouchers.UpdateVoucherBatch","parameters":[{"in":"path","name":"batch_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateVoucherBatchRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.UpdateVoucherBatchResponse"}}},"description":"The UpdateVoucherBatchResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Update a voucher batch","tags":["Vouchers"]}},"/v1/voucher-batches/{batch_id}/vouchers":{"get":{"description":"Lists a voucher batch's vouchers in ID order, optionally filtered by `state`, a page at a time. Codes are never returned. Needs `customers:read`.","operationId":"Vouchers.ListVouchers","parameters":[{"in":"path","name":"batch_id","required":true,"schema":{"type":"string"}},{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}},{"in":"query","name":"state","schema":{"$ref":"#/components/schemas/entitler.api.v1.VoucherState"}},{"in":"query","name":"page_size","schema":{"format":"int64","maximum":4294967295,"minimum":0,"type":"integer"}},{"in":"query","name":"page_token","schema":{"type":"string"}},{"in":"query","name":"bought_by","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.ListVouchersResponse"}}},"description":"The ListVouchersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"List a batch's vouchers","tags":["Vouchers"]}},"/v1/voucher-batches/{batch_id}:addCodes":{"post":{"description":"Adds up to 1,000 codes to a live voucher batch, either generated or supplied, never both in one call. Needs `customers:write`.","operationId":"Vouchers.AddVoucherCodes","parameters":[{"in":"path","name":"batch_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AddVoucherCodesRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.AddVoucherCodesResponse"}}},"description":"The AddVoucherCodesResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Add codes to a voucher batch","tags":["Vouchers"]}},"/v1/voucher-batches/{batch_id}:revoke":{"post":{"description":"Revokes the whole batch, or up to 1,000 of its vouchers named in `voucherIds`, all or none. Without `takeBack`, revoking takes nothing back from customers who already redeemed; with it, Entitler takes back what each of their redemptions granted in the background, up to 50 redemptions a minute, ending or shortening the plan a voucher gave and revoking the grant. Needs `customers:write`.","operationId":"Vouchers.RevokeVouchers","parameters":[{"in":"path","name":"batch_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevokeVouchersRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.RevokeVouchersResponse"}}},"description":"The RevokeVouchersResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Revoke vouchers","tags":["Vouchers"]}},"/v1/vouchers:find":{"post":{"description":"Returns the voucher and batch a code belongs to. The code goes in the body so it never appears in a URL. Needs `customers:read`.","operationId":"Vouchers.FindVoucher","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.FindVoucherRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.FindVoucherResponse"}}},"description":"The FindVoucherResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Find a voucher by code","tags":["Vouchers"]}},"/v1/webhook-endpoint":{"delete":{"description":"Deletes the environment's webhook endpoint. Deleting when there is none succeeds, and `deleted` says whether one was removed. Needs `project:settings`.","operationId":"WebhookEndpoints.DeleteWebhookEndpoint","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.DeleteWebhookEndpointResponse"}}},"description":"The DeleteWebhookEndpointResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Delete the webhook endpoint","tags":["WebhookEndpoints"]},"get":{"description":"Returns the environment's webhook endpoint, or none, without its signing secret. Needs `project:settings`.","operationId":"WebhookEndpoints.GetWebhookEndpoint","parameters":[{"in":"query","name":"target.team_id","schema":{"type":"string"}},{"in":"query","name":"target.project_id","schema":{"type":"string"}},{"in":"query","name":"target.environment_id","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.GetWebhookEndpointResponse"}}},"description":"The GetWebhookEndpointResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Get the webhook endpoint","tags":["WebhookEndpoints"]},"put":{"description":"Sets the environment's HTTPS endpoint `url` and `noticeDays` (0 to 30, 0 sends no renewal notice). The signing secret appears only when the endpoint is created or `rotateSecret` is set. Needs `project:settings`.","operationId":"WebhookEndpoints.SetWebhookEndpoint","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetWebhookEndpointRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/entitler.api.v1.SetWebhookEndpointResponse"}}},"description":"The SetWebhookEndpointResponse message."},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A refusal, with the HTTP status of its gRPC code."}},"security":[{"bearer":[]}],"summary":"Set the webhook endpoint","tags":["WebhookEndpoints"]}}}}