One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Constants
CALLBACKS = {
before_save: [do
if (__temp_1485 = @authority) && __temp_1485.new_record?
__temp_1485.save
self.authority_id = __temp_1485.id.not_nil!
end
end, do
if (__temp_1486 = @provider) && __temp_1486.new_record?
__temp_1486.save
self.provider_id = __temp_1486.id.not_nil!
end
end, do
if (__temp_1487 = @user) && __temp_1487.new_record?
__temp_1487.save
self.user_id = __temp_1487.id.not_nil!
end
end] of
Nil,
after_save: [] of
Nil,
before_create: [do
self.created_at = self.updated_at =
Time.utc
end, :cleanup_expired_jobs] of
Nil,
after_create: [] of
Nil,
before_update: [do
self.updated_at =
Time.utc
end] of
Nil,
after_update: [] of
Nil,
before_destroy: [] of
Nil,
after_destroy: [do
end, do
end, do
end] of
Nil,
}
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
CLEANUP_AFTER = ((
ENV["
SIGNAGE_AI_CLEANUP_DAYS"]?.try(&.to_i?) || 0).days)
How long a job row is kept, once cleanup is turned on.
Off unless SIGNAGE_AI_CLEANUP_DAYS is set to a positive number of days, so
nothing starts deleting a site's history because it was upgraded. Somewhere
that generates seasonally keeps last year's work by doing nothing at all.
Zero and negatives both read as "keep everything" rather than as a cutoff in
the future that would take the whole table with it.
Note for operators turning it on: the usage report and the per domain monthly
quota both read this table, so a window shorter than a month makes both
under-count.
CLEANUP_BATCH = 1000
Rows removed per insert. The work each job creation does is bounded, so a
long disabled cleanup being switched back on cannot stall a request while
it catches up: it takes several inserts instead of one long one.
PRIMARY_KEY_TYPES = {:id =>
UUID} of
Nil =>
NilPRIMARY_KEYS = [{:id}]
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Constructors
from_json(string_or_io :
String |
IO, trusted :
Bool = false) : self
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Deserializes the given JSON in string_or_io into
an instance of self, assuming the JSON consists
of an JSON object with key root, and whose value is
the value to deserialize. Will not deserialise from
fields with mass_assign: false
class User < ActiveModel::Model
attribute name : String
attribute google_id : UUID, mass_assign: false
end
User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
from_trusted_json(string_or_io :
String |
IO) : self
Serialize from a trusted JSON source
from_trusted_yaml(string_or_io :
String |
IO) : self
Serialize from a trusted YAML source
from_yaml(string_or_io :
String |
IO, trusted :
Bool = false) : self
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
SourceOne image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Sourcenew(rs : DB::ResultSet)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
new(created_at :
Time |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, updated_at :
Time |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, id :
UUID |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, authority_id :
String |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, provider_id :
UUID |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, provider_type :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, model :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, user_id :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, user_email :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, user_name :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, parent_job_id :
UUID |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, version :
Int32 |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, kind :
PlaceOS::Model::SignageAIJob::Kind |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, state :
PlaceOS::Model::SignageAIJob::State |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, cancel_requested :
Bool |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, idempotency_key :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, candidates :
Int32 |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, images_produced :
Int32 |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, prompt :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, request :
JSON::Any |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, result :
JSON::Any |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, error_kind :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, error_message :
String |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, upload_ids :
Array(
String) |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, cost_units :
Float64 |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, latency_ms :
Int64 |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, started_at :
Time |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new, finished_at :
Time |
Nil |
ActiveModel::Model::None = ::
ActiveModel::Model::None.new)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Initialize PlaceOS::Model::SignageAIJob from HTTP::Params.
Class methods
Write one candidate's entry without counting it as newly produced.
bump_image has the increment welded into its statement because it is the
runner recording a candidate that has just landed. Claiming records that
an image the runner already counted became a media item, so it must not
count again: it did, and the usage report was inflated by every save.
Sourceattributes
Returns all attribute keys.
Write one candidate into result->'images'->index and bump the version, in a
single statement. Candidate fibers must never load, modify and save the row:
save writes the whole column and would drop entries written concurrently.
SourceBump the version without touching the images, so a state change wakes a
long polling client too.
Sourcechangefeed_ignored_update_columns
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
changes(id :
UUID |
Nil = nil) :
ChangeFeed Changefeed at row (if id passed) or whole table level.
Returns a ChangeFeed instance which can be used to invoke async callbacks via on or
use blocking Iterator via each method.
cleanup_after
The window actually used, seeded from the constant above. Settable so the
specs can exercise a configured window, which a constant read at compile
time cannot express.
SourceThe window actually used, seeded from the constant above. Settable so the
specs can exercise a configured window, which a constant read at compile
time cannot express.
Sourcecleanup_expired(limit :
Int32 =
CLEANUP_BATCH) :
Int32 Remove job rows past the retention window. Returns how many went.
Two statements rather than one DELETE ... WHERE id IN (SELECT ... LIMIT n FOR UPDATE SKIP LOCKED). That single statement does not reliably delete at
most n rows. When the planner picks a nested loop semi join it re-runs the
subquery once per candidate row, and because SKIP LOCKED and the rows already
deleted by this statement change what comes back each time, the delete lands
on the union of those evaluations. Confirmed here with auto_explain: a hash
semi join runs the Limit once and removes 2 of 3, a nested loop runs it three
times and removes all 3. Which plan you get moves with the table statistics,
so it is fine until it suddenly is not.
Reading the ids first and deleting exactly those cannot be re-evaluated.
The delete runs in a nested transaction, which PgORM issues as a SAVEPOINT,
so a failure rolls back to the savepoint and leaves the surrounding insert
intact. Without it a failed delete would poison the whole transaction and
take the new job down with it.
Sourcefrom_rs(__temp_2568 : DB::ResultSet)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
primary_key
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Sourcestale(older_than :
Time) :
Array(
SignageAIJob)
Jobs left running by a replica that went away.
SourceCandidates requested by a user since a point in time, for the per user quota.
Failed jobs count. Most of them reached the vendor and were billed, and
exempting them meant a caller whose requests kept failing had no limit at
all, which is the one case where a limit matters most.
SourceCandidates requested across a domain since a point in time, for the domain quota.
Sourcetable_name
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Instance methods
after_create
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
after_destroy
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
after_initialize(trusted :
Bool)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
after_save
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
after_update
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
apply_defaults
Generate code to apply default values
assign_attributes(created_at :
Time |
Missing =
Missing, updated_at :
Time |
Missing =
Missing, id :
UUID |
Missing =
Missing, authority_id :
String |
Missing =
Missing, provider_id :
UUID |
Nil |
Missing =
Missing, provider_type :
String |
Nil |
Missing =
Missing, model :
String |
Nil |
Missing =
Missing, user_id :
String |
Nil |
Missing =
Missing, user_email :
String |
Nil |
Missing =
Missing, user_name :
String |
Nil |
Missing =
Missing, parent_job_id :
UUID |
Nil |
Missing =
Missing, version :
Int32 |
Missing =
Missing, kind :
PlaceOS::Model::SignageAIJob::Kind |
Missing =
Missing, state :
PlaceOS::Model::SignageAIJob::State |
Missing =
Missing, cancel_requested :
Bool |
Missing =
Missing, idempotency_key :
String |
Nil |
Missing =
Missing, candidates :
Int32 |
Missing =
Missing, images_produced :
Int32 |
Missing =
Missing, prompt :
String |
Nil |
Missing =
Missing, request :
JSON::Any |
Missing =
Missing, result :
JSON::Any |
Missing =
Missing, error_kind :
String |
Nil |
Missing =
Missing, error_message :
String |
Nil |
Missing =
Missing, upload_ids :
Array(
String) |
Missing =
Missing, cost_units :
Float64 |
Nil |
Missing =
Missing, latency_ms :
Int64 |
Nil |
Missing =
Missing, started_at :
Time |
Nil |
Missing =
Missing, finished_at :
Time |
Nil |
Missing =
Missing)
Assign to multiple attributes.
Assign to multiple attributes via HTTP::Params.
Assign to multiple attributes from a model object
assign_attributes_from_json(json, root :
String)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
assign_attributes_from_json(json)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
assign_attributes_from_trusted_json(json, root :
String)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
assign_attributes_from_trusted_json(json)
Assign each field from JSON if field exists in JSON and has changed in model
assign_attributes_from_trusted_yaml(yaml)
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
assign_attributes_from_yaml(yaml)
Uses the YAML parser as JSON is valid YAML
attributes
Returns a Hash of all attribute values
attributes_tuple
Returns a NamedTuple of all attribute values.
authority_id?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
authority_id_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
authority_id_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
authority_id_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
authority_id_default
authority_id's default value
Sourceauthority_id_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
authority_id_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
authority_id_will_change!
Include authority_id in the set of changed attributes, whether it has changed or not.
before_create
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
before_destroy
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
before_save
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
before_update
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cancel_requested=(value :
Bool)
cancel_requested?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
cancel_requested_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cancel_requested_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
cancel_requested_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cancel_requested_default
cancel_requested's default value
Sourcecancel_requested_present?
cancel_requested_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cancel_requested_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cancel_requested_will_change!
Include cancel_requested in the set of changed attributes, whether it has changed or not.
candidates=(value :
Int32)
candidates?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
candidates_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
candidates_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
candidates_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
candidates_default
candidates's default value
Sourcecandidates_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
candidates_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
candidates_will_change!
Include candidates in the set of changed attributes, whether it has changed or not.
Walk back up a refine chain, oldest first. Bounded so a cycle cannot hang a request.
Sourcechanged?
Check if any attributes have changed.
changed_attributes
Returns a Hash with all changed attributes.
changed_json(io :
IO) :
Nil Serialize the set of changed attributes to JSON.
changed_json
Serialize the set of changed attributes to JSON.
changed_persist_attributes
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
changed_yaml(io :
IO) :
Nil Serialize the set of changed attributes to YAML.
changed_yaml
Serialize the set of changed attributes to YAML.
cost_units_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cost_units_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
cost_units_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cost_units_default
cost_units's default value
Sourcecost_units_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cost_units_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
cost_units_will_change!
Include cost_units in the set of changed attributes, whether it has changed or not.
created_at=(value :
Time)
Setters
created_at setter
created_at?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
created_at_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
created_at_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
created_at_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
created_at_default
created_at's default value
created_at_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
created_at_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
created_at_will_change!
Include created_at in the set of changed attributes, whether it has changed or not.
error_kind=(value :
String |
Nil)
error_kind_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_kind_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
error_kind_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_kind_default
error_kind's default value
Sourceerror_kind_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_kind_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_kind_will_change!
Include error_kind in the set of changed attributes, whether it has changed or not.
error_message=(value :
String |
Nil)
error_message_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_message_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
error_message_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_message_default
error_message's default value
Sourceerror_message_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_message_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
error_message_will_change!
Include error_message in the set of changed attributes, whether it has changed or not.
finished_at=(value :
Time |
Nil)
finished_at_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
finished_at_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
finished_at_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
finished_at_default
finished_at's default value
Sourcefinished_at_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
finished_at_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
finished_at_will_change!
Include finished_at in the set of changed attributes, whether it has changed or not.
id?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
id_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
id_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
id_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
id_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
id_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
id_will_change!
Include id in the set of changed attributes, whether it has changed or not.
idempotency_key=(value :
String |
Nil)
idempotency_key_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
idempotency_key_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
idempotency_key_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
idempotency_key_default
idempotency_key's default value
Sourceidempotency_key_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
idempotency_key_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
idempotency_key_will_change!
Include idempotency_key in the set of changed attributes, whether it has changed or not.
images
The candidate slots, in order. Entries are null until that candidate lands.
Sourceimages_produced=(value :
Int32)
images_produced?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
images_produced_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
images_produced_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
images_produced_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
images_produced_default
images_produced's default value
Sourceimages_produced_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
images_produced_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
images_produced_will_change!
Include images_produced in the set of changed attributes, whether it has changed or not.
invoke_props
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
kind?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
kind_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
kind_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
kind_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
kind_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
kind_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
kind_will_change!
Include kind in the set of changed attributes, whether it has changed or not.
latency_ms=(value :
Int64 |
Nil)
latency_ms_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
latency_ms_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
latency_ms_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
latency_ms_default
latency_ms's default value
Sourcelatency_ms_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
latency_ms_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
latency_ms_will_change!
Include latency_ms in the set of changed attributes, whether it has changed or not.
model_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
model_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
model_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
model_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
model_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
model_will_change!
Include model in the set of changed attributes, whether it has changed or not.
parent_job_id=(value :
UUID |
Nil)
parent_job_id_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
parent_job_id_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
parent_job_id_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
parent_job_id_default
parent_job_id's default value
Sourceparent_job_id_present?
a refine points at the job it was refined from
parent_job_id_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
parent_job_id_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
parent_job_id_will_change!
Include parent_job_id in the set of changed attributes, whether it has changed or not.
persistent_attributes
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
primary_key
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
Sourceprimary_key_hash
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
prompt_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
prompt_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
prompt_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
prompt_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
prompt_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
prompt_will_change!
Include prompt in the set of changed attributes, whether it has changed or not.
provider_id=(value :
UUID |
Nil)
provider_id_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_id_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
provider_id_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_id_default
provider_id's default value
Sourceprovider_id_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_id_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_id_will_change!
Include provider_id in the set of changed attributes, whether it has changed or not.
provider_type=(value :
String |
Nil)
provider_type_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_type_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
provider_type_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_type_default
provider_type's default value
Sourceprovider_type_present?
recorded as strings as well so a job survives its provider row being deleted
(named provider_type because provider is the belongs_to association above)
provider_type_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_type_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
provider_type_will_change!
Include provider_type in the set of changed attributes, whether it has changed or not.
request?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
request_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
request_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
request_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
request_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
request_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
request_will_change!
Include request in the set of changed attributes, whether it has changed or not.
restore_attributes
Reset each attribute to their previous values and clears all changes.
result?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
result_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
result_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
result_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
result_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
result_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
result_will_change!
Include result in the set of changed attributes, whether it has changed or not.
started_at=(value :
Time |
Nil)
started_at_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
started_at_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
started_at_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
started_at_default
started_at's default value
Sourcestarted_at_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
started_at_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
started_at_will_change!
Include started_at in the set of changed attributes, whether it has changed or not.
state?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
state_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
state_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
state_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
state_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
state_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
state_will_change!
Include state in the set of changed attributes, whether it has changed or not.
table_name
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
updated_at=(value :
Time)
updated_at?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
updated_at_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
updated_at_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
updated_at_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
updated_at_default
updated_at's default value
updated_at_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
updated_at_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
updated_at_will_change!
Include updated_at in the set of changed attributes, whether it has changed or not.
upload_ids?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
upload_ids_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
upload_ids_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
upload_ids_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
upload_ids_default
upload_ids's default value
Sourceupload_ids_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
upload_ids_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
upload_ids_will_change!
Include upload_ids in the set of changed attributes, whether it has changed or not.
user_email=(value :
String |
Nil)
user_email_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_email_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
user_email_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_email_default
user_email's default value
Sourceuser_email_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_email_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_email_will_change!
Include user_email in the set of changed attributes, whether it has changed or not.
user_id=(value :
String |
Nil)
user_id_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_id_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
user_id_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_id_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_id_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_id_will_change!
Include user_id in the set of changed attributes, whether it has changed or not.
user_name=(value :
String |
Nil)
user_name_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_name_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
user_name_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_name_default
user_name's default value
Sourceuser_name_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_name_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
user_name_will_change!
Include user_name in the set of changed attributes, whether it has changed or not.
validate_nilability
Validate that all non-nillable fields have values.
version?
NOTE: use getter / getter! (not property / property!) so that the
setter defined later in __create_initializer__ is the only setter on
the field. Crystal's overload resolution silently fails to replace a
property-defined setter with one of identical signature for generic
types (e.g. Set(String)?, Array(String)?, String | Array(String)),
although it does work for non-generic ones like String?. Defining the
setter only once via __create_initializer__ ensures change tracking,
sanitization, and custom setter blocks run uniformly across all types.
version_assigned?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
version_change
Returns a Tuple of the previous and the current
value of an instance variable if it has changed
version_changed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
version_removed?
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
version_was
One image generation or edit request.
Candidates are written into result["images"] one at a time by the runner as
each vendor call finishes. Every write bumps version, which is what the long
polling endpoint compares against so a client can tell what it has already seen
(updated_at only has whole second resolution and cannot order two writes in
the same second).
version_will_change!
Include version in the set of changed attributes, whether it has changed or not.