Resources/mgmt-plane/L3N1YnNjcmlwdGlvbnMve30vcmVzb3VyY2Vncm91cHMve30vcHJvdmlkZXJzL21pY3Jvc29mdC5jb25maWRlbnRpYWxsZWRnZXIvbGVkZ2Vycy97fQ==/2024-09-19-preview.xml (961 lines of code) (raw):
<?xml version='1.0' encoding='utf-8'?>
<CodeGen plane="mgmt-plane">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.confidentialledger/ledgers/{}" version="2024-09-19-preview" swagger="mgmt-plane/confidentialledger/ResourceProviders/Microsoft.ConfidentialLedger/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29uZmlkZW50aWFsTGVkZ2VyL2xlZGdlcnMve2xlZGdlck5hbWV9/V/MjAyNC0wOS0xOS1wcmV2aWV3"/>
<commandGroup name="confidentialledger">
<command name="show" version="2024-09-19-preview" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.confidentialledger/ledgers/{}" version="2024-09-19-preview" swagger="mgmt-plane/confidentialledger/ResourceProviders/Microsoft.ConfidentialLedger/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29uZmlkZW50aWFsTGVkZ2VyL2xlZGdlcnMve2xlZGdlck5hbWV9/V/MjAyNC0wOS0xOS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.ledgerName" options="ledger-name name n" required="True" idPart="name">
<help short="Name of the Confidential Ledger"/>
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<operation operationId="Ledger_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ConfidentialLedger/ledgers/{ledgerName}">
<request method="get">
<path>
<param type="string" name="ledgerName" arg="$Path.ledgerName" required="True">
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-09-19-preview""/>
<format minLength="1"/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ConfidentialLedger/ledgers/{}"/>
</prop>
<prop type="ResourceLocation" name="location" required="True"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties">
<prop type="array<object>" name="aadBasedSecurityPrincipals" identifiers="principalId">
<item type="object">
<prop type="string" name="ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
<prop type="string" name="principalId"/>
<prop type="string" name="tenantId"/>
</item>
</prop>
<prop type="string" name="applicationType">
<enum>
<item value=""CodeTransparency""/>
<item value=""ConfidentialLedger""/>
</enum>
</prop>
<prop type="array<object>" name="certBasedSecurityPrincipals">
<item type="object">
<prop type="string" name="cert"/>
<prop type="string" name="ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
</item>
</prop>
<prop type="string" name="enclavePlatform">
<enum>
<item value=""AmdSevSnp""/>
<item value=""IntelSgx""/>
</enum>
</prop>
<prop type="string" name="hostLevel"/>
<prop readOnly="True" type="string" name="identityServiceUri"/>
<prop readOnly="True" type="string" name="ledgerInternalNamespace"/>
<prop readOnly="True" type="string" name="ledgerName"/>
<prop type="string" name="ledgerSku">
<enum>
<item value=""Basic""/>
<item value=""Standard""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="ledgerType">
<enum>
<item value=""Private""/>
<item value=""Public""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="ledgerUri"/>
<prop type="integer32" name="maxBodySizeInMb"/>
<prop type="integer32" name="nodeCount"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Unknown""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="string" name="runningState">
<enum>
<item value=""Active""/>
<item value=""Paused""/>
<item value=""Pausing""/>
<item value=""Resuming""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="subjectName"/>
<prop type="integer32" name="workerThreads"/>
<prop type="string" name="writeLBAddressPrefix"/>
</prop>
<prop readOnly="True" type="object" name="systemData">
<prop type="dateTime" name="createdAt"/>
<prop type="string" name="createdBy"/>
<prop type="string" name="createdByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
<prop type="dateTime" name="lastModifiedAt"/>
<prop type="string" name="lastModifiedBy"/>
<prop type="string" name="lastModifiedByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="delete" version="2024-09-19-preview" confirmation="Are you sure you want to perform this operation?">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.confidentialledger/ledgers/{}" version="2024-09-19-preview" swagger="mgmt-plane/confidentialledger/ResourceProviders/Microsoft.ConfidentialLedger/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29uZmlkZW50aWFsTGVkZ2VyL2xlZGdlcnMve2xlZGdlck5hbWV9/V/MjAyNC0wOS0xOS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.ledgerName" options="ledger-name name n" required="True" idPart="name">
<help short="Name of the Confidential Ledger"/>
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<operation operationId="Ledger_Delete">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ConfidentialLedger/ledgers/{ledgerName}">
<request method="delete">
<path>
<param type="string" name="ledgerName" arg="$Path.ledgerName" required="True">
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-09-19-preview""/>
<format minLength="1"/>
</const>
</query>
</request>
<response statusCode="200"/>
<response statusCode="202"/>
<response statusCode="204"/>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
</command>
<command name="create" version="2024-09-19-preview" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.confidentialledger/ledgers/{}" version="2024-09-19-preview" swagger="mgmt-plane/confidentialledger/ResourceProviders/Microsoft.ConfidentialLedger/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29uZmlkZW50aWFsTGVkZ2VyL2xlZGdlcnMve2xlZGdlck5hbWV9/V/MjAyNC0wOS0xOS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.ledgerName" options="ledger-name name n" required="True" idPart="name">
<help short="Name of the Confidential Ledger"/>
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<argGroup name="ConfidentialLedger">
<arg type="ResourceLocation" var="$confidentialLedger.location" options="location l" required="True" group="ConfidentialLedger">
<help short="The geo-location where the resource lives"/>
</arg>
<arg type="object" var="$confidentialLedger.tags" options="tags" group="ConfidentialLedger">
<help short="Resource tags."/>
<additionalProp>
<item type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="Properties">
<arg type="array<object>" var="$confidentialLedger.properties.aadBasedSecurityPrincipals" options="aad-based-security-principals aad-based-users" group="Properties">
<help short="Array of all AAD based Security Principals."/>
<item type="object">
<arg type="string" var="$confidentialLedger.properties.aadBasedSecurityPrincipals[].ledgerRoleName" options="ledger-role-name">
<help short="LedgerRole associated with the Security Principal of Ledger"/>
<enum>
<item name="Administrator" value=""Administrator""/>
<item name="Contributor" value=""Contributor""/>
<item name="Reader" value=""Reader""/>
</enum>
</arg>
<arg type="string" var="$confidentialLedger.properties.aadBasedSecurityPrincipals[].principalId" options="principal-id">
<help short="UUID/GUID based Principal Id of the Security Principal"/>
</arg>
<arg type="string" var="$confidentialLedger.properties.aadBasedSecurityPrincipals[].tenantId" options="tenant-id">
<help short="UUID/GUID based Tenant Id of the Security Principal"/>
</arg>
</item>
</arg>
<arg type="string" var="$confidentialLedger.properties.applicationType" options="application-type" group="Properties">
<help short="Application type of the Confidential Ledger."/>
<enum>
<item name="CodeTransparency" value=""CodeTransparency""/>
<item name="ConfidentialLedger" value=""ConfidentialLedger""/>
</enum>
</arg>
<arg type="array<object>" var="$confidentialLedger.properties.certBasedSecurityPrincipals" options="cert-based-security-principals cert-based-users" group="Properties">
<help short="Array of all cert based Security Principals."/>
<item type="object">
<arg type="string" var="$confidentialLedger.properties.certBasedSecurityPrincipals[].cert" options="cert">
<help short="Public key of the user cert (.pem or .cer)"/>
</arg>
<arg type="string" var="$confidentialLedger.properties.certBasedSecurityPrincipals[].ledgerRoleName" options="ledger-role-name">
<help short="LedgerRole associated with the Security Principal of Ledger"/>
<enum>
<item name="Administrator" value=""Administrator""/>
<item name="Contributor" value=""Contributor""/>
<item name="Reader" value=""Reader""/>
</enum>
</arg>
</item>
</arg>
<arg type="string" var="$confidentialLedger.properties.enclavePlatform" options="enclave-platform" group="Properties">
<help short="Enclave platform of the Confidential Ledger."/>
<enum>
<item name="AmdSevSnp" value=""AmdSevSnp""/>
<item name="IntelSgx" value=""IntelSgx""/>
</enum>
</arg>
<arg type="string" var="$confidentialLedger.properties.hostLevel" options="host-level" group="Properties">
<help short="CCF Property for the logging level for the untrusted host: Trace, Debug, Info, Fail, Fatal."/>
</arg>
<arg type="string" var="$confidentialLedger.properties.ledgerSku" options="ledger-sku" group="Properties">
<help short="SKU associated with the ledger"/>
<enum>
<item name="Basic" value=""Basic""/>
<item name="Standard" value=""Standard""/>
<item name="Unknown" value=""Unknown""/>
</enum>
</arg>
<arg type="string" var="$confidentialLedger.properties.ledgerType" options="ledger-type" group="Properties">
<help short="Type of Confidential Ledger"/>
<enum>
<item name="Private" value=""Private""/>
<item name="Public" value=""Public""/>
<item name="Unknown" value=""Unknown""/>
</enum>
</arg>
<arg type="integer32" var="$confidentialLedger.properties.maxBodySizeInMb" options="max-body-size-in-mb" group="Properties">
<help short="CCF Property for the maximum size of the http request body: 1MB, 5MB, 10MB."/>
</arg>
<arg type="integer32" var="$confidentialLedger.properties.nodeCount" options="node-count" group="Properties">
<help short="Number of CCF nodes in the ACC Ledger."/>
</arg>
<arg type="string" var="$confidentialLedger.properties.runningState" options="running-state" group="Properties">
<help short="Object representing RunningState for Ledger."/>
<enum>
<item name="Active" value=""Active""/>
<item name="Paused" value=""Paused""/>
<item name="Pausing" value=""Pausing""/>
<item name="Resuming" value=""Resuming""/>
<item name="Unknown" value=""Unknown""/>
</enum>
</arg>
<arg type="string" var="$confidentialLedger.properties.subjectName" options="subject-name" group="Properties">
<help short="CCF Property for the subject name to include in the node certificate. Default: CN=CCF Node."/>
</arg>
<arg type="integer32" var="$confidentialLedger.properties.workerThreads" options="worker-threads" group="Properties">
<help short="Number of additional threads processing incoming client requests in the enclave (modify with care!)"/>
</arg>
<arg type="string" var="$confidentialLedger.properties.writeLBAddressPrefix" options="write-lb-address-prefix write-lb-prefix" group="Properties">
<help short="Prefix for the write load balancer. Example: write"/>
</arg>
</argGroup>
<operation operationId="Ledger_Create">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ConfidentialLedger/ledgers/{ledgerName}">
<request method="put">
<path>
<param type="string" name="ledgerName" arg="$Path.ledgerName" required="True">
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-09-19-preview""/>
<format minLength="1"/>
</const>
</query>
<body>
<json>
<schema type="object" name="confidentialLedger" required="True" clientFlatten="True">
<prop type="ResourceLocation" name="location" arg="$confidentialLedger.location" required="True"/>
<prop type="object" name="properties">
<prop type="array<object>" name="aadBasedSecurityPrincipals" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals" identifiers="principalId">
<item type="object">
<prop type="string" name="ledgerRoleName" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals[].ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
<prop type="string" name="principalId" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals[].principalId"/>
<prop type="string" name="tenantId" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals[].tenantId"/>
</item>
</prop>
<prop type="string" name="applicationType" arg="$confidentialLedger.properties.applicationType">
<enum>
<item value=""CodeTransparency""/>
<item value=""ConfidentialLedger""/>
</enum>
</prop>
<prop type="array<object>" name="certBasedSecurityPrincipals" arg="$confidentialLedger.properties.certBasedSecurityPrincipals">
<item type="object">
<prop type="string" name="cert" arg="$confidentialLedger.properties.certBasedSecurityPrincipals[].cert"/>
<prop type="string" name="ledgerRoleName" arg="$confidentialLedger.properties.certBasedSecurityPrincipals[].ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
</item>
</prop>
<prop type="string" name="enclavePlatform" arg="$confidentialLedger.properties.enclavePlatform">
<enum>
<item value=""AmdSevSnp""/>
<item value=""IntelSgx""/>
</enum>
</prop>
<prop type="string" name="hostLevel" arg="$confidentialLedger.properties.hostLevel"/>
<prop type="string" name="ledgerSku" arg="$confidentialLedger.properties.ledgerSku">
<enum>
<item value=""Basic""/>
<item value=""Standard""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="ledgerType" arg="$confidentialLedger.properties.ledgerType">
<enum>
<item value=""Private""/>
<item value=""Public""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="integer32" name="maxBodySizeInMb" arg="$confidentialLedger.properties.maxBodySizeInMb"/>
<prop type="integer32" name="nodeCount" arg="$confidentialLedger.properties.nodeCount"/>
<prop type="string" name="runningState" arg="$confidentialLedger.properties.runningState">
<enum>
<item value=""Active""/>
<item value=""Paused""/>
<item value=""Pausing""/>
<item value=""Resuming""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="subjectName" arg="$confidentialLedger.properties.subjectName"/>
<prop type="integer32" name="workerThreads" arg="$confidentialLedger.properties.workerThreads"/>
<prop type="string" name="writeLBAddressPrefix" arg="$confidentialLedger.properties.writeLBAddressPrefix"/>
</prop>
<prop type="object" name="tags" arg="$confidentialLedger.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="object">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ConfidentialLedger/ledgers/{}"/>
</prop>
<prop type="ResourceLocation" name="location" required="True"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties">
<prop type="array<object>" name="aadBasedSecurityPrincipals" identifiers="principalId">
<item type="object">
<prop type="string" name="ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
<prop type="string" name="principalId"/>
<prop type="string" name="tenantId"/>
</item>
</prop>
<prop type="string" name="applicationType">
<enum>
<item value=""CodeTransparency""/>
<item value=""ConfidentialLedger""/>
</enum>
</prop>
<prop type="array<object>" name="certBasedSecurityPrincipals">
<item type="object">
<prop type="string" name="cert"/>
<prop type="string" name="ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
</item>
</prop>
<prop type="string" name="enclavePlatform">
<enum>
<item value=""AmdSevSnp""/>
<item value=""IntelSgx""/>
</enum>
</prop>
<prop type="string" name="hostLevel"/>
<prop readOnly="True" type="string" name="identityServiceUri"/>
<prop readOnly="True" type="string" name="ledgerInternalNamespace"/>
<prop readOnly="True" type="string" name="ledgerName"/>
<prop type="string" name="ledgerSku">
<enum>
<item value=""Basic""/>
<item value=""Standard""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="ledgerType">
<enum>
<item value=""Private""/>
<item value=""Public""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="ledgerUri"/>
<prop type="integer32" name="maxBodySizeInMb"/>
<prop type="integer32" name="nodeCount"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Unknown""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="string" name="runningState">
<enum>
<item value=""Active""/>
<item value=""Paused""/>
<item value=""Pausing""/>
<item value=""Resuming""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="subjectName"/>
<prop type="integer32" name="workerThreads"/>
<prop type="string" name="writeLBAddressPrefix"/>
</prop>
<prop readOnly="True" type="object" name="systemData">
<prop type="dateTime" name="createdAt"/>
<prop type="string" name="createdBy"/>
<prop type="string" name="createdByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
<prop type="dateTime" name="lastModifiedAt"/>
<prop type="string" name="lastModifiedBy"/>
<prop type="string" name="lastModifiedByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
<command name="update" version="2024-09-19-preview" confirmation="">
<resource id="/subscriptions/{}/resourcegroups/{}/providers/microsoft.confidentialledger/ledgers/{}" version="2024-09-19-preview" swagger="mgmt-plane/confidentialledger/ResourceProviders/Microsoft.ConfidentialLedger/Paths/L3N1YnNjcmlwdGlvbnMve3N1YnNjcmlwdGlvbklkfS9yZXNvdXJjZUdyb3Vwcy97cmVzb3VyY2VHcm91cE5hbWV9L3Byb3ZpZGVycy9NaWNyb3NvZnQuQ29uZmlkZW50aWFsTGVkZ2VyL2xlZGdlcnMve2xlZGdlck5hbWV9/V/MjAyNC0wOS0xOS1wcmV2aWV3"/>
<argGroup name="">
<arg type="string" var="$Path.ledgerName" options="ledger-name name n" required="True" idPart="name">
<help short="Name of the Confidential Ledger"/>
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</arg>
<arg type="ResourceGroupName" var="$Path.resourceGroupName" options="resource-group g" required="True" idPart="resource_group"/>
<arg type="SubscriptionId" var="$Path.subscriptionId" options="subscription" required="True" idPart="subscription"/>
</argGroup>
<argGroup name="ConfidentialLedger">
<arg nullable="True" type="object" var="$confidentialLedger.tags" options="tags" group="ConfidentialLedger">
<help short="Resource tags."/>
<additionalProp>
<item nullable="True" type="string"/>
</additionalProp>
</arg>
</argGroup>
<argGroup name="Properties">
<arg nullable="True" type="array<object>" var="$confidentialLedger.properties.aadBasedSecurityPrincipals" options="aad-based-security-principals aad-based-users" group="Properties">
<help short="Array of all AAD based Security Principals."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="$confidentialLedger.properties.aadBasedSecurityPrincipals[].ledgerRoleName" options="ledger-role-name">
<help short="LedgerRole associated with the Security Principal of Ledger"/>
<enum>
<item name="Administrator" value=""Administrator""/>
<item name="Contributor" value=""Contributor""/>
<item name="Reader" value=""Reader""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.aadBasedSecurityPrincipals[].principalId" options="principal-id">
<help short="UUID/GUID based Principal Id of the Security Principal"/>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.aadBasedSecurityPrincipals[].tenantId" options="tenant-id">
<help short="UUID/GUID based Tenant Id of the Security Principal"/>
</arg>
</item>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.applicationType" options="application-type" group="Properties">
<help short="Application type of the Confidential Ledger."/>
<enum>
<item name="CodeTransparency" value=""CodeTransparency""/>
<item name="ConfidentialLedger" value=""ConfidentialLedger""/>
</enum>
</arg>
<arg nullable="True" type="array<object>" var="$confidentialLedger.properties.certBasedSecurityPrincipals" options="cert-based-security-principals cert-based-users" group="Properties">
<help short="Array of all cert based Security Principals."/>
<item nullable="True" type="object">
<arg nullable="True" type="string" var="$confidentialLedger.properties.certBasedSecurityPrincipals[].cert" options="cert">
<help short="Public key of the user cert (.pem or .cer)"/>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.certBasedSecurityPrincipals[].ledgerRoleName" options="ledger-role-name">
<help short="LedgerRole associated with the Security Principal of Ledger"/>
<enum>
<item name="Administrator" value=""Administrator""/>
<item name="Contributor" value=""Contributor""/>
<item name="Reader" value=""Reader""/>
</enum>
</arg>
</item>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.enclavePlatform" options="enclave-platform" group="Properties">
<help short="Enclave platform of the Confidential Ledger."/>
<enum>
<item name="AmdSevSnp" value=""AmdSevSnp""/>
<item name="IntelSgx" value=""IntelSgx""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.hostLevel" options="host-level" group="Properties">
<help short="CCF Property for the logging level for the untrusted host: Trace, Debug, Info, Fail, Fatal."/>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.ledgerSku" options="ledger-sku" group="Properties">
<help short="SKU associated with the ledger"/>
<enum>
<item name="Basic" value=""Basic""/>
<item name="Standard" value=""Standard""/>
<item name="Unknown" value=""Unknown""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.ledgerType" options="ledger-type" group="Properties">
<help short="Type of Confidential Ledger"/>
<enum>
<item name="Private" value=""Private""/>
<item name="Public" value=""Public""/>
<item name="Unknown" value=""Unknown""/>
</enum>
</arg>
<arg nullable="True" type="integer32" var="$confidentialLedger.properties.maxBodySizeInMb" options="max-body-size-in-mb" group="Properties">
<help short="CCF Property for the maximum size of the http request body: 1MB, 5MB, 10MB."/>
</arg>
<arg nullable="True" type="integer32" var="$confidentialLedger.properties.nodeCount" options="node-count" group="Properties">
<help short="Number of CCF nodes in the ACC Ledger."/>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.runningState" options="running-state" group="Properties">
<help short="Object representing RunningState for Ledger."/>
<enum>
<item name="Active" value=""Active""/>
<item name="Paused" value=""Paused""/>
<item name="Pausing" value=""Pausing""/>
<item name="Resuming" value=""Resuming""/>
<item name="Unknown" value=""Unknown""/>
</enum>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.subjectName" options="subject-name" group="Properties">
<help short="CCF Property for the subject name to include in the node certificate. Default: CN=CCF Node."/>
</arg>
<arg nullable="True" type="integer32" var="$confidentialLedger.properties.workerThreads" options="worker-threads" group="Properties">
<help short="Number of additional threads processing incoming client requests in the enclave (modify with care!)"/>
</arg>
<arg nullable="True" type="string" var="$confidentialLedger.properties.writeLBAddressPrefix" options="write-lb-address-prefix write-lb-prefix" group="Properties">
<help short="Prefix for the write load balancer. Example: write"/>
</arg>
</argGroup>
<operation operationId="Ledger_Get">
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ConfidentialLedger/ledgers/{ledgerName}">
<request method="get">
<path>
<param type="string" name="ledgerName" arg="$Path.ledgerName" required="True">
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-09-19-preview""/>
<format minLength="1"/>
</const>
</query>
</request>
<response statusCode="200">
<body>
<json var="$Instance">
<schema type="object" cls="ConfidentialLedger_read">
<prop readOnly="True" type="ResourceId" name="id">
<format template="/subscriptions/{}/resourceGroups/{}/providers/Microsoft.ConfidentialLedger/ledgers/{}"/>
</prop>
<prop type="ResourceLocation" name="location" required="True"/>
<prop readOnly="True" type="string" name="name"/>
<prop type="object" name="properties">
<prop type="array<object>" name="aadBasedSecurityPrincipals" identifiers="principalId">
<item type="object">
<prop type="string" name="ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
<prop type="string" name="principalId"/>
<prop type="string" name="tenantId"/>
</item>
</prop>
<prop type="string" name="applicationType">
<enum>
<item value=""CodeTransparency""/>
<item value=""ConfidentialLedger""/>
</enum>
</prop>
<prop type="array<object>" name="certBasedSecurityPrincipals">
<item type="object">
<prop type="string" name="cert"/>
<prop type="string" name="ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
</item>
</prop>
<prop type="string" name="enclavePlatform">
<enum>
<item value=""AmdSevSnp""/>
<item value=""IntelSgx""/>
</enum>
</prop>
<prop type="string" name="hostLevel"/>
<prop readOnly="True" type="string" name="identityServiceUri"/>
<prop readOnly="True" type="string" name="ledgerInternalNamespace"/>
<prop readOnly="True" type="string" name="ledgerName"/>
<prop type="string" name="ledgerSku">
<enum>
<item value=""Basic""/>
<item value=""Standard""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="ledgerType">
<enum>
<item value=""Private""/>
<item value=""Public""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop readOnly="True" type="string" name="ledgerUri"/>
<prop type="integer32" name="maxBodySizeInMb"/>
<prop type="integer32" name="nodeCount"/>
<prop readOnly="True" type="string" name="provisioningState">
<enum>
<item value=""Canceled""/>
<item value=""Creating""/>
<item value=""Deleting""/>
<item value=""Failed""/>
<item value=""Succeeded""/>
<item value=""Unknown""/>
<item value=""Updating""/>
</enum>
</prop>
<prop type="string" name="runningState">
<enum>
<item value=""Active""/>
<item value=""Paused""/>
<item value=""Pausing""/>
<item value=""Resuming""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="subjectName"/>
<prop type="integer32" name="workerThreads"/>
<prop type="string" name="writeLBAddressPrefix"/>
</prop>
<prop readOnly="True" type="object" name="systemData">
<prop type="dateTime" name="createdAt"/>
<prop type="string" name="createdBy"/>
<prop type="string" name="createdByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
<prop type="dateTime" name="lastModifiedAt"/>
<prop type="string" name="lastModifiedBy"/>
<prop type="string" name="lastModifiedByType">
<enum>
<item value=""Application""/>
<item value=""Key""/>
<item value=""ManagedIdentity""/>
<item value=""User""/>
</enum>
</prop>
</prop>
<prop type="object" name="tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
<prop readOnly="True" type="string" name="type"/>
</schema>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<operation>
<instanceUpdate ref="$Instance">
<json>
<schema type="object" name="confidentialLedger" required="True" clientFlatten="True">
<prop type="object" name="properties">
<prop type="array<object>" name="aadBasedSecurityPrincipals" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals" identifiers="principalId">
<item type="object">
<prop type="string" name="ledgerRoleName" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals[].ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
<prop type="string" name="principalId" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals[].principalId"/>
<prop type="string" name="tenantId" arg="$confidentialLedger.properties.aadBasedSecurityPrincipals[].tenantId"/>
</item>
</prop>
<prop type="string" name="applicationType" arg="$confidentialLedger.properties.applicationType">
<enum>
<item value=""CodeTransparency""/>
<item value=""ConfidentialLedger""/>
</enum>
</prop>
<prop type="array<object>" name="certBasedSecurityPrincipals" arg="$confidentialLedger.properties.certBasedSecurityPrincipals">
<item type="object">
<prop type="string" name="cert" arg="$confidentialLedger.properties.certBasedSecurityPrincipals[].cert"/>
<prop type="string" name="ledgerRoleName" arg="$confidentialLedger.properties.certBasedSecurityPrincipals[].ledgerRoleName">
<enum>
<item value=""Administrator""/>
<item value=""Contributor""/>
<item value=""Reader""/>
</enum>
</prop>
</item>
</prop>
<prop type="string" name="enclavePlatform" arg="$confidentialLedger.properties.enclavePlatform">
<enum>
<item value=""AmdSevSnp""/>
<item value=""IntelSgx""/>
</enum>
</prop>
<prop type="string" name="hostLevel" arg="$confidentialLedger.properties.hostLevel"/>
<prop type="string" name="ledgerSku" arg="$confidentialLedger.properties.ledgerSku">
<enum>
<item value=""Basic""/>
<item value=""Standard""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="ledgerType" arg="$confidentialLedger.properties.ledgerType">
<enum>
<item value=""Private""/>
<item value=""Public""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="integer32" name="maxBodySizeInMb" arg="$confidentialLedger.properties.maxBodySizeInMb"/>
<prop type="integer32" name="nodeCount" arg="$confidentialLedger.properties.nodeCount"/>
<prop type="string" name="runningState" arg="$confidentialLedger.properties.runningState">
<enum>
<item value=""Active""/>
<item value=""Paused""/>
<item value=""Pausing""/>
<item value=""Resuming""/>
<item value=""Unknown""/>
</enum>
</prop>
<prop type="string" name="subjectName" arg="$confidentialLedger.properties.subjectName"/>
<prop type="integer32" name="workerThreads" arg="$confidentialLedger.properties.workerThreads"/>
<prop type="string" name="writeLBAddressPrefix" arg="$confidentialLedger.properties.writeLBAddressPrefix"/>
</prop>
<prop type="object" name="tags" arg="$confidentialLedger.tags">
<additionalProp>
<item type="string"/>
</additionalProp>
</prop>
</schema>
</json>
</instanceUpdate>
</operation>
<operation operationId="Ledger_Create">
<longRunning finalStateVia="azure-async-operation"/>
<http path="/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ConfidentialLedger/ledgers/{ledgerName}">
<request method="put">
<path>
<param type="string" name="ledgerName" arg="$Path.ledgerName" required="True">
<format pattern="^[^-0-9][A-Za-z0-9-]{1,33}[A-Za-z0-9]$"/>
</param>
<param type="string" name="resourceGroupName" arg="$Path.resourceGroupName" required="True">
<format maxLength="90" minLength="1"/>
</param>
<param type="string" name="subscriptionId" arg="$Path.subscriptionId" required="True">
<format minLength="1"/>
</param>
</path>
<query>
<const readOnly="True" const="True" type="string" name="api-version" required="True">
<default value=""2024-09-19-preview""/>
<format minLength="1"/>
</const>
</query>
<body>
<json ref="$Instance"/>
</body>
</request>
<response statusCode="200 201">
<body>
<json var="$Instance">
<schema type="@ConfidentialLedger_read"/>
</json>
</body>
</response>
<response isError="True">
<body>
<json>
<schema type="@MgmtErrorFormat"/>
</json>
</body>
</response>
</http>
</operation>
<output type="object" ref="$Instance" clientFlatten="True"/>
</command>
</commandGroup>
</CodeGen>