## API Report File for "@azure/arm-chaos"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

// @public
export interface ActionStatus {
    readonly actionId?: string;
    readonly actionName?: string;
    readonly endTime?: Date;
    readonly startTime?: Date;
    readonly status?: string;
    readonly targets?: ExperimentExecutionActionTargetDetailsProperties[];
}

// @public
export type ActionType = string;

// @public
export interface BranchStatus {
    readonly actions?: ActionStatus[];
    readonly branchId?: string;
    readonly branchName?: string;
    readonly status?: string;
}

// @public
export interface Capability extends ProxyResource {
    properties?: CapabilityProperties;
}

// @public
export interface CapabilityProperties {
    readonly description?: string;
    readonly parametersSchema?: string;
    readonly publisher?: string;
    readonly targetType?: string;
    readonly urn?: string;
}

// @public
export interface CapabilityType extends ProxyResource {
    properties?: CapabilityTypeProperties;
}

// @public
export interface CapabilityTypeProperties {
    readonly azureRbacActions?: string[];
    readonly azureRbacDataActions?: string[];
    readonly description?: string;
    readonly displayName?: string;
    readonly kind?: string;
    readonly parametersSchema?: string;
    readonly publisher?: string;
    readonly requiredAzureRoleDefinitionIds?: string[];
    readonly runtimeProperties?: CapabilityTypePropertiesRuntimeProperties;
    readonly targetType?: string;
    readonly urn?: string;
}

// @public
export interface CapabilityTypePropertiesRuntimeProperties {
    readonly kind?: string;
}

// @public
export interface ChaosExperimentAction {
    name: string;
    type: ExperimentActionType;
}

// @public
export type ChaosExperimentActionUnion = ContinuousAction | DelayAction | DiscreteAction | ChaosExperimentAction;

// @public
export interface ChaosExperimentBranch {
    actions: ChaosExperimentActionUnion[];
    name: string;
}

// @public
export interface ChaosExperimentStep {
    branches: ChaosExperimentBranch[];
    name: string;
}

// @public
export interface ChaosTargetFilter {
    type: FilterType;
}

// @public
export type ChaosTargetFilterUnion = ChaosTargetSimpleFilter | ChaosTargetFilter;

// @public
export interface ChaosTargetListSelector extends ChaosTargetSelector {
    targets: TargetReference[];
    type: "List";
}

// @public
export interface ChaosTargetQuerySelector extends ChaosTargetSelector {
    queryString: string;
    subscriptionIds: string[];
    type: "Query";
}

// @public
export interface ChaosTargetSelector {
    filter?: ChaosTargetFilterUnion;
    id: string;
    type: SelectorType;
}

// @public
export type ChaosTargetSelectorUnion = ChaosTargetListSelector | ChaosTargetQuerySelector | ChaosTargetSelector;

// @public
export interface ChaosTargetSimpleFilter extends ChaosTargetFilter {
    parameters?: ChaosTargetSimpleFilterParameters;
    type: "Simple";
}

// @public
export interface ChaosTargetSimpleFilterParameters {
    zones?: string[];
}

// @public
export interface ContinuousAction extends ChaosExperimentAction {
    duration: string;
    parameters: KeyValuePair[];
    selectorId: string;
    type: "continuous";
}

// @public
export type CreatedByType = string;

// @public
export interface DelayAction extends ChaosExperimentAction {
    duration: string;
    type: "delay";
}

// @public
export interface DiscreteAction extends ChaosExperimentAction {
    parameters: KeyValuePair[];
    selectorId: string;
    type: "discrete";
}

// @public
export interface ErrorAdditionalInfo {
    readonly info?: Record<string, any>;
    readonly type?: string;
}

// @public
export interface ErrorDetail {
    readonly additionalInfo?: ErrorAdditionalInfo[];
    readonly code?: string;
    readonly details?: ErrorDetail[];
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorResponse {
    error?: ErrorDetail;
}

// @public
export interface Experiment extends TrackedResource {
    identity?: ManagedServiceIdentity;
    properties: ExperimentProperties;
}

// @public
export type ExperimentActionType = string;

// @public
export interface ExperimentExecution extends ProxyResource {
    properties?: ExperimentExecutionProperties;
}

// @public
export interface ExperimentExecutionActionTargetDetailsError {
    readonly code?: string;
    readonly message?: string;
}

// @public
export interface ExperimentExecutionActionTargetDetailsProperties {
    readonly error?: ExperimentExecutionActionTargetDetailsError;
    readonly status?: string;
    readonly target?: string;
    readonly targetCompletedTime?: Date;
    readonly targetFailedTime?: Date;
}

// @public
export interface ExperimentExecutionDetails {
    readonly id?: string;
    readonly name?: string;
    readonly properties?: ExperimentExecutionDetailsProperties;
    readonly type?: string;
}

// @public
export interface ExperimentExecutionDetailsProperties {
    readonly failureReason?: string;
    readonly lastActionAt?: Date;
    readonly runInformation?: ExperimentExecutionDetailsPropertiesRunInformation;
    readonly startedAt?: Date;
    readonly status?: string;
    readonly stoppedAt?: Date;
}

// @public
export interface ExperimentExecutionDetailsPropertiesRunInformation {
    readonly steps?: StepStatus[];
}

// @public
export interface ExperimentExecutionProperties {
    readonly startedAt?: Date;
    readonly status?: string;
    readonly stoppedAt?: Date;
}

// @public
export interface ExperimentProperties {
    readonly provisioningState?: ProvisioningState;
    selectors: ChaosTargetSelectorUnion[];
    steps: ChaosExperimentStep[];
}

// @public
export interface ExperimentUpdate {
    identity?: ManagedServiceIdentity;
    tags?: Record<string, string>;
}

// @public
export type FilterType = string;

// @public
export interface KeyValuePair {
    key: string;
    value: string;
}

// @public
export enum KnownActionType {
    Internal = "Internal"
}

// @public
export enum KnownCreatedByType {
    Application = "Application",
    Key = "Key",
    ManagedIdentity = "ManagedIdentity",
    User = "User"
}

// @public
export enum KnownExperimentActionType {
    // (undocumented)
    Continuous = "continuous",
    // (undocumented)
    Delay = "delay",
    // (undocumented)
    Discrete = "discrete"
}

// @public
export enum KnownFilterType {
    Simple = "Simple"
}

// @public
export enum KnownManagedServiceIdentityType {
    None = "None",
    SystemAssigned = "SystemAssigned",
    SystemAssignedUserAssigned = "SystemAssigned,UserAssigned",
    UserAssigned = "UserAssigned"
}

// @public
export enum KnownOrigin {
    System = "system",
    User = "user",
    UserSystem = "user,system"
}

// @public
export enum KnownProvisioningState {
    Canceled = "Canceled",
    Creating = "Creating",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownSelectorType {
    List = "List",
    Query = "Query"
}

// @public
export enum KnownTargetReferenceType {
    ChaosTarget = "ChaosTarget"
}

// @public
export enum KnownVersions {
    V20250101 = "2025-01-01"
}

// @public
export interface ManagedServiceIdentity {
    readonly principalId?: string;
    readonly tenantId?: string;
    type: ManagedServiceIdentityType;
    userAssignedIdentities?: Record<string, UserAssignedIdentity | null>;
}

// @public
export type ManagedServiceIdentityType = string;

// @public
export interface Operation {
    readonly actionType?: ActionType;
    display?: OperationDisplay;
    readonly isDataAction?: boolean;
    readonly name?: string;
    readonly origin?: Origin;
}

// @public
export interface OperationDisplay {
    readonly description?: string;
    readonly operation?: string;
    readonly provider?: string;
    readonly resource?: string;
}

// @public
export interface OperationStatusResult {
    endTime?: Date;
    error?: ErrorDetail;
    id?: string;
    name?: string;
    operations?: OperationStatusResult[];
    percentComplete?: number;
    readonly resourceId?: string;
    startTime?: Date;
    status: string;
}

// @public
export type Origin = string;

// @public
export type ProvisioningState = string;

// @public
export interface ProxyResource extends Resource {
}

// @public
export interface Resource {
    readonly id?: string;
    readonly name?: string;
    readonly systemData?: SystemData;
    readonly type?: string;
}

// @public
export type SelectorType = string;

// @public
export interface StepStatus {
    readonly branches?: BranchStatus[];
    readonly status?: string;
    readonly stepId?: string;
    readonly stepName?: string;
}

// @public
export interface SystemData {
    createdAt?: Date;
    createdBy?: string;
    createdByType?: CreatedByType;
    lastModifiedAt?: Date;
    lastModifiedBy?: string;
    lastModifiedByType?: CreatedByType;
}

// @public
export interface Target extends ProxyResource {
    location?: string;
    properties: Record<string, any>;
}

// @public
export interface TargetReference {
    id: string;
    type: TargetReferenceType;
}

// @public
export type TargetReferenceType = string;

// @public
export interface TargetType extends ProxyResource {
    properties: TargetTypeProperties;
}

// @public
export interface TargetTypeProperties {
    readonly description?: string;
    readonly displayName?: string;
    readonly propertiesSchema?: string;
    readonly resourceTypes?: string[];
}

// @public
export interface TrackedResource extends Resource {
    location: string;
    tags?: Record<string, string>;
}

// @public
export interface UserAssignedIdentity {
    readonly clientId?: string;
    readonly principalId?: string;
}

// (No @packageDocumentation comment for this package)

```
