verify-layer: cloud exports (AWS ECS/EC2/Lambda, Azure VMs/Container Instances/Container Apps/Web Apps, GCP Compute Engine/Cloud Run) read from the operator's own CLI export, never from an account; fixtures derived from the vendors' documented examples; a real account is unmeasured and the README says so

This commit is contained in:
Aere Network 2026-10-18 14:12:00 +03:00
parent ea695dcf32
commit ac14880703
49 changed files with 10080 additions and 17 deletions

View File

@ -12,17 +12,21 @@ wrote it.
Paths that DO resolve are written relative to a side-by-side checkout of the Aere repositories, so they begin with a
repository name, for example `aere-contracts/contracts/pqc/AereCryptoRegistry.sol`.
Unresolvable distinct paths in this repository: **12**.
Unresolvable distinct paths in this repository: **16**.
- `ContainerApps_ListBySubscription.json` cited in: aere-quantum/verify-layer/fixturi-cloud/README.md
- `VirtualMachine_List_MaximumSet_Gen.json` cited in: aere-quantum/verify-layer/fixturi-cloud/README.md
- `addresses.txt` cited in: aere-quantum/exposure-report/README.md
- `antete.mjs` cited in: aere-quantum/exposure-report/README.md
- `btc/antete.mjs` cited in: aere-quantum/exposure-report/README.md
- `data/audit.log` cited in: aere-quantum/pq-kms/README.md
- `data/root-check.json` cited in: aere-quantum/pq-kms/README.md
- `fixturi-cloud/deriva.mjs` cited in: aere-quantum/README.md
- `libs.versions.toml` cited in: aere-quantum/crypto-inventory/README.md
- `plic-aip23.json` cited in: aere-quantum/exposure-report/README.md
- `proba-client-real.mjs` cited in: aere-quantum/readiness/README.md
- `raport.json` cited in: aere-quantum/exposure-report/README.md
- `raport.md` cited in: aere-quantum/exposure-report/README.md
- `src/azure-cli/azure/cli/command_modules/vm/custom.py` cited in: aere-quantum/verify-layer/fixturi-cloud/README.md
- `verify.mjs` cited in: aere-quantum/exposure-report/README.md
- `wallet.json` cited in: aere-quantum/agents/x402/README.md

View File

@ -11,7 +11,7 @@ notarization command of the verification layer and for the agents' x402 wallet (
| [`pq-kms/`](pq-kms/) | a transit-style key management service where every key is hybrid: X25519 + ML-KEM-768 for encryption, Ed25519 + ML-DSA-65 for signatures (both halves required); versions, rotation, rewrap, data keys, a chained audit log; the root key from the environment or sealed by an HSM through PKCS#11 |
| [`pq-pki/`](pq-pki/) | a private certificate authority for ML-DSA (X.509 v3, RFC 9881): root and issuing CAs, leaf certificates, revocation lists, and a strict chain verifier compared against OpenSSL |
| [`crypto-inventory/`](crypto-inventory/) | a cryptographic inventory of source code (JavaScript/TypeScript, Python, Java, Kotlin, Swift, Go, Rust, PEM blocks, dependency manifests including Cargo.toml, Package.swift, Podfile and Gradle): every use classified by its exposure to a quantum computer, with a migration target, written as a CycloneDX 1.6 CBOM; nothing from the scanned tree is executed, and its cost stays linear on input built to be slow |
| [`verify-layer/`](verify-layer/) | an audit-log sidecar for any deployment: entries are AIP-23 envelopes in a hash chain, the runtime adapter records every running Docker or Kubernetes container without any secret value, and the head of the chain can be signed by the operator (ML-DSA-65) and notarized on Aere Network under a post-quantum validator certificate; it says plainly what that proves (the history before a published head) and what it does not (that the host told the truth); the same log as a Merkle tree (RFC 9162): signed tree heads, and inclusion and consistency proofs of a few hashes that anyone checks without the log |
| [`verify-layer/`](verify-layer/) | an audit-log sidecar for any deployment: entries are AIP-23 envelopes in a hash chain, the runtime adapter records every running Docker or Kubernetes container without any secret value, and from 2026-10-18 the same for what the operator's own cloud CLI exports (AWS ECS, EC2, Lambda; Azure VMs, Container Instances, Container Apps, Web Apps; GCP Compute Engine, Cloud Run), read from the export file and never from an account, and the head of the chain can be signed by the operator (ML-DSA-65) and notarized on Aere Network under a post-quantum validator certificate; it says plainly what that proves (the history before a published head) and what it does not (that the host told the truth); the same log as a Merkle tree (RFC 9162): signed tree heads, and inclusion and consistency proofs of a few hashes that anyone checks without the log |
| [`proof-kinds/`](proof-kinds/) | the AIP-23 envelope builder the verification layer uses: fourteen proof kinds, one envelope format, digests instead of raw content |
| [`readiness/`](readiness/) | the post-quantum readiness scanner of a public hostname: real TLS handshakes (hybrid only, hybrid preferred, TLS 1.2), HSTS, the certificate; no connection to an address not proven public; a rate limit per client that X-Forwarded-For cannot bypass |
| [`control-plane/`](control-plane/) | from findings to a finished migration: a prioritized plan from the inventory and the scanner, its execution through the gateway, KMS and PKI with consent per action and a measured proof afterwards, recipes for the servers the products do not touch and a rescan that judges them, a compliance report against NIST IR 8547, the EU roadmap and optionally CNSA 2.0, and a console that checks it all again |
@ -40,7 +40,7 @@ test, counts as a failure of the control. Results measured on 2026-09-29 (Node.j
| pq-kms | 62/62 (`node test/proba.mjs`); HSM root on SoftHSM2 + OpenSC 20/20 (`pq-kms/test/proba-hsm.mjs`, Linux); sealed-file trust rules 7/7 (`pq-kms/test/proba-hsm-incredere.mjs`) | 16/16 (`node test/control-negativ.mjs`); sealed-file rules 2/2 in this repository (`pq-kms/test/control-negativ-hsm-incredere.mjs`) |
| pq-pki | 27/27 (`node test/proba.mjs`), each verdict compared with OpenSSL 3.5 | 22/22 (`node test/control-negativ.mjs`) |
| crypto-inventory | 68/68 (`node test/proba.mjs`, measured 2026-10-18 with the Rust, Swift and Kotlin detectors, glob imports, libcrux, BoringSSL, the libsignal Java/Node/Swift/Android APIs, CryptoKit, CommonCrypto, Security.framework, Android Keystore, Tink and OkHttp included); cost on hostile input 13/13 linear (`node test/proba-timp.mjs`) | 35/35 (`node test/control-negativ.mjs`); cost 5/5 in this repository (`node test/control-negativ-timp.mjs`; its fourth case compares with version 0.1.0 from the development history and is skipped here) |
| verify-layer | 45/45 with the AIP-23 reference verifier, measured 2026-10-05 (`AERE_VERIFY_PROOF=<verify-proof.mjs from aere.network/tools> node proba-sidecar.mjs`); without it 40 run, 5 are reported as skipped and the exit code is 2; the Merkle tree 20/20 (`node proba-arbore.mjs`: the reference roots of Certificate Transparency, every proof up to 64 leaves, each attack), measured 2026-09-30 | 10/10 in this repository on 2026-10-05 (`node control-negativ-sidecar.mjs`; its eleventh case compares with the version from the development history and is skipped here); the tree 14/14 (`node control-negativ-arbore.mjs`) |
| verify-layer | 45/45 with the AIP-23 reference verifier, measured 2026-10-05 (`AERE_VERIFY_PROOF=<verify-proof.mjs from aere.network/tools> node proba-sidecar.mjs`); without it 40 run, 5 are reported as skipped and the exit code is 2; the cloud adapters 60/60 on 2026-10-18 (`node proba-adaptoare-cloud.mjs`: nine fixtures derived from the vendors' documented CLI and REST examples by `fixturi-cloud/deriva.mjs`; a real account is unmeasured and the README says so); the Merkle tree 20/20 (`node proba-arbore.mjs`: the reference roots of Certificate Transparency, every proof up to 64 leaves, each attack), measured 2026-09-30 | 38/38 in this repository on 2026-10-18 (`node control-negativ-sidecar.mjs`: the ten original plantings plus the cloud adapter rules; the case that compares with the development history is skipped here); the tree 14/14 (`node control-negativ-arbore.mjs`) |
| proof-kinds | 24/24 with the same verifier (`AERE_VERIFY_PROOF=... node proba-proof-kinds.mjs`) | six negative controls inside the test |
| readiness | 6/6 (`node proba-adrese-private.mjs`: the private-address rules, and a local listener no scan may touch) | the rate limit and the queue bound are tested where the service runs, not here (its README says so) |
| control-plane | planner 44/44 (2026-10-18: a key agreement or a client-side TLS configured by the application itself is not routed to the TLS gateway; a self-signed trust anchor is blocked, not "automatic through PKI"; test code is LOW with its own scope), command line 10/10, execution 30/30 on real products started locally, remediation 33/33 on real TLS servers (all five server profiles measured end to end on 2026-10-18: nginx, Apache, HAProxy, Node, Go), compliance report 30/30 (with the AIP-23 verifier; test-code findings are counted apart and are not "exposed today"), console 8/8; the console viewer in a real Chromium, phone and desktop, 26/26 (`node proba-consola-web.mjs`, measured 2026-09-30; needs `playwright-core` and a Chromium, otherwise it exits 2) | remediation 7/7, compliance report 3/3 in this repository; viewer 8/8 (`node control-negativ-consola-web.mjs`) |
@ -62,4 +62,4 @@ interface, command line and data (`definePolicy`, `verifyLedger`, `approve`, ...
## Licence
MIT, see [LICENSE](LICENSE). Files: 904 (pq-gateway 9, pq-kms 10, pq-pki 6, crypto-inventory 73, verify-layer 12, proof-kinds 3, control-plane 27, agents 39, identity 24, proof-of-ai 3, ai-trust 6, verifiable-data 7, market-settlement 9, payments 8, conformance 631, device-identity 11, exposure-report 18, readiness 4).
MIT, see [LICENSE](LICENSE). Files: 948 (pq-gateway 9, pq-kms 10, pq-pki 6, crypto-inventory 73, verify-layer 56, proof-kinds 3, control-plane 27, agents 39, identity 24, proof-of-ai 3, ai-trust 6, verifiable-data 7, market-settlement 9, payments 8, conformance 631, device-identity 11, exposure-report 18, readiness 4).

View File

@ -38,6 +38,7 @@ head you hold from outside the host, with the signer you expect, never on its ow
node sidecar.mjs record --kind deployment --name <name> --version <v> --content-file <file> [--host h] [--log p] [--at T]
node sidecar.mjs record --kind proof --proof-file <envelope.json> # any AIP-23 envelope, after checking its form and hash
node sidecar.mjs scan --source docker|kubernetes --input <export.json> [--host h] [--log p]
node sidecar.mjs scan --source aws-ecs|aws-ec2|aws-lambda|azure-vm|azure-container|azure-containerapp|azure-webapp|gcp-compute|gcp-run --input <export.json> [--task-definitions <f>]
node sidecar.mjs verify-log --log p [--attested head.json [--signer head.pub.pem]] # 0 intact (and continues the head), 1 broken or not continued
node sidecar.mjs attest-head --log p [--host h] [--out head.json] [--sign-key head.key.pem] # the head as an aere-audit-head envelope
node sidecar.mjs keygen --out <dir> # the operator's ML-DSA-65 head key (head.key.pem 0600, head.pub.pem)
@ -69,6 +70,59 @@ container, or one that is not in the expected shape, is refused rather than reco
A hash does not hide a guessable secret: if a password is passed on a command line, anyone who knows the rest of the command
can test guesses against `commandSha256`. Pass secrets through files or the environment, not arguments.
## Cloud exports (2026-10-18)
The same adapter, in the same honest form, for the workloads a cloud runs for you: the operator makes the export **with the vendor's
own CLI and their own credentials, on their own machine**; the sidecar reads the file. The sidecar holds no cloud credential and
calls no cloud API. These adapters are measured on the outputs **as the vendors document them** (`fixturi-cloud/`, every file an exact
copy of a documented example or, for GCP, a form built from the documented schema), **not on a live account**: Aere Network has no
AWS, Azure or GCP account. What a live export carries beyond the documented example is handled as documented and is NOT MEASURED;
a test account at each vendor is what it would take to measure it.
aws ecs describe-tasks --cluster C --tasks $(aws ecs list-tasks --cluster C --query 'taskArns' --output text) > tasks.json
aws ecs describe-task-definition --task-definition <family:revision> > def.json # one per task definition in use
node sidecar.mjs scan --source aws-ecs --input tasks.json --task-definitions def.json # def.json may hold one output or a JSON list of them
aws ec2 describe-instances > ec2.json; node sidecar.mjs scan --source aws-ec2 --input ec2.json
aws lambda list-functions > lambda.json; node sidecar.mjs scan --source aws-lambda --input lambda.json
az vm list -d > vm.json; node sidecar.mjs scan --source azure-vm --input vm.json
az container show -g G -n N > aci.json (collect several into a JSON array); node sidecar.mjs scan --source azure-container --input aci.json
az containerapp list > aca.json; node sidecar.mjs scan --source azure-containerapp --input aca.json
az webapp list --show-details > web.json; node sidecar.mjs scan --source azure-webapp --input web.json
gcloud compute instances list --format=json > gce.json; node sidecar.mjs scan --source gcp-compute --input gce.json
gcloud run services list --format=json > run.json; node sidecar.mjs scan --source gcp-run --input run.json
What each adapter reads, and what it refuses:
- **Only what the export says is running.** ECS: tasks and containers with `lastStatus` `RUNNING`; EC2: `State.Name` `running`;
Azure VM: `powerState` `VM running` (the field `-d` adds; an export without it is refused, it does not say whether a machine runs);
Container Instances: `containers[].instanceView.currentState.state` `Running` (`az container list` may omit `instanceView`; such an
export is refused and `az container show` is asked for); Container Apps: `runningStatus` `Running` (`Progressing`, `Stopped`,
`Suspended` and `Ready`, which the API enumerates without defining, do not count); App Service: `state` `Running`; Compute
Engine: `status` `RUNNING`; Cloud Run: the `Ready` condition `True`. Lambda is the exception the vendor documents: `list-functions`
does not return `State`, so every function listed is recorded as deployed with `state: not-in-export`; when the export carries
`State` (from `get-function-configuration`), only `Active` functions enter.
- **A file that is not the named CLI's output is refused by name** (`the input is not the output of \`aws ecs describe-tasks\``),
as is an export with no running workload: a zero is not recorded.
- **Identity.** The image with its digest when the export has one (`imageIdentity: digest`: an ECS `imageDigest`, an image given as
`name@sha256:...` on Container Instances, Container Apps or Cloud Run); otherwise the id of the machine or service and the image or
runtime the export declares, marked `imageIdentity: declared` (an AMI id, an Azure `imageReference`, a GCE boot disk and its
licenses, a `DOCKER|image` or `NODE|20-lts` runtime); Lambda carries `CodeSha256`, the digest of its package (`codeSha256`). An
entry's name is the region or zone and the workload's own identifiers (`ecs:cluster/task/container`, `ec2:region/instance`,
`lambda:region/function`, `azvm:group/name`, `aci:group/name/container`, `aca:group/app/container`, `azwebapp:group/site`,
`gce:zone/name`, `run:region/service/container`), and its version the digest when there is one.
- **Names only, never values.** Environment variables enter as their names (ECS: `environment` and `secrets` of the task definition
plus `overrides`; Lambda: the keys of `Environment.Variables`; Container Instances: `environmentVariables`, neither `value` nor
`secureValue`; Container Apps: `env`, with `secretRef` names, never `configuration.secrets`; App Service: `appSettings` and
`connectionStrings` names; Cloud Run: `env`, never `value` or `valueFrom`). EC2 tags, Azure tags, GCE labels and GCE metadata enter
as keys (`startup-script`, `user-data`, `ssh-keys` live in metadata, with values the adapter never copies). `customData` and
`userData` of a VM, the admin user, SSH keys, registry credentials, IP addresses and host names are **not copied at all**; an
ECS secret's `valueFrom` ARN is not copied either. Where the export does not carry the names (ECS tasks without their task
definition, a site listed without `--show-details`), the descriptor says so (`envSource: not-in-export`, `siteConfigInExport:
false`) instead of pretending.
As with Docker and Kubernetes, an entry proves that the export *declared* the workload, at the time the operator says: the vendor's
API answered the operator, and the operator handed the file to the sidecar. Nothing here checks the export against the vendor.
## Notarization
`notarize-head` reads the chain id from the RPC endpoint (it does not trust an argument), refuses an attestation whose
@ -111,7 +165,8 @@ other, so both verify commands then say whether each head is signed and by which
## Tests
node proba-sidecar.mjs # 45 checks
node control-negativ-sidecar.mjs # puts each guard back to its absent form and requires the named check to fail
node proba-adaptoare-cloud.mjs # 60: the nine cloud adapters on the documented exports (fixturi-cloud/)
node control-negativ-sidecar.mjs # puts each guard back to its absent form and requires the named check to fail (11 + 27 cloud plantings)
node proba-arbore.mjs # 20: the tree (the reference roots of Certificate Transparency for 1..8 leaves, every proof up to 64 leaves, each attack)
node control-negativ-arbore.mjs # 14 guards removed in a copy, each turns its named test red
@ -133,6 +188,16 @@ comparison, the length check, the attestation hash check, the handling of an unr
the head signature check, the comparison with `--signer`, the refusal of an unsigned head when `--signer` is given).
`proba-notarizare-testnet.mjs --key-file <testnet key>` repeats the on-chain run above (9 checks, it needs a funded testnet key).
`proba-adaptoare-cloud.mjs` (2026-10-18) runs every cloud adapter on the documented export, on the same export with one stopped
workload added, and on the same export with environment values planted (`fixturi-cloud/`, derived by `deriva.mjs` from the exact
copies in `fixturi-cloud/surse/`, and compared with them at every run): it requires exactly the running workloads with their
identities, no planted value anywhere in the log or the descriptors (and the names present, as the positive control), another CLI's
export refused by name, every descriptor re-hashing to the digest in its envelope, and every envelope `VALID` for the reference
verifier. `control-negativ-sidecar.mjs` adds three plantings per adapter (the running filter removed, the names replaced by the
name/value pairs, the shape check removed) and requires each to turn its named check red: measured 38 of 38 on 2026-10-18. The
adapters are producers, not verifiers, so they name no rule of the conformance suite (`conformance/`), whose rules are those of the
log and tree verifiers, unchanged.
**Corrected on 2026-10-03.** Until then the check of a head's signature required the DECLARED scheme to be `ml-dsa-65` but not
the key to be an ML-DSA-65 key: a head signed with an Ed25519, RSA or P-256 key that declared `ml-dsa-65` was reported as a head
signed with ML-DSA-65. Found while this verifier was enrolled in the conformance suite (`conformance/`), where it is now a vector.
@ -141,7 +206,6 @@ consistency check now also carries a rule id from a declared list (`REGULI` in `
## What it is not (yet)
It does not report to a live console over the network, and it has no per-cloud adapters that read deployments from the AWS,
Azure or GCP APIs with credentials: the runtime adapter above, without credentials, is the first one. It signs heads, not
each entry, and the host name in an entry is still a declaration. No third party
has reviewed it.
It does not report to a live console over the network. Its per-cloud adapters (2026-10-18) read the operator's CLI export: no
credentials, no live API calls, and they are measured on the vendors' documented outputs, not on a live account (none is held).
It signs heads, not each entry, and the host name in an entry is still a declaration. No third party has reviewed it.

View File

@ -11,6 +11,14 @@
// P7 semnatura capului nu se mai verifica (punctul 34, 2026-09-29) -> S CONTROL (semnatura stricata) rosu
// P8 semnatarul capului nu se mai compara cu --signer -> S CONTROL (alta cheie) rosu
// P9 un cap nesemnat trece cand --signer il cere semnat -> S CONTROL (nesemnat) rosu
// P10 o cheie clasica sub schema ml-dsa-65 trece (2026-10-03) -> S CONTROL (cheie clasica) rosu
// B15 (2026-10-18), adaptoarele pe furnizori de cloud, masurate cu proba-adaptoare-cloud.mjs pe aceeasi copie plantata, trei
// plantari pe adaptor (9 adaptoare, 27 de plantari):
// PR-<src> filtrul "ruleaza" scos: incarcatura OPRITA intra in jurnal -> "<src>: incarcatura OPRITA" rosu
// PN-<src> numele variabilelor inlocuite cu perechile nume=valoare: valoarea ajunge in jurnal -> "<src>: CONFIDENTIALITATE" rosu
// PF-<src> validarea formei scoasa: exportul altui CLI nu mai e refuzat PE NUME -> "<src>: CONTROL: export de alt CLI" rosu
// Plantarile cloud ruleaza fara verificatorul AIP-23 (AERE_VERIFY_PROOF pe o cale inexistenta): verificarea de VALID nu e tinta lor si
// ar dubla timpul; proba iese tot 1 cand are o verificare rosie.
// Copiile stau LANGA original (importul lui proof-kinds e relativ) si se sterg; originalul trebuie sa ramana octet cu octet.
// node control-negativ-sidecar.mjs -> 0 toate prinse, 1 una scapata, 2 STRICAT
import crypto from 'node:crypto';
@ -22,6 +30,7 @@ import { fileURLToPath } from 'node:url';
const AICI = path.dirname(fileURLToPath(import.meta.url));
const SRC = path.join(AICI, 'sidecar.mjs');
const PROBA = path.join(AICI, 'proba-sidecar.mjs');
const PROBA_CLOUD = path.join(AICI, 'proba-adaptoare-cloud.mjs');
const REV = process.env.AERE_SIDECAR_REV_VECHE || 'b2b08a5e';
const sha = (f) => crypto.createHash('sha256').update(fs.readFileSync(f)).digest('hex');
const inainte = sha(SRC);
@ -39,22 +48,23 @@ const T = {
nesemnat: 'S CONTROL: un cap nesemnat',
cheieClasica: 'S CONTROL: un cap semnat cu o cheie clasica',
};
const SUMAR = { [PROBA]: /B3 sidecar \(verify layer\): \d+\/\d+ cum trebuia/, [PROBA_CLOUD]: /B15 adaptoare cloud: \d+\/\d+ cum trebuia/ };
function caz(id, text, tinte) {
function caz(id, text, tinte, proba = PROBA, env = {}) {
total++;
const copie = path.join(AICI, `.plantat-sidecar-${id}.mjs`);
try {
fs.writeFileSync(copie, text);
const r = spawnSync(process.execPath, [PROBA], { encoding: 'utf8', timeout: 400000, env: { ...process.env, AERE_SIDECAR_MODUL: copie } });
const r = spawnSync(process.execPath, [proba], { encoding: 'utf8', timeout: 400000, env: { ...process.env, AERE_SIDECAR_MODUL: copie, ...env } });
const out = (r.stdout || '') + (r.stderr || '');
if (!/B3 sidecar \(verify layer\): \d+\/\d+ cum trebuia/.test(out) || !out.includes(copie)) { stricate++; console.log(` STRICAT ${id}: proba nu a ajuns la capat pe copie (${out.trim().split('\n').pop()?.slice(0, 140)})`); return; }
if (!SUMAR[proba].test(out) || !out.includes(copie)) { stricate++; console.log(` STRICAT ${id}: proba nu a ajuns la capat pe copie (${out.trim().split('\n').pop()?.slice(0, 140)})`); return; }
const rosii = out.split('\n').filter((l) => l.includes('[RAU ]'));
const lipsa = tinte.filter((x) => !rosii.some((l) => l.includes(x)));
if (r.status === 1 && !lipsa.length) { prinse++; console.log(` PRINS ${id}: ${rosii.length} verificari rosii, intre ele: ${tinte.map((t) => t.split(':')[0]).join(', ')}`); }
else console.log(` SCAPAT ${id}: cod ${r.status}, au ramas verzi: ${lipsa.join(' | ') || '-'}`);
} finally { fs.rmSync(copie, { force: true }); fs.rmSync(copie + '.lock', { force: true }); }
}
const planta = (t, a, b) => (t.split(a).length === 2 ? t.replace(a, b) : null);
const planta = (t, a, b) => (t.split(a).length === 2 ? t.replace(a, () => b) : null);
const CALE = `${REV}:tools/aere-verify-layer/sidecar.mjs`;
if (spawnSync('git', ['cat-file', '-e', CALE], { cwd: AICI }).status !== 0) console.log(` SARIT V0: revizia ${REV} nu e in istoricul acestui depozit; NEMASURAT aici`);
@ -84,6 +94,36 @@ for (const [id, a, b, tinte] of P) {
if (!t) { stricate++; total++; console.log(` STRICAT ${id}: ancora nu apare exact o data`); continue; }
caz(id, t, tinte);
}
// ---- B15: adaptoarele pe furnizori de cloud ---------------------------------------------------------------------------------------
// scurgerea de nume -> valori: ancora e chiar apelul care reduce lista la nume, inlocuit cu lista intreaga (perechi nume/valoare)
const SCURGERI = {
'aws-ecs': ['numeDin([...(cd?.environment || []), ...(cd?.secrets || []), ...(over?.environment || [])] /*NUME:aws-ecs*/)', '[...(cd?.environment || []), ...(over?.environment || [])]'],
'aws-ec2': ["numeDin(i.Tags, 'Key' /*NUME:aws-ec2*/)", '(i.Tags || [])'],
'aws-lambda': ['Object.keys(f.Environment?.Variables || {}).sort() /*NUME:aws-lambda*/', '(f.Environment?.Variables || {})'],
'azure-vm': ['tagKeys: Object.keys(v.tags || {}).sort() /*NUME:azure-vm*/,', 'tagKeys: v.tags || {}, customData: v.osProfile?.customData || null,'],
'azure-container': ['numeDin(c.environmentVariables /*NUME:azure-container*/)', '(c.environmentVariables || [])'],
'azure-containerapp': ['numeDin(c.env /*NUME:azure-containerapp*/)', '(c.env || [])'],
'azure-webapp': ['numeDin(sc?.appSettings /*NUME:azure-webapp*/)', '(sc?.appSettings || [])'],
'gcp-compute': ["numeDin(i.metadata?.items, 'key' /*NUME:gcp-compute*/)", '(i.metadata?.items || [])'],
'gcp-run': ['numeDin(c.env /*NUME:gcp-run*/)', '(c.env || [])'],
};
const FARA_VERIFICATOR = { AERE_VERIFY_PROOF: path.join(AICI, 'nu-exista-verify-proof.mjs') };
for (const src of Object.keys(SCURGERI)) {
const PC = [
[`PR-${src}`, `/*RULEAZA:${src}*/))`, `/*RULEAZA:${src}*/) && ${NU})`, [`${src}: incarcatura OPRITA`]],
[`PN-${src}`, SCURGERI[src][0], SCURGERI[src][1], [`${src}: CONFIDENTIALITATE`]],
[`PF-${src}`, `/*FORMA:${src}*/))`, `/*FORMA:${src}*/) && ${NU})`, [`${src}: CONTROL: export de alt CLI`]],
];
for (const [id, a, b, tinte] of PC) {
let t = planta(nou, a, b);
// ECS filtreaza pe doua niveluri (task si container), si un task STOPPED are si containerele STOPPED: filtrul scos inseamna
// amandoua (masurat 2026-10-18: cu numai nivelul de task scos, plantarea era mascata de cel de container si SCAPA)
if (t && id === 'PR-aws-ecs') t = planta(t, '/*RULEAZA:aws-ecs-container*/))', `/*RULEAZA:aws-ecs-container*/) && ${NU})`);
if (!t) { stricate++; total++; console.log(` STRICAT ${id}: ancora nu apare exact o data`); continue; }
caz(id, t, tinte, PROBA_CLOUD, FARA_VERIFICATOR);
}
}
const ramase = fs.readdirSync(AICI).filter((f) => f.startsWith('.plantat-sidecar-'));
if (sha(SRC) !== inainte || ramase.length) { stricate++; console.log(' STRICAT originalul s-a schimbat sau au ramas copii: ' + ramase.join(',')); }
console.log(`\ncontrolul negativ al sidecar-ului: prinse ${prinse}/${total}, stricate ${stricate}`);

View File

@ -0,0 +1,73 @@
# Cloud export fixtures (B15, 2026-10-18)
The per-cloud adapters of `sidecar scan` are measured on these files, **not on a live account**: Aere Network holds no AWS, Azure or
GCP account (a decision of the founder, about money), so what an adapter reads is the output of each CLI **as its vendor documents
it**. Every file under `surse/` is an exact copy of an example published in that documentation, or, where the documentation
publishes no example output, a form built from the documented schema and named `din-schema` (from the schema). Everything else in
this directory is **derived** from those sources by `deriva.mjs`, deterministically; `node deriva.mjs --verifica` compares the files on
disk with what the code derives now, and `proba-adaptoare-cloud.mjs` does the same at every run.
**NOT MEASURED: the output of a real account.** A field a CLI emits only on a live resource and not in its documented example (for
example the `imageDigest` of an ECS container, the `instanceView` that `az container show` carries and `az container list` may not,
the `State` that `aws lambda list-functions` does not return) is handled as the documentation describes it, and that handling has not
been run against a live export. To measure it, a test account at each vendor is needed (a decision of the founder); until then every
statement about these adapters is a statement about the documented shapes.
## Sources (`surse/`), read on 2026-10-18
| file | what it is | where it was read |
| --- | --- | --- |
| `aws-ecs-describe-tasks.json` | Example 1 of `aws ecs describe-tasks` ("To describe a single task"), copied exactly | docs.aws.amazon.com/cli/latest/reference/ecs/describe-tasks.html, page titled "AWS CLI 2.38.1 Command Reference" |
| `aws-ecs-describe-task-definition.json` | the example output of `aws ecs describe-task-definition`, copied exactly (it carries a plaintext `MYSQL_ROOT_PASSWORD` value, the vendor's own example; the adapter drops it) | docs.aws.amazon.com/cli/latest/reference/ecs/describe-task-definition.html |
| `aws-ec2-describe-instances.json` | Example 1 of `aws ec2 describe-instances`, copied exactly (including the vendor's `"PrivateIpAddress": "10-0-0-157"`) | docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html |
| `aws-lambda-list-functions.json` | the example output of `aws lambda list-functions`, copied exactly; the page's note says `State` and `LastUpdateStatus` are not returned by this call | docs.aws.amazon.com/cli/latest/reference/lambda/list-functions.html |
| `azure-vm-list-rest-2026-04-01.json` | `VirtualMachine_List_MaximumSet_Gen.json`, the example the REST reference "Virtual Machines - List" is generated from (api-version 2026-04-01), as published in Azure/azure-rest-api-specs | github.com/Azure/azure-rest-api-specs, `specification/compute/resource-manager/Microsoft.Compute/Compute/stable/2026-04-01/examples/virtualMachineExamples/` |
| `azure-container-groups-list-rest-2026-07-01.json` | the sample response of "Container Groups - List" (api-version 2026-07-01), copied exactly | learn.microsoft.com/en-us/rest/api/container-instances/container-groups/list |
| `azure-containerapps-list-rest-2026-07-01.json` | `ContainerApps_ListBySubscription.json` (api-version 2026-07-01), as published in Azure/azure-rest-api-specs | github.com/Azure/azure-rest-api-specs, `specification/app/resource-manager/Microsoft.App/ContainerApps/stable/2026-07-01/examples/` |
| `azure-webapps-list-rest-2024-11-01.json` | the sample response of "Web Apps - List" (api-version 2024-11-01), copied exactly | learn.microsoft.com/en-us/rest/api/appservice/web-apps/list |
| `gcp-compute-instances-din-schema.json` | **built from the schema**, not a published sample: the Compute Engine API has no example output for `gcloud compute instances list --format=json`; fields and the `status` values are those of the `Instance` resource (compute v1) | docs.cloud.google.com/compute/docs/reference/rest/v1/instances (schema as rendered in the generated client reference), docs.cloud.google.com/compute/docs/instances/instance-lifecycle (states), docs.cloud.google.com/compute/docs/metadata/predefined-metadata-keys |
| `gcp-run-services-din-schema.json` | **built from the schema**, not a published sample: a `serving.knative.dev/v1` Service as the Cloud Run YAML reference and the Admin API v1 describe it (`cloud.googleapis.com/location` label, `status.conditions[].type == "Ready"`) | docs.cloud.google.com/run/docs/reference/yaml/v1 (last updated 2026-10-13), docs.cloud.google.com/run/docs/reference/rest/v1/namespaces.services, docs.cloud.google.com/run/docs/reference/rest/v1/Container |
How the CLI shapes relate to the REST samples (the derivation applies exactly this):
- `az vm list -d`: the Azure CLI returns the ARM resource with `properties` flattened into the object; `--show-details` adds
`powerState` (the `displayStatus` of the `PowerState/*` entry of `instanceView.statuses`, so `"VM running"`), `publicIps`, `fqdns`,
`privateIps`, `macAddresses`, and removes `instanceView` (read in `src/azure-cli/azure/cli/command_modules/vm/custom.py`,
`get_vm_details`, github.com/Azure/azure-cli, branch dev, 2026-10-18). The REST sample has no power state, so the derived CLI
form sets `powerState` itself.
- `az container list` / `az container show`: `properties` flattened at the group and at each container; the state of a container is
`containers[].instanceView.currentState.state` (the restart-policy guide reads it exactly so, page dated 2026-07-25). The REST
list sample has no `instanceView`; the derived CLI form adds it in the shape `ContainerPropertiesInstanceView` documents.
- `az containerapp list`: the containerapp extension returns the ARM resource with `properties` nested; `runningStatus` is read-only
with values `Progressing`, `Running`, `Stopped`, `Suspended`, `Ready` (openapi.json 2026-07-01). The adapter counts only `Running`.
- `az webapp list --show-details`: `properties` flattened; `state` is `Running` or `Stopped` (the command reference's own example is
`az webapp list --query "[?state=='Running']"`, page dated 2026-09-01). The derived CLI form gives the first site a
`linuxFxVersion` of the `DOCKER|image` form, which the REST sample leaves empty.
- `gcloud ... --format=json` "lists the resource in json format" (gcloud topic formats, last updated 2026-10-06): the files are arrays
of the resource.
## Derived files
For every source `<src>`: `<src>.json` (the CLI form), `<src>.oprita.json` (the same plus one workload that is **not running**: a
STOPPED task, a stopped instance, an `Inactive` function, a deallocated VM, a `Terminated` container, a `Stopped` container app, a
`Stopped` site, a `TERMINATED` instance, a service whose `Ready` condition is `False`), `<src>.secrete.json` (the same with
environment variables **with values** planted, `AERE-SINTETIC-...`, synthetic by construction: in task definitions and overrides,
`Environment.Variables`, VM `customData`/`userData`/tags, ACI `environmentVariables` (`value` and `secureValue`), container app `env`
and `configuration.secrets`, site `appSettings`/`connectionStrings`, instance `metadata` (`user-data`, `startup-script`), Cloud Run `env`).
`aws-ecs.definitii.json` is the task definition aligned to the task of the ECS example (the vendor's two examples do not share a task
definition ARN); `azure-vm.fara-d.json` and `azure-container.fara-stare.json` are the exports **without** the field that says whether
the workload runs, which the adapters refuse by name.
The test requires, for each adapter: the running workloads only (the planted stopped one never enters the log), the identities
exactly, no planted value anywhere in the log or in the descriptors (and the variable **names** present, as the positive control),
another CLI's export refused by name, every descriptor re-hashing to the digest in its envelope, and every envelope `VALID` for the
AIP-23 reference verifier.
## Declared change to the Microsoft example (2026-10-18)
`surse/azure-webapps-list-rest-2024-11-01.json` is the published "Web Apps - List" example with ONE declared change: its four public IP
addresses in `outboundIpAddresses` / `possibleOutboundIpAddresses` (Microsoft's, not ours, and not read by the adapter) are replaced with
RFC 5737 documentation addresses (203.0.113.x, 198.51.100.x). Reason: this repository's publication gate refuses any file that lists three
or more public IP addresses together (it cannot tell a vendor's example from an infrastructure map), and we keep that gate strict rather
than give a folder an exception. Everything else in the source is byte for byte the published example; the derived fixtures carry the same
replacement through `deriva.mjs`.

View File

@ -0,0 +1,154 @@
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0abcdef1234567890",
"InstanceId": "i-1234567890abcdef0",
"InstanceType": "t3.nano",
"KeyName": "my-key-pair",
"LaunchTime": "2022-11-15T10:48:59+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "us-east-2a",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"ProductCodes": [],
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIpAddress": "34.253.223.13",
"State": {
"Code": 16,
"Name": "running"
},
"StateTransitionReason": "",
"SubnetId": "subnet-04a636d18e83cfacb",
"VpcId": "vpc-1234567890abcdef0",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2022-11-15T10:49:00+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-02e6ccdca7de29cf2"
}
}
],
"ClientToken": "1234abcd-1234-abcd-1234-d46a8903e9bc",
"EbsOptimized": true,
"EnaSupport": true,
"Hypervisor": "xen",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::111111111111:instance-profile/AmazonSSMRoleForInstancesQuickSetup",
"Id": "111111111111111111111"
},
"NetworkInterfaces": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Attachment": {
"AttachTime": "2022-11-15T10:48:59+00:00",
"AttachmentId": "eni-attach-1234567890abcdefg",
"DeleteOnTermination": true,
"DeviceIndex": 0,
"Status": "attached",
"NetworkCardIndex": 0
},
"Description": "",
"Groups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"Ipv6Addresses": [],
"MacAddress": "00:11:22:33:44:55",
"NetworkInterfaceId": "eni-1234567890abcdefg",
"OwnerId": "104024344472",
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"PrivateIpAddresses": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Primary": true,
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157"
}
],
"SourceDestCheck": true,
"Status": "in-use",
"SubnetId": "subnet-1234567890abcdefg",
"VpcId": "vpc-1234567890abcdefg",
"InterfaceType": "interface"
}
],
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SecurityGroups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"SourceDestCheck": true,
"Tags": [
{
"Key": "Name",
"Value": "my-instance"
}
],
"VirtualizationType": "hvm",
"CpuOptions": {
"CoreCount": 1,
"ThreadsPerCore": 2
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "open"
},
"HibernationOptions": {
"Configured": false
},
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
},
"EnclaveOptions": {
"Enabled": false
},
"PlatformDetails": "Linux/UNIX",
"UsageOperation": "RunInstances",
"UsageOperationUpdateTime": "2022-11-15T10:48:59+00:00",
"PrivateDnsNameOptions": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": true,
"EnableResourceNameDnsAAAARecord": false
},
"MaintenanceOptions": {
"AutoRecovery": "default"
}
}
],
"OwnerId": "111111111111",
"ReservationId": "r-1234567890abcdefg"
}
]
}

View File

@ -0,0 +1,297 @@
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0abcdef1234567890",
"InstanceId": "i-1234567890abcdef0",
"InstanceType": "t3.nano",
"KeyName": "my-key-pair",
"LaunchTime": "2022-11-15T10:48:59+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "us-east-2a",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"ProductCodes": [],
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIpAddress": "34.253.223.13",
"State": {
"Code": 16,
"Name": "running"
},
"StateTransitionReason": "",
"SubnetId": "subnet-04a636d18e83cfacb",
"VpcId": "vpc-1234567890abcdef0",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2022-11-15T10:49:00+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-02e6ccdca7de29cf2"
}
}
],
"ClientToken": "1234abcd-1234-abcd-1234-d46a8903e9bc",
"EbsOptimized": true,
"EnaSupport": true,
"Hypervisor": "xen",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::111111111111:instance-profile/AmazonSSMRoleForInstancesQuickSetup",
"Id": "111111111111111111111"
},
"NetworkInterfaces": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Attachment": {
"AttachTime": "2022-11-15T10:48:59+00:00",
"AttachmentId": "eni-attach-1234567890abcdefg",
"DeleteOnTermination": true,
"DeviceIndex": 0,
"Status": "attached",
"NetworkCardIndex": 0
},
"Description": "",
"Groups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"Ipv6Addresses": [],
"MacAddress": "00:11:22:33:44:55",
"NetworkInterfaceId": "eni-1234567890abcdefg",
"OwnerId": "104024344472",
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"PrivateIpAddresses": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Primary": true,
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157"
}
],
"SourceDestCheck": true,
"Status": "in-use",
"SubnetId": "subnet-1234567890abcdefg",
"VpcId": "vpc-1234567890abcdefg",
"InterfaceType": "interface"
}
],
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SecurityGroups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"SourceDestCheck": true,
"Tags": [
{
"Key": "Name",
"Value": "my-instance"
}
],
"VirtualizationType": "hvm",
"CpuOptions": {
"CoreCount": 1,
"ThreadsPerCore": 2
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "open"
},
"HibernationOptions": {
"Configured": false
},
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
},
"EnclaveOptions": {
"Enabled": false
},
"PlatformDetails": "Linux/UNIX",
"UsageOperation": "RunInstances",
"UsageOperationUpdateTime": "2022-11-15T10:48:59+00:00",
"PrivateDnsNameOptions": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": true,
"EnableResourceNameDnsAAAARecord": false
},
"MaintenanceOptions": {
"AutoRecovery": "default"
}
},
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0abcdef1234567890",
"InstanceId": "i-0000000000oprita00",
"InstanceType": "t3.nano",
"KeyName": "my-key-pair",
"LaunchTime": "2022-11-15T10:48:59+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "us-east-2a",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"ProductCodes": [],
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIpAddress": "34.253.223.13",
"State": {
"Code": 80,
"Name": "stopped"
},
"StateTransitionReason": "User initiated (2026-10-17 20:00:00 GMT)",
"SubnetId": "subnet-04a636d18e83cfacb",
"VpcId": "vpc-1234567890abcdef0",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2022-11-15T10:49:00+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-02e6ccdca7de29cf2"
}
}
],
"ClientToken": "1234abcd-1234-abcd-1234-d46a8903e9bc",
"EbsOptimized": true,
"EnaSupport": true,
"Hypervisor": "xen",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::111111111111:instance-profile/AmazonSSMRoleForInstancesQuickSetup",
"Id": "111111111111111111111"
},
"NetworkInterfaces": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Attachment": {
"AttachTime": "2022-11-15T10:48:59+00:00",
"AttachmentId": "eni-attach-1234567890abcdefg",
"DeleteOnTermination": true,
"DeviceIndex": 0,
"Status": "attached",
"NetworkCardIndex": 0
},
"Description": "",
"Groups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"Ipv6Addresses": [],
"MacAddress": "00:11:22:33:44:55",
"NetworkInterfaceId": "eni-1234567890abcdefg",
"OwnerId": "104024344472",
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"PrivateIpAddresses": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Primary": true,
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157"
}
],
"SourceDestCheck": true,
"Status": "in-use",
"SubnetId": "subnet-1234567890abcdefg",
"VpcId": "vpc-1234567890abcdefg",
"InterfaceType": "interface"
}
],
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SecurityGroups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"SourceDestCheck": true,
"Tags": [
{
"Key": "Name",
"Value": "my-instance"
}
],
"VirtualizationType": "hvm",
"CpuOptions": {
"CoreCount": 1,
"ThreadsPerCore": 2
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "open"
},
"HibernationOptions": {
"Configured": false
},
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
},
"EnclaveOptions": {
"Enabled": false
},
"PlatformDetails": "Linux/UNIX",
"UsageOperation": "RunInstances",
"UsageOperationUpdateTime": "2022-11-15T10:48:59+00:00",
"PrivateDnsNameOptions": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": true,
"EnableResourceNameDnsAAAARecord": false
},
"MaintenanceOptions": {
"AutoRecovery": "default"
}
}
],
"OwnerId": "111111111111",
"ReservationId": "r-1234567890abcdefg"
}
]
}

View File

@ -0,0 +1,158 @@
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0abcdef1234567890",
"InstanceId": "i-1234567890abcdef0",
"InstanceType": "t3.nano",
"KeyName": "my-key-pair",
"LaunchTime": "2022-11-15T10:48:59+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "us-east-2a",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"ProductCodes": [],
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIpAddress": "34.253.223.13",
"State": {
"Code": 16,
"Name": "running"
},
"StateTransitionReason": "",
"SubnetId": "subnet-04a636d18e83cfacb",
"VpcId": "vpc-1234567890abcdef0",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2022-11-15T10:49:00+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-02e6ccdca7de29cf2"
}
}
],
"ClientToken": "1234abcd-1234-abcd-1234-d46a8903e9bc",
"EbsOptimized": true,
"EnaSupport": true,
"Hypervisor": "xen",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::111111111111:instance-profile/AmazonSSMRoleForInstancesQuickSetup",
"Id": "111111111111111111111"
},
"NetworkInterfaces": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Attachment": {
"AttachTime": "2022-11-15T10:48:59+00:00",
"AttachmentId": "eni-attach-1234567890abcdefg",
"DeleteOnTermination": true,
"DeviceIndex": 0,
"Status": "attached",
"NetworkCardIndex": 0
},
"Description": "",
"Groups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"Ipv6Addresses": [],
"MacAddress": "00:11:22:33:44:55",
"NetworkInterfaceId": "eni-1234567890abcdefg",
"OwnerId": "104024344472",
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"PrivateIpAddresses": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Primary": true,
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157"
}
],
"SourceDestCheck": true,
"Status": "in-use",
"SubnetId": "subnet-1234567890abcdefg",
"VpcId": "vpc-1234567890abcdefg",
"InterfaceType": "interface"
}
],
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SecurityGroups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"SourceDestCheck": true,
"Tags": [
{
"Key": "Name",
"Value": "my-instance"
},
{
"Key": "DB_PASSWORD",
"Value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
],
"VirtualizationType": "hvm",
"CpuOptions": {
"CoreCount": 1,
"ThreadsPerCore": 2
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "open"
},
"HibernationOptions": {
"Configured": false
},
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
},
"EnclaveOptions": {
"Enabled": false
},
"PlatformDetails": "Linux/UNIX",
"UsageOperation": "RunInstances",
"UsageOperationUpdateTime": "2022-11-15T10:48:59+00:00",
"PrivateDnsNameOptions": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": true,
"EnableResourceNameDnsAAAARecord": false
},
"MaintenanceOptions": {
"AutoRecovery": "default"
}
}
],
"OwnerId": "111111111111",
"ReservationId": "r-1234567890abcdefg"
}
]
}

View File

@ -0,0 +1,54 @@
{
"taskDefinition": {
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"containerDefinitions": [
{
"name": "simple-app",
"image": "httpd:2.4",
"cpu": 10,
"memory": 300,
"essential": true,
"command": [
"httpd-foreground"
],
"environment": [
{
"name": "HTTPD_PORT",
"value": "80"
}
],
"secrets": [
{
"name": "API_TOKEN",
"valueFrom": "arn:aws:secretsmanager:us-east-1:123456789012:secret:api-token-AbCdEf"
}
],
"mountPoints": [
{
"sourceVolume": "www",
"containerPath": "/usr/local/apache2/htdocs",
"readOnly": true
}
],
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
}
],
"family": "console-sample-app-static2",
"revision": 1,
"volumes": [],
"status": "ACTIVE",
"placementConstraints": [],
"compatibilities": [
"EXTERNAL",
"EC2"
],
"registeredAt": "2024-06-21T11:15:12.669000-05:00",
"registeredBy": "arn:aws:sts::012345678910:assumed-role/demo-role/jane-doe"
},
"tags": []
}

View File

@ -0,0 +1,66 @@
{
"tasks": [
{
"attachments": [],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"connectivity": "CONNECTED",
"connectivityAt": "2021-08-11T12:21:26.681000-04:00",
"containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE",
"name": "simple-app",
"image": "httpd:2.4",
"runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE",
"lastStatus": "RUNNING",
"networkBindings": [
{
"bindIP": "0.0.0.0",
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp"
}
],
"networkInterfaces": [],
"healthStatus": "UNKNOWN",
"cpu": "10",
"memory": "300"
}
],
"cpu": "10",
"createdAt": "2021-08-11T12:21:26.681000-04:00",
"desiredStatus": "RUNNING",
"enableExecuteCommand": false,
"group": "service:testupdate",
"healthStatus": "UNKNOWN",
"lastStatus": "RUNNING",
"launchType": "EC2",
"memory": "300",
"overrides": {
"containerOverrides": [
{
"name": "simple-app"
}
],
"inferenceAcceleratorOverrides": []
},
"pullStartedAt": "2021-08-11T12:21:28.234000-04:00",
"pullStoppedAt": "2021-08-11T12:21:33.793000-04:00",
"startedAt": "2021-08-11T12:21:34.945000-04:00",
"startedBy": "ecs-svc/968695068243EXAMPLE",
"tags": [],
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"version": 2
}
],
"failures": []
}

View File

@ -0,0 +1,129 @@
{
"tasks": [
{
"attachments": [],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"connectivity": "CONNECTED",
"connectivityAt": "2021-08-11T12:21:26.681000-04:00",
"containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE",
"name": "simple-app",
"image": "httpd:2.4",
"runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE",
"lastStatus": "RUNNING",
"networkBindings": [
{
"bindIP": "0.0.0.0",
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp"
}
],
"networkInterfaces": [],
"healthStatus": "UNKNOWN",
"cpu": "10",
"memory": "300"
}
],
"cpu": "10",
"createdAt": "2021-08-11T12:21:26.681000-04:00",
"desiredStatus": "RUNNING",
"enableExecuteCommand": false,
"group": "service:testupdate",
"healthStatus": "UNKNOWN",
"lastStatus": "RUNNING",
"launchType": "EC2",
"memory": "300",
"overrides": {
"containerOverrides": [
{
"name": "simple-app"
}
],
"inferenceAcceleratorOverrides": []
},
"pullStartedAt": "2021-08-11T12:21:28.234000-04:00",
"pullStoppedAt": "2021-08-11T12:21:33.793000-04:00",
"startedAt": "2021-08-11T12:21:34.945000-04:00",
"startedBy": "ecs-svc/968695068243EXAMPLE",
"tags": [],
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"version": 2
},
{
"attachments": [],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"connectivity": "CONNECTED",
"connectivityAt": "2021-08-11T12:21:26.681000-04:00",
"containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE",
"name": "simple-app",
"image": "httpd:2.4",
"runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE",
"lastStatus": "STOPPED",
"networkBindings": [
{
"bindIP": "0.0.0.0",
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp"
}
],
"networkInterfaces": [],
"healthStatus": "UNKNOWN",
"cpu": "10",
"memory": "300",
"exitCode": 0
}
],
"cpu": "10",
"createdAt": "2021-08-11T12:21:26.681000-04:00",
"desiredStatus": "STOPPED",
"enableExecuteCommand": false,
"group": "service:testupdate",
"healthStatus": "UNKNOWN",
"lastStatus": "STOPPED",
"launchType": "EC2",
"memory": "300",
"overrides": {
"containerOverrides": [
{
"name": "simple-app"
}
],
"inferenceAcceleratorOverrides": []
},
"pullStartedAt": "2021-08-11T12:21:28.234000-04:00",
"pullStoppedAt": "2021-08-11T12:21:33.793000-04:00",
"startedAt": "2021-08-11T12:21:34.945000-04:00",
"startedBy": "ecs-svc/968695068243EXAMPLE",
"tags": [],
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/0000000000000000000000oprita",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"version": 2,
"stoppedReason": "Essential container in task exited"
}
],
"failures": []
}

View File

@ -0,0 +1,58 @@
{
"taskDefinition": {
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"containerDefinitions": [
{
"name": "simple-app",
"image": "httpd:2.4",
"cpu": 10,
"memory": 300,
"essential": true,
"command": [
"httpd-foreground"
],
"environment": [
{
"name": "HTTPD_PORT",
"value": "80"
},
{
"name": "DB_PASSWORD",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
],
"secrets": [
{
"name": "API_TOKEN",
"valueFrom": "arn:aws:secretsmanager:us-east-1:123456789012:secret:api-token-AbCdEf"
}
],
"mountPoints": [
{
"sourceVolume": "www",
"containerPath": "/usr/local/apache2/htdocs",
"readOnly": true
}
],
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
]
}
],
"family": "console-sample-app-static2",
"revision": 1,
"volumes": [],
"status": "ACTIVE",
"placementConstraints": [],
"compatibilities": [
"EXTERNAL",
"EC2"
],
"registeredAt": "2024-06-21T11:15:12.669000-05:00",
"registeredBy": "arn:aws:sts::012345678910:assumed-role/demo-role/jane-doe"
},
"tags": []
}

View File

@ -0,0 +1,72 @@
{
"tasks": [
{
"attachments": [],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"connectivity": "CONNECTED",
"connectivityAt": "2021-08-11T12:21:26.681000-04:00",
"containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE",
"name": "simple-app",
"image": "httpd:2.4",
"runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE",
"lastStatus": "RUNNING",
"networkBindings": [
{
"bindIP": "0.0.0.0",
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp"
}
],
"networkInterfaces": [],
"healthStatus": "UNKNOWN",
"cpu": "10",
"memory": "300"
}
],
"cpu": "10",
"createdAt": "2021-08-11T12:21:26.681000-04:00",
"desiredStatus": "RUNNING",
"enableExecuteCommand": false,
"group": "service:testupdate",
"healthStatus": "UNKNOWN",
"lastStatus": "RUNNING",
"launchType": "EC2",
"memory": "300",
"overrides": {
"containerOverrides": [
{
"name": "simple-app",
"environment": [
{
"name": "OVERRIDE_TOKEN",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
]
}
],
"inferenceAcceleratorOverrides": []
},
"pullStartedAt": "2021-08-11T12:21:28.234000-04:00",
"pullStoppedAt": "2021-08-11T12:21:33.793000-04:00",
"startedAt": "2021-08-11T12:21:34.945000-04:00",
"startedBy": "ecs-svc/968695068243EXAMPLE",
"tags": [],
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"version": 2
}
],
"failures": []
}

View File

@ -0,0 +1,78 @@
{
"Functions": [
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=",
"FunctionName": "helloworld",
"MemorySize": 128,
"RevisionId": "1718e831-badf-4253-9518-d0644210af7b",
"CodeSize": 294,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld",
"Handler": "helloworld.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4",
"Timeout": 3,
"LastModified": "2025-09-23T18:32:33.857+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=",
"FunctionName": "my-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 256,
"RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668",
"CodeSize": 266,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
"Handler": "index.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq",
"Timeout": 3,
"LastModified": "2025-10-01T16:47:28.490+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"Layers": [
{
"CodeSize": 41784542,
"Arn": "arn:aws:lambda:us-west-2:420165488524:layer:AWSLambda-Python37-SciPy1x:2"
},
{
"CodeSize": 4121,
"Arn": "arn:aws:lambda:us-west-2:123456789012:layer:pythonLayer:1"
}
],
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI=",
"FunctionName": "my-python-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 128,
"RevisionId": "80b4eabc-acf7-4ea8-919a-e874c213707d",
"CodeSize": 299,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-python-function",
"Handler": "lambda_function.lambda_handler",
"Role": "arn:aws:iam::123456789012:role/service-role/my-python-function-role-z5g7dr6n",
"Timeout": 3,
"LastModified": "2025-10-01T19:40:41.643+0000",
"Runtime": "python3.11",
"Description": ""
}
]
}

View File

@ -0,0 +1,98 @@
{
"Functions": [
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=",
"FunctionName": "helloworld",
"MemorySize": 128,
"RevisionId": "1718e831-badf-4253-9518-d0644210af7b",
"CodeSize": 294,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld",
"Handler": "helloworld.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4",
"Timeout": 3,
"LastModified": "2025-09-23T18:32:33.857+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=",
"FunctionName": "my-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 256,
"RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668",
"CodeSize": 266,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
"Handler": "index.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq",
"Timeout": 3,
"LastModified": "2025-10-01T16:47:28.490+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"Layers": [
{
"CodeSize": 41784542,
"Arn": "arn:aws:lambda:us-west-2:420165488524:layer:AWSLambda-Python37-SciPy1x:2"
},
{
"CodeSize": 4121,
"Arn": "arn:aws:lambda:us-west-2:123456789012:layer:pythonLayer:1"
}
],
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI=",
"FunctionName": "my-python-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 128,
"RevisionId": "80b4eabc-acf7-4ea8-919a-e874c213707d",
"CodeSize": 299,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-python-function",
"Handler": "lambda_function.lambda_handler",
"Role": "arn:aws:iam::123456789012:role/service-role/my-python-function-role-z5g7dr6n",
"Timeout": 3,
"LastModified": "2025-10-01T19:40:41.643+0000",
"Runtime": "python3.11",
"Description": ""
},
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=",
"FunctionName": "inactive-function",
"MemorySize": 128,
"RevisionId": "1718e831-badf-4253-9518-d0644210af7b",
"CodeSize": 294,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:inactive-function",
"Handler": "helloworld.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4",
"Timeout": 3,
"LastModified": "2025-09-23T18:32:33.857+0000",
"Runtime": "nodejs22.x",
"Description": "",
"State": "Inactive",
"StateReason": "Function is inactive"
}
]
}

View File

@ -0,0 +1,84 @@
{
"Functions": [
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=",
"FunctionName": "helloworld",
"MemorySize": 128,
"RevisionId": "1718e831-badf-4253-9518-d0644210af7b",
"CodeSize": 294,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld",
"Handler": "helloworld.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4",
"Timeout": 3,
"LastModified": "2025-09-23T18:32:33.857+0000",
"Runtime": "nodejs22.x",
"Description": "",
"Environment": {
"Variables": {
"DB_PASSWORD": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1",
"LOG_LEVEL": "info"
}
}
},
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=",
"FunctionName": "my-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 256,
"RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668",
"CodeSize": 266,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
"Handler": "index.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq",
"Timeout": 3,
"LastModified": "2025-10-01T16:47:28.490+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"Layers": [
{
"CodeSize": 41784542,
"Arn": "arn:aws:lambda:us-west-2:420165488524:layer:AWSLambda-Python37-SciPy1x:2"
},
{
"CodeSize": 4121,
"Arn": "arn:aws:lambda:us-west-2:123456789012:layer:pythonLayer:1"
}
],
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI=",
"FunctionName": "my-python-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 128,
"RevisionId": "80b4eabc-acf7-4ea8-919a-e874c213707d",
"CodeSize": 299,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-python-function",
"Handler": "lambda_function.lambda_handler",
"Role": "arn:aws:iam::123456789012:role/service-role/my-python-function-role-z5g7dr6n",
"Timeout": 3,
"LastModified": "2025-10-01T19:40:41.643+0000",
"Runtime": "python3.11",
"Description": ""
}
]
}

View File

@ -0,0 +1,66 @@
[
{
"name": "demo1",
"type": "Microsoft.ContainerInstance/containerGroups",
"id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
"location": "WestUs",
"zones": [
"1"
],
"containers": [
{
"name": "demo1",
"command": [],
"environmentVariables": [],
"image": "nginx",
"ports": [
{
"port": 80
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"volumeMounts": [
{
"name": "volume1",
"mountPath": "/mnt/volume1",
"readOnly": false
}
]
}
],
"imageRegistryCredentials": [
{
"server": "azcloudconsoleregistry.azurecr.io",
"username": "azcloudconsoleregistry"
}
],
"ipAddress": {
"type": "Public",
"ip": "10.0.0.1",
"ports": [
{
"port": 80,
"protocol": "TCP"
}
]
},
"osType": "Linux",
"provisioningState": "Succeeded",
"volumes": [
{
"name": "volume1",
"azureFile": {
"readOnly": false,
"shareName": "share1",
"storageAccountName": "storage1"
}
}
],
"resourceGroup": "demo"
}
]

View File

@ -0,0 +1,79 @@
[
{
"name": "demo1",
"type": "Microsoft.ContainerInstance/containerGroups",
"id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
"location": "WestUs",
"zones": [
"1"
],
"containers": [
{
"name": "demo1",
"command": [],
"environmentVariables": [],
"image": "nginx",
"ports": [
{
"port": 80
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"volumeMounts": [
{
"name": "volume1",
"mountPath": "/mnt/volume1",
"readOnly": false
}
],
"instanceView": {
"currentState": {
"state": "Running",
"startTime": "2026-10-18T06:00:00Z",
"detailStatus": ""
},
"events": [],
"restartCount": 0
}
}
],
"imageRegistryCredentials": [
{
"server": "azcloudconsoleregistry.azurecr.io",
"username": "azcloudconsoleregistry"
}
],
"ipAddress": {
"type": "Public",
"ip": "10.0.0.1",
"ports": [
{
"port": 80,
"protocol": "TCP"
}
]
},
"osType": "Linux",
"provisioningState": "Succeeded",
"volumes": [
{
"name": "volume1",
"azureFile": {
"readOnly": false,
"shareName": "share1",
"storageAccountName": "storage1"
}
}
],
"resourceGroup": "demo",
"instanceView": {
"state": "Running",
"events": []
}
}
]

View File

@ -0,0 +1,158 @@
[
{
"name": "demo1",
"type": "Microsoft.ContainerInstance/containerGroups",
"id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
"location": "WestUs",
"zones": [
"1"
],
"containers": [
{
"name": "demo1",
"command": [],
"environmentVariables": [],
"image": "nginx",
"ports": [
{
"port": 80
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"volumeMounts": [
{
"name": "volume1",
"mountPath": "/mnt/volume1",
"readOnly": false
}
],
"instanceView": {
"currentState": {
"state": "Running",
"startTime": "2026-10-18T06:00:00Z",
"detailStatus": ""
},
"events": [],
"restartCount": 0
}
}
],
"imageRegistryCredentials": [
{
"server": "azcloudconsoleregistry.azurecr.io",
"username": "azcloudconsoleregistry"
}
],
"ipAddress": {
"type": "Public",
"ip": "10.0.0.1",
"ports": [
{
"port": 80,
"protocol": "TCP"
}
]
},
"osType": "Linux",
"provisioningState": "Succeeded",
"volumes": [
{
"name": "volume1",
"azureFile": {
"readOnly": false,
"shareName": "share1",
"storageAccountName": "storage1"
}
}
],
"resourceGroup": "demo",
"instanceView": {
"state": "Running",
"events": []
}
},
{
"name": "demo2",
"type": "Microsoft.ContainerInstance/containerGroups",
"id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo2",
"location": "WestUs",
"zones": [
"1"
],
"containers": [
{
"name": "demo1",
"command": [],
"environmentVariables": [],
"image": "nginx",
"ports": [
{
"port": 80
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"volumeMounts": [
{
"name": "volume1",
"mountPath": "/mnt/volume1",
"readOnly": false
}
],
"instanceView": {
"currentState": {
"state": "Terminated",
"startTime": "2026-10-18T06:00:00Z",
"detailStatus": "",
"exitCode": 0,
"finishTime": "2026-10-18T06:05:00Z"
},
"events": [],
"restartCount": 0
}
}
],
"imageRegistryCredentials": [
{
"server": "azcloudconsoleregistry.azurecr.io",
"username": "azcloudconsoleregistry"
}
],
"ipAddress": {
"type": "Public",
"ip": "10.0.0.1",
"ports": [
{
"port": 80,
"protocol": "TCP"
}
]
},
"osType": "Linux",
"provisioningState": "Succeeded",
"volumes": [
{
"name": "volume1",
"azureFile": {
"readOnly": false,
"shareName": "share1",
"storageAccountName": "storage1"
}
}
],
"resourceGroup": "demo",
"instanceView": {
"state": "Stopped",
"events": []
}
}
]

View File

@ -0,0 +1,88 @@
[
{
"name": "demo1",
"type": "Microsoft.ContainerInstance/containerGroups",
"id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
"location": "WestUs",
"zones": [
"1"
],
"containers": [
{
"name": "demo1",
"command": [],
"environmentVariables": [
{
"name": "DB_PASSWORD",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
},
{
"name": "API_KEY",
"secureValue": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
],
"image": "nginx",
"ports": [
{
"port": 80
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"volumeMounts": [
{
"name": "volume1",
"mountPath": "/mnt/volume1",
"readOnly": false
}
],
"instanceView": {
"currentState": {
"state": "Running",
"startTime": "2026-10-18T06:00:00Z",
"detailStatus": ""
},
"events": [],
"restartCount": 0
}
}
],
"imageRegistryCredentials": [
{
"server": "azcloudconsoleregistry.azurecr.io",
"username": "azcloudconsoleregistry"
}
],
"ipAddress": {
"type": "Public",
"ip": "10.0.0.1",
"ports": [
{
"port": 80,
"protocol": "TCP"
}
]
},
"osType": "Linux",
"provisioningState": "Succeeded",
"volumes": [
{
"name": "volume1",
"azureFile": {
"readOnly": false,
"shareName": "share1",
"storageAccountName": "storage1"
}
}
],
"resourceGroup": "demo",
"instanceView": {
"state": "Running",
"events": []
}
}
]

View File

@ -0,0 +1,132 @@
[
{
"name": "testcontainerApp0",
"type": "Microsoft.App/containerApps",
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/testcontainerApp0",
"location": "East US",
"properties": {
"configuration": {
"dapr": {
"appHealth": {
"path": "/health",
"enabled": true,
"probeIntervalSeconds": 3,
"probeTimeoutMilliseconds": 1000,
"threshold": 3
},
"appPort": 3000,
"appProtocol": "http",
"enableApiLogging": true,
"enabled": true,
"httpMaxRequestSize": 10,
"httpReadBufferSize": 30,
"logLevel": "debug"
},
"ingress": {
"customDomains": [
{
"name": "www.my-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-name-dot-com"
},
{
"name": "www.my--other-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-other-name-dot-com"
}
],
"external": true,
"fqdn": "testcontainerApp0.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"ipSecurityRestrictions": [
{
"name": "Allow work IP A subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/32"
},
{
"name": "Allow work IP B subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/8"
}
],
"stickySessions": {
"affinity": "sticky"
},
"targetPort": 3000,
"traffic": [
{
"revisionName": "testcontainerApp0-ab1234"
},
{
"label": "staging",
"revisionName": "testcontainerApp0-ab4321"
}
],
"transport": "auto"
},
"maxInactiveRevisions": 10,
"runtime": {
"java": {
"enableMetrics": true
}
},
"service": {
"type": "redis"
}
},
"eventStreamEndpoint": "testEndpoint",
"latestReadyRevisionName": "testcontainerApp0-pjxhsye",
"latestRevisionFqdn": "testcontainerApp0-pjxhsye.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"managedEnvironmentId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"provisioningState": "Succeeded",
"runningStatus": "Running",
"template": {
"containers": [
{
"name": "testcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"initContainers": [
{
"name": "testinitcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"scale": {
"cooldownPeriod": 350,
"maxReplicas": 5,
"minReplicas": 1,
"pollingInterval": 35,
"rules": [
{
"name": "httpscalingrule",
"http": {
"metadata": {
"concurrentRequests": "50"
}
}
}
]
},
"serviceBinds": [
{
"name": "service",
"serviceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/service"
}
]
},
"workloadProfileName": "My-GP-01"
}
}
]

View File

@ -0,0 +1,262 @@
[
{
"name": "testcontainerApp0",
"type": "Microsoft.App/containerApps",
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/testcontainerApp0",
"location": "East US",
"properties": {
"configuration": {
"dapr": {
"appHealth": {
"path": "/health",
"enabled": true,
"probeIntervalSeconds": 3,
"probeTimeoutMilliseconds": 1000,
"threshold": 3
},
"appPort": 3000,
"appProtocol": "http",
"enableApiLogging": true,
"enabled": true,
"httpMaxRequestSize": 10,
"httpReadBufferSize": 30,
"logLevel": "debug"
},
"ingress": {
"customDomains": [
{
"name": "www.my-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-name-dot-com"
},
{
"name": "www.my--other-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-other-name-dot-com"
}
],
"external": true,
"fqdn": "testcontainerApp0.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"ipSecurityRestrictions": [
{
"name": "Allow work IP A subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/32"
},
{
"name": "Allow work IP B subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/8"
}
],
"stickySessions": {
"affinity": "sticky"
},
"targetPort": 3000,
"traffic": [
{
"revisionName": "testcontainerApp0-ab1234"
},
{
"label": "staging",
"revisionName": "testcontainerApp0-ab4321"
}
],
"transport": "auto"
},
"maxInactiveRevisions": 10,
"runtime": {
"java": {
"enableMetrics": true
}
},
"service": {
"type": "redis"
}
},
"eventStreamEndpoint": "testEndpoint",
"latestReadyRevisionName": "testcontainerApp0-pjxhsye",
"latestRevisionFqdn": "testcontainerApp0-pjxhsye.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"managedEnvironmentId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"provisioningState": "Succeeded",
"runningStatus": "Running",
"template": {
"containers": [
{
"name": "testcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"initContainers": [
{
"name": "testinitcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"scale": {
"cooldownPeriod": 350,
"maxReplicas": 5,
"minReplicas": 1,
"pollingInterval": 35,
"rules": [
{
"name": "httpscalingrule",
"http": {
"metadata": {
"concurrentRequests": "50"
}
}
}
]
},
"serviceBinds": [
{
"name": "service",
"serviceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/service"
}
]
},
"workloadProfileName": "My-GP-01"
}
},
{
"name": "testcontainerApp1",
"type": "Microsoft.App/containerApps",
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/testcontainerApp1",
"location": "East US",
"properties": {
"configuration": {
"dapr": {
"appHealth": {
"path": "/health",
"enabled": true,
"probeIntervalSeconds": 3,
"probeTimeoutMilliseconds": 1000,
"threshold": 3
},
"appPort": 3000,
"appProtocol": "http",
"enableApiLogging": true,
"enabled": true,
"httpMaxRequestSize": 10,
"httpReadBufferSize": 30,
"logLevel": "debug"
},
"ingress": {
"customDomains": [
{
"name": "www.my-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-name-dot-com"
},
{
"name": "www.my--other-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-other-name-dot-com"
}
],
"external": true,
"fqdn": "testcontainerApp0.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"ipSecurityRestrictions": [
{
"name": "Allow work IP A subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/32"
},
{
"name": "Allow work IP B subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/8"
}
],
"stickySessions": {
"affinity": "sticky"
},
"targetPort": 3000,
"traffic": [
{
"revisionName": "testcontainerApp0-ab1234"
},
{
"label": "staging",
"revisionName": "testcontainerApp0-ab4321"
}
],
"transport": "auto"
},
"maxInactiveRevisions": 10,
"runtime": {
"java": {
"enableMetrics": true
}
},
"service": {
"type": "redis"
}
},
"eventStreamEndpoint": "testEndpoint",
"latestReadyRevisionName": "testcontainerApp0-pjxhsye",
"latestRevisionFqdn": "testcontainerApp0-pjxhsye.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"managedEnvironmentId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"provisioningState": "Succeeded",
"runningStatus": "Stopped",
"template": {
"containers": [
{
"name": "testcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"initContainers": [
{
"name": "testinitcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"scale": {
"cooldownPeriod": 350,
"maxReplicas": 5,
"minReplicas": 1,
"pollingInterval": 35,
"rules": [
{
"name": "httpscalingrule",
"http": {
"metadata": {
"concurrentRequests": "50"
}
}
}
]
},
"serviceBinds": [
{
"name": "service",
"serviceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/service"
}
]
},
"workloadProfileName": "My-GP-01"
}
}
]

View File

@ -0,0 +1,148 @@
[
{
"name": "testcontainerApp0",
"type": "Microsoft.App/containerApps",
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/testcontainerApp0",
"location": "East US",
"properties": {
"configuration": {
"dapr": {
"appHealth": {
"path": "/health",
"enabled": true,
"probeIntervalSeconds": 3,
"probeTimeoutMilliseconds": 1000,
"threshold": 3
},
"appPort": 3000,
"appProtocol": "http",
"enableApiLogging": true,
"enabled": true,
"httpMaxRequestSize": 10,
"httpReadBufferSize": 30,
"logLevel": "debug"
},
"ingress": {
"customDomains": [
{
"name": "www.my-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-name-dot-com"
},
{
"name": "www.my--other-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-other-name-dot-com"
}
],
"external": true,
"fqdn": "testcontainerApp0.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"ipSecurityRestrictions": [
{
"name": "Allow work IP A subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/32"
},
{
"name": "Allow work IP B subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/8"
}
],
"stickySessions": {
"affinity": "sticky"
},
"targetPort": 3000,
"traffic": [
{
"revisionName": "testcontainerApp0-ab1234"
},
{
"label": "staging",
"revisionName": "testcontainerApp0-ab4321"
}
],
"transport": "auto"
},
"maxInactiveRevisions": 10,
"runtime": {
"java": {
"enableMetrics": true
}
},
"service": {
"type": "redis"
},
"secrets": [
{
"name": "api-key",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
]
},
"eventStreamEndpoint": "testEndpoint",
"latestReadyRevisionName": "testcontainerApp0-pjxhsye",
"latestRevisionFqdn": "testcontainerApp0-pjxhsye.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"managedEnvironmentId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"provisioningState": "Succeeded",
"runningStatus": "Running",
"template": {
"containers": [
{
"name": "testcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
},
"env": [
{
"name": "DB_PASSWORD",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
},
{
"name": "API_KEY",
"secretRef": "api-key"
}
]
}
],
"initContainers": [
{
"name": "testinitcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"scale": {
"cooldownPeriod": 350,
"maxReplicas": 5,
"minReplicas": 1,
"pollingInterval": 35,
"rules": [
{
"name": "httpscalingrule",
"http": {
"metadata": {
"concurrentRequests": "50"
}
}
}
]
},
"serviceBinds": [
{
"name": "service",
"serviceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/service"
}
]
},
"workloadProfileName": "My-GP-01"
}
}
]

View File

@ -0,0 +1,917 @@
[
{
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
},
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aaaaaaaaaaaaa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaa",
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"firstPartyServiceTagId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firstPartyServiceTags/{firstPartyServiceTagName}"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"licenseType": "aaaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 8,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.683Z",
"resourceGroup": "{resourceGroupName}"
},
{
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
},
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"id": "aaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaaaaaaaaaaaaaaaaaaaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"instanceView": {
"platformUpdateDomain": 1,
"platformFaultDomain": 29,
"computerName": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"osName": "aaaaaaaaaaa",
"osVersion": "aaaaaaaaaaaaaa",
"hyperVGeneration": "V1",
"rdpThumbPrint": "aaaaaaaaaaaaaaaaaaaaaaa",
"vmAgent": {
"vmAgentVersion": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"extensionHandlers": [
{
"type": "aaaaa",
"typeHandlerVersion": "aaaaaaaaaaaaaaaaaaa",
"status": {
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"maintenanceRedeployStatus": {
"isCustomerInitiatedMaintenanceAllowed": true,
"preMaintenanceWindowStartTime": "2022-01-14T16:43:41.682Z",
"preMaintenanceWindowEndTime": "2022-01-14T16:43:41.682Z",
"maintenanceWindowStartTime": "2022-01-14T16:43:41.682Z",
"maintenanceWindowEndTime": "2022-01-14T16:43:41.682Z",
"lastOperationResultCode": "None",
"lastOperationMessage": "aa"
},
"disks": [
{
"name": "a",
"encryptionSettings": [
{
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
}
],
"extensions": [
{
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
}
],
"vmHealth": {
"status": {
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
},
"bootDiagnostics": {
"consoleScreenshotBlobUri": "aaaaaaaaaaaaaaaaaaaaaaa",
"serialConsoleLogBlobUri": "aaaaaaaaaaaaaaaaaaa",
"status": {
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
},
"assignedHost": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"patchStatus": {
"availablePatchSummary": {
"status": "Unknown",
"assessmentActivityId": "aaaaaaaaaaaaaaaaaaa",
"rebootPending": true,
"criticalAndSecurityPatchCount": 22,
"otherPatchCount": 25,
"startTime": "2022-01-14T16:43:41.682Z",
"lastModifiedTime": "2022-01-14T16:43:41.683Z",
"error": {
"details": [
{
"code": "aaaaaaaaaaaaaaaaaaaaa",
"target": "aaaaaa",
"message": "aaaaaaaaaaaaa"
}
],
"innererror": {
"exceptiontype": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"errordetail": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"code": "aaaaaa",
"target": "aaaaaaaaa",
"message": "aaa"
}
},
"lastPatchInstallationSummary": {
"status": "Unknown",
"installationActivityId": "aaaaaa",
"maintenanceWindowExceeded": true,
"notSelectedPatchCount": 20,
"excludedPatchCount": 1,
"pendingPatchCount": 2,
"installedPatchCount": 28,
"failedPatchCount": 30,
"startTime": "2022-01-14T16:43:41.683Z",
"lastModifiedTime": "2022-01-14T16:43:41.683Z",
"error": {
"details": [
{
"code": "aaaaaaaaaaaaaaaaaaaaa",
"target": "aaaaaa",
"message": "aaaaaaaaaaaaa"
}
],
"innererror": {
"exceptiontype": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"errordetail": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"code": "aaaaaa",
"target": "aaaaaaaaa",
"message": "aaa"
}
},
"configurationStatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"isVMInStandbyPool": false
},
"licenseType": "aaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 11,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaaaaaaaaaaaaaaaaaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.685Z",
"resourceGroup": "{resourceGroupName}"
}
]

View File

@ -0,0 +1,733 @@
[
{
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
},
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aaaaaaaaaaaaa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaa",
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"firstPartyServiceTagId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firstPartyServiceTags/{firstPartyServiceTagName}"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"licenseType": "aaaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 8,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.683Z",
"resourceGroup": "{resourceGroupName}",
"powerState": "VM running",
"publicIps": "",
"fqdns": "",
"privateIps": "10.0.0.4",
"macAddresses": ""
},
{
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
},
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"id": "aaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaaaaaaaaaaaaaaaaaaaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"licenseType": "aaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 11,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaaaaaaaaaaaaaaaaaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.685Z",
"resourceGroup": "{resourceGroupName}",
"powerState": "VM running",
"publicIps": "",
"fqdns": "",
"privateIps": "10.0.0.4",
"macAddresses": ""
}
]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,736 @@
[
{
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {
"DB_PASSWORD": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1",
"env": "prod"
},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
},
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aaaaaaaaaaaaa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaa",
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "AERE-SINTETIC-customData-plantat-5e7b",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"firstPartyServiceTagId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firstPartyServiceTags/{firstPartyServiceTagName}"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"licenseType": "aaaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 8,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "AERE-SINTETIC-customData-plantat-5e7b",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.683Z",
"resourceGroup": "{resourceGroupName}",
"powerState": "VM running",
"publicIps": "",
"fqdns": "",
"privateIps": "10.0.0.4",
"macAddresses": ""
},
{
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
},
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"id": "aaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaaaaaaaaaaaaaaaaaaaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"licenseType": "aaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 11,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaaaaaaaaaaaaaaaaaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.685Z",
"resourceGroup": "{resourceGroupName}",
"powerState": "VM running",
"publicIps": "",
"fqdns": "",
"privateIps": "10.0.0.4",
"macAddresses": ""
}
]

View File

@ -0,0 +1,232 @@
[
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef6141",
"name": "sitef6141",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Running",
"hostNames": [
"sitef6141.azurewebsites.net"
],
"repositorySiteName": "sitef6141",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef6141.azurewebsites.net",
"sitef6141.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef6141.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef6141.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "DOCKER|mcr.microsoft.com/appsvc/staticsite:latest",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef6141.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
},
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef7252",
"name": "sitef7252",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Running",
"hostNames": [
"sitef7252.azurewebsites.net"
],
"repositorySiteName": "sitef7252",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef7252.azurewebsites.net",
"sitef7252.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef7252.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef7252.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef7252.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
}
]

View File

@ -0,0 +1,347 @@
[
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef6141",
"name": "sitef6141",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Running",
"hostNames": [
"sitef6141.azurewebsites.net"
],
"repositorySiteName": "sitef6141",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef6141.azurewebsites.net",
"sitef6141.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef6141.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef6141.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "DOCKER|mcr.microsoft.com/appsvc/staticsite:latest",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef6141.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
},
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef7252",
"name": "sitef7252",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Running",
"hostNames": [
"sitef7252.azurewebsites.net"
],
"repositorySiteName": "sitef7252",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef7252.azurewebsites.net",
"sitef7252.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef7252.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef7252.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef7252.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
},
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef0000",
"name": "sitef0000",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Stopped",
"hostNames": [
"sitef7252.azurewebsites.net"
],
"repositorySiteName": "sitef7252",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef7252.azurewebsites.net",
"sitef7252.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef7252.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef7252.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef7252.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
}
]

View File

@ -0,0 +1,249 @@
[
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef6141",
"name": "sitef6141",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Running",
"hostNames": [
"sitef6141.azurewebsites.net"
],
"repositorySiteName": "sitef6141",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef6141.azurewebsites.net",
"sitef6141.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef6141.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef6141.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "DOCKER|mcr.microsoft.com/appsvc/staticsite:latest",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {},
"appSettings": [
{
"name": "DB_PASSWORD",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
},
{
"name": "WEBSITES_PORT",
"value": "8080"
}
],
"connectionStrings": [
{
"name": "Main",
"connectionString": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1",
"type": "SQLAzure"
}
]
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef6141.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
},
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef7252",
"name": "sitef7252",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"state": "Running",
"hostNames": [
"sitef7252.azurewebsites.net"
],
"repositorySiteName": "sitef7252",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef7252.azurewebsites.net",
"sitef7252.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef7252.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef7252.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef7252.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
}
]

View File

@ -0,0 +1,90 @@
#!/usr/bin/env node
// fixturi-cloud/deriva.mjs (B15, 2026-10-18): fixturile adaptoarelor pe furnizori de cloud, DERIVATE determinist din sursele din
// `surse/` (copiile exacte ale exemplelor din documentatia oficiala a fiecarui CLI/API; pentru GCP, unde documentatia nu are un exemplu
// de iesire, o forma construita din schema documentata, numita `din-schema`). Pentru fiecare sursa se scriu:
// <src>.json forma pe care o scrie CLI-ul (pentru Azure: `properties` aplatizat cum face az, plus campurile pe care CLI-ul le
// adauga si pe care exemplul REST nu le are: powerState la `az vm list -d`, instanceView la `az container show`)
// <src>.oprita.json aceeasi forma plus o incarcatura OPRITA (nu are voie sa intre in jurnal)
// <src>.secrete.json aceeasi forma cu variabile de mediu CU VALORI plantate (valorile nu au voie sa apara in jurnal)
// plus cateva variante care exercita refuzurile pe nume (fara -d, fara instanceView). Tot ce e modificat fata de sursa e scris AICI,
// in cod, nu de mana in fisiere: proba re-deriva si compara octet cu octet cu ce e pe disc.
// node deriva.mjs scrie fixturile langa acest fisier
// node deriva.mjs --verifica compara cu ce e pe disc: 0 identice, 1 diferite
import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath, pathToFileURL } from 'node:url';
const AICI = path.dirname(fileURLToPath(import.meta.url));
const SURSE = path.join(AICI, 'surse');
export const SECRET = 'AERE-SINTETIC-valoare-de-mediu-plantata-93c1';
export const SECRET_DATE = 'AERE-SINTETIC-customData-plantat-5e7b';
const citeste = (f) => JSON.parse(fs.readFileSync(path.join(SURSE, f), 'utf8'));
const clona = (o) => JSON.parse(JSON.stringify(o));
// az CLI scrie resursele ARM cu `properties` aplatizat in obiectul resursei (si la fel containerele dintr-un grup ACI)
const aplatizeaza = (o) => { const { properties, ...rest } = o; return { ...rest, ...(properties || {}) }; };
export function deriva() {
const out = {};
// ---- AWS: iesirile CLI sunt copiate exact; variantele adauga/planteaza ----------------------------------------------------
{ const t = citeste('aws-ecs-describe-tasks.json'); const d = citeste('aws-ecs-describe-task-definition.json');
// definitia din documentatie (hello_world:8) nu e cea a task-ului din exemplu (console-sample-app-static2:1): forma CLI primeste
// o definitie aliniata pe ARN-ul si pe containerul task-ului, cu un secret referit prin ARN (secrets[].valueFrom), nu prin valoare
const def = clona(d); def.taskDefinition.taskDefinitionArn = t.tasks[0].taskDefinitionArn; def.taskDefinition.family = 'console-sample-app-static2'; def.taskDefinition.revision = 1;
def.taskDefinition.containerDefinitions = [{ name: 'simple-app', image: 'httpd:2.4', cpu: 10, memory: 300, essential: true, command: ['httpd-foreground'],
environment: [{ name: 'HTTPD_PORT', value: '80' }], secrets: [{ name: 'API_TOKEN', valueFrom: 'arn:aws:secretsmanager:us-east-1:123456789012:secret:api-token-AbCdEf' }],
mountPoints: [{ sourceVolume: 'www', containerPath: '/usr/local/apache2/htdocs', readOnly: true }], portMappings: [{ containerPort: 80, hostPort: 80 }] }];
out['aws-ecs.json'] = clona(t); out['aws-ecs.definitii.json'] = def;
const op = clona(t); const oprit = clona(t.tasks[0]); oprit.taskArn = 'arn:aws:ecs:us-east-1:123456789012:task/MyCluster/0000000000000000000000oprita'; oprit.lastStatus = 'STOPPED'; oprit.desiredStatus = 'STOPPED'; oprit.stoppedReason = 'Essential container in task exited'; oprit.containers[0].lastStatus = 'STOPPED'; oprit.containers[0].exitCode = 0; op.tasks.push(oprit);
out['aws-ecs.oprita.json'] = op;
const sec = clona(t); sec.tasks[0].overrides.containerOverrides[0].environment = [{ name: 'OVERRIDE_TOKEN', value: SECRET }]; out['aws-ecs.secrete.json'] = sec;
const secDef = clona(def); secDef.taskDefinition.containerDefinitions[0].environment.push({ name: 'DB_PASSWORD', value: SECRET }); out['aws-ecs.secrete.definitii.json'] = secDef; }
{ const e = citeste('aws-ec2-describe-instances.json'); out['aws-ec2.json'] = clona(e);
const op = clona(e); const oprit = clona(e.Reservations[0].Instances[0]); oprit.InstanceId = 'i-0000000000oprita00'; oprit.State = { Code: 80, Name: 'stopped' }; oprit.StateTransitionReason = 'User initiated (2026-10-17 20:00:00 GMT)'; op.Reservations[0].Instances.push(oprit); out['aws-ec2.oprita.json'] = op;
const sec = clona(e); sec.Reservations[0].Instances[0].Tags.push({ Key: 'DB_PASSWORD', Value: SECRET }); out['aws-ec2.secrete.json'] = sec; }
{ const l = citeste('aws-lambda-list-functions.json'); out['aws-lambda.json'] = clona(l);
const op = clona(l); const oprit = clona(l.Functions[0]); oprit.FunctionName = 'inactive-function'; oprit.FunctionArn = 'arn:aws:lambda:us-west-2:123456789012:function:inactive-function'; oprit.State = 'Inactive'; oprit.StateReason = 'Function is inactive'; op.Functions.push(oprit); out['aws-lambda.oprita.json'] = op;
const sec = clona(l); sec.Functions[0].Environment = { Variables: { DB_PASSWORD: SECRET, LOG_LEVEL: 'info' } }; out['aws-lambda.secrete.json'] = sec; }
// ---- Azure: exemplele REST, aduse la forma CLI --------------------------------------------------------------------------------
{ const r = citeste('azure-vm-list-rest-2026-04-01.json'); const vms = r.responses['200'].body.value.map((v) => ({ ...aplatizeaza(v), resourceGroup: /\/resourceGroups\/([^/]+)\//i.exec(v.id)[1] }));
// `az vm list -d` adauga powerState (displayStatus-ul starii PowerState/* din instanceView) si scoate instanceView (azure-cli vm/custom.py get_vm_details)
const cuD = vms.map((v) => { const { instanceView, ...rest } = v; return { ...rest, powerState: 'VM running', publicIps: '', fqdns: '', privateIps: '10.0.0.4', macAddresses: '' }; });
out['azure-vm.json'] = cuD; out['azure-vm.fara-d.json'] = vms;
const op = clona(cuD); const oprit = clona(cuD[0]); oprit.name = 'vm-oprita'; oprit.id = oprit.id.replace(/\/[^/]+$/, '/vm-oprita'); oprit.powerState = 'VM deallocated'; op.push(oprit); out['azure-vm.oprita.json'] = op;
const sec = clona(cuD); sec[0].osProfile.customData = SECRET_DATE; sec[0].userData = SECRET_DATE; sec[0].tags = { DB_PASSWORD: SECRET, env: 'prod' }; out['azure-vm.secrete.json'] = sec; }
{ const r = citeste('azure-container-groups-list-rest-2026-07-01.json');
// `az container show` poarta instanceView (ContainerPropertiesInstanceView: currentState {state, startTime, detailStatus}, restartCount); exemplul REST de list nu il are
const stare = (state, extra = {}) => ({ currentState: { state, startTime: '2026-10-18T06:00:00Z', detailStatus: '', ...extra }, events: [], restartCount: 0 });
const grupuri = r.value.map((g) => { const f = aplatizeaza(g); f.resourceGroup = /\/resourceGroups\/([^/]+)\//i.exec(g.id)[1]; f.containers = f.containers.map(aplatizeaza); return f; });
const cuStare = clona(grupuri); for (const g of cuStare) { g.instanceView = { state: 'Running', events: [] }; for (const c of g.containers) c.instanceView = stare('Running'); }
out['azure-container.json'] = cuStare; out['azure-container.fara-stare.json'] = grupuri;
const op = clona(cuStare); const oprit = clona(cuStare[0]); oprit.name = 'demo2'; oprit.id = oprit.id.replace(/\/[^/]+$/, '/demo2'); oprit.instanceView.state = 'Stopped'; oprit.containers[0].instanceView = stare('Terminated', { exitCode: 0, finishTime: '2026-10-18T06:05:00Z' }); op.push(oprit); out['azure-container.oprita.json'] = op;
const sec = clona(cuStare); sec[0].containers[0].environmentVariables = [{ name: 'DB_PASSWORD', value: SECRET }, { name: 'API_KEY', secureValue: SECRET }]; out['azure-container.secrete.json'] = sec; }
{ const r = citeste('azure-containerapps-list-rest-2026-07-01.json'); const apps = r.responses['200'].body.value; out['azure-containerapp.json'] = clona(apps);
const op = clona(apps); const oprit = clona(apps[0]); oprit.name = 'testcontainerApp1'; oprit.id = oprit.id.replace(/\/[^/]+$/, '/testcontainerApp1'); oprit.properties.runningStatus = 'Stopped'; op.push(oprit); out['azure-containerapp.oprita.json'] = op;
const sec = clona(apps); sec[0].properties.template.containers[0].env = [{ name: 'DB_PASSWORD', value: SECRET }, { name: 'API_KEY', secretRef: 'api-key' }]; sec[0].properties.configuration.secrets = [{ name: 'api-key', value: SECRET }]; out['azure-containerapp.secrete.json'] = sec; }
{ const r = citeste('azure-webapps-list-rest-2024-11-01.json'); const sites = r.value.map(aplatizeaza);
// primul sit primeste un runtime de container (cum il lasa `az webapp config container set`); exemplul REST are linuxFxVersion gol
sites[0].siteConfig.linuxFxVersion = 'DOCKER|mcr.microsoft.com/appsvc/staticsite:latest';
out['azure-webapp.json'] = clona(sites);
const op = clona(sites); const oprit = clona(sites[1]); oprit.name = 'sitef0000'; oprit.id = oprit.id.replace(/\/[^/]+$/, '/sitef0000'); oprit.state = 'Stopped'; op.push(oprit); out['azure-webapp.oprita.json'] = op;
const sec = clona(sites); sec[0].siteConfig.appSettings = [{ name: 'DB_PASSWORD', value: SECRET }, { name: 'WEBSITES_PORT', value: '8080' }]; sec[0].siteConfig.connectionStrings = [{ name: 'Main', connectionString: SECRET, type: 'SQLAzure' }]; out['azure-webapp.secrete.json'] = sec; }
// ---- GCP: formele din schema ----------------------------------------------------------------------------------------------------
{ const i = citeste('gcp-compute-instances-din-schema.json'); out['gcp-compute.json'] = clona(i);
const op = clona(i); const oprit = clona(i[0]); oprit.name = 'api-2'; oprit.id = '4218766341062832346'; oprit.status = 'TERMINATED'; oprit.selfLink = oprit.selfLink.replace(/api-1$/, 'api-2'); oprit.lastStopTimestamp = '2026-10-17T20:00:00.000-07:00'; op.push(oprit); out['gcp-compute.oprita.json'] = op;
const sec = clona(i); sec[0].metadata.items.push({ key: 'user-data', value: SECRET }); sec[0].metadata.items.find((x) => x.key === 'startup-script').value = `#! /bin/bash\nexport DB_PASSWORD=${SECRET}\n`; out['gcp-compute.secrete.json'] = sec; }
{ const s = citeste('gcp-run-services-din-schema.json'); out['gcp-run.json'] = clona(s);
const op = clona(s); const oprit = clona(s[0]); oprit.metadata.name = 'batch'; oprit.metadata.uid = '00000000-0000-4000-8000-00000000oprita'; oprit.status.conditions[0] = { type: 'Ready', status: 'False', reason: 'RevisionFailed', message: 'Revision batch-00001-abc is not ready.', lastTransitionTime: '2026-10-17T20:00:00.000000Z' }; op.push(oprit); out['gcp-run.oprita.json'] = op;
const sec = clona(s); sec[0].spec.template.spec.containers[0].env.push({ name: 'DB_PASSWORD_PLAIN', value: SECRET }); out['gcp-run.secrete.json'] = sec; }
return out;
}
export const FISIERE = Object.keys(deriva());
export const text = (o) => JSON.stringify(o, null, 2) + '\n';
if (import.meta.url === pathToFileURL(process.argv[1] || '').href) {
const d = deriva(); let diferite = 0;
for (const [f, o] of Object.entries(d)) {
const p = path.join(AICI, f); const t = text(o);
if (process.argv.includes('--verifica')) { const pe = fs.existsSync(p) ? fs.readFileSync(p, 'utf8') : null; if (pe !== t) { diferite++; console.log('DIFERIT ' + f); } }
else fs.writeFileSync(p, t);
}
if (process.argv.includes('--verifica')) { console.log(diferite ? `${diferite} fixturi difera de derivare` : `fixturile de pe disc sunt cele derivate (${Object.keys(d).length})`); process.exitCode = diferite ? 1 : 0; }
else console.log(`scrise ${Object.keys(d).length} fixturi in ${AICI}`);
}

View File

@ -0,0 +1,110 @@
[
{
"kind": "compute#instance",
"id": "4218766341062832345",
"creationTimestamp": "2026-10-01T08:12:03.512-07:00",
"name": "api-1",
"description": "",
"tags": {
"items": [
"http-server"
],
"fingerprint": "Qm9vdHN0cmFw"
},
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-standard-2",
"status": "RUNNING",
"zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/default",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/default",
"networkIP": "10.128.0.5",
"name": "nic0",
"fingerprint": "bmljMA==",
"stackType": "IPV4_ONLY"
}
],
"disks": [
{
"kind": "compute#attachedDisk",
"type": "PERSISTENT",
"mode": "READ_WRITE",
"source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/api-1",
"deviceName": "persistent-disk-0",
"index": 0,
"boot": true,
"autoDelete": true,
"licenses": [
"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-12-bookworm"
],
"interface": "SCSI",
"guestOsFeatures": [
{
"type": "UEFI_COMPATIBLE"
},
{
"type": "VIRTIO_SCSI_MULTIQUEUE"
},
{
"type": "GVNIC"
}
],
"diskSizeGb": "10",
"architecture": "X86_64"
}
],
"metadata": {
"kind": "compute#metadata",
"fingerprint": "bWV0YWRhdGE=",
"items": [
{
"key": "enable-oslogin",
"value": "TRUE"
},
{
"key": "ssh-keys",
"value": "operator:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleExampleExampleExampleExampleExampleEx operator"
},
{
"key": "startup-script",
"value": "#! /bin/bash\napt-get update\n"
}
]
},
"serviceAccounts": [
{
"email": "123456789012-compute@developer.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/api-1",
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD"
},
"cpuPlatform": "Intel Broadwell",
"labels": {
"env": "prod",
"team": "payments"
},
"labelFingerprint": "bGFiZWxz",
"startRestricted": false,
"deletionProtection": false,
"shieldedInstanceConfig": {
"enableSecureBoot": false,
"enableVtpm": true,
"enableIntegrityMonitoring": true
},
"shieldedInstanceIntegrityPolicy": {
"updateAutoLearnPolicy": true
},
"fingerprint": "aW5zdGFuY2U=",
"lastStartTimestamp": "2026-10-01T08:12:40.101-07:00",
"satisfiesPzi": true
}
]

View File

@ -0,0 +1,219 @@
[
{
"kind": "compute#instance",
"id": "4218766341062832345",
"creationTimestamp": "2026-10-01T08:12:03.512-07:00",
"name": "api-1",
"description": "",
"tags": {
"items": [
"http-server"
],
"fingerprint": "Qm9vdHN0cmFw"
},
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-standard-2",
"status": "RUNNING",
"zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/default",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/default",
"networkIP": "10.128.0.5",
"name": "nic0",
"fingerprint": "bmljMA==",
"stackType": "IPV4_ONLY"
}
],
"disks": [
{
"kind": "compute#attachedDisk",
"type": "PERSISTENT",
"mode": "READ_WRITE",
"source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/api-1",
"deviceName": "persistent-disk-0",
"index": 0,
"boot": true,
"autoDelete": true,
"licenses": [
"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-12-bookworm"
],
"interface": "SCSI",
"guestOsFeatures": [
{
"type": "UEFI_COMPATIBLE"
},
{
"type": "VIRTIO_SCSI_MULTIQUEUE"
},
{
"type": "GVNIC"
}
],
"diskSizeGb": "10",
"architecture": "X86_64"
}
],
"metadata": {
"kind": "compute#metadata",
"fingerprint": "bWV0YWRhdGE=",
"items": [
{
"key": "enable-oslogin",
"value": "TRUE"
},
{
"key": "ssh-keys",
"value": "operator:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleExampleExampleExampleExampleExampleEx operator"
},
{
"key": "startup-script",
"value": "#! /bin/bash\napt-get update\n"
}
]
},
"serviceAccounts": [
{
"email": "123456789012-compute@developer.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/api-1",
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD"
},
"cpuPlatform": "Intel Broadwell",
"labels": {
"env": "prod",
"team": "payments"
},
"labelFingerprint": "bGFiZWxz",
"startRestricted": false,
"deletionProtection": false,
"shieldedInstanceConfig": {
"enableSecureBoot": false,
"enableVtpm": true,
"enableIntegrityMonitoring": true
},
"shieldedInstanceIntegrityPolicy": {
"updateAutoLearnPolicy": true
},
"fingerprint": "aW5zdGFuY2U=",
"lastStartTimestamp": "2026-10-01T08:12:40.101-07:00",
"satisfiesPzi": true
},
{
"kind": "compute#instance",
"id": "4218766341062832346",
"creationTimestamp": "2026-10-01T08:12:03.512-07:00",
"name": "api-2",
"description": "",
"tags": {
"items": [
"http-server"
],
"fingerprint": "Qm9vdHN0cmFw"
},
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-standard-2",
"status": "TERMINATED",
"zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/default",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/default",
"networkIP": "10.128.0.5",
"name": "nic0",
"fingerprint": "bmljMA==",
"stackType": "IPV4_ONLY"
}
],
"disks": [
{
"kind": "compute#attachedDisk",
"type": "PERSISTENT",
"mode": "READ_WRITE",
"source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/api-1",
"deviceName": "persistent-disk-0",
"index": 0,
"boot": true,
"autoDelete": true,
"licenses": [
"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-12-bookworm"
],
"interface": "SCSI",
"guestOsFeatures": [
{
"type": "UEFI_COMPATIBLE"
},
{
"type": "VIRTIO_SCSI_MULTIQUEUE"
},
{
"type": "GVNIC"
}
],
"diskSizeGb": "10",
"architecture": "X86_64"
}
],
"metadata": {
"kind": "compute#metadata",
"fingerprint": "bWV0YWRhdGE=",
"items": [
{
"key": "enable-oslogin",
"value": "TRUE"
},
{
"key": "ssh-keys",
"value": "operator:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleExampleExampleExampleExampleExampleEx operator"
},
{
"key": "startup-script",
"value": "#! /bin/bash\napt-get update\n"
}
]
},
"serviceAccounts": [
{
"email": "123456789012-compute@developer.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/api-2",
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD"
},
"cpuPlatform": "Intel Broadwell",
"labels": {
"env": "prod",
"team": "payments"
},
"labelFingerprint": "bGFiZWxz",
"startRestricted": false,
"deletionProtection": false,
"shieldedInstanceConfig": {
"enableSecureBoot": false,
"enableVtpm": true,
"enableIntegrityMonitoring": true
},
"shieldedInstanceIntegrityPolicy": {
"updateAutoLearnPolicy": true
},
"fingerprint": "aW5zdGFuY2U=",
"lastStartTimestamp": "2026-10-01T08:12:40.101-07:00",
"satisfiesPzi": true,
"lastStopTimestamp": "2026-10-17T20:00:00.000-07:00"
}
]

View File

@ -0,0 +1,114 @@
[
{
"kind": "compute#instance",
"id": "4218766341062832345",
"creationTimestamp": "2026-10-01T08:12:03.512-07:00",
"name": "api-1",
"description": "",
"tags": {
"items": [
"http-server"
],
"fingerprint": "Qm9vdHN0cmFw"
},
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-standard-2",
"status": "RUNNING",
"zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/default",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/default",
"networkIP": "10.128.0.5",
"name": "nic0",
"fingerprint": "bmljMA==",
"stackType": "IPV4_ONLY"
}
],
"disks": [
{
"kind": "compute#attachedDisk",
"type": "PERSISTENT",
"mode": "READ_WRITE",
"source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/api-1",
"deviceName": "persistent-disk-0",
"index": 0,
"boot": true,
"autoDelete": true,
"licenses": [
"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-12-bookworm"
],
"interface": "SCSI",
"guestOsFeatures": [
{
"type": "UEFI_COMPATIBLE"
},
{
"type": "VIRTIO_SCSI_MULTIQUEUE"
},
{
"type": "GVNIC"
}
],
"diskSizeGb": "10",
"architecture": "X86_64"
}
],
"metadata": {
"kind": "compute#metadata",
"fingerprint": "bWV0YWRhdGE=",
"items": [
{
"key": "enable-oslogin",
"value": "TRUE"
},
{
"key": "ssh-keys",
"value": "operator:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleExampleExampleExampleExampleExampleEx operator"
},
{
"key": "startup-script",
"value": "#! /bin/bash\nexport DB_PASSWORD=AERE-SINTETIC-valoare-de-mediu-plantata-93c1\n"
},
{
"key": "user-data",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
]
},
"serviceAccounts": [
{
"email": "123456789012-compute@developer.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/api-1",
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD"
},
"cpuPlatform": "Intel Broadwell",
"labels": {
"env": "prod",
"team": "payments"
},
"labelFingerprint": "bGFiZWxz",
"startRestricted": false,
"deletionProtection": false,
"shieldedInstanceConfig": {
"enableSecureBoot": false,
"enableVtpm": true,
"enableIntegrityMonitoring": true
},
"shieldedInstanceIntegrityPolicy": {
"updateAutoLearnPolicy": true
},
"fingerprint": "aW5zdGFuY2U=",
"lastStartTimestamp": "2026-10-01T08:12:40.101-07:00",
"satisfiesPzi": true
}
]

View File

@ -0,0 +1,130 @@
[
{
"apiVersion": "serving.knative.dev/v1",
"kind": "Service",
"metadata": {
"name": "api",
"namespace": "123456789012",
"selfLink": "/apis/serving.knative.dev/v1/namespaces/123456789012/services/api",
"uid": "3f2a9c1e-5b7d-4e8f-9a0b-1c2d3e4f5a6b",
"resourceVersion": "AAYy1ZQ0JdU",
"generation": 3,
"creationTimestamp": "2026-09-30T14:02:11.431902Z",
"labels": {
"cloud.googleapis.com/location": "europe-west1"
},
"annotations": {
"run.googleapis.com/ingress": "all",
"run.googleapis.com/ingress-status": "all",
"serving.knative.dev/creator": "operator@example.com",
"serving.knative.dev/lastModifier": "operator@example.com"
}
},
"spec": {
"template": {
"metadata": {
"name": "api-00003-xyz",
"annotations": {
"autoscaling.knative.dev/maxScale": "10",
"run.googleapis.com/execution-environment": "gen2"
}
},
"spec": {
"containerConcurrency": 80,
"timeoutSeconds": 300,
"serviceAccountName": "api-runner@example-project.iam.gserviceaccount.com",
"containers": [
{
"name": "api-1",
"image": "europe-west1-docker.pkg.dev/example-project/apps/api@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"args": [
"--port=8080"
],
"ports": [
{
"name": "http1",
"containerPort": 8080
}
],
"env": [
{
"name": "LOG_LEVEL",
"value": "info"
},
{
"name": "DB_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"key": "latest",
"name": "db-password"
}
}
}
],
"resources": {
"limits": {
"cpu": "1000m",
"memory": "512Mi"
}
},
"volumeMounts": [
{
"name": "cache",
"mountPath": "/cache"
}
]
}
],
"volumes": [
{
"name": "cache",
"emptyDir": {
"medium": "Memory",
"sizeLimit": "128Mi"
}
}
]
}
},
"traffic": [
{
"percent": 100,
"latestRevision": true
}
]
},
"status": {
"observedGeneration": 3,
"conditions": [
{
"type": "Ready",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
},
{
"type": "ConfigurationsReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:20.113005Z"
},
{
"type": "RoutesReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
}
],
"latestReadyRevisionName": "api-00003-xyz",
"latestCreatedRevisionName": "api-00003-xyz",
"traffic": [
{
"revisionName": "api-00003-xyz",
"percent": 100,
"latestRevision": true
}
],
"url": "https://api-abc123-ew.a.run.app",
"address": {
"url": "https://api-abc123-ew.a.run.app"
}
}
}
]

View File

@ -0,0 +1,260 @@
[
{
"apiVersion": "serving.knative.dev/v1",
"kind": "Service",
"metadata": {
"name": "api",
"namespace": "123456789012",
"selfLink": "/apis/serving.knative.dev/v1/namespaces/123456789012/services/api",
"uid": "3f2a9c1e-5b7d-4e8f-9a0b-1c2d3e4f5a6b",
"resourceVersion": "AAYy1ZQ0JdU",
"generation": 3,
"creationTimestamp": "2026-09-30T14:02:11.431902Z",
"labels": {
"cloud.googleapis.com/location": "europe-west1"
},
"annotations": {
"run.googleapis.com/ingress": "all",
"run.googleapis.com/ingress-status": "all",
"serving.knative.dev/creator": "operator@example.com",
"serving.knative.dev/lastModifier": "operator@example.com"
}
},
"spec": {
"template": {
"metadata": {
"name": "api-00003-xyz",
"annotations": {
"autoscaling.knative.dev/maxScale": "10",
"run.googleapis.com/execution-environment": "gen2"
}
},
"spec": {
"containerConcurrency": 80,
"timeoutSeconds": 300,
"serviceAccountName": "api-runner@example-project.iam.gserviceaccount.com",
"containers": [
{
"name": "api-1",
"image": "europe-west1-docker.pkg.dev/example-project/apps/api@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"args": [
"--port=8080"
],
"ports": [
{
"name": "http1",
"containerPort": 8080
}
],
"env": [
{
"name": "LOG_LEVEL",
"value": "info"
},
{
"name": "DB_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"key": "latest",
"name": "db-password"
}
}
}
],
"resources": {
"limits": {
"cpu": "1000m",
"memory": "512Mi"
}
},
"volumeMounts": [
{
"name": "cache",
"mountPath": "/cache"
}
]
}
],
"volumes": [
{
"name": "cache",
"emptyDir": {
"medium": "Memory",
"sizeLimit": "128Mi"
}
}
]
}
},
"traffic": [
{
"percent": 100,
"latestRevision": true
}
]
},
"status": {
"observedGeneration": 3,
"conditions": [
{
"type": "Ready",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
},
{
"type": "ConfigurationsReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:20.113005Z"
},
{
"type": "RoutesReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
}
],
"latestReadyRevisionName": "api-00003-xyz",
"latestCreatedRevisionName": "api-00003-xyz",
"traffic": [
{
"revisionName": "api-00003-xyz",
"percent": 100,
"latestRevision": true
}
],
"url": "https://api-abc123-ew.a.run.app",
"address": {
"url": "https://api-abc123-ew.a.run.app"
}
}
},
{
"apiVersion": "serving.knative.dev/v1",
"kind": "Service",
"metadata": {
"name": "batch",
"namespace": "123456789012",
"selfLink": "/apis/serving.knative.dev/v1/namespaces/123456789012/services/api",
"uid": "00000000-0000-4000-8000-00000000oprita",
"resourceVersion": "AAYy1ZQ0JdU",
"generation": 3,
"creationTimestamp": "2026-09-30T14:02:11.431902Z",
"labels": {
"cloud.googleapis.com/location": "europe-west1"
},
"annotations": {
"run.googleapis.com/ingress": "all",
"run.googleapis.com/ingress-status": "all",
"serving.knative.dev/creator": "operator@example.com",
"serving.knative.dev/lastModifier": "operator@example.com"
}
},
"spec": {
"template": {
"metadata": {
"name": "api-00003-xyz",
"annotations": {
"autoscaling.knative.dev/maxScale": "10",
"run.googleapis.com/execution-environment": "gen2"
}
},
"spec": {
"containerConcurrency": 80,
"timeoutSeconds": 300,
"serviceAccountName": "api-runner@example-project.iam.gserviceaccount.com",
"containers": [
{
"name": "api-1",
"image": "europe-west1-docker.pkg.dev/example-project/apps/api@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"args": [
"--port=8080"
],
"ports": [
{
"name": "http1",
"containerPort": 8080
}
],
"env": [
{
"name": "LOG_LEVEL",
"value": "info"
},
{
"name": "DB_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"key": "latest",
"name": "db-password"
}
}
}
],
"resources": {
"limits": {
"cpu": "1000m",
"memory": "512Mi"
}
},
"volumeMounts": [
{
"name": "cache",
"mountPath": "/cache"
}
]
}
],
"volumes": [
{
"name": "cache",
"emptyDir": {
"medium": "Memory",
"sizeLimit": "128Mi"
}
}
]
}
},
"traffic": [
{
"percent": 100,
"latestRevision": true
}
]
},
"status": {
"observedGeneration": 3,
"conditions": [
{
"type": "Ready",
"status": "False",
"reason": "RevisionFailed",
"message": "Revision batch-00001-abc is not ready.",
"lastTransitionTime": "2026-10-17T20:00:00.000000Z"
},
{
"type": "ConfigurationsReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:20.113005Z"
},
{
"type": "RoutesReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
}
],
"latestReadyRevisionName": "api-00003-xyz",
"latestCreatedRevisionName": "api-00003-xyz",
"traffic": [
{
"revisionName": "api-00003-xyz",
"percent": 100,
"latestRevision": true
}
],
"url": "https://api-abc123-ew.a.run.app",
"address": {
"url": "https://api-abc123-ew.a.run.app"
}
}
}
]

View File

@ -0,0 +1,134 @@
[
{
"apiVersion": "serving.knative.dev/v1",
"kind": "Service",
"metadata": {
"name": "api",
"namespace": "123456789012",
"selfLink": "/apis/serving.knative.dev/v1/namespaces/123456789012/services/api",
"uid": "3f2a9c1e-5b7d-4e8f-9a0b-1c2d3e4f5a6b",
"resourceVersion": "AAYy1ZQ0JdU",
"generation": 3,
"creationTimestamp": "2026-09-30T14:02:11.431902Z",
"labels": {
"cloud.googleapis.com/location": "europe-west1"
},
"annotations": {
"run.googleapis.com/ingress": "all",
"run.googleapis.com/ingress-status": "all",
"serving.knative.dev/creator": "operator@example.com",
"serving.knative.dev/lastModifier": "operator@example.com"
}
},
"spec": {
"template": {
"metadata": {
"name": "api-00003-xyz",
"annotations": {
"autoscaling.knative.dev/maxScale": "10",
"run.googleapis.com/execution-environment": "gen2"
}
},
"spec": {
"containerConcurrency": 80,
"timeoutSeconds": 300,
"serviceAccountName": "api-runner@example-project.iam.gserviceaccount.com",
"containers": [
{
"name": "api-1",
"image": "europe-west1-docker.pkg.dev/example-project/apps/api@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"args": [
"--port=8080"
],
"ports": [
{
"name": "http1",
"containerPort": 8080
}
],
"env": [
{
"name": "LOG_LEVEL",
"value": "info"
},
{
"name": "DB_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"key": "latest",
"name": "db-password"
}
}
},
{
"name": "DB_PASSWORD_PLAIN",
"value": "AERE-SINTETIC-valoare-de-mediu-plantata-93c1"
}
],
"resources": {
"limits": {
"cpu": "1000m",
"memory": "512Mi"
}
},
"volumeMounts": [
{
"name": "cache",
"mountPath": "/cache"
}
]
}
],
"volumes": [
{
"name": "cache",
"emptyDir": {
"medium": "Memory",
"sizeLimit": "128Mi"
}
}
]
}
},
"traffic": [
{
"percent": 100,
"latestRevision": true
}
]
},
"status": {
"observedGeneration": 3,
"conditions": [
{
"type": "Ready",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
},
{
"type": "ConfigurationsReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:20.113005Z"
},
{
"type": "RoutesReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
}
],
"latestReadyRevisionName": "api-00003-xyz",
"latestCreatedRevisionName": "api-00003-xyz",
"traffic": [
{
"revisionName": "api-00003-xyz",
"percent": 100,
"latestRevision": true
}
],
"url": "https://api-abc123-ew.a.run.app",
"address": {
"url": "https://api-abc123-ew.a.run.app"
}
}
}
]

View File

@ -0,0 +1,154 @@
{
"Reservations": [
{
"Groups": [],
"Instances": [
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0abcdef1234567890",
"InstanceId": "i-1234567890abcdef0",
"InstanceType": "t3.nano",
"KeyName": "my-key-pair",
"LaunchTime": "2022-11-15T10:48:59+00:00",
"Monitoring": {
"State": "disabled"
},
"Placement": {
"AvailabilityZone": "us-east-2a",
"GroupName": "",
"Tenancy": "default"
},
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"ProductCodes": [],
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIpAddress": "34.253.223.13",
"State": {
"Code": 16,
"Name": "running"
},
"StateTransitionReason": "",
"SubnetId": "subnet-04a636d18e83cfacb",
"VpcId": "vpc-1234567890abcdef0",
"Architecture": "x86_64",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"AttachTime": "2022-11-15T10:49:00+00:00",
"DeleteOnTermination": true,
"Status": "attached",
"VolumeId": "vol-02e6ccdca7de29cf2"
}
}
],
"ClientToken": "1234abcd-1234-abcd-1234-d46a8903e9bc",
"EbsOptimized": true,
"EnaSupport": true,
"Hypervisor": "xen",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::111111111111:instance-profile/AmazonSSMRoleForInstancesQuickSetup",
"Id": "111111111111111111111"
},
"NetworkInterfaces": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Attachment": {
"AttachTime": "2022-11-15T10:48:59+00:00",
"AttachmentId": "eni-attach-1234567890abcdefg",
"DeleteOnTermination": true,
"DeviceIndex": 0,
"Status": "attached",
"NetworkCardIndex": 0
},
"Description": "",
"Groups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"Ipv6Addresses": [],
"MacAddress": "00:11:22:33:44:55",
"NetworkInterfaceId": "eni-1234567890abcdefg",
"OwnerId": "104024344472",
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157",
"PrivateIpAddresses": [
{
"Association": {
"IpOwnerId": "amazon",
"PublicDnsName": "ec2-34-253-223-13.us-east-2.compute.amazonaws.com",
"PublicIp": "34.253.223.13"
},
"Primary": true,
"PrivateDnsName": "ip-10-0-0-157.us-east-2.compute.internal",
"PrivateIpAddress": "10-0-0-157"
}
],
"SourceDestCheck": true,
"Status": "in-use",
"SubnetId": "subnet-1234567890abcdefg",
"VpcId": "vpc-1234567890abcdefg",
"InterfaceType": "interface"
}
],
"RootDeviceName": "/dev/xvda",
"RootDeviceType": "ebs",
"SecurityGroups": [
{
"GroupName": "launch-wizard-146",
"GroupId": "sg-1234567890abcdefg"
}
],
"SourceDestCheck": true,
"Tags": [
{
"Key": "Name",
"Value": "my-instance"
}
],
"VirtualizationType": "hvm",
"CpuOptions": {
"CoreCount": 1,
"ThreadsPerCore": 2
},
"CapacityReservationSpecification": {
"CapacityReservationPreference": "open"
},
"HibernationOptions": {
"Configured": false
},
"MetadataOptions": {
"State": "applied",
"HttpTokens": "optional",
"HttpPutResponseHopLimit": 1,
"HttpEndpoint": "enabled",
"HttpProtocolIpv6": "disabled",
"InstanceMetadataTags": "enabled"
},
"EnclaveOptions": {
"Enabled": false
},
"PlatformDetails": "Linux/UNIX",
"UsageOperation": "RunInstances",
"UsageOperationUpdateTime": "2022-11-15T10:48:59+00:00",
"PrivateDnsNameOptions": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": true,
"EnableResourceNameDnsAAAARecord": false
},
"MaintenanceOptions": {
"AutoRecovery": "default"
}
}
],
"OwnerId": "111111111111",
"ReservationId": "r-1234567890abcdefg"
}
]
}

View File

@ -0,0 +1,54 @@
{
"taskDefinition": {
"taskDefinitionArn": "arn:aws:ecs:us-east-1:012345678910:task-definition/hello_world:8",
"containerDefinitions": [
{
"cpu": 10,
"environment": [],
"essential": true,
"image": "wordpress",
"links": [
"mysql"
],
"memory": 500,
"mountPoints": [],
"name": "wordpress",
"portMappings": [
{
"containerPort": 80,
"hostPort": 80
}
],
"volumesFrom": []
},
{
"cpu": 10,
"environment": [
{
"name": "MYSQL_ROOT_PASSWORD",
"value": "password"
}
],
"essential": true,
"image": "mysql",
"memory": 500,
"mountPoints": [],
"name": "mysql",
"portMappings": [],
"volumesFrom": []
}
],
"family": "hello_world",
"revision": 8,
"volumes": [],
"status": "ACTIVE",
"placementConstraints": [],
"compatibilities": [
"EXTERNAL",
"EC2"
],
"registeredAt": "2024-06-21T11:15:12.669000-05:00",
"registeredBy": "arn:aws:sts::012345678910:assumed-role/demo-role/jane-doe"
},
"tags": []
}

View File

@ -0,0 +1,66 @@
{
"tasks": [
{
"attachments": [],
"attributes": [
{
"name": "ecs.cpu-architecture",
"value": "x86_64"
}
],
"availabilityZone": "us-east-1b",
"clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/MyCluster",
"connectivity": "CONNECTED",
"connectivityAt": "2021-08-11T12:21:26.681000-04:00",
"containerInstanceArn": "arn:aws:ecs:us-east-1:123456789012:container-instance/test/025c7e2c5e054a6790a29fc1fEXAMPLE",
"containers": [
{
"containerArn": "arn:aws:ecs:us-east-1:123456789012:container/MyCluster/4d590253bb114126b7afa7b58eea9221/a992d1cc-ea46-474a-b6e8-24688EXAMPLE",
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58EXAMPLE",
"name": "simple-app",
"image": "httpd:2.4",
"runtimeId": "91251eed27db90006ad67b1a08187290869f216557717dd5c39b37c94EXAMPLE",
"lastStatus": "RUNNING",
"networkBindings": [
{
"bindIP": "0.0.0.0",
"containerPort": 80,
"hostPort": 80,
"protocol": "tcp"
}
],
"networkInterfaces": [],
"healthStatus": "UNKNOWN",
"cpu": "10",
"memory": "300"
}
],
"cpu": "10",
"createdAt": "2021-08-11T12:21:26.681000-04:00",
"desiredStatus": "RUNNING",
"enableExecuteCommand": false,
"group": "service:testupdate",
"healthStatus": "UNKNOWN",
"lastStatus": "RUNNING",
"launchType": "EC2",
"memory": "300",
"overrides": {
"containerOverrides": [
{
"name": "simple-app"
}
],
"inferenceAcceleratorOverrides": []
},
"pullStartedAt": "2021-08-11T12:21:28.234000-04:00",
"pullStoppedAt": "2021-08-11T12:21:33.793000-04:00",
"startedAt": "2021-08-11T12:21:34.945000-04:00",
"startedBy": "ecs-svc/968695068243EXAMPLE",
"tags": [],
"taskArn": "arn:aws:ecs:us-east-1:123456789012:task/MyCluster/4d590253bb114126b7afa7b58eea9221",
"taskDefinitionArn": "arn:aws:ecs:us-east-1:123456789012:task-definition/console-sample-app-static2:1",
"version": 2
}
],
"failures": []
}

View File

@ -0,0 +1,78 @@
{
"Functions": [
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=",
"FunctionName": "helloworld",
"MemorySize": 128,
"RevisionId": "1718e831-badf-4253-9518-d0644210af7b",
"CodeSize": 294,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:helloworld",
"Handler": "helloworld.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/MyTestFunction-role-zgur6bf4",
"Timeout": 3,
"LastModified": "2025-09-23T18:32:33.857+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=",
"FunctionName": "my-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 256,
"RevisionId": "93017fc9-59cb-41dc-901b-4845ce4bf668",
"CodeSize": 266,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-function",
"Handler": "index.handler",
"Role": "arn:aws:iam::123456789012:role/service-role/helloWorldPython-role-uy3l9qyq",
"Timeout": 3,
"LastModified": "2025-10-01T16:47:28.490+0000",
"Runtime": "nodejs22.x",
"Description": ""
},
{
"Layers": [
{
"CodeSize": 41784542,
"Arn": "arn:aws:lambda:us-west-2:420165488524:layer:AWSLambda-Python37-SciPy1x:2"
},
{
"CodeSize": 4121,
"Arn": "arn:aws:lambda:us-west-2:123456789012:layer:pythonLayer:1"
}
],
"TracingConfig": {
"Mode": "PassThrough"
},
"Version": "$LATEST",
"CodeSha256": "ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI=",
"FunctionName": "my-python-function",
"VpcConfig": {
"SubnetIds": [],
"VpcId": "",
"SecurityGroupIds": []
},
"MemorySize": 128,
"RevisionId": "80b4eabc-acf7-4ea8-919a-e874c213707d",
"CodeSize": 299,
"FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-python-function",
"Handler": "lambda_function.lambda_handler",
"Role": "arn:aws:iam::123456789012:role/service-role/my-python-function-role-z5g7dr6n",
"Timeout": 3,
"LastModified": "2025-10-01T19:40:41.643+0000",
"Runtime": "python3.11",
"Description": ""
}
]
}

View File

@ -0,0 +1,71 @@
{
"value": [
{
"name": "demo1",
"type": "Microsoft.ContainerInstance/containerGroups",
"id": "/subscriptions/subid/resourceGroups/demo/providers/Microsoft.ContainerInstance/containerGroups/demo1",
"location": "WestUs",
"properties": {
"containers": [
{
"name": "demo1",
"properties": {
"command": [],
"environmentVariables": [],
"image": "nginx",
"ports": [
{
"port": 80
}
],
"resources": {
"requests": {
"cpu": 1,
"memoryInGB": 1.5
}
},
"volumeMounts": [
{
"name": "volume1",
"mountPath": "/mnt/volume1",
"readOnly": false
}
]
}
}
],
"imageRegistryCredentials": [
{
"server": "azcloudconsoleregistry.azurecr.io",
"username": "azcloudconsoleregistry"
}
],
"ipAddress": {
"type": "Public",
"ip": "10.0.0.1",
"ports": [
{
"port": 80,
"protocol": "TCP"
}
]
},
"osType": "Linux",
"provisioningState": "Succeeded",
"volumes": [
{
"name": "volume1",
"azureFile": {
"readOnly": false,
"shareName": "share1",
"storageAccountName": "storage1"
}
}
]
},
"zones": [
"1"
]
}
]
}

View File

@ -0,0 +1,148 @@
{
"parameters": {
"api-version": "2026-07-01",
"subscriptionId": "34adfa4f-cedf-4dc0-ba29-b6d1a69ab345"
},
"responses": {
"200": {
"body": {
"nextLink": null,
"value": [
{
"name": "testcontainerApp0",
"type": "Microsoft.App/containerApps",
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/testcontainerApp0",
"location": "East US",
"properties": {
"configuration": {
"dapr": {
"appHealth": {
"path": "/health",
"enabled": true,
"probeIntervalSeconds": 3,
"probeTimeoutMilliseconds": 1000,
"threshold": 3
},
"appPort": 3000,
"appProtocol": "http",
"enableApiLogging": true,
"enabled": true,
"httpMaxRequestSize": 10,
"httpReadBufferSize": 30,
"logLevel": "debug"
},
"ingress": {
"customDomains": [
{
"name": "www.my-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-name-dot-com"
},
{
"name": "www.my--other-name.com",
"bindingType": "SniEnabled",
"certificateId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube/certificates/my-certificate-for-my-other-name-dot-com"
}
],
"external": true,
"fqdn": "testcontainerApp0.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"ipSecurityRestrictions": [
{
"name": "Allow work IP A subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/32"
},
{
"name": "Allow work IP B subnet",
"description": "Allowing all IP's within the subnet below to access containerapp",
"action": "Allow",
"ipAddressRange": "192.168.1.1/8"
}
],
"stickySessions": {
"affinity": "sticky"
},
"targetPort": 3000,
"traffic": [
{
"revisionName": "testcontainerApp0-ab1234"
},
{
"label": "staging",
"revisionName": "testcontainerApp0-ab4321"
}
],
"transport": "auto"
},
"maxInactiveRevisions": 10,
"runtime": {
"java": {
"enableMetrics": true
}
},
"service": {
"type": "redis"
}
},
"eventStreamEndpoint": "testEndpoint",
"latestReadyRevisionName": "testcontainerApp0-pjxhsye",
"latestRevisionFqdn": "testcontainerApp0-pjxhsye.demokube-t24clv0g.eastus.containerApps.k4apps.io",
"managedEnvironmentId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/managedEnvironments/demokube",
"provisioningState": "Succeeded",
"runningStatus": "Running",
"template": {
"containers": [
{
"name": "testcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"initContainers": [
{
"name": "testinitcontainerApp0",
"image": "repo/testcontainerApp0:v4",
"resources": {
"cpu": 0.2,
"memory": "100Mi"
}
}
],
"scale": {
"cooldownPeriod": 350,
"maxReplicas": 5,
"minReplicas": 1,
"pollingInterval": 35,
"rules": [
{
"name": "httpscalingrule",
"http": {
"metadata": {
"concurrentRequests": "50"
}
}
}
]
},
"serviceBinds": [
{
"name": "service",
"serviceId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/rg/providers/Microsoft.App/containerApps/service"
}
]
},
"workloadProfileName": "My-GP-01"
}
}
]
},
"headers": {}
}
},
"operationId": "ContainerApps_ListBySubscription",
"title": "List Container Apps by subscription"
}

View File

@ -0,0 +1,936 @@
{
"parameters": {
"resourceGroupName": "rgcompute",
"$filter": "aaaaaaaaaaaaaaaaaaaaaaa",
"api-version": "2026-04-01",
"subscriptionId": "{subscription-id}"
},
"responses": {
"200": {
"body": {
"value": [
{
"properties": {
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aaaaaaaaaaaaa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaa",
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"firstPartyServiceTagId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/firstPartyServiceTags/{firstPartyServiceTagName}"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"licenseType": "aaaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 8,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.683Z"
},
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
}
},
{
"properties": {
"vmId": "{vmId}",
"availabilitySet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hardwareProfile": {
"vmSize": "Standard_A0",
"vmSizeProperties": {
"vCPUsAvailable": 7,
"vCPUsPerCore": 14
}
},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2012-R2-Datacenter",
"version": "4.127.20170406",
"exactVersion": "aa",
"sharedGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaa",
"communityGalleryImageId": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"id": "aaaaaaaa"
},
"osDisk": {
"osType": "Windows",
"name": "test",
"createOption": "FromImage",
"vhd": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"caching": "None",
"diskSizeGB": 127,
"encryptionSettings": {
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
},
"image": {
"uri": "https://{storageAccountName}.blob.core.windows.net/{containerName}/{vhdName}.vhd"
},
"writeAcceleratorEnabled": true,
"diffDiskSettings": {
"option": "Local",
"placement": "CacheDisk"
},
"managedDisk": {
"storageAccountType": "Standard_LRS",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"securityProfile": {
"securityEncryptionType": "VMGuestStateOnly",
"diskEncryptionSet": {
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/testingexcludedisk_OsDisk_1_74cdaedcea50483d9833c96adefa100f"
},
"deleteOption": "Delete"
},
"dataDisks": []
},
"osProfile": {
"computerName": "Test",
"adminUsername": "Foo12",
"windowsConfiguration": {
"provisionVMAgent": true,
"enableAutomaticUpdates": true,
"timeZone": "aaaaaaaaaaaaaaaaaaaa",
"additionalUnattendContent": [
{
"passName": "OobeSystem",
"componentName": "Microsoft-Windows-Shell-Setup",
"settingName": "AutoLogon",
"content": "aaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"patchSettings": {
"patchMode": "Manual",
"enableHotpatching": true,
"assessmentMode": "ImageDefault"
},
"winRM": {
"listeners": [
{
"protocol": "Http",
"certificateUrl": "aaaaaaaaaaaaaaaaaaaaa"
}
]
}
},
"secrets": [],
"allowExtensionOperations": true,
"customData": "aaaaaaaaaaaaaaaaaaaaaaa",
"linuxConfiguration": {
"disablePasswordAuthentication": true,
"ssh": {
"publicKeys": [
{
"path": "aaaaaaaaaaaaaaaaaaaaaa",
"keyData": "aaa"
}
]
},
"provisionVMAgent": true,
"patchSettings": {
"patchMode": "ImageDefault",
"assessmentMode": "ImageDefault"
}
},
"requireGuestProvisionSignal": true
},
"networkProfile": {
"networkInterfaces": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkInterfaces/{networkInterfaceName}",
"properties": {
"primary": true,
"deleteOption": "Delete"
}
}
],
"networkApiVersion": "2022-05-01",
"networkInterfaceConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"primary": true,
"deleteOption": "Delete",
"enableAcceleratedNetworking": true,
"disableTcpStateTracking": true,
"enableFpga": true,
"enableIPForwarding": true,
"networkSecurityGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"dnsSettings": {
"dnsServers": [
"aaaaaaaaaaaaaaaaaaaaaaaa"
]
},
"ipConfigurations": [
{
"name": "aaaaaaaa",
"properties": {
"subnet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"primary": true,
"publicIPAddressConfiguration": {
"name": "aaaaaaaaaaaaaaaaaa",
"properties": {
"idleTimeoutInMinutes": 23,
"deleteOption": "Delete",
"dnsSettings": {
"domainNameLabel": "aaaaa"
},
"ipTags": [
{
"ipTagType": "aaaaa",
"tag": "aaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
],
"publicIPPrefix": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic"
},
"sku": {
"name": "Basic",
"tier": "Regional"
}
},
"privateIPAddressVersion": "IPv4",
"privateIPAddressPrefixLength": 28,
"applicationSecurityGroups": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"applicationGatewayBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
],
"loadBalancerBackendAddressPools": [
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
]
}
}
],
"dscpConfiguration": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
}
}
]
},
"provisioningState": "Succeeded",
"additionalCapabilities": {
"ultraSSDEnabled": true,
"hibernationEnabled": true
},
"securityProfile": {
"uefiSettings": {
"secureBootEnabled": true,
"vTpmEnabled": true
},
"encryptionAtHost": true,
"securityType": "TrustedLaunch"
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": true,
"storageUri": "aaaaaaaaaaaaaaaaaaaaa"
}
},
"virtualMachineScaleSet": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"proximityPlacementGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"priority": "Regular",
"evictionPolicy": "Deallocate",
"billingProfile": {
"maxPrice": 26
},
"host": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"hostGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
},
"instanceView": {
"platformUpdateDomain": 1,
"platformFaultDomain": 29,
"computerName": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"osName": "aaaaaaaaaaa",
"osVersion": "aaaaaaaaaaaaaa",
"hyperVGeneration": "V1",
"rdpThumbPrint": "aaaaaaaaaaaaaaaaaaaaaaa",
"vmAgent": {
"vmAgentVersion": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"extensionHandlers": [
{
"type": "aaaaa",
"typeHandlerVersion": "aaaaaaaaaaaaaaaaaaa",
"status": {
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"maintenanceRedeployStatus": {
"isCustomerInitiatedMaintenanceAllowed": true,
"preMaintenanceWindowStartTime": "2022-01-14T16:43:41.682Z",
"preMaintenanceWindowEndTime": "2022-01-14T16:43:41.682Z",
"maintenanceWindowStartTime": "2022-01-14T16:43:41.682Z",
"maintenanceWindowEndTime": "2022-01-14T16:43:41.682Z",
"lastOperationResultCode": "None",
"lastOperationMessage": "aa"
},
"disks": [
{
"name": "a",
"encryptionSettings": [
{
"diskEncryptionKey": {
"secretUrl": "aaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"keyEncryptionKey": {
"keyUrl": "aaaaaaaaaaaaa",
"sourceVault": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"enabled": true
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
}
],
"extensions": [
{
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
}
],
"vmHealth": {
"status": {
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
},
"bootDiagnostics": {
"consoleScreenshotBlobUri": "aaaaaaaaaaaaaaaaaaaaaaa",
"serialConsoleLogBlobUri": "aaaaaaaaaaaaaaaaaaa",
"status": {
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
},
"assignedHost": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"patchStatus": {
"availablePatchSummary": {
"status": "Unknown",
"assessmentActivityId": "aaaaaaaaaaaaaaaaaaa",
"rebootPending": true,
"criticalAndSecurityPatchCount": 22,
"otherPatchCount": 25,
"startTime": "2022-01-14T16:43:41.682Z",
"lastModifiedTime": "2022-01-14T16:43:41.683Z",
"error": {
"details": [
{
"code": "aaaaaaaaaaaaaaaaaaaaa",
"target": "aaaaaa",
"message": "aaaaaaaaaaaaa"
}
],
"innererror": {
"exceptiontype": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"errordetail": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"code": "aaaaaa",
"target": "aaaaaaaaa",
"message": "aaa"
}
},
"lastPatchInstallationSummary": {
"status": "Unknown",
"installationActivityId": "aaaaaa",
"maintenanceWindowExceeded": true,
"notSelectedPatchCount": 20,
"excludedPatchCount": 1,
"pendingPatchCount": 2,
"installedPatchCount": 28,
"failedPatchCount": 30,
"startTime": "2022-01-14T16:43:41.683Z",
"lastModifiedTime": "2022-01-14T16:43:41.683Z",
"error": {
"details": [
{
"code": "aaaaaaaaaaaaaaaaaaaaa",
"target": "aaaaaa",
"message": "aaaaaaaaaaaaa"
}
],
"innererror": {
"exceptiontype": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"errordetail": "aaaaaaaaaaaaaaaaaaaaaaaaaaaa"
},
"code": "aaaaaa",
"target": "aaaaaaaaa",
"message": "aaa"
}
},
"configurationStatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"isVMInStandbyPool": false
},
"licenseType": "aaaaaaaaaaaaaa",
"extensionsTimeBudget": "aaaaaaaaaaaaaaaaaaaaaa",
"platformFaultDomain": 11,
"scheduledEventsProfile": {
"terminateNotificationProfile": {
"notBeforeTimeout": "PT10M",
"enable": true
},
"osImageNotificationProfile": {
"notBeforeTimeout": "PT15M",
"enable": true
}
},
"userData": "aaaaaaaaaaaaaaaaaaa",
"capacityReservation": {
"capacityReservationGroup": {
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/availabilitySets/{availabilitySetName}"
}
},
"applicationProfile": {
"galleryApplications": [
{
"tags": "aaaaa",
"order": 4,
"packageReferenceId": "aaaaaaaaaaaaaaaaaaaaaa",
"configurationReference": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
]
},
"timeCreated": "2022-01-14T16:43:41.685Z"
},
"type": "Microsoft.Compute/virtualMachines",
"location": "eastus",
"tags": {},
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}",
"name": "{virtualMachineName}",
"plan": {
"name": "aaaaaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaaa",
"product": "aaaaaaaaaaaaaaaaaaaaaa",
"promotionCode": "aaaaaaaaaaaaaa"
},
"resources": [
{
"properties": {
"forceUpdateTag": "aaaaaaaaaaaaaaa",
"publisher": "aaaaaaaaaaaaaaaa",
"type": "aaaaaaaa",
"typeHandlerVersion": "aaaaaaaaaaaa",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"settings": {},
"protectedSettings": {},
"provisioningState": "aaa",
"instanceView": {
"name": "aaaaaaaaaaaaaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaa",
"typeHandlerVersion": "aaaaaa",
"substatuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
],
"statuses": [
{
"code": "aaa",
"level": "Info",
"displayStatus": "aaaaaaaaaaaaaaaaaaaaaaaa",
"message": "aaaaaaaaaaaaaaaaaaa",
"time": "2022-01-14T16:43:41.657Z"
}
]
},
"suppressFailures": true,
"protectedSettingsFromKeyVault": {
"sourceVault": {
"id": "/subscriptions/a53f7094-a16c-47af-abe4-b05c05d0d79a/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/kvName"
},
"secretUrl": "https://kvName.vault.azure.net/secrets/secretName/79b88b3a6f5440ffb2e73e44a0db712e"
}
},
"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"name": "aaaaaaaaaaaaa",
"type": "aaaaaaaaaaaaaaaaaaaaaaaaaaa",
"location": "aaaaaaaaaaaaaaaa",
"tags": {
"key9428": "aaaaaaa"
}
}
],
"identity": {
"principalId": "aaaaaaaaaaaaaaaa",
"tenantId": "aaaaa",
"type": "SystemAssigned",
"userAssignedIdentities": {
"key5688": {
"principalId": "aaaaaaaaaaaaaaa",
"clientId": "aaaaaaaaaaa"
}
}
},
"zones": [
"aaaaaa"
],
"extendedLocation": {
"name": "aaaa",
"type": "EdgeZone"
}
}
],
"nextLink": "a://example.com/a"
}
}
},
"operationId": "VirtualMachines_List",
"title": "VirtualMachine_List_MaximumSet_Gen"
}

View File

@ -0,0 +1,238 @@
{
"value": [
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef6141",
"name": "sitef6141",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"properties": {
"state": "Running",
"hostNames": [
"sitef6141.azurewebsites.net"
],
"repositorySiteName": "sitef6141",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef6141.azurewebsites.net",
"sitef6141.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef6141.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef6141.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef6141.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
}
},
{
"id": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/sites/sitef7252",
"name": "sitef7252",
"type": "Microsoft.Web/sites",
"kind": "app",
"location": "East US",
"properties": {
"state": "Running",
"hostNames": [
"sitef7252.azurewebsites.net"
],
"repositorySiteName": "sitef7252",
"usageState": "Normal",
"enabled": true,
"enabledHostNames": [
"sitef7252.azurewebsites.net",
"sitef7252.scm.azurewebsites.net"
],
"availabilityState": "Normal",
"hostNameSslStates": [
{
"name": "sitef7252.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Standard"
},
{
"name": "sitef7252.scm.azurewebsites.net",
"sslState": "Disabled",
"hostType": "Repository"
}
],
"serverFarmId": "/subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/testrg123/providers/Microsoft.Web/serverfarms/DefaultAsp",
"reserved": false,
"isXenon": false,
"hyperV": false,
"lastModifiedTimeUtc": "2020-03-04T17:33:11.641Z",
"outboundVnetRouting": {
"allTraffic": false,
"applicationTraffic": false,
"contentShareTraffic": false,
"imagePullTraffic": false,
"backupRestoreTraffic": false
},
"siteConfig": {
"numberOfWorkers": 1,
"defaultDocuments": [
"Default.htm",
"Default.html",
"Default.asp",
"index.htm",
"index.html",
"iisstart.htm",
"default.aspx",
"index.php",
"hostingstart.html"
],
"netFrameworkVersion": "v4.0",
"phpVersion": "5.6",
"pythonVersion": "",
"nodeVersion": "",
"powerShellVersion": "",
"linuxFxVersion": "",
"requestTracingEnabled": false,
"remoteDebuggingEnabled": false,
"httpLoggingEnabled": false,
"acrUseManagedIdentityCreds": false,
"logsDirectorySizeLimit": 35,
"detailedErrorLoggingEnabled": false,
"use32BitWorkerProcess": true,
"webSocketsEnabled": false,
"alwaysOn": false,
"appCommandLine": "",
"managedPipelineMode": "Integrated",
"virtualApplications": [
{
"virtualPath": "/",
"physicalPath": "site\\wwwroot",
"preloadEnabled": false
}
],
"loadBalancing": "LeastRequests",
"autoHealEnabled": false,
"vnetName": "",
"vnetRouteAllEnabled": false,
"vnetPrivatePortsCount": 0,
"http20Enabled": false,
"minTlsVersion": "1.2",
"scmMinTlsVersion": "1.2",
"ftpsState": "AllAllowed",
"functionAppScaleLimit": 0,
"functionsRuntimeScaleMonitoringEnabled": false,
"minimumElasticInstanceCount": 0,
"azureStorageAccounts": {}
},
"scmSiteAlsoStopped": false,
"clientAffinityEnabled": true,
"clientCertEnabled": false,
"clientCertMode": "Required",
"hostNamesDisabled": false,
"customDomainVerificationId": "7F3BB652450EF7AD0B6AA33064586E4A9CE823A46DF0B2EC6443A68086E84153",
"outboundIpAddresses": "203.0.113.201,198.51.100.144",
"possibleOutboundIpAddresses": "203.0.113.201,198.51.100.144,203.0.113.122,198.51.100.188",
"containerSize": 0,
"dailyMemoryTimeQuota": 0,
"resourceGroup": "testrg123",
"defaultHostName": "sitef7252.azurewebsites.net",
"httpsOnly": false,
"redundancyMode": "None",
"storageAccountRequired": false,
"keyVaultReferenceIdentity": "SystemAssigned",
"workloadProfileName": "myd4wp",
"resourceConfig": {
"cpu": 1,
"memory": "2.0Gi"
}
}
}
]
}

View File

@ -0,0 +1,95 @@
[
{
"kind": "compute#instance",
"id": "4218766341062832345",
"creationTimestamp": "2026-10-01T08:12:03.512-07:00",
"name": "api-1",
"description": "",
"tags": {
"items": [
"http-server"
],
"fingerprint": "Qm9vdHN0cmFw"
},
"machineType": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/machineTypes/e2-standard-2",
"status": "RUNNING",
"zone": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a",
"networkInterfaces": [
{
"kind": "compute#networkInterface",
"network": "https://www.googleapis.com/compute/v1/projects/example-project/global/networks/default",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/subnetworks/default",
"networkIP": "10.128.0.5",
"name": "nic0",
"fingerprint": "bmljMA==",
"stackType": "IPV4_ONLY"
}
],
"disks": [
{
"kind": "compute#attachedDisk",
"type": "PERSISTENT",
"mode": "READ_WRITE",
"source": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/api-1",
"deviceName": "persistent-disk-0",
"index": 0,
"boot": true,
"autoDelete": true,
"licenses": [
"https://www.googleapis.com/compute/v1/projects/debian-cloud/global/licenses/debian-12-bookworm"
],
"interface": "SCSI",
"guestOsFeatures": [
{ "type": "UEFI_COMPATIBLE" },
{ "type": "VIRTIO_SCSI_MULTIQUEUE" },
{ "type": "GVNIC" }
],
"diskSizeGb": "10",
"architecture": "X86_64"
}
],
"metadata": {
"kind": "compute#metadata",
"fingerprint": "bWV0YWRhdGE=",
"items": [
{ "key": "enable-oslogin", "value": "TRUE" },
{ "key": "ssh-keys", "value": "operator:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIExampleExampleExampleExampleExampleExampleEx operator" },
{ "key": "startup-script", "value": "#! /bin/bash\napt-get update\n" }
]
},
"serviceAccounts": [
{
"email": "123456789012-compute@developer.gserviceaccount.com",
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
]
}
],
"selfLink": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/api-1",
"scheduling": {
"onHostMaintenance": "MIGRATE",
"automaticRestart": true,
"preemptible": false,
"provisioningModel": "STANDARD"
},
"cpuPlatform": "Intel Broadwell",
"labels": {
"env": "prod",
"team": "payments"
},
"labelFingerprint": "bGFiZWxz",
"startRestricted": false,
"deletionProtection": false,
"shieldedInstanceConfig": {
"enableSecureBoot": false,
"enableVtpm": true,
"enableIntegrityMonitoring": true
},
"shieldedInstanceIntegrityPolicy": {
"updateAutoLearnPolicy": true
},
"fingerprint": "aW5zdGFuY2U=",
"lastStartTimestamp": "2026-10-01T08:12:40.101-07:00",
"satisfiesPzi": true
}
]

View File

@ -0,0 +1,130 @@
[
{
"apiVersion": "serving.knative.dev/v1",
"kind": "Service",
"metadata": {
"name": "api",
"namespace": "123456789012",
"selfLink": "/apis/serving.knative.dev/v1/namespaces/123456789012/services/api",
"uid": "3f2a9c1e-5b7d-4e8f-9a0b-1c2d3e4f5a6b",
"resourceVersion": "AAYy1ZQ0JdU",
"generation": 3,
"creationTimestamp": "2026-09-30T14:02:11.431902Z",
"labels": {
"cloud.googleapis.com/location": "europe-west1"
},
"annotations": {
"run.googleapis.com/ingress": "all",
"run.googleapis.com/ingress-status": "all",
"serving.knative.dev/creator": "operator@example.com",
"serving.knative.dev/lastModifier": "operator@example.com"
}
},
"spec": {
"template": {
"metadata": {
"name": "api-00003-xyz",
"annotations": {
"autoscaling.knative.dev/maxScale": "10",
"run.googleapis.com/execution-environment": "gen2"
}
},
"spec": {
"containerConcurrency": 80,
"timeoutSeconds": 300,
"serviceAccountName": "api-runner@example-project.iam.gserviceaccount.com",
"containers": [
{
"name": "api-1",
"image": "europe-west1-docker.pkg.dev/example-project/apps/api@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
"args": [
"--port=8080"
],
"ports": [
{
"name": "http1",
"containerPort": 8080
}
],
"env": [
{
"name": "LOG_LEVEL",
"value": "info"
},
{
"name": "DB_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"key": "latest",
"name": "db-password"
}
}
}
],
"resources": {
"limits": {
"cpu": "1000m",
"memory": "512Mi"
}
},
"volumeMounts": [
{
"name": "cache",
"mountPath": "/cache"
}
]
}
],
"volumes": [
{
"name": "cache",
"emptyDir": {
"medium": "Memory",
"sizeLimit": "128Mi"
}
}
]
}
},
"traffic": [
{
"percent": 100,
"latestRevision": true
}
]
},
"status": {
"observedGeneration": 3,
"conditions": [
{
"type": "Ready",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
},
{
"type": "ConfigurationsReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:20.113005Z"
},
{
"type": "RoutesReady",
"status": "True",
"lastTransitionTime": "2026-10-10T09:15:22.870111Z"
}
],
"latestReadyRevisionName": "api-00003-xyz",
"latestCreatedRevisionName": "api-00003-xyz",
"traffic": [
{
"revisionName": "api-00003-xyz",
"percent": 100,
"latestRevision": true
}
],
"url": "https://api-abc123-ew.a.run.app",
"address": {
"url": "https://api-abc123-ew.a.run.app"
}
}
}
]

View File

@ -0,0 +1,120 @@
'use strict';
// proba-adaptoare-cloud.mjs (B15, 2026-10-18): proba adaptoarelor pe furnizori de cloud ale sidecar-ului (scan --source aws-ecs | aws-ec2 |
// aws-lambda | azure-vm | azure-container | azure-containerapp | azure-webapp | gcp-compute | gcp-run), pe fixturile DERIVATE din
// documentatia oficiala a fiecarui CLI (fixturi-cloud/). Pentru fiecare adaptor:
// 1 exportul documentat -> exact incarcaturile care RULEAZA, cu identitatile asteptate (nume si versiune in plic)
// 2 CONFIDENTIALITATE: valorile de mediu plantate (si customData/userData) NU apar nici in jurnal, nici in descriptori; NUMELE da
// 3 incarcatura OPRITA din varianta `.oprita` NU intra (acelasi numar de intrari, numele ei lipseste din tot ce s-a scris)
// 4 exportul ALTUI CLI e refuzat PE NUME (mesajul numeste comanda asteptata), nimic scris
// 5 fiecare descriptor re-hashat (canonic, chei sortate la toate nivelurile) = digestul din plicul lui din lant
// 6 fiecare plic e VALID pentru verificatorul AIP-23 comun (AERE_VERIFY_PROOF; altfel SARIT, cod 2)
// plus: fixturile de pe disc sunt cele derivate; o sursa necunoscuta e refuzata; ECS fara definitii spune `not-in-export`; `az vm list`
// fara -d si `az container list` fara instanceView sunt refuzate pe nume; referinta ARN a unui secret ECS si cheile Azure de retea nu intra.
// node proba-adaptoare-cloud.mjs -> 0 toate cum trebuia, 1 cel putin una rea, 2 cel putin una SARITA
// Mediu: AERE_SIDECAR_MODUL (copia masurata, pentru controlul negativ), AERE_VERIFY_PROOF (verificatorul AIP-23).
// NEMASURAT aici, spus si in fixturi-cloud/README.md: iesirea unui CONT REAL la oricare furnizor; nu avem conturi.
import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; import crypto from 'node:crypto';
import { execFileSync } from 'node:child_process'; import { fileURLToPath, pathToFileURL } from 'node:url';
const AICI = path.dirname(fileURLToPath(import.meta.url));
const SIDE = process.env.AERE_SIDECAR_MODUL ? path.resolve(process.env.AERE_SIDECAR_MODUL) : path.join(AICI, 'sidecar.mjs');
const VERIFY = process.env.AERE_VERIFY_PROOF ? path.resolve(process.env.AERE_VERIFY_PROOF) : path.resolve(AICI, '..', 'aere-proof-protocol', 'verify.mjs');
const areVerificator = fs.existsSync(VERIFY);
const FX = path.join(AICI, 'fixturi-cloud');
const { deriva, text: textFixtura, SECRET, SECRET_DATE } = await import(pathToFileURL(path.join(FX, 'deriva.mjs')).href);
const T = fs.mkdtempSync(path.join(os.tmpdir(), 'avl-cloud-'));
let rele = 0, bune = 0, sarite = 0;
const cer = (n, c) => { console.log(` [${c ? 'OK ' : 'RAU '}] ${n}`); if (c) bune++; else rele++; };
const sari = (n) => { console.log(` [SARIT] ${n} (verificatorul AIP-23 nu e la ${VERIFY}; dati AERE_VERIFY_PROOF)`); sarite++; };
function side(args) { try { return { cod: 0, out: execFileSync(process.execPath, [SIDE, ...args], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }) }; } catch (e) { return { cod: e.status ?? 1, out: (e.stdout || '') + (e.stderr || '') }; } }
const linii = (p) => (fs.existsSync(p) ? fs.readFileSync(p, 'utf8').split('\n').filter((l) => l.trim()).map((l) => JSON.parse(l)) : []);
const textul = (p) => (fs.existsSync(p) ? fs.readFileSync(p, 'utf8') : '');
const valid = (f) => { try { execFileSync(process.execPath, [VERIFY, f], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }); return true; } catch { return false; } };
// re-derivarea canonica, scrisa AICI, nu importata: chei sortate la toate nivelurile
const canon = (v) => (Array.isArray(v) ? '[' + v.map(canon).join(',') + ']' : v && typeof v === 'object' ? '{' + Object.keys(v).sort().map((k) => JSON.stringify(k) + ':' + canon(v[k])).join(',') + '}' : JSON.stringify(v));
const shaCanon = (o) => '0x' + crypto.createHash('sha256').update(Buffer.from(canon(o), 'utf8')).digest('hex');
const F = (f) => path.join(FX, f);
const egal = (a, b) => JSON.stringify(a) === JSON.stringify(b);
const scan = (src, fixtura, log, extra = []) => side(['scan', '--source', src, '--input', F(fixtura), '--host', 'h', '--log', log, '--at', '2026-10-18T10:00:00Z', ...extra]);
// pentru fiecare adaptor: exportul, identitatile asteptate (din fixtura documentata), numele variabilelor plantate, marcajul incarcaturii oprite,
// exportul altui CLI si comanda pe care refuzul trebuie sa o numeasca
const H64 = '0123456789abcdef'.repeat(4);
const A = [
{ src: 'aws-ecs', extra: ['--task-definitions', F('aws-ecs.definitii.json')], extraSecrete: ['--task-definitions', F('aws-ecs.secrete.definitii.json')],
nume: ['ecs:MyCluster/4d590253bb114126b7afa7b58eea9221/simple-app'], versiuni: ['httpd:2.4'], numeEnv: ['API_TOKEN', 'HTTPD_PORT'], numePlantate: ['DB_PASSWORD', 'OVERRIDE_TOKEN'],
oprit: '0000000000000000000000oprita', altCli: 'aws-ec2.json', refuz: 'aws ecs describe-tasks' },
{ src: 'aws-ec2', nume: ['ec2:us-east-2/i-1234567890abcdef0'], versiuni: ['ami-0abcdef1234567890'], numeEnv: ['Name'], numePlantate: ['DB_PASSWORD'], oprit: 'i-0000000000oprita00', altCli: 'aws-lambda.json', refuz: 'aws ec2 describe-instances' },
{ src: 'aws-lambda', nume: ['lambda:us-west-2/helloworld', 'lambda:us-west-2/my-function', 'lambda:us-west-2/my-python-function'],
versiuni: ['dBG9m8SGdmlEjw/JYXlhhvCrAv5TxvXsbL/RMr0fT/I=', 'sU0cJ2/hOZevwV/lTxCuQqK3gDZP3i8gUoqUUVRmY6E=', 'ZQukCqxtkqFgyF2cU41Avj99TKQ/hNihPtDtRcc08mI='],
numeEnv: [], numePlantate: ['DB_PASSWORD', 'LOG_LEVEL'], oprit: 'inactive-function', altCli: 'aws-ecs.json', refuz: 'aws lambda list-functions' },
{ src: 'azure-vm', nume: ['azvm:{resourceGroupName}/{virtualMachineName}', 'azvm:{resourceGroupName}/{virtualMachineName}'], versiuni: ['aaaaaaaaaaaaa', 'aa'], numeEnv: [], numePlantate: ['DB_PASSWORD', 'env'],
plantateInPlus: [SECRET_DATE], oprit: 'vm-oprita', altCli: 'azure-container.json', refuz: 'az vm list -d' },
{ src: 'azure-container', nume: ['aci:demo/demo1/demo1'], versiuni: ['nginx'], numeEnv: [], numePlantate: ['API_KEY', 'DB_PASSWORD'], oprit: 'demo2', altCli: 'azure-vm.json', refuz: 'az container list' },
{ src: 'azure-containerapp', nume: ['aca:rg/testcontainerApp0/testcontainerApp0'], versiuni: ['repo/testcontainerApp0:v4'], numeEnv: [], numePlantate: ['API_KEY', 'DB_PASSWORD'], oprit: 'testcontainerApp1', altCli: 'azure-webapp.json', refuz: 'az containerapp list' },
{ src: 'azure-webapp', nume: ['azwebapp:testrg123/sitef6141', 'azwebapp:testrg123/sitef7252'], versiuni: ['mcr.microsoft.com/appsvc/staticsite:latest', '?'], numeEnv: [], numePlantate: ['DB_PASSWORD', 'WEBSITES_PORT'],
oprit: 'sitef0000', altCli: 'azure-containerapp.json', refuz: 'az webapp list --show-details' },
{ src: 'gcp-compute', nume: ['gce:us-central1-a/api-1'], versiuni: ['4218766341062832345'], numeEnv: ['enable-oslogin', 'ssh-keys', 'startup-script'], numePlantate: ['user-data'], oprit: 'api-2', altCli: 'gcp-run.json', refuz: 'gcloud compute instances list --format=json' },
{ src: 'gcp-run', nume: ['run:europe-west1/api/api-1'], versiuni: ['sha256:' + H64], numeEnv: ['DB_PASSWORD', 'LOG_LEVEL'], numePlantate: ['DB_PASSWORD_PLAIN'], oprit: '"batch"', altCli: 'gcp-compute.json', refuz: 'gcloud run services list --format=json' },
];
try {
// fixturile de pe disc sunt EXACT cele derivate din surse (altfel proba ar masura un fisier editat de mana)
const derivate = deriva(); const difera = Object.entries(derivate).filter(([f, o]) => textul(F(f)) !== textFixtura(o)).map(([f]) => f);
cer(`fixturile de pe disc sunt cele derivate de deriva.mjs (${Object.keys(derivate).length} fisiere)`, difera.length === 0 && Object.keys(derivate).length >= 27);
cer('CONTROL: o sursa necunoscuta e refuzata (cod 2) si uzanta numeste toate sursele', (() => { const r = side(['scan', '--source', 'aws-foo', '--input', F('aws-ecs.json'), '--log', path.join(T, 'foo.log')]); return r.cod === 2 && A.every((a) => r.out.includes(a.src)) && !fs.existsSync(path.join(T, 'foo.log')); })());
const plicuri = [];
for (const a of A) {
const P = (s) => `${a.src}: ${s}`;
// 1: exportul documentat -> incarcaturile care ruleaza, identitatile exacte
const log = path.join(T, a.src + '.log'); const des = log + '.descriptori.jsonl';
const r1 = scan(a.src, a.src + '.json', log, a.extra || []);
const L = linii(log); const D = linii(des);
const numeScrise = D.map((d) => d.name); const numeInPlic = L.map((e) => e.proof.statement.name);
cer(P(`exportul documentat -> ${a.nume.length} intrari, identitatile exacte (${a.nume.map((n, i) => `${n}@${a.versiuni[i]}`).join(', ')})`),
r1.cod === 0 && L.length === a.nume.length && egal(numeScrise, a.nume) && egal(numeInPlic, a.nume.map((n, i) => `h/${n}@${a.versiuni[i]}`)));
// 5: re-hash
cer(P('descriptorii re-hashati (canonic, adanc) = digestul din plicurile lantului'), D.length === L.length && D.length > 0 && D.every((d) => shaCanon(d.descriptor) === d.sha256 && L[d.seq].proof.statement.sha256 === d.sha256));
if (a.numeEnv.length) cer(P(`control pozitiv: numele documentate (${a.numeEnv.join(', ')}) sunt in descriptori`), a.numeEnv.every((n) => textul(des).includes(`"${n}"`)));
for (const e of L) plicuri.push({ src: a.src, f: path.join(T, `${a.src}-${e.seq}.json`), p: e.proof });
// 2: confidentialitate, pe varianta cu valori plantate
const logS = path.join(T, a.src + '.secrete.log'); const desS = logS + '.descriptori.jsonl';
const r2 = scan(a.src, a.src + '.secrete.json', logS, a.extraSecrete || a.extra || []);
const tot = textul(logS) + textul(desS); const plantate = [SECRET, ...(a.plantateInPlus || [])];
cer(P(`CONFIDENTIALITATE: valorile plantate NU apar nici in jurnal, nici in descriptori; NUMELE (${a.numePlantate.join(', ')}) da`),
r2.cod === 0 && linii(logS).length === a.nume.length && plantate.every((s) => !tot.includes(s)) && a.numePlantate.every((n) => textul(desS).includes(`"${n}"`)));
// 3: incarcatura oprita nu intra
const logO = path.join(T, a.src + '.oprita.log'); const r3 = scan(a.src, a.src + '.oprita.json', logO, a.extra || []);
const totO = textul(logO) + textul(logO + '.descriptori.jsonl');
cer(P(`incarcatura OPRITA (${a.oprit}) NU intra: tot atatea intrari ca fara ea, numele ei lipseste`), r3.cod === 0 && linii(logO).length === a.nume.length && !totO.includes(a.oprit));
// 4: exportul altui CLI, refuzat pe nume
const logA = path.join(T, a.src + '.alt.log'); const r4 = scan(a.src, a.altCli, logA);
cer(P(`CONTROL: export de alt CLI (${a.altCli}) refuzat PE NUME (cod 2, "not the output of \`${a.refuz}\`"), nimic scris`), r4.cod === 2 && r4.out.includes(`is not the output of \`${a.refuz}\``) && !fs.existsSync(logA));
}
// 6: moatul, pentru toate plicurile adaptoarelor deodata
if (areVerificator) { let toate = true; for (const x of plicuri) { fs.writeFileSync(x.f, JSON.stringify(x.p)); if (!valid(x.f)) toate = false; } cer(`moat: fiecare plic al celor ${A.length} adaptoare (${plicuri.length}) e VALID pentru verificatorul AIP-23 comun`, toate && plicuri.length >= 13); }
else sari(`moat: fiecare plic al celor ${A.length} adaptoare e VALID pentru verificatorul AIP-23 comun`);
// particularitati documentate
{ const log = path.join(T, 'ecs-fara-def.log'); const r = scan('aws-ecs', 'aws-ecs.json', log); const d = linii(log + '.descriptori.jsonl')[0]?.descriptor || {};
cer('aws-ecs fara --task-definitions: intra, cu envSource not-in-export si envNames goale (numele stau in definitie)', r.cod === 0 && d.envSource === 'not-in-export' && egal(d.envNames, []) && d.commandSha256 === null); }
{ const d = linii(path.join(T, 'aws-ecs.log.descriptori.jsonl'))[0]?.descriptor || {}; const t = textul(path.join(T, 'aws-ecs.log.descriptori.jsonl'));
cer('aws-ecs cu definitii: envSource task-definition, referinta ARN a secretului (valueFrom) NU intra, montarea intra cu calea din container', d.envSource === 'task-definition' && !t.includes('secretsmanager') && egal(d.mounts, ['/usr/local/apache2/htdocs'])); }
{ const r = scan('azure-vm', 'azure-vm.fara-d.json', path.join(T, 'vm-fara-d.log'));
cer('CONTROL: `az vm list` fara -d (fara powerState) -> refuzat pe nume (cod 2), nimic scris', r.cod === 2 && /has no powerState/.test(r.out) && r.out.includes('az vm list -d') && !fs.existsSync(path.join(T, 'vm-fara-d.log'))); }
{ const t = textul(path.join(T, 'azure-vm.secrete.log.descriptori.jsonl'));
cer('azure-vm: customData, userData, adminUsername, cheile ssh si adresele (publicIps, privateIps) NU sunt chei ale descriptorului', t.length > 0 && !/"(customData|userData|adminUsername|publicKeys|publicIps|privateIps|fqdns|macAddresses)"/.test(t)); }
{ const r = scan('azure-container', 'azure-container.fara-stare.json', path.join(T, 'aci-fara-stare.log'));
cer('CONTROL: `az container list` fara instanceView -> refuzat pe nume (cod 2, cere `az container show`), nimic scris', r.cod === 2 && /instanceView\.currentState/.test(r.out) && r.out.includes('az container show') && !fs.existsSync(path.join(T, 'aci-fara-stare.log'))); }
{ const d = linii(path.join(T, 'azure-webapp.log.descriptori.jsonl')).map((x) => x.descriptor);
cer('azure-webapp: situl cu DOCKER|imagine are imageIdentity declared si imaginea; cel fara runtime in export are not-in-export', d.length === 2 && d[0].imageIdentity === 'declared' && d[0].image === 'mcr.microsoft.com/appsvc/staticsite:latest' && d[1].imageIdentity === 'not-in-export' && d[1].image === null); }
{ const d = linii(path.join(T, 'gcp-run.log.descriptori.jsonl'))[0]?.descriptor || {};
cer('gcp-run: imaginea data prin digest -> imageIdentity digest, regiunea din eticheta cloud.googleapis.com/location, valueFrom nu intra', d.imageIdentity === 'digest' && d.imageDigest === 'sha256:' + H64 && d.region === 'europe-west1' && !JSON.stringify(d).includes('secretKeyRef')); }
{ const d = linii(path.join(T, 'aws-lambda.log.descriptori.jsonl')).map((x) => x.descriptor);
cer('aws-lambda: list-functions nu poarta State -> state not-in-export, identitatea e CodeSha256 (imageIdentity codeSha256)', d.length === 3 && d.every((x) => x.state === 'not-in-export' && x.imageIdentity === 'codeSha256' && x.codeSha256)); }
} catch (e) { console.log(` [RAU ] proba a cazut: ${e.stack || e.message}`); rele++; }
finally { fs.rmSync(T, { recursive: true, force: true }); }
console.log(`\nB15 adaptoare cloud: ${bune}/${bune + rele + sarite} cum trebuia${sarite ? `, ${sarite} SARITE` : ''} (sidecar: ${SIDE})`);
process.exitCode = rele ? 1 : sarite ? 2 : 0;

View File

@ -18,6 +18,9 @@
// sidecar record --kind proof --proof-file f.json (leaga orice plic AIP-23 gata facut, dupa ce ii verifica forma si integritatea)
// sidecar scan --source docker|kubernetes --input export.json (fiecare container care RULEAZA; NUMAI numele variabilelor de mediu,
// linia de comanda ca hash; exportul il face operatorul)
// sidecar scan --source aws-ecs|aws-ec2|aws-lambda|azure-vm|azure-container|azure-containerapp|azure-webapp|gcp-compute|gcp-run
// --input export.json [--task-definitions f] (B15, 2026-10-18: exportul CLI-ului furnizorului, facut de operator; aceeasi
// forma: numai ce RULEAZA, numai NUMELE variabilelor, nicio acreditare si niciun apel la API)
// sidecar verify-log --log p [--attested cap.json [--signer head.pub.pem]] -> 0 intreg (si continua capul atestat), 1 rupt sau necontinuat
// sidecar attest-head --log p [--out f] [--sign-key head.key.pem] -> capul lantului ca plic AIP-23 aere-audit-head, semnat ML-DSA-65
// sidecar keygen --out <dosar> -> cheia ML-DSA-65 cu care operatorul semneaza capetele (head.key.pem 0600, head.pub.pem)
@ -184,6 +187,243 @@ export function descrieKubernetes(lista) {
return out;
}
// ---- adaptoarele pe furnizori de cloud (B15, 2026-10-18): ACEEASI forma, onesta ------------------------------------------------
// Exportul il face operatorul cu CLI-ul furnizorului, cu acreditarile LUI, pe masina lui; sidecar-ul citeste fisierul si atat: nicio
// acreditare in sidecar, niciun apel la un API. Fiecare adaptor: (1) refuza pe nume un fisier care nu e iesirea CLI-ului numit;
// (2) ia numai incarcaturile pe care exportul le declara ca RULEAZA; (3) scrie identitatea (imagine + digest cand exportul il are,
// altfel id-ul masinii/serviciului + imaginea declarata, `imageIdentity: 'declared'`), regiunea/zona, NUMAI numele variabilelor de
// mediu (si ale etichetelor, setarilor, cheilor de metadata), NICIO valoare de userData/customData/metadata (nu se copiaza deloc).
// Descriptorul e canonic (chei sortate la toate nivelurile) si devine un plic 'data' prin acelasi constructor ca Docker/Kubernetes.
// Masurate pe iesirile DOCUMENTATE ale CLI-urilor (fixturi-cloud/), nu pe un cont real: nu avem conturi la AWS/Azure/GCP.
const canonicAdanc = (v) => (Array.isArray(v) ? '[' + v.map((x) => canonicAdanc(x === undefined ? null : x)).join(',') + ']'
: v && typeof v === 'object' ? '{' + Object.keys(v).filter((k) => v[k] !== undefined).sort().map((k) => JSON.stringify(k) + ':' + canonicAdanc(v[k])).join(',') + '}'
: JSON.stringify(v === undefined ? null : v));
const numeDin = (lista, cheie = 'name') => [...new Set((Array.isArray(lista) ? lista : []).map((e) => (e && typeof e === 'object' ? e[cheie] : e)).filter((n) => typeof n === 'string' && n))].sort();
const ultimul = (url) => (typeof url === 'string' && url ? url.split('/').filter(Boolean).pop() || null : null);
const grupulDin = (id) => { const m = /\/resourceGroups\/([^/]+)\//i.exec(String(id || '')); return m ? m[1] : null; };
const digestDinImagine = (img) => { const m = /@(sha256:[0-9a-fA-F]{64})$/.exec(String(img || '')); return m ? m[1].toLowerCase() : null; };
// az CLI scrie resursele ARM cu `properties` aplatizat; `az rest` si extensia containerapp le lasa imbricate: se citesc amandoua formele
const aplatizat = (o) => (o && typeof o === 'object' && o.properties && typeof o.properties === 'object' ? { ...o.properties, ...o } : o);
const intrare = (nume, version, d) => ({ name: nume, version: version || '?', content: Buffer.from(canonicAdanc(d), 'utf8') });
/** `aws ecs describe-tasks` (+ optional `aws ecs describe-task-definition`, una sau o lista, pentru numele variabilelor si comanda) */
export function descrieAwsEcs(j, definitii = null) {
if (!(!!j && !Array.isArray(j) && Array.isArray(j.tasks) /*FORMA:aws-ecs*/)) throw new Error('aws-ecs: the input is not the output of `aws ecs describe-tasks` (an object with tasks[])');
const defs = new Map();
for (const d of definitii == null ? [] : Array.isArray(definitii) ? definitii : [definitii]) {
const td = d && d.taskDefinition;
if (!(!!td && typeof td.taskDefinitionArn === 'string' && Array.isArray(td.containerDefinitions) /*FORMA:aws-ecs-definitii*/)) throw new Error('aws-ecs: --task-definitions is not the output of `aws ecs describe-task-definition` (taskDefinition.containerDefinitions[])');
defs.set(td.taskDefinitionArn, td);
}
const out = [];
for (const t of j.tasks) {
if (!(!!t && t.lastStatus === 'RUNNING' /*RULEAZA:aws-ecs*/)) continue;
const td = defs.get(t.taskDefinitionArn) || null;
const region = String(t.taskArn || '').split(':')[3] || null;
for (const c of t.containers || []) {
// si containerul trebuie sa ruleze: un task RUNNING poate avea un container neesential deja oprit
if (!(!!c && c.lastStatus === 'RUNNING' /*RULEAZA:aws-ecs-container*/)) continue;
const cd = td ? td.containerDefinitions.find((x) => x && x.name === c.name) || null : null;
const over = (t.overrides?.containerOverrides || []).find((x) => x && x.name === c.name) || null;
const d = {
runtime: 'aws-ecs', region, clusterArn: t.clusterArn || null, taskArn: t.taskArn || null, taskDefinitionArn: t.taskDefinitionArn || null,
container: c.name, image: c.image || cd?.image || null, imageDigest: c.imageDigest || null, imageIdentity: c.imageDigest ? 'digest' : 'declared',
runtimeId: c.runtimeId || null, launchType: t.launchType || null, availabilityZone: t.availabilityZone || null, startedAt: t.startedAt || null,
group: t.group || null, taskVersion: t.version ?? null,
commandSha256: cd ? sha256(Buffer.from(JSON.stringify([...(cd.entryPoint || []), ...(over?.command || cd.command || [])]), 'utf8')) : null,
// numele din definitie (environment + secrets, al caror valueFrom e un ARN, nu o valoare) si din overrides; valorile nu intra
envNames: numeDin([...(cd?.environment || []), ...(cd?.secrets || []), ...(over?.environment || [])] /*NUME:aws-ecs*/),
envSource: td ? (over?.environment ? 'task-definition+overrides' : 'task-definition') : over?.environment ? 'overrides-only' : 'not-in-export',
mounts: (cd?.mountPoints || []).map((m) => m && m.containerPath).filter(Boolean).sort(),
};
out.push(intrare(`ecs:${ultimul(t.clusterArn)}/${ultimul(t.taskArn)}/${c.name}`, c.imageDigest || c.image, d));
}
}
return out;
}
/** `aws ec2 describe-instances` */
export function descrieAwsEc2(j) {
if (!(!!j && !Array.isArray(j) && Array.isArray(j.Reservations) /*FORMA:aws-ec2*/)) throw new Error('aws-ec2: the input is not the output of `aws ec2 describe-instances` (an object with Reservations[])');
const out = [];
for (const r of j.Reservations) for (const i of r?.Instances || []) {
if (!(!!i && i.State?.Name === 'running' /*RULEAZA:aws-ec2*/)) continue;
const zona = i.Placement?.AvailabilityZone || null; const region = zona ? zona.replace(/[a-z]$/, '') : null;
// userData nu e in describe-instances si nu se cere; valorile etichetelor nu intra (o eticheta poate purta orice)
const d = {
runtime: 'aws-ec2', region, availabilityZone: zona, instanceId: i.InstanceId || null, imageId: i.ImageId || null, imageIdentity: 'declared',
instanceType: i.InstanceType || null, architecture: i.Architecture || null, platformDetails: i.PlatformDetails || null, virtualizationType: i.VirtualizationType || null,
bootMode: i.BootMode || null, launchTime: i.LaunchTime || null, iamInstanceProfileArn: i.IamInstanceProfile?.Arn || null, rootDeviceType: i.RootDeviceType || null,
imdsV2Required: i.MetadataOptions ? i.MetadataOptions.HttpTokens === 'required' : null, tagKeys: numeDin(i.Tags, 'Key' /*NUME:aws-ec2*/),
};
out.push(intrare(`ec2:${region}/${i.InstanceId}`, i.ImageId, d));
}
return out;
}
/** `aws lambda list-functions`: list-functions nu intoarce State (nota din documentatia lui); o functie e inregistrata ca desfasurata,
* cu `state: 'not-in-export'`; daca exportul poarta State (get-function-configuration), numai `Active` intra */
export function descrieAwsLambda(j) {
if (!(!!j && !Array.isArray(j) && Array.isArray(j.Functions) /*FORMA:aws-lambda*/)) throw new Error('aws-lambda: the input is not the output of `aws lambda list-functions` (an object with Functions[])');
const out = [];
for (const f of j.Functions) {
if (!(!!f && (f.State === undefined || f.State === 'Active') /*RULEAZA:aws-lambda*/)) continue;
const region = String(f.FunctionArn || '').split(':')[3] || null;
const d = {
runtime: 'aws-lambda', region, functionArn: f.FunctionArn || null, functionName: f.FunctionName || null, packageType: f.PackageType || 'Zip',
functionRuntime: f.Runtime || null, handler: f.Handler || null, codeSha256: f.CodeSha256 || null, imageIdentity: f.CodeSha256 ? 'codeSha256' : 'declared',
codeSize: f.CodeSize ?? null, lastModified: f.LastModified || null, functionVersion: f.Version || null, revisionId: f.RevisionId || null,
architectures: [...(f.Architectures || [])].sort(), layers: numeDin(f.Layers, 'Arn'), state: f.State ?? 'not-in-export',
envNames: Object.keys(f.Environment?.Variables || {}).sort() /*NUME:aws-lambda*/,
};
out.push(intrare(`lambda:${region}/${f.FunctionName}`, f.CodeSha256, d));
}
return out;
}
/** `az vm list -d` (--show-details adauga powerState; fara el exportul nu spune daca masina merge, si e refuzat) */
export function descrieAzureVm(j) {
if (!(Array.isArray(j) && j.every((v) => v && typeof v.id === 'string' && /\/providers\/Microsoft\.Compute\/virtualMachines\//i.test(v.id)) /*FORMA:azure-vm*/)) throw new Error('azure-vm: the input is not the output of `az vm list -d` (an array of Microsoft.Compute/virtualMachines resources)');
const vms = j.map(aplatizat);
if (!(vms.length === 0 || vms.some((v) => typeof v.powerState === 'string') /*FORMA:azure-vm-d*/)) throw new Error('azure-vm: the export has no powerState: run `az vm list -d` (--show-details), which adds the power state of each machine');
const out = [];
for (const v of vms) {
if (!(v.powerState === 'VM running' /*RULEAZA:azure-vm*/)) continue;
const ir = v.storageProfile?.imageReference || {}; const rg = v.resourceGroup || grupulDin(v.id);
// customData, userData, adminUsername, cheile ssh, adresele: nu se copiaza; etichetele intra numai cu numele
const d = {
runtime: 'azure-vm', id: v.id, name: v.name || null, resourceGroup: rg, location: v.location || null, zones: [...(v.zones || [])].sort(), vmId: v.vmId || null,
vmSize: v.hardwareProfile?.vmSize || null,
imageReference: Object.fromEntries(['publisher', 'offer', 'sku', 'version', 'exactVersion', 'id', 'sharedGalleryImageId', 'communityGalleryImageId'].filter((k) => ir[k] != null).map((k) => [k, ir[k]])),
imageIdentity: 'declared', osType: v.storageProfile?.osDisk?.osType || null, computerName: v.osProfile?.computerName || null,
provisioningState: v.provisioningState || null, powerState: v.powerState, timeCreated: v.timeCreated || null, tagKeys: Object.keys(v.tags || {}).sort() /*NUME:azure-vm*/,
};
out.push(intrare(`azvm:${rg}/${v.name}`, ir.exactVersion || ir.version || ir.id, d));
}
return out;
}
/** `az container list` / `az container show` (Azure Container Instances): starea fiecarui container e in instanceView.currentState */
export function descrieAzureContainer(j) {
if (!(Array.isArray(j) && j.every((g) => g && typeof g.id === 'string' && /\/providers\/Microsoft\.ContainerInstance\/containerGroups\//i.test(g.id)) /*FORMA:azure-container*/)) throw new Error('azure-container: the input is not the output of `az container list` or `az container show` (an array of Microsoft.ContainerInstance/containerGroups resources)');
const out = []; let cuStare = 0;
for (const g0 of j) {
const g = aplatizat(g0); const rg = g.resourceGroup || grupulDin(g.id);
for (const c0 of g.containers || []) {
const c = aplatizat(c0); const st = c.instanceView?.currentState || null; if (st) cuStare++;
if (!(!!st && st.state === 'Running' /*RULEAZA:azure-container*/)) continue;
// environmentVariables intra cu numele (value si secureValue nu), imageRegistryCredentials nu intra deloc
const d = {
runtime: 'azure-container', groupId: g.id, group: g.name || null, resourceGroup: rg, location: g.location || null, zones: [...(g.zones || [])].sort(), osType: g.osType || null,
provisioningState: g.provisioningState || null, container: c.name || null, image: c.image || null, imageDigest: digestDinImagine(c.image), imageIdentity: digestDinImagine(c.image) ? 'digest' : 'declared',
commandSha256: sha256(Buffer.from(JSON.stringify(c.command || []), 'utf8')), envNames: numeDin(c.environmentVariables /*NUME:azure-container*/),
mounts: (c.volumeMounts || []).map((m) => m && m.mountPath).filter(Boolean).sort(), startedAt: st.startTime || null, restartCount: c.instanceView?.restartCount ?? null,
};
out.push(intrare(`aci:${rg}/${g.name}/${c.name}`, digestDinImagine(c.image) || c.image, d));
}
}
if (j.length && cuStare === 0) throw new Error('azure-container: no container in the export carries instanceView.currentState (`az container list` may omit it): collect `az container show -g <group> -n <name> -o json` outputs into a JSON array');
return out;
}
/** `az containerapp list` (Azure Container Apps): runningStatus e al aplicatiei; numai `Running` intra (Progressing, Stopped, Suspended
* si `Ready`, pe care specificatia il enumera fara sa il defineasca, nu); initContainers nu intra (nu ruleaza continuu) */
export function descrieAzureContainerApp(j) {
if (!(Array.isArray(j) && j.every((a) => a && typeof a.id === 'string' && /\/providers\/Microsoft\.App\/containerApps\//i.test(a.id)) /*FORMA:azure-containerapp*/)) throw new Error('azure-containerapp: the input is not the output of `az containerapp list` (an array of Microsoft.App/containerApps resources)');
const out = [];
for (const a0 of j) {
const a = aplatizat(a0);
if (!(a.runningStatus === 'Running' /*RULEAZA:azure-containerapp*/)) continue;
const rg = a.resourceGroup || grupulDin(a.id);
for (const c of a.template?.containers || []) {
if (!c) continue;
// env intra cu numele; secretRef e numele unui secret, nu valoarea lui; configuration.secrets nu se citeste deloc
const d = {
runtime: 'azure-containerapp', appId: a.id, app: a.name || null, resourceGroup: rg, location: a.location || null, environmentId: a.environmentId || a.managedEnvironmentId || null,
provisioningState: a.provisioningState || null, runningStatus: a.runningStatus, latestReadyRevisionName: a.latestReadyRevisionName || null, latestRevisionName: a.latestRevisionName || null,
workloadProfileName: a.workloadProfileName || null, container: c.name || null, image: c.image || null, imageDigest: digestDinImagine(c.image), imageIdentity: digestDinImagine(c.image) ? 'digest' : 'declared',
commandSha256: sha256(Buffer.from(JSON.stringify([...(c.command || []), ...(c.args || [])]), 'utf8')), envNames: numeDin(c.env /*NUME:azure-containerapp*/), envSecretRefs: numeDin(c.env, 'secretRef'),
mounts: (c.volumeMounts || []).map((m) => m && m.mountPath).filter(Boolean).sort(),
};
out.push(intrare(`aca:${rg}/${a.name}/${c.name}`, digestDinImagine(c.image) || c.image, d));
}
}
return out;
}
/** `az webapp list --show-details` (App Service): state e al sitului; runtime-ul e linuxFxVersion/windowsFxVersion (DOCKER|imagine
* pentru un container); appSettings si connectionStrings intra numai cu numele (API-ul le ascunde oricum la citirile obisnuite) */
export function descrieAzureWebapp(j) {
if (!(Array.isArray(j) && j.every((s) => s && typeof s.id === 'string' && /\/providers\/Microsoft\.Web\/sites\//i.test(s.id)) /*FORMA:azure-webapp*/)) throw new Error('azure-webapp: the input is not the output of `az webapp list --show-details` (an array of Microsoft.Web/sites resources)');
const out = [];
for (const s0 of j) {
const s = aplatizat(s0);
if (!(s.state === 'Running' /*RULEAZA:azure-webapp*/)) continue;
const rg = s.resourceGroup || grupulDin(s.id); const sc = s.siteConfig && typeof s.siteConfig === 'object' ? s.siteConfig : null;
const fx = sc?.linuxFxVersion || sc?.windowsFxVersion || null; const m = /^DOCKER\|(.+)$/i.exec(fx || ''); const image = m ? m[1] : null;
const d = {
runtime: 'azure-webapp', id: s.id, name: s.name || null, resourceGroup: rg, location: s.location || null, kind: s.kind || null, state: s.state, defaultHostName: s.defaultHostName || null,
fxVersion: fx, image, imageDigest: digestDinImagine(image), imageIdentity: digestDinImagine(image) ? 'digest' : fx ? 'declared' : 'not-in-export',
lastModifiedTimeUtc: s.lastModifiedTimeUtc || null, httpsOnly: s.httpsOnly ?? null, minTlsVersion: sc?.minTlsVersion || null, siteConfigInExport: !!sc,
appSettingNames: numeDin(sc?.appSettings /*NUME:azure-webapp*/), connectionStringNames: numeDin(sc?.connectionStrings),
};
out.push(intrare(`azwebapp:${rg}/${s.name}`, digestDinImagine(image) || image || fx, d));
}
return out;
}
/** `gcloud compute instances list --format=json`: metadata.items intra numai cu cheile (startup-script, user-data, ssh-keys stau acolo) */
export function descrieGcpCompute(j) {
if (!(Array.isArray(j) && j.every((i) => i && i.kind === 'compute#instance') /*FORMA:gcp-compute*/)) throw new Error('gcp-compute: the input is not the output of `gcloud compute instances list --format=json` (an array of compute#instance resources)');
const out = [];
for (const i of j) {
if (!(i.status === 'RUNNING' /*RULEAZA:gcp-compute*/)) continue;
const boot = (i.disks || []).find((d) => d && d.boot) || null; const zona = ultimul(i.zone);
const d = {
runtime: 'gcp-compute', id: i.id != null ? String(i.id) : null, name: i.name || null, zone: zona, machineType: ultimul(i.machineType), status: i.status, cpuPlatform: i.cpuPlatform || null,
creationTimestamp: i.creationTimestamp || null, lastStartTimestamp: i.lastStartTimestamp || null,
bootDisk: boot ? { source: ultimul(boot.source), licenses: (boot.licenses || []).map(ultimul).filter(Boolean).sort(), architecture: boot.architecture || null, diskSizeGb: boot.diskSizeGb ?? null } : null,
imageIdentity: 'declared', serviceAccounts: numeDin(i.serviceAccounts, 'email'), labelKeys: Object.keys(i.labels || {}).sort(), metadataKeys: numeDin(i.metadata?.items, 'key' /*NUME:gcp-compute*/),
selfLink: i.selfLink || null,
};
out.push(intrare(`gce:${zona}/${i.name}`, i.id != null ? String(i.id) : null, d));
}
return out;
}
/** `gcloud run services list --format=json` (Knative Service, Cloud Run Admin API v1): ruleaza = conditia Ready e True */
export function descrieGcpRun(j) {
if (!(Array.isArray(j) && j.every((s) => s && s.apiVersion === 'serving.knative.dev/v1' && s.kind === 'Service') /*FORMA:gcp-run*/)) throw new Error('gcp-run: the input is not the output of `gcloud run services list --format=json` (an array of serving.knative.dev/v1 Service resources)');
const out = [];
for (const s of j) {
const ready = (s.status?.conditions || []).find((c) => c && c.type === 'Ready') || null;
if (!(!!ready && ready.status === 'True' /*RULEAZA:gcp-run*/)) continue;
const md = s.metadata || {}; const region = md.labels?.['cloud.googleapis.com/location'] || null; const spec = s.spec?.template?.spec || {};
(spec.containers || []).forEach((c, idx) => {
if (!c) return;
const nume = c.name || `container-${idx}`;
// env intra cu numele; value si valueFrom (referinta la Secret Manager) nu
const d = {
runtime: 'gcp-run', service: md.name || null, namespace: md.namespace || null, region, uid: md.uid || null, generation: md.generation ?? null, observedGeneration: s.status?.observedGeneration ?? null,
latestReadyRevisionName: s.status?.latestReadyRevisionName || null, latestCreatedRevisionName: s.status?.latestCreatedRevisionName || null, url: s.status?.url || null,
serviceAccountName: spec.serviceAccountName || null, container: nume, image: c.image || null, imageDigest: digestDinImagine(c.image), imageIdentity: digestDinImagine(c.image) ? 'digest' : 'declared',
commandSha256: sha256(Buffer.from(JSON.stringify([...(c.command || []), ...(c.args || [])]), 'utf8')), envNames: numeDin(c.env /*NUME:gcp-run*/),
mounts: (c.volumeMounts || []).map((m) => m && m.mountPath).filter(Boolean).sort(), readySince: ready.lastTransitionTime || null,
};
out.push(intrare(`run:${region}/${md.name}/${nume}`, digestDinImagine(c.image) || s.status?.latestReadyRevisionName || c.image, d));
});
}
return out;
}
/** sursa -> adaptor; `aws-ecs` primeste si definitiile de task (optional) */
export const ADAPTOARE = {
docker: descrieDocker, kubernetes: descrieKubernetes,
'aws-ecs': descrieAwsEcs, 'aws-ec2': descrieAwsEc2, 'aws-lambda': descrieAwsLambda,
'azure-vm': descrieAzureVm, 'azure-container': descrieAzureContainer, 'azure-containerapp': descrieAzureContainerApp, 'azure-webapp': descrieAzureWebapp,
'gcp-compute': descrieGcpCompute, 'gcp-run': descrieGcpRun,
};
// ---- scrierea: un singur scriitor odata ----------------------------------------------------------------------------------------
// Doi scriitori fara lacat citeau aceeasi lungime si scriau acelasi seq: lantul se rupea, si de atunci ORICE adaugare era refuzata
// (revizuirea adversariala 2026-09-29, masurat: doi scriitori concurenti rup lantul). Lacatul e un fisier creat exclusiv langa
@ -277,13 +517,14 @@ async function main() {
}
case 'scan': {
const src = get('--source'); const f = get('--input');
if (!['docker', 'kubernetes'].includes(src) || !f) { console.error('scan --source docker|kubernetes --input <export.json>'); return 2; }
if (!ADAPTOARE[src] || !f) { console.error(`scan --source ${Object.keys(ADAPTOARE).join('|')} --input <export.json> [--task-definitions <describe-task-definition.json>]`); return 2; }
let desc;
try {
const j = JSON.parse(fs.readFileSync(f, 'utf8'));
desc = src === 'docker' ? descrieDocker(j) : descrieKubernetes(j);
const td = get('--task-definitions');
desc = src === 'aws-ecs' ? descrieAwsEcs(j, td ? JSON.parse(fs.readFileSync(td, 'utf8')) : null) : ADAPTOARE[src](j);
} catch (e) { console.error('scan: ' + e.message); return 2; }
if (desc.length === 0) { console.error('scan: no running container in the export; a zero is not recorded'); return 2; }
if (desc.length === 0) { console.error('scan: no running workload (container, task, instance, function or service) in the export; a zero is not recorded'); return 2; }
// plicul 'data' poarta numai digestul descriptorului; descriptorul insusi (fara valori de mediu, prin constructie) sta
// alaturi, ca un auditor sa il poata re-hasha si compara cu plicul din lant; scris sub acelasi lacat
const desFile = get('--descriptors', log + '.descriptori.jsonl');
@ -293,7 +534,7 @@ async function main() {
fs.appendFileSync(desFile, JSON.stringify({ seq: r.seq, name: d.name, sha256: sha256(d.content), descriptor: JSON.parse(d.content.toString('utf8')) }) + '\n');
console.log(`recorded seq=${r.seq} ${d.name} ${String(d.version || '?').slice(0, 19)}`);
});
console.log(`scan ${src}: ${desc.length} running containers, ${desc.length} envelopes in ${log}, descriptors in ${desFile}`);
console.log(`scan ${src}: ${desc.length} running ${['docker', 'kubernetes'].includes(src) ? 'containers' : 'workloads'}, ${desc.length} envelopes in ${log}, descriptors in ${desFile}`);
return 0;
}
case 'verify-log': {