/**
 * Azure Edgeorder API
 *
 * Generated from the Azure REST API specs.
 * DO NOT EDIT - regenerate with: bun run generate
 */
import * as Schema from "effect/Schema";
import { API } from "../client.js";
import * as T from "../traits.js";
// Input Schema
export const AddressesCreateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    addressName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "PUT",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/addresses/{addressName}",
}));
// Output Schema
export const AddressesCreateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Create a new address with the specified parameters. Existing address cannot be updated with this API and should
 * instead be updated with the Update address API.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param addressName - The name of the address Resource within the specified resource group. address names must be between 3 and 24 characters in length and use any alphanumeric and underscore only.
 */
export const AddressesCreate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AddressesCreateInput,
    outputSchema: AddressesCreateOutput,
}));
// Input Schema
export const AddressesDeleteInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    addressName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "DELETE",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/addresses/{addressName}",
}));
// Output Schema
export const AddressesDeleteOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Delete an address.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param addressName - The name of the address Resource within the specified resource group. address names must be between 3 and 24 characters in length and use any alphanumeric and underscore only.
 */
export const AddressesDelete = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AddressesDeleteInput,
    outputSchema: AddressesDeleteOutput,
}));
// Input Schema
export const AddressesGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    addressName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/addresses/{addressName}",
}));
// Output Schema
export const AddressesGetOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Get information about the specified address.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param addressName - The name of the address Resource within the specified resource group. address names must be between 3 and 24 characters in length and use any alphanumeric and underscore only.
 */
export const AddressesGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AddressesGetInput,
    outputSchema: AddressesGetOutput,
}));
// Input Schema
export const AddressesListByResourceGroupInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $filter: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
    $top: Schema.optional(Schema.Number),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/addresses",
}));
// Output Schema
export const AddressesListByResourceGroupOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List all the addresses available under the given resource group.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param $filter - $filter is supported to filter based on shipping address properties. Filter supports only equals operation.
 * @param $skipToken - $skipToken is supported on Get list of addresses, which provides the next page in the list of addresses.
 * @param $top - $top is supported on fetching list of resources. $top=10 means that the first 10 items in the list will be returned to the API caller.
 */
export const AddressesListByResourceGroup = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AddressesListByResourceGroupInput,
    outputSchema: AddressesListByResourceGroupOutput,
}));
// Input Schema
export const AddressesListBySubscriptionInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $filter: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
    $top: Schema.optional(Schema.Number),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeOrder/addresses",
}));
// Output Schema
export const AddressesListBySubscriptionOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List all the addresses available under the subscription.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param $filter - $filter is supported to filter based on shipping address properties. Filter supports only equals operation.
 * @param $skipToken - $skipToken is supported on Get list of addresses, which provides the next page in the list of addresses.
 * @param $top - $top is supported on fetching list of resources. $top=10 means that the first 10 items in the list will be returned to the API caller.
 */
export const AddressesListBySubscription = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AddressesListBySubscriptionInput,
    outputSchema: AddressesListBySubscriptionOutput,
}));
// Input Schema
export const AddressesUpdateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    addressName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "PATCH",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/addresses/{addressName}",
}));
// Output Schema
export const AddressesUpdateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Update the properties of an existing address.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param addressName - The name of the address Resource within the specified resource group. address names must be between 3 and 24 characters in length and use any alphanumeric and underscore only.
 * @param If-Match - Defines the If-Match condition. The patch will be performed only if the ETag of the job on the server matches this value.
 */
export const AddressesUpdate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: AddressesUpdateInput,
    outputSchema: AddressesUpdateOutput,
}));
// Input Schema
export const OperationsListInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    "api-version": Schema.String,
}).pipe(T.Http({ method: "GET", path: "/providers/Microsoft.EdgeOrder/operations" }));
// Output Schema
export const OperationsListOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.optional(Schema.Array(Schema.Struct({
        name: Schema.optional(Schema.String),
        isDataAction: Schema.optional(Schema.Boolean),
        display: Schema.optional(Schema.Struct({
            provider: Schema.optional(Schema.String),
            resource: Schema.optional(Schema.String),
            operation: Schema.optional(Schema.String),
            description: Schema.optional(Schema.String),
        })),
        origin: Schema.optional(Schema.Literals(["user", "system", "user,system"])),
        actionType: Schema.optional(Schema.Literals(["Internal"])),
    }))),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List the operations for the provider
 *
 * @param api-version - The API version to use for this operation.
 */
export const OperationsList = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OperationsListInput,
    outputSchema: OperationsListOutput,
}));
// Input Schema
export const OrderItemsCancelInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    orderItemName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems/{orderItemName}/cancel",
}));
// Output Schema
export const OrderItemsCancelOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Cancel order item.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param orderItemName - The name of the order item.
 */
export const OrderItemsCancel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsCancelInput,
    outputSchema: OrderItemsCancelOutput,
}));
// Input Schema
export const OrderItemsCreateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    orderItemName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "PUT",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems/{orderItemName}",
}));
// Output Schema
export const OrderItemsCreateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Create an order item. Existing order item cannot be updated with this api and should instead be updated with the Update order item
 * API.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param orderItemName - The name of the order item.
 */
export const OrderItemsCreate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsCreateInput,
    outputSchema: OrderItemsCreateOutput,
}));
// Input Schema
export const OrderItemsDeleteInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    orderItemName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "DELETE",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems/{orderItemName}",
}));
// Output Schema
export const OrderItemsDeleteOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Delete an order item.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param orderItemName - The name of the order item.
 */
export const OrderItemsDelete = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsDeleteInput,
    outputSchema: OrderItemsDeleteOutput,
}));
// Input Schema
export const OrderItemsGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    orderItemName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $expand: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems/{orderItemName}",
}));
// Output Schema
export const OrderItemsGetOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Get an order item.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param orderItemName - The name of the order item.
 * @param $expand - $expand is supported on parent device details, device details, forward shipping details and reverse shipping details parameters. Each of these can be provided as a comma separated list. Parent Device Details for order item provides details on the devices of the product, Device Details for order item provides details on the devices of the child configurations of the product, Forward and Reverse Shipping details provide forward and reverse shipping details respectively.
 */
export const OrderItemsGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsGetInput,
    outputSchema: OrderItemsGetOutput,
}));
// Input Schema
export const OrderItemsListByResourceGroupInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $filter: Schema.optional(Schema.String),
    $expand: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
    $top: Schema.optional(Schema.Number),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems",
}));
// Output Schema
export const OrderItemsListByResourceGroupOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List order items at resource group level.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param $filter - $filter is supported to filter based on order id and order Item Type. Filter supports only equals operation.
 * @param $expand - $expand is supported on parent device details, device details, forward shipping details and reverse shipping details parameters. Each of these can be provided as a comma separated list. Parent Device Details for order item provides details on the devices of the product, Device Details for order item provides details on the devices of the child configurations of the product, Forward and Reverse Shipping details provide forward and reverse shipping details respectively.
 * @param $skipToken - $skipToken is supported on Get list of order items, which provides the next page in the list of order items.
 * @param $top - $top is supported on fetching list of resources. $top=10 means that the first 10 items in the list will be returned to the API caller.
 */
export const OrderItemsListByResourceGroup = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsListByResourceGroupInput,
    outputSchema: OrderItemsListByResourceGroupOutput,
}));
// Input Schema
export const OrderItemsListBySubscriptionInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $filter: Schema.optional(Schema.String),
    $expand: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
    $top: Schema.optional(Schema.Number),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeOrder/orderItems",
}));
// Output Schema
export const OrderItemsListBySubscriptionOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List order items at subscription level.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param $filter - $filter is supported to filter based on order id and order Item Type. Filter supports only equals operation.
 * @param $expand - $expand is supported on parent device details, device details, forward shipping details and reverse shipping details parameters. Each of these can be provided as a comma separated list. Parent Device Details for order item provides details on the devices of the product, Device Details for order item provides details on the devices of the child configurations of the product, Forward and Reverse Shipping details provide forward and reverse shipping details respectively.
 * @param $skipToken - $skipToken is supported on Get list of order items, which provides the next page in the list of order items.
 * @param $top - $top is supported on fetching list of resources. $top=10 means that the first 10 items in the list will be returned to the API caller.
 */
export const OrderItemsListBySubscription = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsListBySubscriptionInput,
    outputSchema: OrderItemsListBySubscriptionOutput,
}));
// Input Schema
export const OrderItemsReturnInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    orderItemName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems/{orderItemName}/return",
}));
// Output Schema
export const OrderItemsReturnOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Void;
// The operation
/**
 * Return order item.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param orderItemName - The name of the order item.
 */
export const OrderItemsReturn = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsReturnInput,
    outputSchema: OrderItemsReturnOutput,
}));
// Input Schema
export const OrderItemsUpdateInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    orderItemName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "PATCH",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orderItems/{orderItemName}",
}));
// Output Schema
export const OrderItemsUpdateOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Update the properties of an existing order item.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param orderItemName - The name of the order item.
 * @param If-Match - Defines the If-Match condition. The patch will be performed only if the ETag of the order on the server matches this value.
 */
export const OrderItemsUpdate = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrderItemsUpdateInput,
    outputSchema: OrderItemsUpdateOutput,
}));
// Input Schema
export const OrdersGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    location: Schema.String.pipe(T.PathParam()),
    orderName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/locations/{location}/orders/{orderName}",
}));
// Output Schema
export const OrdersGetOutput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    id: Schema.optional(Schema.String),
    name: Schema.optional(Schema.String),
    type: Schema.optional(Schema.String),
    systemData: Schema.optional(Schema.Struct({
        createdBy: Schema.optional(Schema.String),
        createdByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        createdAt: Schema.optional(Schema.String),
        lastModifiedBy: Schema.optional(Schema.String),
        lastModifiedByType: Schema.optional(Schema.Literals(["User", "Application", "ManagedIdentity", "Key"])),
        lastModifiedAt: Schema.optional(Schema.String),
    })),
});
// The operation
/**
 * Get an order.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param location - The name of the Azure region.
 * @param orderName - The name of the order.
 */
export const OrdersGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrdersGetInput,
    outputSchema: OrdersGetOutput,
}));
// Input Schema
export const OrdersListByResourceGroupInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    resourceGroupName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $skipToken: Schema.optional(Schema.String),
    $top: Schema.optional(Schema.Number),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EdgeOrder/orders",
}));
// Output Schema
export const OrdersListByResourceGroupOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List orders at resource group level.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param resourceGroupName - The name of the resource group. The name is case insensitive.
 * @param $skipToken - $skipToken is supported on Get list of orders, which provides the next page in the list of orders.
 * @param $top - $top is supported on fetching list of resources. $top=10 means that the first 10 items in the list will be returned to the API caller.
 */
export const OrdersListByResourceGroup = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrdersListByResourceGroupInput,
    outputSchema: OrdersListByResourceGroupOutput,
}));
// Input Schema
export const OrdersListBySubscriptionInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $skipToken: Schema.optional(Schema.String),
    $top: Schema.optional(Schema.Number),
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeOrder/orders",
}));
// Output Schema
export const OrdersListBySubscriptionOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        id: Schema.optional(Schema.String),
        name: Schema.optional(Schema.String),
        type: Schema.optional(Schema.String),
        systemData: Schema.optional(Schema.Struct({
            createdBy: Schema.optional(Schema.String),
            createdByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            createdAt: Schema.optional(Schema.String),
            lastModifiedBy: Schema.optional(Schema.String),
            lastModifiedByType: Schema.optional(Schema.Literals([
                "User",
                "Application",
                "ManagedIdentity",
                "Key",
            ])),
            lastModifiedAt: Schema.optional(Schema.String),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List orders at subscription level.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param $skipToken - $skipToken is supported on Get list of orders, which provides the next page in the list of orders.
 * @param $top - $top is supported on fetching list of resources. $top=10 means that the first 10 items in the list will be returned to the API caller.
 */
export const OrdersListBySubscription = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OrdersListBySubscriptionInput,
    outputSchema: OrdersListBySubscriptionOutput,
}));
// Input Schema
export const ProductsAndConfigurationsListConfigurationsInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $skipToken: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeOrder/listConfigurations",
}));
// Output Schema
export const ProductsAndConfigurationsListConfigurationsOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        properties: Schema.optional(Schema.Struct({
            displayName: Schema.optional(Schema.String),
            description: Schema.optional(Schema.Struct({
                descriptionType: Schema.optional(Schema.Literals(["Base"])),
                shortDescription: Schema.optional(Schema.String),
                longDescription: Schema.optional(Schema.String),
                keywords: Schema.optional(Schema.Array(Schema.String)),
                attributes: Schema.optional(Schema.Array(Schema.String)),
                links: Schema.optional(Schema.Array(Schema.Struct({
                    linkType: Schema.optional(Schema.Literals([
                        "Generic",
                        "TermsAndConditions",
                        "Specification",
                        "Documentation",
                        "KnowMore",
                        "SignUp",
                        "Discoverable",
                    ])),
                    linkUrl: Schema.optional(Schema.String),
                }))),
            })),
            imageInformation: Schema.optional(Schema.Array(Schema.Struct({
                imageType: Schema.optional(Schema.Literals([
                    "MainImage",
                    "BulletImage",
                    "GenericImage",
                ])),
                imageUrl: Schema.optional(Schema.String),
            }))),
            costInformation: Schema.optional(Schema.Struct({
                billingMeterDetails: Schema.optional(Schema.Array(Schema.Struct({
                    name: Schema.optional(Schema.String),
                    meterDetails: Schema.optional(Schema.Struct({
                        billingType: Schema.Literals(["Pav2", "Purchase"]),
                        multiplier: Schema.optional(Schema.Number),
                        chargingType: Schema.optional(Schema.Literals(["PerOrder", "PerDevice"])),
                    })),
                    meteringType: Schema.optional(Schema.Literals(["OneTime", "Recurring", "Adhoc"])),
                    frequency: Schema.optional(Schema.String),
                    termTypeDetails: Schema.optional(Schema.Struct({
                        termType: Schema.Literals(["None", "Trial", "Timed"]),
                        termTypeDuration: Schema.String,
                    })),
                }))),
                billingInfoUrl: Schema.optional(Schema.String),
            })),
            availabilityInformation: Schema.optional(Schema.Struct({
                availabilityStage: Schema.optional(Schema.Literals([
                    "Available",
                    "Preview",
                    "Signup",
                    "Discoverable",
                    "ComingSoon",
                    "Unavailable",
                    "Deprecated",
                ])),
                disabledReason: Schema.optional(Schema.Literals([
                    "None",
                    "Country",
                    "Region",
                    "Feature",
                    "OfferType",
                    "NoSubscriptionInfo",
                    "NotAvailable",
                    "OutOfStock",
                ])),
                disabledReasonMessage: Schema.optional(Schema.String),
            })),
            hierarchyInformation: Schema.optional(Schema.Struct({
                productFamilyName: Schema.optional(Schema.String),
                productLineName: Schema.optional(Schema.String),
                productName: Schema.optional(Schema.String),
                configurationName: Schema.optional(Schema.String),
                configurationIdDisplayName: Schema.optional(Schema.String),
            })),
            fulfilledBy: Schema.optional(Schema.Literals(["Microsoft", "External"])),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List configurations for the given product family, product line and product for the given subscription.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param $skipToken - $skipToken is supported on list of configurations, which provides the next page in the list of configurations.
 */
export const ProductsAndConfigurationsListConfigurations = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: ProductsAndConfigurationsListConfigurationsInput,
    outputSchema: ProductsAndConfigurationsListConfigurationsOutput,
}));
// Input Schema
export const ProductsAndConfigurationsListProductFamiliesInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $expand: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeOrder/listProductFamilies",
}));
// Output Schema
export const ProductsAndConfigurationsListProductFamiliesOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        properties: Schema.optional(Schema.Struct({
            displayName: Schema.optional(Schema.String),
            description: Schema.optional(Schema.Struct({
                descriptionType: Schema.optional(Schema.Literals(["Base"])),
                shortDescription: Schema.optional(Schema.String),
                longDescription: Schema.optional(Schema.String),
                keywords: Schema.optional(Schema.Array(Schema.String)),
                attributes: Schema.optional(Schema.Array(Schema.String)),
                links: Schema.optional(Schema.Array(Schema.Struct({
                    linkType: Schema.optional(Schema.Literals([
                        "Generic",
                        "TermsAndConditions",
                        "Specification",
                        "Documentation",
                        "KnowMore",
                        "SignUp",
                        "Discoverable",
                    ])),
                    linkUrl: Schema.optional(Schema.String),
                }))),
            })),
            imageInformation: Schema.optional(Schema.Array(Schema.Struct({
                imageType: Schema.optional(Schema.Literals([
                    "MainImage",
                    "BulletImage",
                    "GenericImage",
                ])),
                imageUrl: Schema.optional(Schema.String),
            }))),
            costInformation: Schema.optional(Schema.Struct({
                billingMeterDetails: Schema.optional(Schema.Array(Schema.Struct({
                    name: Schema.optional(Schema.String),
                    meterDetails: Schema.optional(Schema.Struct({
                        billingType: Schema.Literals(["Pav2", "Purchase"]),
                        multiplier: Schema.optional(Schema.Number),
                        chargingType: Schema.optional(Schema.Literals(["PerOrder", "PerDevice"])),
                    })),
                    meteringType: Schema.optional(Schema.Literals(["OneTime", "Recurring", "Adhoc"])),
                    frequency: Schema.optional(Schema.String),
                    termTypeDetails: Schema.optional(Schema.Struct({
                        termType: Schema.Literals(["None", "Trial", "Timed"]),
                        termTypeDuration: Schema.String,
                    })),
                }))),
                billingInfoUrl: Schema.optional(Schema.String),
            })),
            availabilityInformation: Schema.optional(Schema.Struct({
                availabilityStage: Schema.optional(Schema.Literals([
                    "Available",
                    "Preview",
                    "Signup",
                    "Discoverable",
                    "ComingSoon",
                    "Unavailable",
                    "Deprecated",
                ])),
                disabledReason: Schema.optional(Schema.Literals([
                    "None",
                    "Country",
                    "Region",
                    "Feature",
                    "OfferType",
                    "NoSubscriptionInfo",
                    "NotAvailable",
                    "OutOfStock",
                ])),
                disabledReasonMessage: Schema.optional(Schema.String),
            })),
            hierarchyInformation: Schema.optional(Schema.Struct({
                productFamilyName: Schema.optional(Schema.String),
                productLineName: Schema.optional(Schema.String),
                productName: Schema.optional(Schema.String),
                configurationName: Schema.optional(Schema.String),
                configurationIdDisplayName: Schema.optional(Schema.String),
            })),
            fulfilledBy: Schema.optional(Schema.Literals(["Microsoft", "External"])),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List product families for the given subscription.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param $expand - $expand is supported on configurations parameter for product, which provides details on the configurations for the product.
 * @param $skipToken - $skipToken is supported on list of product families, which provides the next page in the list of product families.
 */
export const ProductsAndConfigurationsListProductFamilies = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: ProductsAndConfigurationsListProductFamiliesInput,
    outputSchema: ProductsAndConfigurationsListProductFamiliesOutput,
}));
// Input Schema
export const ProductsAndConfigurationsListProductFamiliesMetadataInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
    $skipToken: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "POST",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeOrder/productFamiliesMetadata",
}));
// Output Schema
export const ProductsAndConfigurationsListProductFamiliesMetadataOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    value: Schema.Array(Schema.Struct({
        properties: Schema.optional(Schema.Struct({
            displayName: Schema.optional(Schema.String),
            description: Schema.optional(Schema.Struct({
                descriptionType: Schema.optional(Schema.Literals(["Base"])),
                shortDescription: Schema.optional(Schema.String),
                longDescription: Schema.optional(Schema.String),
                keywords: Schema.optional(Schema.Array(Schema.String)),
                attributes: Schema.optional(Schema.Array(Schema.String)),
                links: Schema.optional(Schema.Array(Schema.Struct({
                    linkType: Schema.optional(Schema.Literals([
                        "Generic",
                        "TermsAndConditions",
                        "Specification",
                        "Documentation",
                        "KnowMore",
                        "SignUp",
                        "Discoverable",
                    ])),
                    linkUrl: Schema.optional(Schema.String),
                }))),
            })),
            imageInformation: Schema.optional(Schema.Array(Schema.Struct({
                imageType: Schema.optional(Schema.Literals([
                    "MainImage",
                    "BulletImage",
                    "GenericImage",
                ])),
                imageUrl: Schema.optional(Schema.String),
            }))),
            costInformation: Schema.optional(Schema.Struct({
                billingMeterDetails: Schema.optional(Schema.Array(Schema.Struct({
                    name: Schema.optional(Schema.String),
                    meterDetails: Schema.optional(Schema.Struct({
                        billingType: Schema.Literals(["Pav2", "Purchase"]),
                        multiplier: Schema.optional(Schema.Number),
                        chargingType: Schema.optional(Schema.Literals(["PerOrder", "PerDevice"])),
                    })),
                    meteringType: Schema.optional(Schema.Literals(["OneTime", "Recurring", "Adhoc"])),
                    frequency: Schema.optional(Schema.String),
                    termTypeDetails: Schema.optional(Schema.Struct({
                        termType: Schema.Literals(["None", "Trial", "Timed"]),
                        termTypeDuration: Schema.String,
                    })),
                }))),
                billingInfoUrl: Schema.optional(Schema.String),
            })),
            availabilityInformation: Schema.optional(Schema.Struct({
                availabilityStage: Schema.optional(Schema.Literals([
                    "Available",
                    "Preview",
                    "Signup",
                    "Discoverable",
                    "ComingSoon",
                    "Unavailable",
                    "Deprecated",
                ])),
                disabledReason: Schema.optional(Schema.Literals([
                    "None",
                    "Country",
                    "Region",
                    "Feature",
                    "OfferType",
                    "NoSubscriptionInfo",
                    "NotAvailable",
                    "OutOfStock",
                ])),
                disabledReasonMessage: Schema.optional(Schema.String),
            })),
            hierarchyInformation: Schema.optional(Schema.Struct({
                productFamilyName: Schema.optional(Schema.String),
                productLineName: Schema.optional(Schema.String),
                productName: Schema.optional(Schema.String),
                configurationName: Schema.optional(Schema.String),
                configurationIdDisplayName: Schema.optional(Schema.String),
            })),
            fulfilledBy: Schema.optional(Schema.Literals(["Microsoft", "External"])),
        })),
    })),
    nextLink: Schema.optional(Schema.String),
});
// The operation
/**
 * List product families metadata for the given subscription.
 *
 * @param api-version - The API version to use for this operation.
 * @param subscriptionId - The ID of the target subscription. The value must be an UUID.
 * @param $skipToken - $skipToken is supported on list of product families metadata, which provides the next page in the list of product families metadata.
 */
export const ProductsAndConfigurationsListProductFamiliesMetadata = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: ProductsAndConfigurationsListProductFamiliesMetadataInput,
    outputSchema: ProductsAndConfigurationsListProductFamiliesMetadataOutput,
}));
//# sourceMappingURL=edgeorder.js.map