Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "./models.tsp";
import "./PrivateStore.tsp";

using TypeSpec.Rest;
using Azure.ResourceManager;
using TypeSpec.Http;
using TypeSpec.OpenAPI;

namespace Microsoft.Marketplace;
/**
* Admin request approval resource.
*/
@parentResource(PrivateStore)
model AdminRequestApprovalsResource
is Azure.ResourceManager.ProxyResource<AdminRequestApprovalProperties> {
...ResourceNameParameter<
Resource = AdminRequestApprovalsResource,
KeyName = "adminRequestApprovalId",
SegmentName = "adminRequestApprovals",
NamePattern = ""
>;
}

#suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@armResourceOperations
interface AdminRequestApprovalsResources {
/**
* Get open approval requests
*/
getAdminRequestApproval is ArmResourceRead<
AdminRequestApprovalsResource,
Parameters = {
/**
* The publisher id of this offer.
*/
@query("publisherId")
publisherId: string;
},
Error = ErrorResponse
>;

/**
* Update the admin action, weather the request is approved or rejected and the approved plans
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
updateAdminRequestApproval is Azure.ResourceManager.Legacy.CreateOrReplaceSync<
AdminRequestApprovalsResource,
Response = ArmResourceUpdatedResponse<AdminRequestApprovalsResource>,
OptionalRequestBody = true,
Error = ErrorResponse
>;

/**
* Get list of admin request approvals
*/
adminRequestApprovalsList is Azure.ResourceManager.Legacy.ArmListSinglePageByParent<
AdminRequestApprovalsResource,
Response = ArmResponse<AdminRequestApprovalsList>,
Error = ErrorResponse
>;
}

@@doc(AdminRequestApprovalsResource.name,
"The admin request approval ID to get create or update"
);
@@doc(AdminRequestApprovalsResource.properties,
"The privateStore admin Approval request data structure."
);
@@doc(AdminRequestApprovalsResources.updateAdminRequestApproval::parameters.resource,
""
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "./models.tsp";
import "./PrivateStore.tsp";

using TypeSpec.Rest;
using Azure.ResourceManager;
using TypeSpec.Http;
using TypeSpec.OpenAPI;

namespace Microsoft.Marketplace;
/**
* The Collection data structure.
*/
@parentResource(PrivateStore)
model Collection is Azure.ResourceManager.ProxyResource<CollectionProperties> {
...ResourceNameParameter<
Resource = Collection,
KeyName = "collectionId",
SegmentName = "collections",
NamePattern = ""
>;
}

@armResourceOperations
interface Collections {
/**
* Gets private store collection
*/
get is ArmResourceRead<Collection, Error = ErrorResponse>;

/**
* Create or update private store collection
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
createOrUpdate is Azure.ResourceManager.Legacy.CreateOrReplaceSync<
Collection,
Request = Collection,
Response = ArmResourceUpdatedResponse<Collection>,
Error = ErrorResponse,
OptionalRequestBody = true
>;

/**
* Delete a collection from the given private store.
*/
delete is ArmResourceDeleteSync<Collection, Error = ErrorResponse>;

/**
* Gets private store collections list
*/
list is Azure.ResourceManager.Legacy.ArmListSinglePageByParent<
Collection,
Response = ArmResponse<CollectionsList>,
Error = ErrorResponse
>;

/**
* Set rule for specific private store and collection
*/
@action("setRules")
setCollectionRules is ArmResourceActionSync<
Collection,
SetRulesRequest,
OkResponse,
OptionalRequestBody = true,
Error = ErrorResponse
>;

/**
* Get a list of all private store rules in the given private store and collection
*/
queryRules is ArmResourceActionSync<
Collection,
void,
ArmResponse<RuleListResponse>,
Error = ErrorResponse
>;

/**
* transferring offers (copy or move) from source collection to target collection(s)
*/
transferOffers is ArmResourceActionSync<
Collection,
TransferOffersProperties,
ArmResponse<TransferOffersResponse>,
OptionalRequestBody = true,
Error = ErrorResponse
>;

/**
* Delete all existing offers from the collection and enable approve all items.
*/
approveAllItems is ArmResourceActionSync<
Collection,
void,
ArmResponse<Collection>,
Error = ErrorResponse
>;

/**
* Disable approve all items for the collection.
*/
disableApproveAllItems is ArmResourceActionSync<
Collection,
void,
ArmResponse<Collection>,
Error = ErrorResponse
>;

/**
* Get a list of all offers in the given collection according to the required contexts.
*/
@action("mapOffersToContexts")
@list
listByContexts is ArmResourceActionSync<
Collection,
CollectionOffersByAllContextsPayload,
ArmResponse<CollectionOffersByContextList>,
OptionalRequestBody = true,
Error = ErrorResponse
>;
}

@@doc(Collection.name, "The collection ID");
@@doc(Collection.properties, "The collection data structure.");
@@doc(Collections.createOrUpdate::parameters.resource, "");
@@doc(Collections.setCollectionRules::parameters.body, "");
@@doc(Collections.transferOffers::parameters.body, "");
@@doc(Collections.listByContexts::parameters.body, "");
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "./models.tsp";
import "./Collection.tsp";

using TypeSpec.Rest;
using Azure.ResourceManager;
using TypeSpec.Http;
using TypeSpec.OpenAPI;

namespace Microsoft.Marketplace;
/**
* The privateStore offer data structure.
*/
@parentResource(Collection)
model Offer is Azure.ResourceManager.ProxyResource<OfferProperties> {
...ResourceNameParameter<
Resource = Offer,
KeyName = "offerId",
SegmentName = "offers",
NamePattern = ""
>;
}

@armResourceOperations
interface Offers {
/**
* Gets information about a specific offer.
*/
get is ArmResourceRead<Offer, Error = ErrorResponse>;

/**
* Update or add an offer to a specific collection of the private store.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
createOrUpdate is ArmResourceCreateOrReplaceSync<
Offer,
Response = ArmResourceUpdatedResponse<Offer>,
Error = ErrorResponse
>;

/**
* Deletes an offer from the given collection of private store.
*/
delete is ArmResourceDeleteSync<Offer, Error = ErrorResponse>;

/**
* Get a list of all private offers in the given private store and collection
*/
list is ArmResourceListByParent<
Offer,
Response = ArmResponse<OfferListResponse>,
Error = ErrorResponse
>;

/**
* Retrieve offer information with plans under required contexts restrictions.
*/
contextsView is ArmResourceActionSync<
Offer,
CollectionOffersByAllContextsPayload,
ArmResponse<Offer>,
OptionalRequestBody = true,
Error = ErrorResponse
>;

/**
* Upsert an offer with multiple context details.
*/
upsertOfferWithMultiContext is ArmResourceActionSync<
Offer,
MultiContextAndPlansPayload,
ArmResponse<Offer>,
OptionalRequestBody = true,
Error = ErrorResponse
>;
}

@@doc(Offer.name, "The offer ID to update or delete");
@@doc(Offer.properties, "The privateStore offer data structure.");
@@doc(Offers.createOrUpdate::parameters.resource, "");
@@doc(Offers.contextsView::parameters.body, "");
@@doc(Offers.upsertOfferWithMultiContext::parameters.body, "");
Loading
Loading