@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api DataBoxManagementClient
@base https://management.azure.com
@version 2019-09-01
@auth OAuth2
@common_fields {api-version: any # The API Version}
@endpoints 16
@toc providers(1), subscriptions(15)

@group providers
@endpoint GET /providers/Microsoft.DataBox/operations
@desc This method gets all the operations.
@returns(200) The supported operations list.

@endgroup

@group subscriptions
@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/jobs
@desc Lists all the jobs available under the subscription.
@required {subscriptionId: any # The Subscription Id}
@optional {$skipToken: any # $skipToken is supported on Get list of jobs, which provides the next page in the list of jobs.}
@returns(200) List of jobs available under the subscription.

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/availableSkus
@desc This method provides the list of available skus for the given subscription and location.
@required {subscriptionId: any # The Subscription Id, location: any # The location of the resource, availableSkuRequest: map # Filters for showing the available skus.}
@returns(200) The list of available skus under subscription.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/availableSkus
@desc This method provides the list of available skus for the given subscription, resource group and location.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, location: any # The location of the resource, availableSkuRequest: map # Filters for showing the available skus.}
@returns(200) The list of available skus under Resource group.

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateAddress
@desc [DEPRECATED NOTICE: This operation will soon be removed] This method validates the customer shipping address and provide alternate addresses if any.
@required {subscriptionId: any # The Subscription Id, location: any # The location of the resource, validateAddress: map # Shipping address of the customer.}
@returns(200) The valid and alternate addresses.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/locations/{location}/validateInputs
@desc This method does all necessary pre-job creation validation under resource group.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, location: any # The location of the resource, validationRequest: map # Inputs of the customer.}
@returns(200) The validation status and responses of each validating parameter.

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/validateInputs
@desc This method does all necessary pre-job creation validation under subscription.
@required {subscriptionId: any # The Subscription Id, location: any # The location of the resource, validationRequest: map # Inputs of the customer.}
@returns(200) The validation status and responses of each validating parameter.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs
@desc Lists all the jobs available under the given resource group.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name}
@optional {$skipToken: any # $skipToken is supported on Get list of jobs, which provides the next page in the list of jobs.}
@returns(200) List of jobs by resource group.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}
@desc Gets information about the specified job.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only}
@optional {$expand: any # $expand is supported on details parameter for job, which provides details on the job stages.}
@returns(200) Job object.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}
@desc Creates a new job with the specified parameters. Existing job cannot be updated with this API and should instead be updated with the Update job API.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only, jobResource: map # Job details from request body.}
@returns(200) Job object.
@returns(202) Accepted request for create Job.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}
@desc Deletes a job.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only}
@returns(202) Accepted request for delete Job.
@returns(204) Job deleted.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}
@desc Updates the properties of an existing job.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only, jobResourceUpdateParameter: map # Job update parameters from request body.}
@optional {If-Match: any # Defines the If-Match condition. The patch will be performed only if the ETag of the job on the server matches this value.}
@returns(200) Job object.
@returns(202) Accepted request for job updated.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/bookShipmentPickUp
@desc Book shipment pick up.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only, shipmentPickUpRequest: map # Details of shipment pick up request.}
@returns(200) Booked shipment pick up successfully.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/cancel
@desc CancelJob.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only, cancellationReason: map # Reason for cancellation.}
@returns(204) Job cancelled.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBox/jobs/{jobName}/listCredentials
@desc This method gets the unencrypted secrets related to the job.
@required {subscriptionId: any # The Subscription Id, resourceGroupName: any # The Resource Group Name, jobName: any # The name of the job Resource within the specified resource group. job names must be between 3 and 24 characters in length and use any alphanumeric and underscore only}
@returns(200) List of unencrypted credentials of the job.

@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.DataBox/locations/{location}/regionConfiguration
@desc This API provides configuration details specific to given region/location.
@required {subscriptionId: any # The Subscription Id, location: any # The location of the resource, regionConfigurationRequest: map # Request body to get the configuration for the region.}
@returns(200) Region configuration response.

@endgroup

@end
