blob: 570849335a2d26c38d23248b7224bdddc2179bd0 [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 {
1: AccountMutation account_mutation_value;
2: StringMutation string_mutation_value;
3: WirelessMutation wireless_mutation_value;
4: TimeZoneMutation time_zone_mutation_value;
5: LocalesMutation locales_mutation_value;
6: HourCycleMutation hour_cycle_mutation_value;
7: TemperatureUnitMutation temperature_unit_mutation_value;
};
struct AccountMutationHandles {
handle<eventpair> view_holder_token;
};
union MutationHandles {
1: AccountMutationHandles account_handles;
};