/**
 * Azure Edgemarketplace 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";
import { SensitiveString } from "../sensitive.js";
// Input Schema
export const OffersGenerateAccessTokenInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    offerId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "POST",
    path: "/{resourceUri}/providers/Microsoft.EdgeMarketplace/offers/{offerId}/generateAccessToken",
}));
// Output Schema
export const OffersGenerateAccessTokenOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    diskId: Schema.optional(Schema.String),
    status: Schema.optional(Schema.String),
    accessToken: SensitiveString,
});
// The operation
/**
 * A long-running resource action.
 *
 * @param api-version - The API version to use for this operation.
 * @param offerId - Id of the offer
 */
export const OffersGenerateAccessToken = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OffersGenerateAccessTokenInput,
    outputSchema: OffersGenerateAccessTokenOutput,
}));
// Input Schema
export const OffersGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    offerId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/{resourceUri}/providers/Microsoft.EdgeMarketplace/offers/{offerId}",
}));
// Output Schema
export const OffersGetOutput = /*@__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 a Offer
 *
 * @param api-version - The API version to use for this operation.
 * @param offerId - Id of the offer
 */
export const OffersGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OffersGetInput,
    outputSchema: OffersGetOutput,
}));
// Input Schema
export const OffersGetAccessTokenInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    offerId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "POST",
    path: "/{resourceUri}/providers/Microsoft.EdgeMarketplace/offers/{offerId}/getAccessToken",
}));
// Output Schema
export const OffersGetAccessTokenOutput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    diskId: Schema.optional(Schema.String),
    status: Schema.optional(Schema.String),
    accessToken: SensitiveString,
});
// The operation
/**
 * get access token.
 *
 * @param api-version - The API version to use for this operation.
 * @param offerId - Id of the offer
 */
export const OffersGetAccessToken = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OffersGetAccessTokenInput,
    outputSchema: OffersGetAccessTokenOutput,
}));
// Input Schema
export const OffersListInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    "api-version": Schema.String,
    $top: Schema.optional(Schema.Number),
    skip: Schema.optional(Schema.Number),
    maxpagesize: Schema.optional(Schema.Number),
    $filter: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "GET",
    path: "/{resourceUri}/providers/Microsoft.EdgeMarketplace/offers",
}));
// Output Schema
export const OffersListOutput = /*@__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 Offer resources by parent
 *
 * @param api-version - The API version to use for this operation.
 * @param $top - The number of result items to return.
 * @param skip - The number of result items to skip.
 * @param maxpagesize - The maximum number of result items per page.
 * @param $filter - Filter the result list using the given expression.
 * @param $skipToken - Skip over when retrieving results.
 */
export const OffersList = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OffersListInput,
    outputSchema: OffersListOutput,
}));
// Input Schema
export const OffersListBySubscriptionInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeMarketplace/offers",
}));
// Output Schema
export const OffersListBySubscriptionOutput = 
/*@__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 Offer resources by subscription ID
 *
 * @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.
 */
export const OffersListBySubscription = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: OffersListBySubscriptionInput,
    outputSchema: OffersListBySubscriptionOutput,
}));
// Input Schema
export const OperationsListInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/providers/Microsoft.EdgeMarketplace/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 PublishersGetInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    publisherName: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/{resourceUri}/providers/Microsoft.EdgeMarketplace/publishers/{publisherName}",
}));
// Output Schema
export const PublishersGetOutput = /*@__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 a Publisher
 *
 * @param api-version - The API version to use for this operation.
 * @param publisherName - Name of the publisher
 */
export const PublishersGet = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PublishersGetInput,
    outputSchema: PublishersGetOutput,
}));
// Input Schema
export const PublishersListInput = /*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    "api-version": Schema.String,
    $top: Schema.optional(Schema.Number),
    skip: Schema.optional(Schema.Number),
    maxpagesize: Schema.optional(Schema.Number),
    $filter: Schema.optional(Schema.String),
    $skipToken: Schema.optional(Schema.String),
}).pipe(T.Http({
    method: "GET",
    path: "/{resourceUri}/providers/Microsoft.EdgeMarketplace/publishers",
}));
// Output Schema
export const PublishersListOutput = /*@__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 Publisher resources by parent
 *
 * @param api-version - The API version to use for this operation.
 * @param $top - The number of result items to return.
 * @param skip - The number of result items to skip.
 * @param maxpagesize - The maximum number of result items per page.
 * @param $filter - Filter the result list using the given expression.
 * @param $skipToken - Skip over when retrieving results.
 */
export const PublishersList = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PublishersListInput,
    outputSchema: PublishersListOutput,
}));
// Input Schema
export const PublishersListBySubscriptionInput = 
/*@__PURE__*/ /*#__PURE__*/ Schema.Struct({
    subscriptionId: Schema.String.pipe(T.PathParam()),
    "api-version": Schema.String,
}).pipe(T.Http({
    method: "GET",
    path: "/subscriptions/{subscriptionId}/providers/Microsoft.EdgeMarketplace/publishers",
}));
// Output Schema
export const PublishersListBySubscriptionOutput = 
/*@__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 Publisher resources by subscription ID
 *
 * @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.
 */
export const PublishersListBySubscription = 
/*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    inputSchema: PublishersListBySubscriptionInput,
    outputSchema: PublishersListBySubscriptionOutput,
}));
//# sourceMappingURL=edgemarketplace.js.map