Skip to content
Open
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,88 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "@typespec/versioning";
import "./models.tsp";

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

namespace Microsoft.BillingBenefits;
/**
* Resource definition for Conditional Credits.
*/
@added(Versions.v2025_05_01_preview)
model ConditionalCredit
is Azure.ResourceManager.TrackedResource<ConditionalCreditProperties> {
...ResourceNameParameter<
Resource = ConditionalCredit,
KeyName = "conditionalCreditName",
SegmentName = "conditionalCredits",
NamePattern = "^[a-zA-Z0-9_\\-\\.]+$"
>;
}

@armResourceOperations
@added(Versions.v2025_05_01_preview)
interface ConditionalCredits {
/**
* Get a conditional credit.
*/
get is ArmResourceRead<ConditionalCredit>;

/**
* Create or update a conditional credit.
*/
createOrUpdate is ArmResourceCreateOrReplaceAsync<ConditionalCredit>;

/**
* Update a conditional credit.
*/
@patch(#{ implicitOptionality: false })
update is ArmCustomPatchAsync<
ConditionalCredit,
PatchModel = ConditionalCreditPatchRequest,
LroHeaders = ArmAsyncOperationHeader &
Azure.Core.Foundations.RetryAfterHeader &
ArmLroLocationHeader
>;

/**
* Delete a conditional credit.
*/
delete is ArmResourceDeleteWithoutOkAsync<
ConditionalCredit,
LroHeaders = ArmAsyncOperationHeader &
Azure.Core.Foundations.RetryAfterHeader &
ArmLroLocationHeader
>;

/**
* List conditional credits by resource group.
*/
listByResourceGroup is ArmResourceListByParent<
ConditionalCredit,
Response = ArmResponse<ConditionalCreditList>
>;

/**
* List conditional credits by subscription.
*/
listBySubscription is ArmListBySubscription<
ConditionalCredit,
Response = ArmResponse<ConditionalCreditList>
>;
}

@@doc(ConditionalCredit.name, "Name of the conditional credit");
@@doc(ConditionalCredit.properties, "Conditional credit properties");
@@doc(ConditionalCredits.createOrUpdate::parameters.resource,
"Request body for creating a conditional credit"
);
@@doc(ConditionalCredits.update::parameters.properties,
"Request body for updating a conditional credit"
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "@typespec/versioning";
import "./models.tsp";
import "./Macc.tsp";

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

namespace Microsoft.BillingBenefits;
/**
* MACC contributor
*/
@added(Versions.v2025_05_01_preview)
@parentResource(Macc)
model Contributor is Azure.ResourceManager.ProxyResource<MaccModelProperties> {
...ResourceNameParameter<
Resource = Contributor,
KeyName = "contributorName",
SegmentName = "contributors",
NamePattern = "^[a-zA-Z0-9_\\-\\.]+$"
>;
}

@added(Versions.v2025_05_01_preview)
@armResourceOperations
interface Contributors {
/**
* Get a contributor for primary service admin
*/
getFromPrimary is ArmResourceRead<Contributor>;

/**
* List contributors under a MACC for primary service admin
*/
listFromPrimary is ArmResourceListByParent<
Contributor,
Response = ArmResponse<ContributorList>
>;
}

@@doc(Contributor.name,
"Unique name of contributor in the format {contributorCloudSubId}_{resourceGroupName}_{nameInContributorTenant}."
);
@@doc(Contributor.properties, "MACC contributor properties");
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "@typespec/versioning";
import "./models.tsp";

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

namespace Microsoft.BillingBenefits;
/**
* Credit resource definition
*/
@added(Versions.v2025_05_01_preview)
model Credit is Azure.ResourceManager.TrackedResource<CreditProperties> {
...ResourceNameParameter<
Resource = Credit,
KeyName = "creditName",
SegmentName = "credits",
NamePattern = "^[a-zA-Z0-9_\\-\\.]+$"
>;
}

@armResourceOperations
@added(Versions.v2025_05_01_preview)
interface Credits {
/**
* Get a credit.
*/
get is ArmResourceRead<Credit>;

/**
* Create a credit.
*/
create is ArmResourceCreateOrReplaceAsync<Credit>;

/**
* Update a credit.
*/
@patch(#{ implicitOptionality: false })
update is ArmCustomPatchAsync<
Credit,
PatchModel = CreditPatchRequest,
LroHeaders = ArmAsyncOperationHeader &
Azure.Core.Foundations.RetryAfterHeader &
ArmLroLocationHeader
>;

/**
* Delete a credit.
*/
delete is ArmResourceDeleteWithoutOkAsync<Credit>;

/**
* List Credits under a resource group from primary service admin.
*/
listByResourceGroup is ArmResourceListByParent<
Credit,
Response = ArmResponse<CreditsList>
>;

/**
* List credits under a subscription from primary service tenant.
*/
listBySubscription is ArmListBySubscription<
Credit,
Response = ArmResponse<CreditsList>
>;

/**
* Cancels a credit.
*/
cancel is ArmResourceActionAsync<Credit, void, ArmResponse<Credit>>;
}

@@doc(Credit.name, "Name of the credit");
@@doc(Credit.properties, "Credit properties");
@@doc(Credits.create::parameters.resource, "Credit create request");
@@doc(Credits.update::parameters.properties, "Credit patch request");
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "@typespec/versioning";
import "./models.tsp";
import "./Credit.tsp";

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

namespace Microsoft.BillingBenefits;
/**
* Credit source resource definition
*/
@added(Versions.v2025_05_01_preview)
@parentResource(Credit)
model CreditSource
is Azure.ResourceManager.TrackedResource<CreditSourceProperties> {
...ResourceNameParameter<
Resource = CreditSource,
KeyName = "sourceName",
SegmentName = "sources",
NamePattern = "^[a-zA-Z0-9_\\-\\.]+$"
>;
}

@armResourceOperations
@added(Versions.v2025_05_01_preview)
interface CreditSources {
/**
* Get a credit source.
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations"
@operationId("Sources_Get")
get is ArmResourceRead<CreditSource>;

/**
* Create a credit source.
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations"
@operationId("Sources_Create")
create is ArmResourceCreateOrReplaceSync<CreditSource>;

/**
* Update a credit source.
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations"
@patch(#{ implicitOptionality: false })
@operationId("Sources_Update")
update is ArmCustomPatchSync<
CreditSource,
PatchModel = CreditSourcePatchRequest
>;

/**
* Delete a credit source.
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations"
@operationId("Sources_Delete")
delete is ArmResourceDeleteSync<CreditSource>;

/**
* List credit sources for a credit under a resource group from primary service admin.
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations"
@operationId("Sources_ListByCredit")
listByCredit is ArmResourceListByParent<
CreditSource,
Response = ArmResponse<CreditSourcesList>
>;
}

@@doc(CreditSource.name, "Name of the credit source");
@@doc(CreditSource.properties, "Credit source properties");
@@doc(CreditSources.create::parameters.resource,
"Credit source create request"
);
@@doc(CreditSources.update::parameters.properties,
"Credit source patch request"
);
Loading
Loading