Skip to content

Shared Link Create Dto

Bases: BaseModel

SharedLinkCreateDto

Show JSON schema:
{
  "$defs": {
    "SharedLinkType": {
      "description": "Shared link type",
      "enum": [
        "ALBUM",
        "INDIVIDUAL"
      ],
      "title": "SharedLinkType",
      "type": "string"
    }
  },
  "description": "SharedLinkCreateDto",
  "properties": {
    "albumId": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Album ID (for album sharing)",
      "title": "Albumid"
    },
    "allowDownload": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": true,
      "description": "Allow downloads",
      "title": "Allowdownload"
    },
    "allowUpload": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Allow uploads",
      "title": "Allowupload"
    },
    "assetIds": {
      "anyOf": [
        {
          "items": {
            "format": "uuid",
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Asset IDs (for individual assets)",
      "title": "Assetids"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Link description",
      "title": "Description"
    },
    "expiresAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Expiration date",
      "examples": [
        "2024-01-01T00:00:00Z"
      ],
      "title": "Expiresat"
    },
    "password": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Link password",
      "title": "Password"
    },
    "showMetadata": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": true,
      "description": "Show metadata",
      "title": "Showmetadata"
    },
    "slug": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Custom URL slug",
      "title": "Slug"
    },
    "type": {
      "$ref": "#/$defs/SharedLinkType"
    }
  },
  "required": [
    "type"
  ],
  "title": "SharedLinkCreateDto",
  "type": "object"
}

Config:

  • validate_by_name: True
  • validate_by_alias: True
  • validate_assignment: True
  • protected_namespaces: ()

Fields:

Validators:

album_id: Optional[UUID] = None

Album ID (for album sharing)

allow_download: Optional[StrictBool] = True

Allow downloads

allow_upload: Optional[StrictBool] = None

Allow uploads

asset_ids: Optional[List[UUID]] = None

Asset IDs (for individual assets)

description: Optional[StrictStr] = None

Link description

expires_at: Optional[datetime] = None

Expiration date

password: Optional[StrictStr] = None

Link password

show_metadata: Optional[StrictBool] = True

Show metadata

slug: Optional[StrictStr] = None

Custom URL slug

album_id_validate_regular_expression(value)

Validates the regular expression

Source code in immichpy/client/generated/models/shared_link_create_dto.py
81
82
83
84
85
86
87
88
89
90
91
92
93
94
@field_validator("album_id", mode="before")
def album_id_validate_regular_expression(cls, value):
    """Validates the regular expression"""
    if value is None:
        return value

    if isinstance(value, str) and not re.match(
        r"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        value,
    ):
        raise ValueError(
            r"must validate the regular expression /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$/"
        )
    return value
expires_at_validate_regular_expression(value)

Validates the regular expression

Source code in immichpy/client/generated/models/shared_link_create_dto.py
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
@field_validator("expires_at", mode="before")
def expires_at_validate_regular_expression(cls, value):
    """Validates the regular expression"""
    if value is None:
        return value

    if isinstance(value, str) and not re.match(
        r"^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$",
        value,
    ):
        raise ValueError(
            r"must validate the regular expression /^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/"
        )
    return value
from_dict(obj: Optional[Dict[str, Any]]) -> Optional[Self]

Create an instance of SharedLinkCreateDto from a dict

Source code in immichpy/client/generated/models/shared_link_create_dto.py
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
    """Create an instance of SharedLinkCreateDto from a dict"""
    if obj is None:
        return None

    if not isinstance(obj, dict):
        return cls.model_validate(obj)

    _obj = cls.model_validate(
        {
            "albumId": obj.get("albumId"),
            "allowDownload": obj.get("allowDownload")
            if obj.get("allowDownload") is not None
            else True,
            "allowUpload": obj.get("allowUpload"),
            "assetIds": obj.get("assetIds"),
            "description": obj.get("description"),
            "expiresAt": obj.get("expiresAt"),
            "password": obj.get("password"),
            "showMetadata": obj.get("showMetadata")
            if obj.get("showMetadata") is not None
            else True,
            "slug": obj.get("slug"),
            "type": obj.get("type"),
        }
    )
    return _obj
from_json(json_str: str) -> Optional[Self]

Create an instance of SharedLinkCreateDto from a JSON string

Source code in immichpy/client/generated/models/shared_link_create_dto.py
126
127
128
129
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
    """Create an instance of SharedLinkCreateDto from a JSON string"""
    return cls.from_dict(json.loads(json_str))
to_dict() -> Dict[str, Any]

Return the dictionary representation of the model using alias.

This has the following differences from calling pydantic's self.model_dump(by_alias=True):

  • None is only added to the output dict for nullable fields that were set at model initialization. Other fields with value None are ignored.
Source code in immichpy/client/generated/models/shared_link_create_dto.py
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
def to_dict(self) -> Dict[str, Any]:
    """Return the dictionary representation of the model using alias.

    This has the following differences from calling pydantic's
    `self.model_dump(by_alias=True)`:

    * `None` is only added to the output dict for nullable fields that
      were set at model initialization. Other fields with value `None`
      are ignored.
    """
    excluded_fields: Set[str] = set([])

    _dict = self.model_dump(
        by_alias=True,
        exclude=excluded_fields,
        exclude_none=True,
    )
    # set to None if description (nullable) is None
    # and model_fields_set contains the field
    if self.description is None and "description" in self.model_fields_set:
        _dict["description"] = None

    # set to None if expires_at (nullable) is None
    # and model_fields_set contains the field
    if self.expires_at is None and "expires_at" in self.model_fields_set:
        _dict["expiresAt"] = None

    # set to None if password (nullable) is None
    # and model_fields_set contains the field
    if self.password is None and "password" in self.model_fields_set:
        _dict["password"] = None

    # set to None if slug (nullable) is None
    # and model_fields_set contains the field
    if self.slug is None and "slug" in self.model_fields_set:
        _dict["slug"] = None

    return _dict
to_json() -> str

Returns the JSON representation of the model using alias

Source code in immichpy/client/generated/models/shared_link_create_dto.py
122
123
124
def to_json(self) -> str:
    """Returns the JSON representation of the model using alias"""
    return json.dumps(to_jsonable_python(self.to_dict()))
to_str() -> str

Returns the string representation of the model using alias

Source code in immichpy/client/generated/models/shared_link_create_dto.py
118
119
120
def to_str(self) -> str:
    """Returns the string representation of the model using alias"""
    return pprint.pformat(self.model_dump(by_alias=True))