import * as HttpClient from "effect/unstable/http/HttpClient";
import * as redacted from "effect/Redacted";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
import { SensitiveString } from "../sensitive.js";
const svc = T.AwsApiService({
    sdkId: "ManagedBlockchain",
    serviceShapeName: "TaigaWebService",
});
const auth = T.AwsAuthSigv4({ name: "managedblockchain" });
const ver = T.ServiceVersion("2018-09-24");
const proto = T.AwsProtocolsRestJson1();
const rules = T.EndpointResolver((p, _) => {
    const { Region, UseDualStack = false, UseFIPS = false, Endpoint } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://managedblockchain-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        return e(`https://managedblockchain-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://managedblockchain.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://managedblockchain.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const AccessorType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const InputTagMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const AccessorNetworkType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateAccessorInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ClientRequestToken: S.String.pipe(T.IdempotencyToken()),
    AccessorType: AccessorType,
    Tags: S.optional(InputTagMap),
    NetworkType: S.optional(AccessorNetworkType),
}).pipe(T.all(T.Http({ method: "POST", uri: "/accessors" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateAccessorInput",
});
export const CreateAccessorOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AccessorId: S.optional(S.String),
    BillingToken: S.optional(S.String),
    NetworkType: S.optional(AccessorNetworkType),
})).annotate({
    identifier: "CreateAccessorOutput",
});
export const MemberFabricConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AdminUsername: S.String, AdminPassword: SensitiveString })).annotate({
    identifier: "MemberFabricConfiguration",
});
export const MemberFrameworkConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Fabric: S.optional(MemberFabricConfiguration) })).annotate({
    identifier: "MemberFrameworkConfiguration",
});
export const LogConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Enabled: S.optional(S.Boolean) })).annotate({
    identifier: "LogConfiguration",
});
export const LogConfigurations = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Cloudwatch: S.optional(LogConfiguration) })).annotate({
    identifier: "LogConfigurations",
});
export const MemberFabricLogPublishingConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CaLogs: S.optional(LogConfigurations) })).annotate({
    identifier: "MemberFabricLogPublishingConfiguration",
});
export const MemberLogPublishingConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Fabric: S.optional(MemberFabricLogPublishingConfiguration) })).annotate({
    identifier: "MemberLogPublishingConfiguration",
});
export const MemberConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Name: S.String,
    Description: S.optional(S.String),
    FrameworkConfiguration: MemberFrameworkConfiguration,
    LogPublishingConfiguration: S.optional(MemberLogPublishingConfiguration),
    Tags: S.optional(InputTagMap),
    KmsKeyArn: S.optional(S.String),
})).annotate({
    identifier: "MemberConfiguration",
});
export const CreateMemberInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ClientRequestToken: S.String.pipe(T.IdempotencyToken()),
    InvitationId: S.String,
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberConfiguration: MemberConfiguration,
}).pipe(T.all(T.Http({ method: "POST", uri: "/networks/{NetworkId}/members" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateMemberInput",
});
export const CreateMemberOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ MemberId: S.optional(S.String) })).annotate({
    identifier: "CreateMemberOutput",
});
export const Framework = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Edition = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const NetworkFabricConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Edition: Edition })).annotate({
    identifier: "NetworkFabricConfiguration",
});
export const NetworkFrameworkConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Fabric: S.optional(NetworkFabricConfiguration) })).annotate({
    identifier: "NetworkFrameworkConfiguration",
});
export const ThresholdComparator = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ApprovalThresholdPolicy = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ThresholdPercentage: S.optional(S.Number),
    ProposalDurationInHours: S.optional(S.Number),
    ThresholdComparator: S.optional(ThresholdComparator),
})).annotate({
    identifier: "ApprovalThresholdPolicy",
});
export const VotingPolicy = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ApprovalThresholdPolicy: S.optional(ApprovalThresholdPolicy) })).annotate({ identifier: "VotingPolicy" });
export const CreateNetworkInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ClientRequestToken: S.String.pipe(T.IdempotencyToken()),
    Name: S.String,
    Description: S.optional(S.String),
    Framework: Framework,
    FrameworkVersion: S.String,
    FrameworkConfiguration: S.optional(NetworkFrameworkConfiguration),
    VotingPolicy: VotingPolicy,
    MemberConfiguration: MemberConfiguration,
    Tags: S.optional(InputTagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/networks" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateNetworkInput",
});
export const CreateNetworkOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ NetworkId: S.optional(S.String), MemberId: S.optional(S.String) })).annotate({
    identifier: "CreateNetworkOutput",
});
export const NodeFabricLogPublishingConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChaincodeLogs: S.optional(LogConfigurations),
    PeerLogs: S.optional(LogConfigurations),
})).annotate({
    identifier: "NodeFabricLogPublishingConfiguration",
});
export const NodeLogPublishingConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Fabric: S.optional(NodeFabricLogPublishingConfiguration) })).annotate({
    identifier: "NodeLogPublishingConfiguration",
});
export const StateDBType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const NodeConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    InstanceType: S.String,
    AvailabilityZone: S.optional(S.String),
    LogPublishingConfiguration: S.optional(NodeLogPublishingConfiguration),
    StateDB: S.optional(StateDBType),
})).annotate({
    identifier: "NodeConfiguration",
});
export const CreateNodeInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ClientRequestToken: S.String.pipe(T.IdempotencyToken()),
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.optional(S.String),
    NodeConfiguration: NodeConfiguration,
    Tags: S.optional(InputTagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/networks/{NetworkId}/nodes" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateNodeInput",
});
export const CreateNodeOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ NodeId: S.optional(S.String) })).annotate({
    identifier: "CreateNodeOutput",
});
export const InviteAction = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Principal: S.String })).annotate({ identifier: "InviteAction" });
export const InviteActionList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(InviteAction);
export const RemoveAction = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ MemberId: S.String })).annotate({ identifier: "RemoveAction" });
export const RemoveActionList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(RemoveAction);
export const ProposalActions = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Invitations: S.optional(InviteActionList),
    Removals: S.optional(RemoveActionList),
})).annotate({
    identifier: "ProposalActions",
});
export const CreateProposalInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ClientRequestToken: S.String.pipe(T.IdempotencyToken()),
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.String,
    Actions: ProposalActions,
    Description: S.optional(S.String),
    Tags: S.optional(InputTagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/networks/{NetworkId}/proposals" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateProposalInput",
});
export const CreateProposalOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ProposalId: S.optional(S.String) })).annotate({
    identifier: "CreateProposalOutput",
});
export const DeleteAccessorInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccessorId: S.String.pipe(T.HttpLabel("AccessorId")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/accessors/{AccessorId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteAccessorInput",
});
export const DeleteAccessorOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteAccessorOutput",
});
export const DeleteMemberInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.String.pipe(T.HttpLabel("MemberId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/networks/{NetworkId}/members/{MemberId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteMemberInput",
});
export const DeleteMemberOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteMemberOutput",
});
export const DeleteNodeInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.optional(S.String).pipe(T.HttpQuery("memberId")),
    NodeId: S.String.pipe(T.HttpLabel("NodeId")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/networks/{NetworkId}/nodes/{NodeId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteNodeInput",
});
export const DeleteNodeOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteNodeOutput",
});
export const GetAccessorInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ AccessorId: S.String.pipe(T.HttpLabel("AccessorId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/accessors/{AccessorId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetAccessorInput",
});
export const AccessorStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const OutputTagMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const Accessor = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Type: S.optional(AccessorType),
    BillingToken: S.optional(S.String),
    Status: S.optional(AccessorStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Arn: S.optional(S.String),
    Tags: S.optional(OutputTagMap),
    NetworkType: S.optional(AccessorNetworkType),
})).annotate({ identifier: "Accessor" });
export const GetAccessorOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Accessor: S.optional(Accessor) })).annotate({
    identifier: "GetAccessorOutput",
});
export const GetMemberInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.String.pipe(T.HttpLabel("MemberId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/networks/{NetworkId}/members/{MemberId}",
}), svc, auth, proto, ver, rules))).annotate({ identifier: "GetMemberInput" });
export const MemberFabricAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AdminUsername: S.optional(S.String),
    CaEndpoint: S.optional(S.String),
})).annotate({
    identifier: "MemberFabricAttributes",
});
export const MemberFrameworkAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Fabric: S.optional(MemberFabricAttributes) })).annotate({
    identifier: "MemberFrameworkAttributes",
});
export const MemberStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Member = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.optional(S.String),
    Id: S.optional(S.String),
    Name: S.optional(S.String),
    Description: S.optional(S.String),
    FrameworkAttributes: S.optional(MemberFrameworkAttributes),
    LogPublishingConfiguration: S.optional(MemberLogPublishingConfiguration),
    Status: S.optional(MemberStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Tags: S.optional(OutputTagMap),
    Arn: S.optional(S.String),
    KmsKeyArn: S.optional(S.String),
})).annotate({ identifier: "Member" });
export const GetMemberOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Member: S.optional(Member) })).annotate({
    identifier: "GetMemberOutput",
});
export const GetNetworkInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ NetworkId: S.String.pipe(T.HttpLabel("NetworkId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/networks/{NetworkId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetNetworkInput",
});
export const NetworkFabricAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    OrderingServiceEndpoint: S.optional(S.String),
    Edition: S.optional(Edition),
})).annotate({
    identifier: "NetworkFabricAttributes",
});
export const NetworkEthereumAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ChainId: S.optional(S.String) })).annotate({
    identifier: "NetworkEthereumAttributes",
});
export const NetworkFrameworkAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Fabric: S.optional(NetworkFabricAttributes),
    Ethereum: S.optional(NetworkEthereumAttributes),
})).annotate({
    identifier: "NetworkFrameworkAttributes",
});
export const NetworkStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Network = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Name: S.optional(S.String),
    Description: S.optional(S.String),
    Framework: S.optional(Framework),
    FrameworkVersion: S.optional(S.String),
    FrameworkAttributes: S.optional(NetworkFrameworkAttributes),
    VpcEndpointServiceName: S.optional(S.String),
    VotingPolicy: S.optional(VotingPolicy),
    Status: S.optional(NetworkStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Tags: S.optional(OutputTagMap),
    Arn: S.optional(S.String),
})).annotate({ identifier: "Network" });
export const GetNetworkOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Network: S.optional(Network) })).annotate({
    identifier: "GetNetworkOutput",
});
export const GetNodeInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.optional(S.String).pipe(T.HttpQuery("memberId")),
    NodeId: S.String.pipe(T.HttpLabel("NodeId")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/networks/{NetworkId}/nodes/{NodeId}" }), svc, auth, proto, ver, rules))).annotate({ identifier: "GetNodeInput" });
export const NodeFabricAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    PeerEndpoint: S.optional(S.String),
    PeerEventEndpoint: S.optional(S.String),
})).annotate({
    identifier: "NodeFabricAttributes",
});
export const NodeEthereumAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    HttpEndpoint: S.optional(S.String),
    WebSocketEndpoint: S.optional(S.String),
})).annotate({
    identifier: "NodeEthereumAttributes",
});
export const NodeFrameworkAttributes = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Fabric: S.optional(NodeFabricAttributes),
    Ethereum: S.optional(NodeEthereumAttributes),
})).annotate({
    identifier: "NodeFrameworkAttributes",
});
export const NodeStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Node = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.optional(S.String),
    MemberId: S.optional(S.String),
    Id: S.optional(S.String),
    InstanceType: S.optional(S.String),
    AvailabilityZone: S.optional(S.String),
    FrameworkAttributes: S.optional(NodeFrameworkAttributes),
    LogPublishingConfiguration: S.optional(NodeLogPublishingConfiguration),
    StateDB: S.optional(StateDBType),
    Status: S.optional(NodeStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Tags: S.optional(OutputTagMap),
    Arn: S.optional(S.String),
    KmsKeyArn: S.optional(S.String),
})).annotate({ identifier: "Node" });
export const GetNodeOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Node: S.optional(Node) })).annotate({ identifier: "GetNodeOutput" });
export const GetProposalInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    ProposalId: S.String.pipe(T.HttpLabel("ProposalId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/networks/{NetworkId}/proposals/{ProposalId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetProposalInput",
});
export const ProposalStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Proposal = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ProposalId: S.optional(S.String),
    NetworkId: S.optional(S.String),
    Description: S.optional(S.String),
    Actions: S.optional(ProposalActions),
    ProposedByMemberId: S.optional(S.String),
    ProposedByMemberName: S.optional(S.String),
    Status: S.optional(ProposalStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    ExpirationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    YesVoteCount: S.optional(S.Number),
    NoVoteCount: S.optional(S.Number),
    OutstandingVoteCount: S.optional(S.Number),
    Tags: S.optional(OutputTagMap),
    Arn: S.optional(S.String),
})).annotate({ identifier: "Proposal" });
export const GetProposalOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Proposal: S.optional(Proposal) })).annotate({
    identifier: "GetProposalOutput",
});
export const ListAccessorsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
    NetworkType: S.optional(AccessorNetworkType).pipe(T.HttpQuery("networkType")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/accessors" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListAccessorsInput",
});
export const AccessorSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Type: S.optional(AccessorType),
    Status: S.optional(AccessorStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Arn: S.optional(S.String),
    NetworkType: S.optional(AccessorNetworkType),
})).annotate({
    identifier: "AccessorSummary",
});
export const AccessorSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(AccessorSummary);
export const ListAccessorsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Accessors: S.optional(AccessorSummaryList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListAccessorsOutput",
});
export const ListInvitationsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/invitations" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListInvitationsInput",
});
export const InvitationStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const NetworkSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Name: S.optional(S.String),
    Description: S.optional(S.String),
    Framework: S.optional(Framework),
    FrameworkVersion: S.optional(S.String),
    Status: S.optional(NetworkStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Arn: S.optional(S.String),
})).annotate({ identifier: "NetworkSummary" });
export const Invitation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    InvitationId: S.optional(S.String),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    ExpirationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Status: S.optional(InvitationStatus),
    NetworkSummary: S.optional(NetworkSummary),
    Arn: S.optional(S.String),
})).annotate({ identifier: "Invitation" });
export const InvitationList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Invitation);
export const ListInvitationsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Invitations: S.optional(InvitationList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListInvitationsOutput",
});
export const ListMembersInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    Name: S.optional(S.String).pipe(T.HttpQuery("name")),
    Status: S.optional(MemberStatus).pipe(T.HttpQuery("status")),
    IsOwned: S.optional(S.Boolean).pipe(T.HttpQuery("isOwned")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/networks/{NetworkId}/members" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMembersInput",
});
export const MemberSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Name: S.optional(S.String),
    Description: S.optional(S.String),
    Status: S.optional(MemberStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    IsOwned: S.optional(S.Boolean),
    Arn: S.optional(S.String),
})).annotate({ identifier: "MemberSummary" });
export const MemberSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(MemberSummary);
export const ListMembersOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Members: S.optional(MemberSummaryList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListMembersOutput",
});
export const ListNetworksInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Name: S.optional(S.String).pipe(T.HttpQuery("name")),
    Framework: S.optional(Framework).pipe(T.HttpQuery("framework")),
    Status: S.optional(NetworkStatus).pipe(T.HttpQuery("status")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/networks" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListNetworksInput",
});
export const NetworkSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(NetworkSummary);
export const ListNetworksOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Networks: S.optional(NetworkSummaryList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListNetworksOutput",
});
export const ListNodesInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.optional(S.String).pipe(T.HttpQuery("memberId")),
    Status: S.optional(NodeStatus).pipe(T.HttpQuery("status")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/networks/{NetworkId}/nodes" }), svc, auth, proto, ver, rules))).annotate({ identifier: "ListNodesInput" });
export const NodeSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Id: S.optional(S.String),
    Status: S.optional(NodeStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    AvailabilityZone: S.optional(S.String),
    InstanceType: S.optional(S.String),
    Arn: S.optional(S.String),
})).annotate({ identifier: "NodeSummary" });
export const NodeSummaryList = /*@__PURE__*/ /*#__PURE__*/ S.Array(NodeSummary);
export const ListNodesOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Nodes: S.optional(NodeSummaryList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListNodesOutput",
});
export const ListProposalsInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/networks/{NetworkId}/proposals" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListProposalsInput",
});
export const ProposalSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ProposalId: S.optional(S.String),
    Description: S.optional(S.String),
    ProposedByMemberId: S.optional(S.String),
    ProposedByMemberName: S.optional(S.String),
    Status: S.optional(ProposalStatus),
    CreationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    ExpirationDate: S.optional(T.DateFromString.pipe(T.TimestampFormat("date-time"))),
    Arn: S.optional(S.String),
})).annotate({
    identifier: "ProposalSummary",
});
export const ProposalSummaryList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ProposalSummary);
export const ListProposalsOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Proposals: S.optional(ProposalSummaryList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListProposalsOutput",
});
export const ListProposalVotesInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    ProposalId: S.String.pipe(T.HttpLabel("ProposalId")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("maxResults")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("nextToken")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/networks/{NetworkId}/proposals/{ProposalId}/votes",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListProposalVotesInput",
});
export const VoteValue = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const VoteSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Vote: S.optional(VoteValue),
    MemberName: S.optional(S.String),
    MemberId: S.optional(S.String),
})).annotate({ identifier: "VoteSummary" });
export const ProposalVoteList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(VoteSummary);
export const ListProposalVotesOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ProposalVotes: S.optional(ProposalVoteList),
    NextToken: S.optional(S.String),
})).annotate({
    identifier: "ListProposalVotesOutput",
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")) }).pipe(T.all(T.Http({ method: "GET", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Tags: S.optional(OutputTagMap) })).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const RejectInvitationInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ InvitationId: S.String.pipe(T.HttpLabel("InvitationId")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/invitations/{InvitationId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "RejectInvitationInput",
});
export const RejectInvitationOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "RejectInvitationOutput",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")),
    Tags: InputTagMap,
}).pipe(T.all(T.Http({ method: "POST", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")),
    TagKeys: TagKeyList.pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceResponse",
});
export const UpdateMemberInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.String.pipe(T.HttpLabel("MemberId")),
    LogPublishingConfiguration: S.optional(MemberLogPublishingConfiguration),
}).pipe(T.all(T.Http({
    method: "PATCH",
    uri: "/networks/{NetworkId}/members/{MemberId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateMemberInput",
});
export const UpdateMemberOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateMemberOutput",
});
export const UpdateNodeInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    MemberId: S.optional(S.String),
    NodeId: S.String.pipe(T.HttpLabel("NodeId")),
    LogPublishingConfiguration: S.optional(NodeLogPublishingConfiguration),
}).pipe(T.all(T.Http({ method: "PATCH", uri: "/networks/{NetworkId}/nodes/{NodeId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateNodeInput",
});
export const UpdateNodeOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UpdateNodeOutput",
});
export const VoteOnProposalInput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NetworkId: S.String.pipe(T.HttpLabel("NetworkId")),
    ProposalId: S.String.pipe(T.HttpLabel("ProposalId")),
    VoterMemberId: S.String,
    Vote: VoteValue,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/networks/{NetworkId}/proposals/{ProposalId}/votes",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "VoteOnProposalInput",
});
export const VoteOnProposalOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "VoteOnProposalOutput",
});
//# Errors
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { Message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class InternalServiceErrorException extends S.TaggedErrorClass()("InternalServiceErrorException", {}).pipe(C.withServerError) {
}
export class InvalidRequestException extends S.TaggedErrorClass()("InvalidRequestException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ResourceAlreadyExistsException extends S.TaggedErrorClass()("ResourceAlreadyExistsException", { Message: S.optional(S.String) }).pipe(C.withConflictError, C.withAlreadyExistsError) {
}
export class ResourceLimitExceededException extends S.TaggedErrorClass()("ResourceLimitExceededException", { Message: S.optional(S.String) }).pipe(C.withThrottlingError) {
}
export class ThrottlingException extends S.TaggedErrorClass()("ThrottlingException", {}).pipe(C.withThrottlingError) {
}
export class TooManyTagsException extends S.TaggedErrorClass()("TooManyTagsException", { Message: S.optional(S.String), ResourceName: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { Message: S.optional(S.String), ResourceName: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ResourceNotReadyException extends S.TaggedErrorClass()("ResourceNotReadyException", { Message: S.optional(S.String) }).pipe(C.withConflictError) {
}
export class IllegalActionException extends S.TaggedErrorClass()("IllegalActionException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
/**
 * Creates a new accessor for use with Amazon Managed Blockchain service that supports token based access.
 * The accessor contains information required for token based access.
 */
export const createAccessor = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateAccessorInput,
    output: CreateAccessorOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceAlreadyExistsException,
        ResourceLimitExceededException,
        ThrottlingException,
        TooManyTagsException,
    ],
}));
/**
 * Creates a member within a Managed Blockchain network.
 *
 * Applies only to Hyperledger Fabric.
 */
export const createMember = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateMemberInput,
    output: CreateMemberOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceAlreadyExistsException,
        ResourceLimitExceededException,
        ResourceNotFoundException,
        ResourceNotReadyException,
        ThrottlingException,
        TooManyTagsException,
    ],
}));
/**
 * Creates a new blockchain network using Amazon Managed Blockchain.
 *
 * Applies only to Hyperledger Fabric.
 */
export const createNetwork = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateNetworkInput,
    output: CreateNetworkOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceAlreadyExistsException,
        ResourceLimitExceededException,
        ThrottlingException,
        TooManyTagsException,
    ],
}));
/**
 * Creates a node on the specified blockchain network.
 *
 * Applies to Hyperledger Fabric and Ethereum.
 */
export const createNode = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateNodeInput,
    output: CreateNodeOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceAlreadyExistsException,
        ResourceLimitExceededException,
        ResourceNotFoundException,
        ResourceNotReadyException,
        ThrottlingException,
        TooManyTagsException,
    ],
}));
/**
 * Creates a proposal for a change to the network that other members of the network can vote on, for example, a proposal to add a new member to the network. Any member can create a proposal.
 *
 * Applies only to Hyperledger Fabric.
 */
export const createProposal = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateProposalInput,
    output: CreateProposalOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ResourceNotReadyException,
        ThrottlingException,
        TooManyTagsException,
    ],
}));
/**
 * Deletes an accessor that your Amazon Web Services account owns. An accessor object is a container that has the
 * information required for token based access to your Ethereum nodes including, the
 * `BILLING_TOKEN`. After an accessor is deleted, the status of the accessor changes
 * from `AVAILABLE` to `PENDING_DELETION`. An accessor in the
 * `PENDING_DELETION` state can’t be used for new WebSocket requests or
 * HTTP requests. However, WebSocket connections that were initiated while the accessor was in the
 * `AVAILABLE` state remain open until they expire (up to 2 hours).
 */
export const deleteAccessor = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteAccessorInput,
    output: DeleteAccessorOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Deletes a member. Deleting a member removes the member and all associated resources from the network. `DeleteMember` can only be called for a specified `MemberId` if the principal performing the action is associated with the Amazon Web Services account that owns the member. In all other cases, the `DeleteMember` action is carried out as the result of an approved proposal to remove a member. If `MemberId` is the last member in a network specified by the last Amazon Web Services account, the network is deleted also.
 *
 * Applies only to Hyperledger Fabric.
 */
export const deleteMember = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteMemberInput,
    output: DeleteMemberOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ResourceNotReadyException,
        ThrottlingException,
    ],
}));
/**
 * Deletes a node that your Amazon Web Services account owns. All data on the node is lost and cannot be recovered.
 *
 * Applies to Hyperledger Fabric and Ethereum.
 */
export const deleteNode = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteNodeInput,
    output: DeleteNodeOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ResourceNotReadyException,
        ThrottlingException,
    ],
}));
/**
 * Returns detailed information about an accessor. An accessor object is a container that has the
 * information required for token based access to your Ethereum nodes.
 */
export const getAccessor = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetAccessorInput,
    output: GetAccessorOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Returns detailed information about a member.
 *
 * Applies only to Hyperledger Fabric.
 */
export const getMember = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetMemberInput,
    output: GetMemberOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Returns detailed information about a network.
 *
 * Applies to Hyperledger Fabric and Ethereum.
 */
export const getNetwork = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetNetworkInput,
    output: GetNetworkOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Returns detailed information about a node.
 *
 * Applies to Hyperledger Fabric and Ethereum.
 */
export const getNode = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetNodeInput,
    output: GetNodeOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Returns detailed information about a proposal.
 *
 * Applies only to Hyperledger Fabric.
 */
export const getProposal = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetProposalInput,
    output: GetProposalOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Returns a list of the accessors and their properties. Accessor objects are containers that have the
 * information required for token based access to your Ethereum nodes.
 */
export const listAccessors = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListAccessorsInput,
    output: ListAccessorsOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        items: "Accessors",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of all invitations for the current Amazon Web Services account.
 *
 * Applies only to Hyperledger Fabric.
 */
export const listInvitations = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListInvitationsInput,
    output: ListInvitationsOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceLimitExceededException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of the members in a network and properties of their configurations.
 *
 * Applies only to Hyperledger Fabric.
 */
export const listMembers = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMembersInput,
    output: ListMembersOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns information about the networks in which the current Amazon Web Services account participates.
 *
 * Applies to Hyperledger Fabric and Ethereum.
 */
export const listNetworks = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListNetworksInput,
    output: ListNetworksOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns information about the nodes within a network.
 *
 * Applies to Hyperledger Fabric and Ethereum.
 */
export const listNodes = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListNodesInput,
    output: ListNodesOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of proposals for the network.
 *
 * Applies only to Hyperledger Fabric.
 */
export const listProposals = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListProposalsInput,
    output: ListProposalsOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns the list of votes for a specified proposal, including the value of each vote and the unique identifier of the member that cast the vote.
 *
 * Applies only to Hyperledger Fabric.
 */
export const listProposalVotes = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListProposalVotesInput,
    output: ListProposalVotesOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ThrottlingException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Returns a list of tags for the specified resource. Each tag consists of a key and optional value.
 *
 * For more information about tags, see Tagging Resources in the *Amazon Managed Blockchain Ethereum Developer Guide*, or Tagging Resources in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ResourceNotReadyException,
    ],
}));
/**
 * Rejects an invitation to join a network. This action can be called by a principal in an Amazon Web Services account that has received an invitation to create a member and join a network.
 *
 * Applies only to Hyperledger Fabric.
 */
export const rejectInvitation = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: RejectInvitationInput,
    output: RejectInvitationOutput,
    errors: [
        AccessDeniedException,
        IllegalActionException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Adds or overwrites the specified tags for the specified Amazon Managed Blockchain resource. Each tag consists of a key and optional value.
 *
 * When you specify a tag key that already exists, the tag value is overwritten with the new value. Use `UntagResource` to remove tag keys.
 *
 * A resource can have up to 50 tags. If you try to create more than 50 tags for a resource, your request fails and returns an error.
 *
 * For more information about tags, see Tagging Resources in the *Amazon Managed Blockchain Ethereum Developer Guide*, or Tagging Resources in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ResourceNotReadyException,
        TooManyTagsException,
    ],
}));
/**
 * Removes the specified tags from the Amazon Managed Blockchain resource.
 *
 * For more information about tags, see Tagging Resources in the *Amazon Managed Blockchain Ethereum Developer Guide*, or Tagging Resources in the *Amazon Managed Blockchain Hyperledger Fabric Developer Guide*.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ResourceNotReadyException,
    ],
}));
/**
 * Updates a member configuration with new parameters.
 *
 * Applies only to Hyperledger Fabric.
 */
export const updateMember = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateMemberInput,
    output: UpdateMemberOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Updates a node configuration with new parameters.
 *
 * Applies only to Hyperledger Fabric.
 */
export const updateNode = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateNodeInput,
    output: UpdateNodeOutput,
    errors: [
        AccessDeniedException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
/**
 * Casts a vote for a specified `ProposalId` on behalf of a member. The member to vote as, specified by `VoterMemberId`, must be in the same Amazon Web Services account as the principal that calls the action.
 *
 * Applies only to Hyperledger Fabric.
 */
export const voteOnProposal = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: VoteOnProposalInput,
    output: VoteOnProposalOutput,
    errors: [
        AccessDeniedException,
        IllegalActionException,
        InternalServiceErrorException,
        InvalidRequestException,
        ResourceNotFoundException,
        ThrottlingException,
    ],
}));
//# sourceMappingURL=managedblockchain.js.map