# coding: utf-8

"""
    Pulp 3 API

    Fetch, Upload, Organize, and Distribute Software Packages

    The version of the OpenAPI document: v3
    Contact: pulp-list@redhat.com
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import json
from enum import Enum
from typing_extensions import Self


class PolicyEnum(str, Enum):
    """
    * `immediate` - When syncing, download all metadata and content now. * `on_demand` - When syncing, download metadata, but do not download content now. Instead, download content as clients request it, and save it in Pulp to be served for future client requests. * `streamed` - When syncing, download metadata, but do not download content now. Instead,download content as clients request it, but never save it in Pulp. This causes future requests for that same content to have to be downloaded again.
    """

    """
    allowed enum values
    """
    IMMEDIATE = 'immediate'
    ON_DEMAND = 'on_demand'
    STREAMED = 'streamed'

    @classmethod
    def from_json(cls, json_str: str) -> Self:
        """Create an instance of PolicyEnum from a JSON string"""
        return cls(json.loads(json_str))


