blob: 2c0a2cf2a9409a1403f69121a1d24af60e2a6191 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.setui;
/// operations supported by string settings.
enum StringOperation {
UPDATE = 1;
};
/// Configuration for string mutations.
struct StringMutation {
StringOperation operation;
string value;
};
/// Operations supported by account settings.
enum AccountOperation {
ADD = 1;
SET_LOGIN_OVERRIDE = 2;
};
/// Configuration for account mutations.
table AccountMutation {
1: AccountOperation operation;
2: LoginOverride login_override;
};
/// Operations supported by wireless settings.
enum WirelessOperation {
CONNECT = 1;
DISCONNECT = 2;
};
/// Configuration for wireless mutations.
struct WirelessMutation {
WirelessOperation operation;
int64 network_id;
string password;
};
/// Configuration for time zone mutation.
struct TimeZoneMutation {
TimeZoneInfo value;
};
/// Mutation that replaces the existing list of locales with a new list.
struct LocalesMutation {
/// See IntlSettings.locales for format.
vector<string> locales;
};
/// Mutation that changes the |HourCycle|.
struct HourCycleMutation {
HourCycle hour_cycle;
};
/// Mutation that changes the |TemperatureUnit|.
struct TemperatureUnitMutation {
TemperatureUnit temperature_unit;
};
/// Container for setting mutations.
union Mutation {
AccountMutation account_mutation_value;
StringMutation string_mutation_value;
WirelessMutation wireless_mutation_value;
TimeZoneMutation time_zone_mutation_value;
LocalesMutation locales_mutation_value;
HourCycleMutation hour_cycle_mutation_value;
TemperatureUnitMutation temperature_unit_mutation_value;
};
struct AccountMutationHandles {
handle<eventpair> view_holder_token;
};
union MutationHandles {
AccountMutationHandles account_handles;
};