diff --git a/specification/communication/Communication.JobRouter/main.tsp b/specification/communication/Communication.JobRouter/main.tsp index 4899dcbaae78..73e2be566bf7 100644 --- a/specification/communication/Communication.JobRouter/main.tsp +++ b/specification/communication/Communication.JobRouter/main.tsp @@ -17,6 +17,7 @@ using TypeSpec.Versioning; "{endpoint}", "Azure Communication Routing Service", { + @doc("Uri of your Communication resource") endpoint: string, } ) diff --git a/specification/communication/Communication.JobRouter/models.tsp b/specification/communication/Communication.JobRouter/models.tsp index d666c4ea16a1..f720da962a83 100644 --- a/specification/communication/Communication.JobRouter/models.tsp +++ b/specification/communication/Communication.JobRouter/models.tsp @@ -68,7 +68,7 @@ model RouterReturnConditionalResponseHeaders; - @doc("Notes attached to a job, sorted by timestamp") + @doc("Notes attached to a job, sorted by timestamp.") notes?: RouterJobNote[]; - @doc("If set, job will be scheduled to be enqueued at a given time") + @doc("If set, job will be scheduled to be enqueued at a given time.") @visibility("read") scheduledAt?: utcDateTime; @@ -510,12 +510,12 @@ model RouterJob { matchingMode?: JobMatchingMode; } -@doc("Describes a condition that must be met against a set of labels for worker selection") +@doc("Describes a condition that must be met against a set of labels for worker selection.") model RouterWorkerSelector { - @doc("The label key to query against") + @doc("The label key to query against.") key: string; - @doc("Describes how the value of the label is compared to the value defined on the label selector") + @doc("Describes how the value of the label is compared to the value defined on the worker selector.") labelOperator: LabelOperator; #suppress "@azure-tools/typespec-azure-core/no-unknown" "Unions are currently not allowed in spec." @@ -525,37 +525,37 @@ model RouterWorkerSelector { @doc("Describes how long this label selector is valid in seconds.") expiresAfterSeconds?: float64; - @doc("Pushes the job to the front of the queue as long as this selector is active.") + @doc("Pushes a job to the front of the queue as long as this selector is active.") expedite?: boolean; - @doc("The status of the worker selector.") + @doc("Status of the worker selector.") @visibility("read") status?: RouterWorkerSelectorStatus; - @doc("The time at which this worker selector expires in UTC") + @doc("The time at which this worker selector expires in UTC.") @visibility("read") expiresAt?: utcDateTime; } -@doc("Assignment details of a job to a worker") +@doc("Assignment details of a job to a worker.") @resource("assignments") @parentResource(RouterJob) model RouterJobAssignment { @key - @doc("The Id of the job assignment.") + @doc("Id of a job assignment.") @visibility("read") assignmentId: string; - @doc("The Id of the Worker assigned to the job.") + @doc("Id of the Worker assigned to the job.") workerId?: string; - @doc("The assignment time of the job in UTC.") + @doc("Timestamp when the job was assigned to a worker in UTC.") assignedAt: utcDateTime; - @doc("The time the job was marked as completed after being assigned in UTC.") + @doc("Timestamp when the job was marked as completed after being assigned in UTC.") completedAt?: utcDateTime; - @doc("The time the job was marked as closed after being completed in UTC.") + @doc("Timestamp when the job was marked as closed after being completed in UTC.") closedAt?: utcDateTime; } @@ -567,13 +567,13 @@ SuspendMode: Used when matching workers to a job needs to be suspended. """) @discriminator("kind") model JobMatchingMode { - @doc("The type discriminator describing a sub-type of JobMatchingMode") + @doc("The type discriminator describing a sub-type of JobMatchingMode.") kind: JobMatchingModeKind; } @doc("Describes a matching mode used for scheduling jobs to be queued at a future time. At the specified time, matching worker to a job will not start automatically.") model ScheduleAndSuspendMode extends JobMatchingMode { - @doc("Scheduled time.") + @doc("Requested schedule time.") scheduleAt: utcDateTime; @doc("The type discriminator describing ScheduleAndSuspendMode") @@ -593,32 +593,32 @@ model SuspendMode extends JobMatchingMode { } @access(Access.public, "python") -@doc("Request payload for deleting a job") +@doc("Request payload for cancelling a job.") model CancelJobOptions { - @doc("A note that will be appended to the jobs' Notes collection with the current timestamp.") + @doc("A note that will be appended to a job's Notes collection with the current timestamp.") note?: string; - @doc("Indicates the outcome of the job, populate this field with your own custom values. If not provided, default value of \"Cancelled\" is set.") + @doc("Indicates the outcome of a job, populate this field with your own custom values. If not provided, default value of \"Cancelled\" is set.") dispositionCode?: string; } @access(Access.public, "python") -@doc("Request payload for completing jobs") +@doc("Request payload for completing jobs.") model CompleteJobOptions { - @doc("A note that will be appended to the jobs' Notes collection with the current timestamp.") + @doc("A note that will be appended to a job's Notes collection with the current timestamp.") note?: string; } @access(Access.public, "python") @doc("Request payload for closing jobs") model CloseJobOptions { - @doc("Indicates the outcome of the job, populate this field with your own custom values.") + @doc("Indicates the outcome of a job, populate this field with your own custom values.") dispositionCode?: string; @doc("If not provided, worker capacity is released immediately along with a JobClosedEvent notification. If provided, worker capacity is released along with a JobClosedEvent notification at a future time in UTC.") closeAt?: utcDateTime; - @doc("A note that will be appended to the jobs' Notes collection with the current timestamp.") + @doc("A note that will be appended to a job's Notes collection with the current timestamp.") note?: string; } @@ -636,39 +636,39 @@ model RouterJobPositionDetails { @doc("Length of the queue: total number of enqueued jobs.") queueLength: int32; - @doc("Estimated wait time of the job rounded up to the nearest minute") + @doc("Estimated wait time of the job rounded up to the nearest minute.") estimatedWaitTimeMinutes: float64; } @doc("Request payload for unassigning a job.") model UnassignJobOptions { - @doc("If SuspendMatching is true, then the job is not queued for re-matching with a worker.") + @doc("If SuspendMatching is true, then a job is not queued for re-matching with a worker.") suspendMatching?: boolean; } @doc("Response payload after a job has been successfully unassigned.") model UnassignJobResult { - @doc("The Id of the job unassigned.") + @doc("Id of an unassigned job.") jobId: string; @doc("The number of times a job is unassigned. At a maximum 3.") unassignmentCount: int32; } -@doc("Response containing Id's for the worker, job, and assignment from an accepted offer") +@doc("Response containing ids for the worker, job, and assignment from an accepted offer.") model AcceptJobOfferResult { - @doc("The assignment Id that assigns a worker that has accepted an offer to a job.") + @doc("Id of job assignment that assigns a worker that has accepted an offer to a job.") assignmentId: string; - @doc("The Id of the job assigned.") + @doc("Id of the job assigned.") jobId: string; - @doc("The Id of the worker that has been assigned this job.") + @doc("Id of the worker that has been assigned this job.") workerId: string; } @access(Access.public, "python") -@doc("Request payload for declining offers") +@doc("Request payload for declining offers.") model DeclineJobOfferOptions { @doc("If the RetryOfferAt is not provided, then this job will not be offered again to the worker who declined this job unless the worker is de-registered and re-registered. If a RetryOfferAt time is provided, then the job will be re-matched to eligible workers at the retry time in UTC. The worker that declined the job will also be eligible for the job at that time.") retryOfferAt?: utcDateTime; @@ -680,25 +680,25 @@ model RouterQueue { ...EtagProperty; @key("queueId") - @doc("The Id of this queue") + @doc("Id of a queue.") @visibility("read") id: string; - @doc("The name of this queue.") + @doc("Friendly name of this queue.") name?: string; - @doc("The ID of the distribution policy that will determine how a job is distributed to workers.") + @doc("Id of a distribution policy that will determine how a job is distributed to workers.") distributionPolicyId?: string; #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Unions are currently not allowed in spec." @doc("A set of key/value pairs that are identifying attributes used by the rules engines to make decisions. Values must be primitive values - number, string, boolean.") labels?: Record; - @doc("The ID of the exception policy that determines various job escalation rules.") + @doc("Id of an exception policy that determines various job escalation rules.") exceptionPolicyId?: string; } -@doc("Statistics for the queue") +@doc("Statistics for the queue.") model RouterQueueStatistics { @doc("Id of the queue these details are about.") queueId: string; @@ -706,7 +706,7 @@ model RouterQueueStatistics { @doc("Length of the queue: total number of enqueued jobs.") length: int32; - @doc("The estimated wait time of this queue rounded up to the nearest minute, grouped by job priority") + @doc("The estimated wait time of this queue rounded up to the nearest minute, grouped by job priority.") estimatedWaitTimeMinutes?: Record; @doc("The wait time of the job that has been enqueued in this queue for the longest.") @@ -714,20 +714,20 @@ model RouterQueueStatistics { } @resource("routing/workers") -@doc("An entity for jobs to be routed to") +@doc("An entity for jobs to be routed to.") model RouterWorker { ...EtagProperty; @key("workerId") - @doc("Id of the worker.") + @doc("Id of a worker.") @visibility("read") id: string; - @doc("The current state of the worker.") + @doc("Current state of a worker.") @visibility("read") state?: RouterWorkerState; - @doc("The queue(s) that this worker can receive work from.") + @doc("Collection of queue(s) that this worker can receive work from.") queues?: string[]; @doc("The total capacity score this worker has to manage multiple concurrent jobs.") @@ -741,7 +741,7 @@ model RouterWorker { @doc("A set of non-identifying attributes attached to this worker. Values must be primitive values - number, string, boolean.") tags?: Record; - @doc("The channel(s) this worker can handle and their impact on the workers capacity.") + @doc("Collection of channel(s) this worker can handle and their impact on the workers capacity.") channels?: RouterChannel[]; @doc("A list of active offers issued to this worker.") @@ -760,9 +760,9 @@ model RouterWorker { availableForOffers?: boolean; } -@doc("Represents the capacity a job in this channel will consume from a worker") +@doc("Represents the capacity a job in this channel will consume from a worker.") model RouterChannel { - @doc("Id of the channel.") + @doc("Id of a channel.") channelId: string; @doc("The amount of capacity that an instance of a job of this channel will consume of the total worker capacity.") @@ -772,34 +772,34 @@ model RouterChannel { maxNumberOfJobs?: int32; } -@doc("An offer of a job to a worker") +@doc("An offer of a job to a worker.") @resource("offers") @parentResource(RouterWorker) model RouterJobOffer { @key - @doc("The Id of the offer.") + @doc("Id of an offer.") @visibility("read") offerId: string; - @doc("The Id of the job.") + @doc("Id of the job.") jobId: string; @doc("The capacity cost consumed by the job offer.") capacityCost: int32; - @doc("The time the offer was created in UTC.") + @doc("Timestamp when the offer was created in UTC.") offeredAt?: utcDateTime; - @doc("The time that the offer will expire in UTC.") + @doc("Timestamp when the offer will expire in UTC.") expiresAt?: utcDateTime; } -@doc("The assignment for a worker to a job") +@doc("The assignment for a worker to a job.") model RouterWorkerAssignment { - @doc("The Id of the assignment.") + @doc("Id of the assignment.") assignmentId: string; - @doc("The Id of the Job assigned.") + @doc("Id of the job assigned.") jobId: string; @doc("The amount of capacity this assignment has consumed on the worker.") @@ -821,12 +821,12 @@ model BestWorkerMode extends DistributionMode { kind: DistributionModeKind.bestWorker; } -@doc("Encapsulates all options that can be passed as parameters for scoring rule with BestWorkerMode") +@doc("Encapsulates all options that can be passed as parameters for scoring rule with BestWorkerMode.") model ScoringRuleOptions { @doc("Set batch size when 'isBatchScoringEnabled' is set to true. Defaults to 20 if not configured.") batchSize?: int32 = 20; - @doc("List of extra parameters from the job that will be sent as part of the payload to scoring rule. If not set, the job's labels (sent in the payload as `job`) and the job's worker selectors (sent in the payload as `selectors`) are added to the payload of the scoring rule by default. Note: Worker labels are always sent with scoring payload.") + @doc("List of extra parameters from a job that will be sent as part of the payload to scoring rule. If not set, a job's labels (sent in the payload as `job`) and a job's worker selectors (sent in the payload as `selectors`) are added to the payload of the scoring rule by default. Note: Worker labels are always sent with scoring payload.") scoringParameters?: ScoringRuleParameterSelector[] = [ ScoringRuleParameterSelector.jobLabels, ScoringRuleParameterSelector.workerSelectors @@ -839,46 +839,46 @@ model ScoringRuleOptions { descendingOrder?: boolean = true; } -@doc("An action that marks a job as cancelled") +@doc("An action that marks a job as cancelled.") model CancelExceptionAction extends ExceptionAction { - @doc("A note that will be appended to the jobs' Notes collection with the current timestamp.") + @doc("A note that will be appended to a job's notes collection with the current timestamp.") note?: string; - @doc("Indicates the outcome of the job, populate this field with your own custom values.") + @doc("Indicates the outcome of a job, populate this field with your own custom values.") dispositionCode?: string; - @doc("The type discriminator describing a sub-type of ExceptionAction") + @doc("The type discriminator describing a sub-type of ExceptionAction.") kind: ExceptionActionKind.cancel; } -@doc("The action to take when the exception is triggered") +@doc("The action to take when the exception is triggered.") @discriminator("kind") model ExceptionAction { - @doc("Unique Id of the exception action") + @doc("Unique Id of the exception action.") id?: string; - @doc("The type discriminator describing a sub-type of ExceptionAction") + @doc("The type discriminator describing a sub-type of ExceptionAction.") kind: ExceptionActionKind; } -@doc("Describes a set of queue selectors that will be attached if the given condition resolves to true") +@doc("Describes a set of queue selectors that will be attached if the given condition resolves to true.") model ConditionalQueueSelectorAttachment extends QueueSelectorAttachment { - @doc("The condition that must be true for the queue selectors to be attached") + @doc("The condition that must be true for the queue selectors to be attached.") condition: RouterRule; - @doc("The queue selectors to attach") + @doc("The queue selectors to attach.") queueSelectors: RouterQueueSelector[]; - @doc("The type discriminator describing the type of queue selector attachment") + @doc("The type discriminator describing the type of queue selector attachment.") kind: QueueSelectorAttachmentKind.conditional; } -@doc("Describes a condition that must be met against a set of labels for queue selection") +@doc("Describes a condition that must be met against a set of labels for queue selection.") model RouterQueueSelector { - @doc("The label key to query against") + @doc("The label key to query against.") key: string; - @doc("Describes how the value of the label is compared to the value defined on the label selector") + @doc("Describes how the value of the label is compared to the value defined on the label selector.") labelOperator: LabelOperator; #suppress "@azure-tools/typespec-azure-core/no-unknown" "Unions are currently not allowed in spec." @@ -886,77 +886,77 @@ model RouterQueueSelector { value?: unknown; } -@doc("An attachment of queue selectors to resolve a queue to a job from a classification policy") +@doc("An attachment of queue selectors to resolve a queue to a job from a classification policy.") @discriminator("kind") model QueueSelectorAttachment { - @doc("The type discriminator describing a sub-type of QueueSelectorAttachment") + @doc("The type discriminator describing a sub-type of QueueSelectorAttachment.") kind: QueueSelectorAttachmentKind; } -@doc("Describes a set of worker selectors that will be attached if the given condition resolves to true") +@doc("Describes a set of worker selectors that will be attached if the given condition resolves to true.") model ConditionalWorkerSelectorAttachment extends WorkerSelectorAttachment { - @doc("The condition that must be true for the worker selectors to be attached") + @doc("The condition that must be true for the worker selectors to be attached.") condition: RouterRule; - @doc("The worker selectors to attach") + @doc("The worker selectors to attach.") workerSelectors: RouterWorkerSelector[]; - @doc("The type discriminator describing the type of worker selector attachment") + @doc("The type discriminator describing the type of worker selector attachment.") kind: WorkerSelectorAttachmentKind.conditional; } -@doc("An attachment which attaches worker selectors to a job") +@doc("An attachment which attaches worker selectors to a job.") @discriminator("kind") model WorkerSelectorAttachment { - @doc("The type discriminator describing a sub-type of WorkerSelectorAttachment") + @doc("The type discriminator describing a sub-type of WorkerSelectorAttachment.") kind: WorkerSelectorAttachmentKind; } @doc("A rule that return the same labels as the input labels.") model DirectMapRouterRule extends RouterRule { - @doc("The type discriminator describing a sub-type of Rule") + @doc("The type discriminator describing a sub-type of Rule.") kind: RouterRuleKind.directMap; } @doc("A rule providing inline expression rules.") model ExpressionRouterRule extends RouterRule { - @doc("The expression language to compile to and execute") + @doc("The expression language to compile to and execute.") language?: ExpressionRouterRuleLanguage; - @doc("The string containing the expression to evaluate. Should contain return statement with calculated values.") + @doc("An expression to evaluate. Should contain return statement with calculated values.") expression: string; - @doc("The type discriminator describing a sub-type of Rule") + @doc("The type discriminator describing a sub-type of Rule.") kind: RouterRuleKind.expression; } @doc("A rule providing a binding to an HTTP Triggered Azure Function.") model FunctionRouterRule extends RouterRule { - @doc("URL for Azure Function") + @doc("URL for Azure Function.") functionUri: url; - @doc("Credentials used to access Azure function rule") + @doc("Credentials used to access Azure function rule.") credential?: FunctionRouterRuleCredential; - @doc("The type discriminator describing a sub-type of Rule") + @doc("The type discriminator describing a sub-type of Rule.") kind: RouterRuleKind.function; } -@doc("Credentials used to access Azure function rule") +@doc("Credentials used to access Azure function rule.") model FunctionRouterRuleCredential { - @doc("Access key scoped to a particular function") + @doc("Access key scoped to a particular function.") functionKey?: string; @doc("Access key scoped to a Azure Function app. This key grants access to all functions under the app.") appKey?: string; - @doc("Client id, when AppKey is provided In context of Azure function, this is usually the name of the key") + @doc("Client id, when AppKey is provided In context of Azure function, this is usually the name of the key.") clientId?: string; } @doc("Jobs are directed to the worker who has been idle longest.") model LongestIdleMode extends DistributionMode { - @doc("The type discriminator describing a sub-type of Mode") + @doc("The type discriminator describing a sub-type of Mode.") kind: DistributionModeKind.longestIdle; } @@ -971,7 +971,7 @@ model ManualReclassifyExceptionAction extends ExceptionAction { @doc("Updated WorkerSelectors.") workerSelectors?: RouterWorkerSelector[]; - @doc("The type discriminator describing a sub-type of ExceptionAction") + @doc("The type discriminator describing a sub-type of ExceptionAction.") kind: ExceptionActionKind.manualReclassify; } @@ -985,39 +985,39 @@ model OAuth2WebhookClientCredential { clientSecret?: string; } -@doc("Attaches a queue selector where the value is passed through from the job label with the same key") +@doc("Attaches a queue selector where the value is passed through from a job's label with the same key.") model PassThroughQueueSelectorAttachment extends QueueSelectorAttachment { - @doc("The label key to query against") + @doc("The label key to query against.") key: string; - @doc("Describes how the value of the label is compared to the value pass through") + @doc("Describes how the value of the label is compared to the value pass through.") labelOperator: LabelOperator; - @doc("The type discriminator describing the type of queue selector attachment") + @doc("The type discriminator describing the type of queue selector attachment.") kind: QueueSelectorAttachmentKind.passThrough; } -@doc("Attaches a worker selector where the value is passed through from the job label with the same key") +@doc("Attaches a worker selector where the value is passed through from a job's label with the same key.") model PassThroughWorkerSelectorAttachment extends WorkerSelectorAttachment { - @doc("The label key to query against") + @doc("The label key to query against.") key: string; - @doc("Describes how the value of the label is compared to the value pass through") + @doc("Describes how the value of the label is compared to the value pass through.") labelOperator: LabelOperator; @doc("Describes how long the attached label selector is valid in seconds.") expiresAfterSeconds?: float64; - @doc("The type discriminator describing the type of worker selector attachment") + @doc("The type discriminator describing the type of worker selector attachment.") kind: WorkerSelectorAttachmentKind.passThrough; } -@doc("Trigger for an exception action on exceeding queue length") +@doc("Trigger for an exception action on exceeding queue length.") model QueueLengthExceptionTrigger extends ExceptionTrigger { @doc("Threshold of number of jobs ahead in the queue to for this trigger to fire.") threshold: int32; - @doc("The type discriminator describing a sub-type of ExceptionTrigger") + @doc("The type discriminator describing a sub-type of ExceptionTrigger.") kind: ExceptionTriggerKind.queueLength; } @@ -1030,7 +1030,7 @@ model QueueWeightedAllocation { queueSelectors: RouterQueueSelector[]; } -@doc("An action that modifies labels on a job and then reclassifies it") +@doc("An action that modifies labels on a job and then reclassifies it.") model ReclassifyExceptionAction extends ExceptionAction { @doc("The new classification policy that will determine queue, priority and worker selectors.") classificationPolicyId?: string; @@ -1039,40 +1039,40 @@ model ReclassifyExceptionAction extends ExceptionAction { @doc("Dictionary containing the labels to update (or add if not existing) in key-value pairs. Values must be primitive values - number, string, boolean.") labelsToUpsert?: Record; - @doc("The type discriminator describing a sub-type of ExceptionAction") + @doc("The type discriminator describing a sub-type of ExceptionAction.") kind: ExceptionActionKind.reclassify; } @doc("Jobs are distributed in order to workers, starting with the worker that is after the last worker to receive a job.") model RoundRobinMode extends DistributionMode { - @doc("The type discriminator describing a sub-type of Mode") + @doc("The type discriminator describing a sub-type of Mode.") kind: DistributionModeKind.roundRobin; } -@doc("Attaches queue selectors to a job when the RouterRule is resolved") +@doc("Attaches queue selectors to a job when the RouterRule is resolved.") model RuleEngineQueueSelectorAttachment extends QueueSelectorAttachment { - @doc("A RouterRule that resolves a collection of queue selectors to attach") + @doc("A RouterRule that resolves a collection of queue selectors to attach.") rule: RouterRule; - @doc("The type discriminator describing the type of queue selector attachment") + @doc("The type discriminator describing the type of queue selector attachment.") kind: QueueSelectorAttachmentKind.ruleEngine; } -@doc("Attaches worker selectors to a job when a RouterRule is resolved") +@doc("Attaches worker selectors to a job when a RouterRule is resolved.") model RuleEngineWorkerSelectorAttachment extends WorkerSelectorAttachment { - @doc("A RouterRule that resolves a collection of worker selectors to attach") + @doc("A RouterRule that resolves a collection of worker selectors to attach.") rule: RouterRule; - @doc("The type discriminator describing the type of worker selector attachment") + @doc("The type discriminator describing the type of worker selector attachment.") kind: WorkerSelectorAttachmentKind.ruleEngine; } -@doc("Describes a queue selector that will be attached to the job") +@doc("Describes a queue selector that will be attached to a job.") model StaticQueueSelectorAttachment extends QueueSelectorAttachment { @doc("The queue selector to attach.") queueSelector: RouterQueueSelector; - @doc("The type discriminator describing the type of queue selector attachment") + @doc("The type discriminator describing the type of queue selector attachment.") kind: QueueSelectorAttachmentKind.static; } @@ -1082,25 +1082,25 @@ model StaticRouterRule extends RouterRule { @doc("The static value this rule always returns. Values must be primitive values - number, string, boolean.") value?: unknown; - @doc("The type discriminator describing a sub-type of Rule") + @doc("The type discriminator describing a sub-type of Rule.") kind: RouterRuleKind.static; } -@doc("Describes a worker selector that will be attached to the job") +@doc("Describes a worker selector that will be attached to a job.") model StaticWorkerSelectorAttachment extends WorkerSelectorAttachment { @doc("The worker selector to attach.") workerSelector: RouterWorkerSelector; - @doc("The type discriminator describing the type of worker selector attachment") + @doc("The type discriminator describing the type of worker selector attachment.") kind: WorkerSelectorAttachmentKind.static; } -@doc("Trigger for an exception action on exceeding wait time") +@doc("Trigger for an exception action on exceeding wait time.") model WaitTimeExceptionTrigger extends ExceptionTrigger { @doc("Threshold for wait time for this trigger.") thresholdSeconds: float64; - @doc("The type discriminator describing a sub-type of ExceptionTrigger") + @doc("The type discriminator describing a sub-type of ExceptionTrigger.") kind: ExceptionTriggerKind.waitTime; } @@ -1115,27 +1115,27 @@ model WebhookRouterRule extends RouterRule { @doc("Uri for Contoso's Web Server.") webhookUri?: url; - @doc("The type discriminator describing a sub-type of Rule") + @doc("The type discriminator describing a sub-type of Rule.") kind: RouterRuleKind.webhook; } -@doc("Describes multiple sets of queue selectors, of which one will be selected and attached according to a weighting") +@doc("Describes multiple sets of queue selectors, of which one will be selected and attached according to a weighting.") model WeightedAllocationQueueSelectorAttachment extends QueueSelectorAttachment { @doc("A collection of percentage based weighted allocations.") allocations: QueueWeightedAllocation[]; - @doc("The type discriminator describing the type of queue selector attachment") + @doc("The type discriminator describing the type of queue selector attachment.") kind: QueueSelectorAttachmentKind.weightedAllocation; } -@doc("Describes multiple sets of worker selectors, of which one will be selected and attached according to a weighting") +@doc("Describes multiple sets of worker selectors, of which one will be selected and attached according to a weighting.") model WeightedAllocationWorkerSelectorAttachment extends WorkerSelectorAttachment { @doc("A collection of percentage based weighted allocations.") allocations: WorkerWeightedAllocation[]; - @doc("The type discriminator describing the type of worker selector attachment") + @doc("The type discriminator describing the type of worker selector attachment.") kind: WorkerSelectorAttachmentKind.weightedAllocation; } @@ -1149,11 +1149,11 @@ model WorkerWeightedAllocation { } @access(Access.internal) -@doc("Request payload for reclassifying jobs") +@doc("Request payload for reclassifying jobs.") model ReclassifyJobOptions {} @access(Access.internal) -@doc("Response payload from reclassifying a job") +@doc("Response payload from reclassifying a job.") model ReclassifyJobResult {} @doc("OK Response payload from reclassifying a job.") @@ -1168,7 +1168,7 @@ model ReclassifyJobResultWithOkResponse { } @access(Access.internal) -@doc("Response payload from closing a job") +@doc("Response payload from closing a job.") model CloseJobResult {} @doc("Response payload from closing a job synchronously.") @@ -1183,10 +1183,10 @@ model CloseJobResultWithOkResponse { } @access(Access.internal) -@doc("Response payload from cancelling a job") +@doc("Response payload from cancelling a job.") model CancelJobResult {} -@doc("OK Response payload from cancelling a job") +@doc("OK Response payload from cancelling a job.") model CancelJobResultWithOkResponse { @doc("Response after cancelling a job.") @body @@ -1198,10 +1198,10 @@ model CancelJobResultWithOkResponse { } @access(Access.internal) -@doc("Response payload from completing a job") +@doc("Response payload from completing a job.") model CompleteJobResult {} -@doc("OK Response payload from completing a job") +@doc("OK Response payload from completing a job.") model CompleteJobResultWithOkResponse { @doc("Response after completing a job.") @body @@ -1213,7 +1213,7 @@ model CompleteJobResultWithOkResponse { } @access(Access.internal) -@doc("Response payload from declining a job") +@doc("Response payload from declining a job.") model DeclineJobOfferResult {} @doc("OK Response payload from declining a job.") diff --git a/specification/communication/Communication.JobRouter/routes.tsp b/specification/communication/Communication.JobRouter/routes.tsp index bc3ed7a0a137..fa3615986080 100644 --- a/specification/communication/Communication.JobRouter/routes.tsp +++ b/specification/communication/Communication.JobRouter/routes.tsp @@ -181,8 +181,8 @@ interface JobRouterOperations { RouterJobPositionDetails >; - @summary("Un-assign a job.") - @doc("Un-assign a job.") + @summary("Unassign a job.") + @doc("Unassign a job.") @projectedName("client", "unassignJob") unassign is Operations.ResourceAction< RouterJobAssignment, diff --git a/specification/communication/data-plane/JobRouter/stable/2023-11-01/communicationservicejobrouter.json b/specification/communication/data-plane/JobRouter/stable/2023-11-01/communicationservicejobrouter.json index 640614a80532..58da97b189be 100644 --- a/specification/communication/data-plane/JobRouter/stable/2023-11-01/communicationservicejobrouter.json +++ b/specification/communication/data-plane/JobRouter/stable/2023-11-01/communicationservicejobrouter.json @@ -20,6 +20,7 @@ { "name": "endpoint", "in": "path", + "description": "Uri of your Communication resource", "required": true, "type": "string" } @@ -93,7 +94,7 @@ { "name": "classificationPolicyId", "in": "path", - "description": "Unique identifier of this policy.", + "description": "Id of a classification policy.", "required": true, "type": "string" } @@ -149,7 +150,7 @@ { "name": "classificationPolicyId", "in": "path", - "description": "Unique identifier of this policy.", + "description": "Id of a classification policy.", "required": true, "type": "string" }, @@ -237,7 +238,7 @@ { "name": "classificationPolicyId", "in": "path", - "description": "Unique identifier of this policy.", + "description": "Id of a classification policy.", "required": true, "type": "string" } @@ -326,7 +327,7 @@ { "name": "distributionPolicyId", "in": "path", - "description": "The unique identifier of the policy.", + "description": "Id of a distribution policy.", "required": true, "type": "string" } @@ -382,7 +383,7 @@ { "name": "distributionPolicyId", "in": "path", - "description": "The unique identifier of the policy.", + "description": "Id of a distribution policy.", "required": true, "type": "string" }, @@ -470,7 +471,7 @@ { "name": "distributionPolicyId", "in": "path", - "description": "The unique identifier of the policy.", + "description": "Id of a distribution policy.", "required": true, "type": "string" } @@ -559,7 +560,7 @@ { "name": "exceptionPolicyId", "in": "path", - "description": "The Id of the exception policy", + "description": "Id of an exception policy.", "required": true, "type": "string" } @@ -615,7 +616,7 @@ { "name": "exceptionPolicyId", "in": "path", - "description": "The Id of the exception policy", + "description": "Id of an exception policy.", "required": true, "type": "string" }, @@ -703,7 +704,7 @@ { "name": "exceptionPolicyId", "in": "path", - "description": "The Id of the exception policy", + "description": "Id of an exception policy.", "required": true, "type": "string" } @@ -929,7 +930,7 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" } @@ -985,7 +986,7 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" }, @@ -1076,7 +1077,7 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" } @@ -1117,7 +1118,7 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" }, @@ -1170,7 +1171,7 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" }, @@ -1226,14 +1227,14 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" }, { "name": "assignmentId", "in": "path", - "description": "The Id of the job assignment.", + "description": "Id of a job assignment.", "required": true, "type": "string" }, @@ -1286,14 +1287,14 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" }, { "name": "assignmentId", "in": "path", - "description": "The Id of the job assignment.", + "description": "Id of a job assignment.", "required": true, "type": "string" }, @@ -1337,8 +1338,8 @@ "/routing/jobs/{jobId}/assignments/{assignmentId}:unassign": { "post": { "operationId": "JobRouterOperations_UnassignJob", - "summary": "Un-assign a job.", - "description": "Un-assign a job.", + "summary": "Unassign a job.", + "description": "Unassign a job.", "parameters": [ { "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" @@ -1346,14 +1347,14 @@ { "name": "jobId", "in": "path", - "description": "The id of the job.", + "description": "Id of a job.", "required": true, "type": "string" }, { "name": "assignmentId", "in": "path", - "description": "The Id of the job assignment.", + "description": "Id of a job assignment.", "required": true, "type": "string" }, @@ -1498,7 +1499,7 @@ { "name": "queueId", "in": "path", - "description": "The Id of this queue", + "description": "Id of a queue.", "required": true, "type": "string" } @@ -1554,7 +1555,7 @@ { "name": "queueId", "in": "path", - "description": "The Id of this queue", + "description": "Id of a queue.", "required": true, "type": "string" }, @@ -1642,7 +1643,7 @@ { "name": "queueId", "in": "path", - "description": "The Id of this queue", + "description": "Id of a queue.", "required": true, "type": "string" } @@ -1839,7 +1840,7 @@ { "name": "workerId", "in": "path", - "description": "Id of the worker.", + "description": "Id of a worker.", "required": true, "type": "string" } @@ -1895,7 +1896,7 @@ { "name": "workerId", "in": "path", - "description": "Id of the worker.", + "description": "Id of a worker.", "required": true, "type": "string" }, @@ -1992,7 +1993,7 @@ { "name": "workerId", "in": "path", - "description": "Id of the worker.", + "description": "Id of a worker.", "required": true, "type": "string" } @@ -2033,14 +2034,14 @@ { "name": "workerId", "in": "path", - "description": "Id of the worker.", + "description": "Id of a worker.", "required": true, "type": "string" }, { "name": "offerId", "in": "path", - "description": "The Id of the offer.", + "description": "Id of an offer.", "required": true, "type": "string" } @@ -2084,14 +2085,14 @@ { "name": "workerId", "in": "path", - "description": "Id of the worker.", + "description": "Id of a worker.", "required": true, "type": "string" }, { "name": "offerId", "in": "path", - "description": "The Id of the offer.", + "description": "Id of an offer.", "required": true, "type": "string" }, @@ -2136,19 +2137,19 @@ "definitions": { "AcceptJobOfferResult": { "type": "object", - "description": "Response containing Id's for the worker, job, and assignment from an accepted offer", + "description": "Response containing ids for the worker, job, and assignment from an accepted offer.", "properties": { "assignmentId": { "type": "string", - "description": "The assignment Id that assigns a worker that has accepted an offer to a job." + "description": "Id of job assignment that assigns a worker that has accepted an offer to a job." }, "jobId": { "type": "string", - "description": "The Id of the job assigned." + "description": "Id of the job assigned." }, "workerId": { "type": "string", - "description": "The Id of the worker that has been assigned this job." + "description": "Id of the worker that has been assigned this job." } }, "required": [ @@ -2265,15 +2266,15 @@ }, "CancelExceptionAction": { "type": "object", - "description": "An action that marks a job as cancelled", + "description": "An action that marks a job as cancelled.", "properties": { "note": { "type": "string", - "description": "A note that will be appended to the jobs' Notes collection with the current timestamp." + "description": "A note that will be appended to a job's notes collection with the current timestamp." }, "dispositionCode": { "type": "string", - "description": "Indicates the outcome of the job, populate this field with your own custom values." + "description": "Indicates the outcome of a job, populate this field with your own custom values." } }, "allOf": [ @@ -2285,21 +2286,21 @@ }, "CancelJobOptions": { "type": "object", - "description": "Request payload for deleting a job", + "description": "Request payload for cancelling a job.", "properties": { "note": { "type": "string", - "description": "A note that will be appended to the jobs' Notes collection with the current timestamp." + "description": "A note that will be appended to a job's Notes collection with the current timestamp." }, "dispositionCode": { "type": "string", - "description": "Indicates the outcome of the job, populate this field with your own custom values. If not provided, default value of \"Cancelled\" is set." + "description": "Indicates the outcome of a job, populate this field with your own custom values. If not provided, default value of \"Cancelled\" is set." } } }, "CancelJobResult": { "type": "object", - "description": "Response payload from cancelling a job" + "description": "Response payload from cancelling a job." }, "ClassificationPolicy": { "type": "object", @@ -2312,7 +2313,7 @@ }, "id": { "type": "string", - "description": "Unique identifier of this policy.", + "description": "Id of a classification policy.", "readOnly": true }, "name": { @@ -2321,11 +2322,11 @@ }, "fallbackQueueId": { "type": "string", - "description": "The fallback queue to select if the queue selector doesn't find a match." + "description": "Id of a fallback queue to select if queue selector attachments doesn't find a match." }, "queueSelectorAttachments": { "type": "array", - "description": "The queue selector attachments used to resolve a queue for a given job.", + "description": "Queue selector attachments used to resolve a queue for a job.", "items": { "$ref": "#/definitions/QueueSelectorAttachment" }, @@ -2333,11 +2334,11 @@ }, "prioritizationRule": { "$ref": "#/definitions/RouterRule", - "description": "The rule to determine a priority score for a given job." + "description": "A rule to determine a priority score for a job." }, "workerSelectorAttachments": { "type": "array", - "description": "The worker selector attachments used to attach worker selectors to a given job.", + "description": "Worker selector attachments used to attach worker selectors to a job.", "items": { "$ref": "#/definitions/WorkerSelectorAttachment" }, @@ -2359,11 +2360,11 @@ }, "fallbackQueueId": { "type": "string", - "description": "The fallback queue to select if the queue selector doesn't find a match." + "description": "Id of a fallback queue to select if queue selector attachments doesn't find a match." }, "queueSelectorAttachments": { "type": "array", - "description": "The queue selector attachments used to resolve a queue for a given job.", + "description": "Queue selector attachments used to resolve a queue for a job.", "items": { "$ref": "#/definitions/QueueSelectorAttachment" }, @@ -2371,11 +2372,11 @@ }, "prioritizationRule": { "$ref": "#/definitions/RouterRuleCreateOrUpdate", - "description": "The rule to determine a priority score for a given job." + "description": "A rule to determine a priority score for a job." }, "workerSelectorAttachments": { "type": "array", - "description": "The worker selector attachments used to attach worker selectors to a given job.", + "description": "Worker selector attachments used to attach worker selectors to a job.", "items": { "$ref": "#/definitions/WorkerSelectorAttachment" }, @@ -2389,7 +2390,7 @@ "properties": { "dispositionCode": { "type": "string", - "description": "Indicates the outcome of the job, populate this field with your own custom values." + "description": "Indicates the outcome of a job, populate this field with your own custom values." }, "closeAt": { "type": "string", @@ -2398,39 +2399,39 @@ }, "note": { "type": "string", - "description": "A note that will be appended to the jobs' Notes collection with the current timestamp." + "description": "A note that will be appended to a job's Notes collection with the current timestamp." } } }, "CloseJobResult": { "type": "object", - "description": "Response payload from closing a job" + "description": "Response payload from closing a job." }, "CompleteJobOptions": { "type": "object", - "description": "Request payload for completing jobs", + "description": "Request payload for completing jobs.", "properties": { "note": { "type": "string", - "description": "A note that will be appended to the jobs' Notes collection with the current timestamp." + "description": "A note that will be appended to a job's Notes collection with the current timestamp." } } }, "CompleteJobResult": { "type": "object", - "description": "Response payload from completing a job" + "description": "Response payload from completing a job." }, "ConditionalQueueSelectorAttachment": { "type": "object", - "description": "Describes a set of queue selectors that will be attached if the given condition resolves to true", + "description": "Describes a set of queue selectors that will be attached if the given condition resolves to true.", "properties": { "condition": { "$ref": "#/definitions/RouterRule", - "description": "The condition that must be true for the queue selectors to be attached" + "description": "The condition that must be true for the queue selectors to be attached." }, "queueSelectors": { "type": "array", - "description": "The queue selectors to attach", + "description": "The queue selectors to attach.", "items": { "$ref": "#/definitions/RouterQueueSelector" }, @@ -2450,15 +2451,15 @@ }, "ConditionalWorkerSelectorAttachment": { "type": "object", - "description": "Describes a set of worker selectors that will be attached if the given condition resolves to true", + "description": "Describes a set of worker selectors that will be attached if the given condition resolves to true.", "properties": { "condition": { "$ref": "#/definitions/RouterRule", - "description": "The condition that must be true for the worker selectors to be attached" + "description": "The condition that must be true for the worker selectors to be attached." }, "workerSelectors": { "type": "array", - "description": "The worker selectors to attach", + "description": "The worker selectors to attach.", "items": { "$ref": "#/definitions/RouterWorkerSelector" }, @@ -2478,7 +2479,7 @@ }, "DeclineJobOfferOptions": { "type": "object", - "description": "Request payload for declining offers", + "description": "Request payload for declining offers.", "properties": { "retryOfferAt": { "type": "string", @@ -2489,7 +2490,7 @@ }, "DeclineJobOfferResult": { "type": "object", - "description": "Response payload from declining a job" + "description": "Response payload from declining a job." }, "DirectMapRouterRule": { "type": "object", @@ -2513,7 +2514,7 @@ }, "DistributionMode": { "type": "object", - "description": "Abstract base class for defining a distribution mode", + "description": "Abstract base class for defining a distribution mode.", "properties": { "minConcurrentOffers": { "type": "integer", @@ -2529,12 +2530,12 @@ }, "bypassSelectors": { "type": "boolean", - "description": "If set to true, then router will match workers to jobs even if they don't match label selectors. Warning: You may get workers that are not qualified for the job they are matched with if you set this variable to true. This flag is intended more for temporary usage. By default, set to false.", + "description": "If set to true, then router will match workers to jobs even if they don't match label selectors. Warning: You may get workers that are not qualified for a job they are matched with if you set this variable to true. This flag is intended more for temporary usage. By default, set to false.", "default": false }, "kind": { "$ref": "#/definitions/DistributionModeKind", - "description": "The type discriminator describing a sub-type of DistributionMode" + "description": "The type discriminator describing a sub-type of DistributionMode." } }, "discriminator": "kind", @@ -2544,7 +2545,7 @@ }, "DistributionModeCreateOrUpdate": { "type": "object", - "description": "Abstract base class for defining a distribution mode", + "description": "Abstract base class for defining a distribution mode.", "properties": { "minConcurrentOffers": { "type": "integer", @@ -2560,19 +2561,19 @@ }, "bypassSelectors": { "type": "boolean", - "description": "If set to true, then router will match workers to jobs even if they don't match label selectors. Warning: You may get workers that are not qualified for the job they are matched with if you set this variable to true. This flag is intended more for temporary usage. By default, set to false.", + "description": "If set to true, then router will match workers to jobs even if they don't match label selectors. Warning: You may get workers that are not qualified for a job they are matched with if you set this variable to true. This flag is intended more for temporary usage. By default, set to false.", "default": false }, "kind": { "$ref": "#/definitions/DistributionModeKind", - "description": "The type discriminator describing a sub-type of DistributionMode" + "description": "The type discriminator describing a sub-type of DistributionMode." } }, "discriminator": "kind" }, "DistributionModeKind": { "type": "string", - "description": "Supported distribution mode types", + "description": "Discriminators for supported distribution mode types.", "enum": [ "bestWorker", "longestIdle", @@ -2611,21 +2612,21 @@ }, "id": { "type": "string", - "description": "The unique identifier of the policy.", + "description": "Id of a distribution policy.", "readOnly": true }, "name": { "type": "string", - "description": "The human readable name of the policy." + "description": "Friendly name of this policy." }, "offerExpiresAfterSeconds": { "type": "number", "format": "double", - "description": "The number of seconds after which any offers created under this policy will be expired." + "description": "Number of seconds after which any offers created under this policy will be expired." }, "mode": { "$ref": "#/definitions/DistributionMode", - "description": "Abstract base class for defining a distribution mode" + "description": "Mode governing the specific distribution method." } }, "required": [ @@ -2639,30 +2640,30 @@ "properties": { "name": { "type": "string", - "description": "The human readable name of the policy." + "description": "Friendly name of this policy." }, "offerExpiresAfterSeconds": { "type": "number", "format": "double", - "description": "The number of seconds after which any offers created under this policy will be expired." + "description": "Number of seconds after which any offers created under this policy will be expired." }, "mode": { "$ref": "#/definitions/DistributionModeCreateOrUpdate", - "description": "Abstract base class for defining a distribution mode" + "description": "Mode governing the specific distribution method." } } }, "ExceptionAction": { "type": "object", - "description": "The action to take when the exception is triggered", + "description": "The action to take when the exception is triggered.", "properties": { "id": { "type": "string", - "description": "Unique Id of the exception action" + "description": "Unique Id of the exception action." }, "kind": { "$ref": "#/definitions/ExceptionActionKind", - "description": "The type discriminator describing a sub-type of ExceptionAction" + "description": "The type discriminator describing a sub-type of ExceptionAction." } }, "discriminator": "kind", @@ -2672,7 +2673,7 @@ }, "ExceptionActionKind": { "type": "string", - "description": "Supported exception action types", + "description": "Discriminators for supported exception action types.", "enum": [ "cancel", "manualReclassify", @@ -2711,12 +2712,12 @@ }, "id": { "type": "string", - "description": "The Id of the exception policy", + "description": "Id of an exception policy.", "readOnly": true }, "name": { "type": "string", - "description": "The name of the exception policy." + "description": "Friendly name of this policy." }, "exceptionRules": { "type": "array", @@ -2737,7 +2738,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the exception policy." + "description": "Friendly name of this policy." }, "exceptionRules": { "type": "array", @@ -2754,11 +2755,11 @@ "properties": { "id": { "type": "string", - "description": "Id of the exception rule." + "description": "Id of an exception rule." }, "trigger": { "$ref": "#/definitions/ExceptionTrigger", - "description": "The trigger for this exception rule" + "description": "The trigger for this exception rule." }, "actions": { "type": "array", @@ -2776,11 +2777,11 @@ }, "ExceptionTrigger": { "type": "object", - "description": "The trigger for this exception rule", + "description": "Abstract base class for defining a trigger for exception rules.", "properties": { "kind": { "$ref": "#/definitions/ExceptionTriggerKind", - "description": "The type discriminator describing a sub-type of ExceptionTrigger" + "description": "The type discriminator describing a sub-type of ExceptionTrigger." } }, "discriminator": "kind", @@ -2790,7 +2791,7 @@ }, "ExceptionTriggerKind": { "type": "string", - "description": "Supported exception trigger types", + "description": "Discriminators for supported exception trigger types.", "enum": [ "queueLength", "waitTime" @@ -2818,11 +2819,11 @@ "properties": { "language": { "$ref": "#/definitions/ExpressionRouterRuleLanguage", - "description": "The expression language to compile to and execute" + "description": "The expression language to compile to and execute." }, "expression": { "type": "string", - "description": "The string containing the expression to evaluate. Should contain return statement with calculated values." + "description": "An expression to evaluate. Should contain return statement with calculated values." } }, "required": [ @@ -2841,11 +2842,11 @@ "properties": { "language": { "$ref": "#/definitions/ExpressionRouterRuleLanguage", - "description": "The expression language to compile to and execute" + "description": "The expression language to compile to and execute." }, "expression": { "type": "string", - "description": "The string containing the expression to evaluate. Should contain return statement with calculated values." + "description": "An expression to evaluate. Should contain return statement with calculated values." } }, "allOf": [ @@ -2857,7 +2858,7 @@ }, "ExpressionRouterRuleLanguage": { "type": "string", - "description": "The available expression languages that can be configured", + "description": "Available expression languages that can be configured.", "enum": [ "powerFx" ], @@ -2880,11 +2881,11 @@ "functionUri": { "type": "string", "format": "uri", - "description": "URL for Azure Function" + "description": "URL for Azure Function." }, "credential": { "$ref": "#/definitions/FunctionRouterRuleCredential", - "description": "Credentials used to access Azure function rule" + "description": "Credentials used to access Azure function rule." } }, "required": [ @@ -2904,11 +2905,11 @@ "functionUri": { "type": "string", "format": "uri", - "description": "URL for Azure Function" + "description": "URL for Azure Function." }, "credential": { "$ref": "#/definitions/FunctionRouterRuleCredential", - "description": "Credentials used to access Azure function rule" + "description": "Credentials used to access Azure function rule." } }, "allOf": [ @@ -2920,11 +2921,11 @@ }, "FunctionRouterRuleCredential": { "type": "object", - "description": "Credentials used to access Azure function rule", + "description": "Credentials used to access Azure function rule.", "properties": { "functionKey": { "type": "string", - "description": "Access key scoped to a particular function" + "description": "Access key scoped to a particular function." }, "appKey": { "type": "string", @@ -2932,7 +2933,7 @@ }, "clientId": { "type": "string", - "description": "Client id, when AppKey is provided In context of Azure function, this is usually the name of the key" + "description": "Client id, when AppKey is provided In context of Azure function, this is usually the name of the key." } } }, @@ -2942,7 +2943,7 @@ "properties": { "kind": { "$ref": "#/definitions/JobMatchingModeKind", - "description": "The type discriminator describing a sub-type of JobMatchingMode" + "description": "The type discriminator describing a sub-type of JobMatchingMode." } }, "discriminator": "kind", @@ -2956,14 +2957,14 @@ "properties": { "kind": { "$ref": "#/definitions/JobMatchingModeKind", - "description": "The type discriminator describing a sub-type of JobMatchingMode" + "description": "The type discriminator describing a sub-type of JobMatchingMode." } }, "discriminator": "kind" }, "JobMatchingModeKind": { "type": "string", - "description": "Supported matching mode types", + "description": "Discriminators for supported matching mode types.", "enum": [ "queueAndMatch", "scheduleAndSuspend", @@ -3009,32 +3010,32 @@ { "name": "equal", "value": "equal", - "description": "Equal" + "description": "Equal." }, { "name": "notEqual", "value": "notEqual", - "description": "Not Equal" + "description": "Not Equal." }, { "name": "lessThan", "value": "lessThan", - "description": "Less than" + "description": "Less than." }, { "name": "lessThanOrEqual", "value": "lessThanOrEqual", - "description": "Less than or equal" + "description": "Less than or equal." }, { "name": "greaterThan", "value": "greaterThan", - "description": "Greater than" + "description": "Greater than." }, { "name": "greaterThanOrEqual", "value": "greaterThanOrEqual", - "description": "Greater than or equal" + "description": "Greater than or equal." } ] } @@ -3230,15 +3231,15 @@ }, "PassThroughQueueSelectorAttachment": { "type": "object", - "description": "Attaches a queue selector where the value is passed through from the job label with the same key", + "description": "Attaches a queue selector where the value is passed through from a job's label with the same key.", "properties": { "key": { "type": "string", - "description": "The label key to query against" + "description": "The label key to query against." }, "labelOperator": { "$ref": "#/definitions/LabelOperator", - "description": "Describes how the value of the label is compared to the value pass through" + "description": "Describes how the value of the label is compared to the value pass through." } }, "required": [ @@ -3254,15 +3255,15 @@ }, "PassThroughWorkerSelectorAttachment": { "type": "object", - "description": "Attaches a worker selector where the value is passed through from the job label with the same key", + "description": "Attaches a worker selector where the value is passed through from a job's label with the same key.", "properties": { "key": { "type": "string", - "description": "The label key to query against" + "description": "The label key to query against." }, "labelOperator": { "$ref": "#/definitions/LabelOperator", - "description": "Describes how the value of the label is compared to the value pass through" + "description": "Describes how the value of the label is compared to the value pass through." }, "expiresAfterSeconds": { "type": "number", @@ -3303,7 +3304,7 @@ }, "QueueLengthExceptionTrigger": { "type": "object", - "description": "Trigger for an exception action on exceeding queue length", + "description": "Trigger for an exception action on exceeding queue length.", "properties": { "threshold": { "type": "integer", @@ -3323,11 +3324,11 @@ }, "QueueSelectorAttachment": { "type": "object", - "description": "An attachment of queue selectors to resolve a queue to a job from a classification policy", + "description": "An attachment of queue selectors to resolve a queue to a job from a classification policy.", "properties": { "kind": { "$ref": "#/definitions/QueueSelectorAttachmentKind", - "description": "The type discriminator describing a sub-type of QueueSelectorAttachment" + "description": "The type discriminator describing a sub-type of QueueSelectorAttachment." } }, "discriminator": "kind", @@ -3337,7 +3338,7 @@ }, "QueueSelectorAttachmentKind": { "type": "string", - "description": "Supported queue selector attachment types", + "description": "Discriminators for supported queue selector attachment types.", "enum": [ "conditional", "passThrough", @@ -3402,7 +3403,7 @@ }, "ReclassifyExceptionAction": { "type": "object", - "description": "An action that modifies labels on a job and then reclassifies it", + "description": "An action that modifies labels on a job and then reclassifies it.", "properties": { "classificationPolicyId": { "type": "string", @@ -3423,11 +3424,11 @@ }, "ReclassifyJobOptions": { "type": "object", - "description": "Request payload for reclassifying jobs" + "description": "Request payload for reclassifying jobs." }, "ReclassifyJobResult": { "type": "object", - "description": "Response payload from reclassifying a job" + "description": "Response payload from reclassifying a job." }, "RoundRobinMode": { "type": "object", @@ -3451,11 +3452,11 @@ }, "RouterChannel": { "type": "object", - "description": "Represents the capacity a job in this channel will consume from a worker", + "description": "Represents the capacity a job in this channel will consume from a worker.", "properties": { "channelId": { "type": "string", - "description": "Id of the channel." + "description": "Id of a channel." }, "capacityCostPerJob": { "type": "integer", @@ -3484,7 +3485,7 @@ }, "id": { "type": "string", - "description": "The id of the job.", + "description": "Id of a job.", "readOnly": true }, "channelReference": { @@ -3493,13 +3494,13 @@ }, "status": { "$ref": "#/definitions/RouterJobStatus", - "description": "The status of the Job.", + "description": "The status of the job.", "readOnly": true }, "enqueuedAt": { "type": "string", "format": "date-time", - "description": "The time a job was queued in UTC.", + "description": "Timestamp a job was queued in UTC.", "readOnly": true }, "channelId": { @@ -3508,16 +3509,16 @@ }, "classificationPolicyId": { "type": "string", - "description": "The Id of the Classification policy used for classifying a job." + "description": "Id of a classification policy used for classifying this job." }, "queueId": { "type": "string", - "description": "The Id of the Queue that this job is queued to." + "description": "Id of a queue that this job is queued to." }, "priority": { "type": "integer", "format": "int32", - "description": "The priority of this job." + "description": "Priority of this job." }, "dispositionCode": { "type": "string", @@ -3525,7 +3526,7 @@ }, "requestedWorkerSelectors": { "type": "array", - "description": "A collection of manually specified label selectors, which a worker must satisfy in order to process this job.", + "description": "A collection of manually specified worker selectors, which a worker must satisfy in order to process this job.", "items": { "$ref": "#/definitions/RouterWorkerSelector" }, @@ -3533,7 +3534,7 @@ }, "attachedWorkerSelectors": { "type": "array", - "description": "A collection of label selectors attached by a classification policy, which a worker must satisfy in order to process this job.", + "description": "A collection of worker selectors attached by a classification policy, which a worker must satisfy in order to process this job.", "items": { "$ref": "#/definitions/RouterWorkerSelector" }, @@ -3560,7 +3561,7 @@ }, "notes": { "type": "array", - "description": "Notes attached to a job, sorted by timestamp", + "description": "Notes attached to a job, sorted by timestamp.", "items": { "$ref": "#/definitions/RouterJobNote" }, @@ -3569,7 +3570,7 @@ "scheduledAt": { "type": "string", "format": "date-time", - "description": "If set, job will be scheduled to be enqueued at a given time", + "description": "If set, job will be scheduled to be enqueued at a given time.", "readOnly": true }, "matchingMode": { @@ -3584,31 +3585,31 @@ }, "RouterJobAssignment": { "type": "object", - "description": "Assignment details of a job to a worker", + "description": "Assignment details of a job to a worker.", "properties": { "assignmentId": { "type": "string", - "description": "The Id of the job assignment.", + "description": "Id of a job assignment.", "readOnly": true }, "workerId": { "type": "string", - "description": "The Id of the Worker assigned to the job." + "description": "Id of the Worker assigned to the job." }, "assignedAt": { "type": "string", "format": "date-time", - "description": "The assignment time of the job in UTC." + "description": "Timestamp when the job was assigned to a worker in UTC." }, "completedAt": { "type": "string", "format": "date-time", - "description": "The time the job was marked as completed after being assigned in UTC." + "description": "Timestamp when the job was marked as completed after being assigned in UTC." }, "closedAt": { "type": "string", "format": "date-time", - "description": "The time the job was marked as closed after being completed in UTC." + "description": "Timestamp when the job was marked as closed after being completed in UTC." } }, "required": [ @@ -3630,16 +3631,16 @@ }, "classificationPolicyId": { "type": "string", - "description": "The Id of the Classification policy used for classifying a job." + "description": "Id of a classification policy used for classifying this job." }, "queueId": { "type": "string", - "description": "The Id of the Queue that this job is queued to." + "description": "Id of a queue that this job is queued to." }, "priority": { "type": "integer", "format": "int32", - "description": "The priority of this job." + "description": "Priority of this job." }, "dispositionCode": { "type": "string", @@ -3647,7 +3648,7 @@ }, "requestedWorkerSelectors": { "type": "array", - "description": "A collection of manually specified label selectors, which a worker must satisfy in order to process this job.", + "description": "A collection of manually specified worker selectors, which a worker must satisfy in order to process this job.", "items": { "$ref": "#/definitions/RouterWorkerSelector" }, @@ -3665,7 +3666,7 @@ }, "notes": { "type": "array", - "description": "Notes attached to a job, sorted by timestamp", + "description": "Notes attached to a job, sorted by timestamp.", "items": { "$ref": "#/definitions/RouterJobNote" }, @@ -3697,16 +3698,16 @@ }, "RouterJobOffer": { "type": "object", - "description": "An offer of a job to a worker", + "description": "An offer of a job to a worker.", "properties": { "offerId": { "type": "string", - "description": "The Id of the offer.", + "description": "Id of an offer.", "readOnly": true }, "jobId": { "type": "string", - "description": "The Id of the job." + "description": "Id of the job." }, "capacityCost": { "type": "integer", @@ -3716,12 +3717,12 @@ "offeredAt": { "type": "string", "format": "date-time", - "description": "The time the offer was created in UTC." + "description": "Timestamp when the offer was created in UTC." }, "expiresAt": { "type": "string", "format": "date-time", - "description": "The time that the offer will expire in UTC." + "description": "Timestamp when the offer will expire in UTC." } }, "required": [ @@ -3755,7 +3756,7 @@ "estimatedWaitTimeMinutes": { "type": "number", "format": "double", - "description": "Estimated wait time of the job rounded up to the nearest minute" + "description": "Estimated wait time of the job rounded up to the nearest minute." } }, "required": [ @@ -3768,7 +3769,7 @@ }, "RouterJobStatus": { "type": "string", - "description": "The status of the Job.", + "description": "Describes the various status of a job.", "enum": [ "pendingClassification", "queued", @@ -3861,16 +3862,16 @@ }, "id": { "type": "string", - "description": "The Id of this queue", + "description": "Id of a queue.", "readOnly": true }, "name": { "type": "string", - "description": "The name of this queue." + "description": "Friendly name of this queue." }, "distributionPolicyId": { "type": "string", - "description": "The ID of the distribution policy that will determine how a job is distributed to workers." + "description": "Id of a distribution policy that will determine how a job is distributed to workers." }, "labels": { "type": "object", @@ -3879,7 +3880,7 @@ }, "exceptionPolicyId": { "type": "string", - "description": "The ID of the exception policy that determines various job escalation rules." + "description": "Id of an exception policy that determines various job escalation rules." } }, "required": [ @@ -3893,11 +3894,11 @@ "properties": { "name": { "type": "string", - "description": "The name of this queue." + "description": "Friendly name of this queue." }, "distributionPolicyId": { "type": "string", - "description": "The ID of the distribution policy that will determine how a job is distributed to workers." + "description": "Id of a distribution policy that will determine how a job is distributed to workers." }, "labels": { "type": "object", @@ -3906,21 +3907,21 @@ }, "exceptionPolicyId": { "type": "string", - "description": "The ID of the exception policy that determines various job escalation rules." + "description": "Id of an exception policy that determines various job escalation rules." } } }, "RouterQueueSelector": { "type": "object", - "description": "Describes a condition that must be met against a set of labels for queue selection", + "description": "Describes a condition that must be met against a set of labels for queue selection.", "properties": { "key": { "type": "string", - "description": "The label key to query against" + "description": "The label key to query against." }, "labelOperator": { "$ref": "#/definitions/LabelOperator", - "description": "Describes how the value of the label is compared to the value defined on the label selector" + "description": "Describes how the value of the label is compared to the value defined on the label selector." }, "value": { "description": "The value to compare against the actual label value with the given operator. Values must be primitive values - number, string, boolean." @@ -3933,7 +3934,7 @@ }, "RouterQueueStatistics": { "type": "object", - "description": "Statistics for the queue", + "description": "Statistics for the queue.", "properties": { "queueId": { "type": "string", @@ -3946,7 +3947,7 @@ }, "estimatedWaitTimeMinutes": { "type": "object", - "description": "The estimated wait time of this queue rounded up to the nearest minute, grouped by job priority", + "description": "The estimated wait time of this queue rounded up to the nearest minute, grouped by job priority.", "additionalProperties": { "format": "double", "type": "number" @@ -3990,7 +3991,7 @@ }, "RouterRuleKind": { "type": "string", - "description": "Supported router rule types", + "description": "Discriminators for supported router rule types.", "enum": [ "directMap", "expression", @@ -4032,7 +4033,7 @@ }, "RouterWorker": { "type": "object", - "description": "An entity for jobs to be routed to", + "description": "An entity for jobs to be routed to.", "properties": { "etag": { "$ref": "#/definitions/Azure.Core.eTag", @@ -4041,17 +4042,17 @@ }, "id": { "type": "string", - "description": "Id of the worker.", + "description": "Id of a worker.", "readOnly": true }, "state": { "$ref": "#/definitions/RouterWorkerState", - "description": "The current state of the worker.", + "description": "Current state of a worker.", "readOnly": true }, "queues": { "type": "array", - "description": "The queue(s) that this worker can receive work from.", + "description": "Collection of queue(s) that this worker can receive work from.", "items": { "type": "string" } @@ -4073,7 +4074,7 @@ }, "channels": { "type": "array", - "description": "The channel(s) this worker can handle and their impact on the workers capacity.", + "description": "Collection of channel(s) this worker can handle and their impact on the workers capacity.", "items": { "$ref": "#/definitions/RouterChannel" }, @@ -4115,15 +4116,15 @@ }, "RouterWorkerAssignment": { "type": "object", - "description": "The assignment for a worker to a job", + "description": "The assignment for a worker to a job.", "properties": { "assignmentId": { "type": "string", - "description": "The Id of the assignment." + "description": "Id of the assignment." }, "jobId": { "type": "string", - "description": "The Id of the Job assigned." + "description": "Id of the job assigned." }, "capacityCost": { "type": "integer", @@ -4145,11 +4146,11 @@ }, "RouterWorkerCreateOrUpdate": { "type": "object", - "description": "An entity for jobs to be routed to", + "description": "An entity for jobs to be routed to.", "properties": { "queues": { "type": "array", - "description": "The queue(s) that this worker can receive work from.", + "description": "Collection of queue(s) that this worker can receive work from.", "items": { "type": "string" } @@ -4171,7 +4172,7 @@ }, "channels": { "type": "array", - "description": "The channel(s) this worker can handle and their impact on the workers capacity.", + "description": "Collection of channel(s) this worker can handle and their impact on the workers capacity.", "items": { "$ref": "#/definitions/RouterChannel" }, @@ -4185,15 +4186,15 @@ }, "RouterWorkerSelector": { "type": "object", - "description": "Describes a condition that must be met against a set of labels for worker selection", + "description": "Describes a condition that must be met against a set of labels for worker selection.", "properties": { "key": { "type": "string", - "description": "The label key to query against" + "description": "The label key to query against." }, "labelOperator": { "$ref": "#/definitions/LabelOperator", - "description": "Describes how the value of the label is compared to the value defined on the label selector" + "description": "Describes how the value of the label is compared to the value defined on the worker selector." }, "value": { "description": "The value to compare against the actual label value with the given operator. Values must be primitive values - number, string, boolean." @@ -4205,17 +4206,17 @@ }, "expedite": { "type": "boolean", - "description": "Pushes the job to the front of the queue as long as this selector is active." + "description": "Pushes a job to the front of the queue as long as this selector is active." }, "status": { "$ref": "#/definitions/RouterWorkerSelectorStatus", - "description": "The status of the worker selector.", + "description": "Status of the worker selector.", "readOnly": true }, "expiresAt": { "type": "string", "format": "date-time", - "description": "The time at which this worker selector expires in UTC", + "description": "The time at which this worker selector expires in UTC.", "readOnly": true } }, @@ -4226,7 +4227,7 @@ }, "RouterWorkerSelectorStatus": { "type": "string", - "description": "The status of the worker selector.", + "description": "Describes the status of a worker selector.", "enum": [ "active", "expired" @@ -4238,19 +4239,19 @@ { "name": "active", "value": "active", - "description": "Active" + "description": "Worker selector is valid." }, { "name": "expired", "value": "expired", - "description": "Expired" + "description": "Worker selector is not valid." } ] } }, "RouterWorkerState": { "type": "string", - "description": "Enums for worker status", + "description": "Enums for worker states.", "enum": [ "active", "draining", @@ -4280,11 +4281,11 @@ }, "RuleEngineQueueSelectorAttachment": { "type": "object", - "description": "Attaches queue selectors to a job when the RouterRule is resolved", + "description": "Attaches queue selectors to a job when the RouterRule is resolved.", "properties": { "rule": { "$ref": "#/definitions/RouterRule", - "description": "A RouterRule that resolves a collection of queue selectors to attach" + "description": "A RouterRule that resolves a collection of queue selectors to attach." } }, "required": [ @@ -4299,11 +4300,11 @@ }, "RuleEngineWorkerSelectorAttachment": { "type": "object", - "description": "Attaches worker selectors to a job when a RouterRule is resolved", + "description": "Attaches worker selectors to a job when a RouterRule is resolved.", "properties": { "rule": { "$ref": "#/definitions/RouterRule", - "description": "A RouterRule that resolves a collection of worker selectors to attach" + "description": "A RouterRule that resolves a collection of worker selectors to attach." } }, "required": [ @@ -4323,7 +4324,7 @@ "scheduleAt": { "type": "string", "format": "date-time", - "description": "Scheduled time." + "description": "Requested schedule time." } }, "required": [ @@ -4343,7 +4344,7 @@ "scheduleAt": { "type": "string", "format": "date-time", - "description": "Scheduled time." + "description": "Requested schedule time." } }, "allOf": [ @@ -4355,7 +4356,7 @@ }, "ScoringRuleOptions": { "type": "object", - "description": "Encapsulates all options that can be passed as parameters for scoring rule with BestWorkerMode", + "description": "Encapsulates all options that can be passed as parameters for scoring rule with BestWorkerMode.", "properties": { "batchSize": { "type": "integer", @@ -4365,7 +4366,7 @@ }, "scoringParameters": { "type": "array", - "description": "List of extra parameters from the job that will be sent as part of the payload to scoring rule. If not set, the job's labels (sent in the payload as `job`) and the job's worker selectors (sent in the payload as `selectors`) are added to the payload of the scoring rule by default. Note: Worker labels are always sent with scoring payload.", + "description": "List of extra parameters from a job that will be sent as part of the payload to scoring rule. If not set, a job's labels (sent in the payload as `job`) and a job's worker selectors (sent in the payload as `selectors`) are added to the payload of the scoring rule by default. Note: Worker labels are always sent with scoring payload.", "default": [ "jobLabels", "workerSelectors" @@ -4388,7 +4389,7 @@ }, "ScoringRuleParameterSelector": { "type": "string", - "description": "Supported parameters for scoring workers", + "description": "Supported parameters for scoring workers used with BestWorkerMode.", "enum": [ "jobLabels", "workerSelectors" @@ -4405,14 +4406,14 @@ { "name": "workerSelectors", "value": "workerSelectors", - "description": "Parameter to add worker selectors from the job to scoring payload. Property is sent as `selectors`." + "description": "Parameter to add worker selectors from a job to scoring payload. Property is sent as `selectors`." } ] } }, "StaticQueueSelectorAttachment": { "type": "object", - "description": "Describes a queue selector that will be attached to the job", + "description": "Describes a queue selector that will be attached to a job.", "properties": { "queueSelector": { "$ref": "#/definitions/RouterQueueSelector", @@ -4461,7 +4462,7 @@ }, "StaticWorkerSelectorAttachment": { "type": "object", - "description": "Describes a worker selector that will be attached to the job", + "description": "Describes a worker selector that will be attached to a job.", "properties": { "workerSelector": { "$ref": "#/definitions/RouterWorkerSelector", @@ -4504,7 +4505,7 @@ "properties": { "suspendMatching": { "type": "boolean", - "description": "If SuspendMatching is true, then the job is not queued for re-matching with a worker." + "description": "If SuspendMatching is true, then a job is not queued for re-matching with a worker." } } }, @@ -4514,7 +4515,7 @@ "properties": { "jobId": { "type": "string", - "description": "The Id of the job unassigned." + "description": "Id of an unassigned job." }, "unassignmentCount": { "type": "integer", @@ -4529,7 +4530,7 @@ }, "WaitTimeExceptionTrigger": { "type": "object", - "description": "Trigger for an exception action on exceeding wait time", + "description": "Trigger for an exception action on exceeding wait time.", "properties": { "thresholdSeconds": { "type": "number", @@ -4601,7 +4602,7 @@ }, "WeightedAllocationQueueSelectorAttachment": { "type": "object", - "description": "Describes multiple sets of queue selectors, of which one will be selected and attached according to a weighting", + "description": "Describes multiple sets of queue selectors, of which one will be selected and attached according to a weighting.", "properties": { "allocations": { "type": "array", @@ -4624,7 +4625,7 @@ }, "WeightedAllocationWorkerSelectorAttachment": { "type": "object", - "description": "Describes multiple sets of worker selectors, of which one will be selected and attached according to a weighting", + "description": "Describes multiple sets of worker selectors, of which one will be selected and attached according to a weighting.", "properties": { "allocations": { "type": "array", @@ -4647,11 +4648,11 @@ }, "WorkerSelectorAttachment": { "type": "object", - "description": "An attachment which attaches worker selectors to a job", + "description": "An attachment which attaches worker selectors to a job.", "properties": { "kind": { "$ref": "#/definitions/WorkerSelectorAttachmentKind", - "description": "The type discriminator describing a sub-type of WorkerSelectorAttachment" + "description": "The type discriminator describing a sub-type of WorkerSelectorAttachment." } }, "discriminator": "kind", @@ -4661,7 +4662,7 @@ }, "WorkerSelectorAttachmentKind": { "type": "string", - "description": "Supported worker selector attachment types", + "description": "Discriminators for supported worker selector attachment types.", "enum": [ "conditional", "passThrough",