# CdnDistributions Object

> Source: https://truto.one/docs/api-reference/unified-cloud-infrastructure-api/cdndistributions/

Schema for the `CdnDistributions` resource in **Unified Cloud Infrastructure API**.

## Properties

- **`id`** _(string, required)_
  Truto's stable unified identifier for this object. Opaque; use provider_id to address the object in the provider's own console or API.
- **`provider_id`** _(string)_
  The provider's own identifier, passed through verbatim — a full ARN, resource id, or self-link. Never truncated, prefixed, or normalized.
- **`provider`** _(string)_
  Which cloud this object was read from.
  Allowed: `aws`, `azure`, `gcp`
- **`account`** _(string)_
  The account, subscription or project this object belongs to.
- **`region`** _(string)_
  Where the object is located. 'global' denotes genuinely global resources (e.g. IAM, GCP VPC networks) rather than a guessed region. A substituted region (when none is derivable) is flagged in unreadable_fields.
- **`native_type`** _(string)_
  The provider's own type string, unmodified — for example 'AWS::S3::Bucket', 'aws_iam_role', 'Microsoft.Sql/servers'. Used for display and drill-down.
- **`tags`** _(object)_
  Key-value pairs exactly as the customer set them: no case folding, key/value normalization, or merging of separate provider concepts. An empty object means no tags; tags that could not be read appear in unreadable_fields instead.
- **`collected_at`** _(string)_
  When Truto actually read this object from the provider, in UTC ISO 8601 with the offset present — not the request time, and not a provider timestamp.
- **`updated_at`** _(string)_
  When the object was last modified at the provider, in UTC ISO 8601. Null when the provider does not record one - see unreadable_fields.
- **`created_at`** _(string)_
  When the object was created at the provider, in UTC ISO 8601. Null when the provider does not record one - see unreadable_fields.
- **`unreadable_fields`** _(array<object>)_
  Fields on this object that could not be read, and why. An empty array means everything was read. Use this to tell a real value from a missing one.
  - **`field`** _(string)_
    The property on this resource that could not be read.
  - **`reason`** _(string)_
    Why the field could not be read. available_on_get: Not read on list to keep the list fast; call GET for this resource's id to get it.
    Allowed: `not_supported_by_provider`, `not_configured`, `permission_denied`, `not_collected`, `collection_error`, `partially_collected`, `available_on_get`
  - **`detail`** _(string)_
    Explanation of the reason, where one adds anything.
- **`remote_data`** _(object)_
  Raw data returned from the remote API call.
- **`distribution_id`** _(string)_
  The provider's short id for the distribution, verbatim (on AWS: E1U5RQF7T870K0).
- **`domain_name`** _(string)_
  The provider-assigned domain name (on AWS: dxxxx.cloudfront.net).
- **`aliases`** _(array<string>)_
  Alternate domain names (CNAMEs) the distribution serves.
- **`status`** _(string)_
  Deployment state, normalised. deploying: a configuration change is still reaching the edge locations (on AWS: InProgress). provider_status has the provider's value verbatim.
  Allowed: `deployed`, `deploying`, `unknown`
- **`provider_status`** _(string)_
  The provider's own deployment state, verbatim (on AWS: Deployed or InProgress).
- **`enabled`** _(boolean)_
  Whether the distribution serves traffic.
- **`viewer_protocol_policy`** _(string)_
  The default behavior's viewer protocol policy, verbatim (on AWS: allow-all, redirect-to-https or https-only).
- **`https_required`** _(boolean)_
  True when the default behavior and every other cache behavior redirect to or require HTTPS (no behavior allows plain HTTP).
- **`tls_policy`** _(string)_
  The viewer TLS security policy, verbatim (on AWS: MinimumProtocolVersion, e.g. TLSv1.2_2021).
- **`min_tls_version`** _(string)_
  The lowest TLS version viewers can use, as major.minor (1.0, 1.1, 1.2, 1.3), or ssl3. When the distribution uses the provider's default certificate, this is the provider's fixed policy for it, not tls_policy.
- **`certificate`** _(object)_
  The certificate served to viewers, when it is a managed certificate (on AWS: an ACM certificate, always in us-east-1). Null for the provider's default certificate or an IAM server certificate.
  - **`id`** _(string)_
    The target's `id`.
- **`certificate_source`** _(string)_
  Where the certificate served to viewers comes from, normalised. certificate_manager: the provider's certificate manager (on AWS: ACM - see certificate). uploaded: uploaded to the provider outside its certificate manager (on AWS: an IAM server certificate). provider_default: the provider's shared default certificate (on AWS: *.cloudfront.net). provider_certificate_source has the provider's term.
  Allowed: `certificate_manager`, `uploaded`, `provider_default`, `unknown`
- **`provider_certificate_source`** _(string)_
  The provider's own term for the certificate source (on AWS: acm, iam or cloudfront, the values of the deprecated ViewerCertificate.CertificateSource, read from which certificate field is set).
- **`web_firewall_id`** _(string)_
  The web application firewall attached, verbatim (on AWS: a WAFv2 web ACL ARN or a WAF Classic web ACL id). Null when none.
- **`geo_restriction_type`** _(string)_
  none, whitelist or blacklist, verbatim.
- **`http_version`** _(string)_
  Highest HTTP version served, verbatim (http1.1, http2, http3, http2and3).
- **`ipv6_enabled`** _(boolean)_
  Whether IPv6 is enabled.
- **`price_class`** _(string)_
  Edge location price class, verbatim.
- **`logging_enabled`** _(boolean)_
  Whether standard access logging is on. Read on GET only - see unreadable_fields on the list.
- **`logging_destination`** _(string)_
  Where standard access logs go (on AWS: the S3 bucket domain name). Read on GET only.
- **`default_root_object`** _(string)_
  The object served for the root URL. Read on GET only.
- **`origins`** _(array<object>)_
  Where the distribution fetches content from. Custom header VALUES (often an origin-verification secret) are never returned - only header names.
  - **`id`** _(string)_
    The origin id within the distribution.
  - **`domain_name`** _(string)_
    The origin domain name.
  - **`origin_type`** _(string)_
    s3, custom or vpc.
  - **`access_control`** _(string)_
    For s3 origins: origin_access_control, origin_access_identity, or none (the bucket must then be readable by anyone the bucket policy allows).
  - **`protocol_policy`** _(string)_
    For custom origins: http-only, match-viewer or https-only, verbatim.
  - **`tls_protocols`** _(array<string>)_
    For custom origins: TLS/SSL versions used to the origin, verbatim (SSLv3, TLSv1, TLSv1.1, TLSv1.2).
  - **`custom_header_names`** _(array<string>)_
    Names of custom headers sent to the origin. Values are never returned.

## Methods

- [GET /unified/cloud-infrastructure/cdn_distributions/{id}](/docs/api-reference/unified-cloud-infrastructure-api/cdndistributions/get) — Get Cdn distributions
- [GET /unified/cloud-infrastructure/cdn_distributions](/docs/api-reference/unified-cloud-infrastructure-api/cdndistributions/list) — List Cdn distributions
