mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-11 22:55:59 +05:45
102 lines
3.4 KiB
Swift
102 lines
3.4 KiB
Swift
// Copyright 2026 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
import Foundation
|
|
|
|
/// An internal data model for `Date`.
|
|
///
|
|
/// ### Gemini Developer API
|
|
///
|
|
/// > Important: This type is not supported in the Gemini Developer API.
|
|
///
|
|
/// ### Gemini Enterprise API
|
|
///
|
|
/// Type: `Date`
|
|
///
|
|
/// Represents a whole or partial calendar date, such as a birthday. The time of
|
|
/// day and time zone are either specified elsewhere or are insignificant. The
|
|
/// date is relative to the Gregorian Calendar. This can represent one of the
|
|
/// following:
|
|
///
|
|
/// * A full date, with non-zero year, month, and day values.
|
|
/// * A month and day, with a zero year (for example, an anniversary).
|
|
/// * A year on its own, with a zero month and a zero day.
|
|
/// * A year and month, with a zero day (for example, a credit card expiration
|
|
/// date).
|
|
///
|
|
/// Related types:
|
|
///
|
|
/// * google.type.TimeOfDay
|
|
/// * google.type.DateTime
|
|
/// * google.protobuf.Timestamp
|
|
package struct Date: Codable, Sendable, Equatable, Hashable {
|
|
/// Year of the date. Must be from 1 to 9999, or 0 to specify a date without
|
|
///
|
|
/// ### Gemini Developer API
|
|
///
|
|
/// > Important: This property is not supported in the Gemini Developer API.
|
|
///
|
|
/// ### Gemini Enterprise API
|
|
///
|
|
/// Year of the date. Must be from 1 to 9999, or 0 to specify a date without
|
|
/// a year.
|
|
package let year: Int?
|
|
|
|
/// Month of a year. Must be from 1 to 12, or 0 to specify a year without a
|
|
///
|
|
/// ### Gemini Developer API
|
|
///
|
|
/// > Important: This property is not supported in the Gemini Developer API.
|
|
///
|
|
/// ### Gemini Enterprise API
|
|
///
|
|
/// Month of a year. Must be from 1 to 12, or 0 to specify a year without a
|
|
/// month and day.
|
|
package let month: Int?
|
|
|
|
/// Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
|
|
///
|
|
/// ### Gemini Developer API
|
|
///
|
|
/// > Important: This property is not supported in the Gemini Developer API.
|
|
///
|
|
/// ### Gemini Enterprise API
|
|
///
|
|
/// Day of a month. Must be from 1 to 31 and valid for the year and month, or 0
|
|
/// to specify a year by itself or a year and month where the day isn't
|
|
/// significant.
|
|
package let day: Int?
|
|
|
|
/// Creates a new `Date`.
|
|
///
|
|
/// - Parameters:
|
|
/// - year: Year of the date. Must be from 1 to 9999, or 0 to specify a date without (Gemini Enterprise API only). For more details, see ``year``.
|
|
/// - month: Month of a year. Must be from 1 to 12, or 0 to specify a year without a (Gemini Enterprise API only). For more details, see ``month``.
|
|
/// - day: Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 (Gemini Enterprise API only). For more details, see ``day``.
|
|
package init(
|
|
year: Int? = nil,
|
|
month: Int? = nil,
|
|
day: Int? = nil
|
|
) {
|
|
self.year = year
|
|
self.month = month
|
|
self.day = day
|
|
}
|
|
enum CodingKeys: String, CodingKey {
|
|
case year = "year"
|
|
case month = "month"
|
|
case day = "day"
|
|
}
|
|
}
|